runloop_api_client 1.13.1__tar.gz → 1.13.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. runloop_api_client-1.13.2/.release-please-manifest.json +3 -0
  2. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/CHANGELOG.md +8 -0
  3. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/PKG-INFO +1 -1
  4. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/pyproject.toml +1 -1
  5. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_version.py +1 -1
  6. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/__init__.py +4 -2
  7. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/_types.py +10 -0
  8. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_axon.py +37 -2
  9. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/axon.py +37 -2
  10. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/conftest.py +41 -0
  11. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_axon.py +37 -1
  12. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_axon.py +35 -1
  13. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_axon.py +48 -0
  14. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_axon.py +48 -0
  15. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/uv.lock +1 -1
  16. runloop_api_client-1.13.1/.release-please-manifest.json +0 -3
  17. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/.gitignore +0 -0
  18. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/CONTRIBUTING.md +0 -0
  19. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/EXAMPLES.md +0 -0
  20. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/LICENSE +0 -0
  21. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/README-SDK.md +0 -0
  22. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/README.md +0 -0
  23. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/SECURITY.md +0 -0
  24. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/api.md +0 -0
  25. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/bin/check-release-environment +0 -0
  26. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/bin/publish-pypi +0 -0
  27. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/__init__.py +0 -0
  28. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/_harness.py +0 -0
  29. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/blueprint_with_build_context.py +0 -0
  30. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/devbox_from_blueprint_lifecycle.py +0 -0
  31. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/devbox_snapshot_resume.py +0 -0
  32. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/devbox_tunnel.py +0 -0
  33. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/example_types.py +0 -0
  34. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/mcp_github_tools.py +0 -0
  35. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/registry.py +0 -0
  36. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/secrets_with_devbox.py +0 -0
  37. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/release-please-config.json +0 -0
  38. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/requirements-dev.lock +0 -0
  39. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop/lib/.keep +0 -0
  40. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/__init__.py +0 -0
  41. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_base_client.py +0 -0
  42. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_client.py +0 -0
  43. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_compat.py +0 -0
  44. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_constants.py +0 -0
  45. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_exceptions.py +0 -0
  46. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_files.py +0 -0
  47. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_models.py +0 -0
  48. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_qs.py +0 -0
  49. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_resource.py +0 -0
  50. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_response.py +0 -0
  51. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_streaming.py +0 -0
  52. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_types.py +0 -0
  53. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/__init__.py +0 -0
  54. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_compat.py +0 -0
  55. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  56. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_json.py +0 -0
  57. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_logs.py +0 -0
  58. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_path.py +0 -0
  59. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_proxy.py +0 -0
  60. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_reflection.py +0 -0
  61. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  62. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_streams.py +0 -0
  63. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_sync.py +0 -0
  64. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_transform.py +0 -0
  65. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_typing.py +0 -0
  66. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_utils.py +0 -0
  67. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_validation.py +0 -0
  68. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/.keep +0 -0
  69. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/__init__.py +0 -0
  70. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/_ignore.py +0 -0
  71. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/context_loader.py +0 -0
  72. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/polling.py +0 -0
  73. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/polling_async.py +0 -0
  74. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/pagination.py +0 -0
  75. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/py.typed +0 -0
  76. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/__init__.py +0 -0
  77. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/agents.py +0 -0
  78. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/axons/__init__.py +0 -0
  79. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/axons/axons.py +0 -0
  80. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/axons/sql.py +0 -0
  81. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
  82. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
  83. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/benchmarks.py +0 -0
  84. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/blueprints.py +0 -0
  85. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  86. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  87. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  88. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  89. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  90. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  91. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  92. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/gateway_configs.py +0 -0
  93. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/mcp_configs.py +0 -0
  94. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/network_policies.py +0 -0
  95. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/objects.py +0 -0
  96. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/repositories.py +0 -0
  97. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  98. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  99. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  100. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  101. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/secrets.py +0 -0
  102. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/_helpers.py +0 -0
  103. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/agent.py +0 -0
  104. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_.py +0 -0
  105. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_agent.py +0 -0
  106. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
  107. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
  108. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
  109. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_devbox.py +0 -0
  110. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_execution.py +0 -0
  111. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
  112. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
  113. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
  114. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
  115. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scenario.py +0 -0
  116. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
  117. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
  118. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scorer.py +0 -0
  119. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_secret.py +0 -0
  120. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
  121. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
  122. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/benchmark.py +0 -0
  123. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
  124. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/blueprint.py +0 -0
  125. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/devbox.py +0 -0
  126. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/execution.py +0 -0
  127. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/execution_result.py +0 -0
  128. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/gateway_config.py +0 -0
  129. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/mcp_config.py +0 -0
  130. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/network_policy.py +0 -0
  131. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scenario.py +0 -0
  132. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
  133. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scenario_run.py +0 -0
  134. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scorer.py +0 -0
  135. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/secret.py +0 -0
  136. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/snapshot.py +0 -0
  137. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/storage_object.py +0 -0
  138. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/sync.py +0 -0
  139. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/__init__.py +0 -0
  140. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_create_params.py +0 -0
  141. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_list_params.py +0 -0
  142. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_list_view.py +0 -0
  143. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_view.py +0 -0
  144. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_create_params.py +0 -0
  145. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_event_view.py +0 -0
  146. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_list_view.py +0 -0
  147. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_publish_params.py +0 -0
  148. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_view.py +0 -0
  149. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/__init__.py +0 -0
  150. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
  151. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
  152. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
  153. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
  154. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
  155. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
  156. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
  157. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
  158. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
  159. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  160. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  161. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
  162. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
  163. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
  164. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
  165. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  166. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  167. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
  168. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
  169. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  170. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  171. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  172. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  173. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
  174. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_view.py +0 -0
  175. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  176. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  177. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  178. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  179. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  180. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  181. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  182. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  183. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  184. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  185. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_view.py +0 -0
  186. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  187. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  188. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  189. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  190. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +0 -0
  191. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  192. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  193. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  194. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  195. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  196. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  197. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  198. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  199. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  200. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
  201. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
  202. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
  203. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  204. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  205. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  206. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  207. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  208. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  209. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_view.py +0 -0
  210. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  211. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  212. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  213. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  214. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  215. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  216. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  217. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  218. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  219. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  220. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  221. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  222. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  223. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  224. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  225. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  226. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  227. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  228. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  229. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  230. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  231. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
  232. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  233. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  234. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  235. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  236. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
  237. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
  238. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
  239. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
  240. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_view.py +0 -0
  241. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/input_context.py +0 -0
  242. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/input_context_param.py +0 -0
  243. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  244. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  245. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
  246. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
  247. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
  248. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
  249. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_view.py +0 -0
  250. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
  251. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
  252. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
  253. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
  254. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_view.py +0 -0
  255. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_create_params.py +0 -0
  256. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_download_params.py +0 -0
  257. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  258. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_list_params.py +0 -0
  259. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  260. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_list_view.py +0 -0
  261. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_view.py +0 -0
  262. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/publish_result_view.py +0 -0
  263. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  264. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  265. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_create_params.py +0 -0
  266. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  267. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  268. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  269. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_list_params.py +0 -0
  270. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  271. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  272. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  273. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  274. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_environment.py +0 -0
  275. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  276. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  277. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  278. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  279. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  280. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  281. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  282. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_view.py +0 -0
  283. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  284. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  285. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  286. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  287. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  288. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  289. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  290. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  291. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  292. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract.py +0 -0
  293. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  294. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  295. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  296. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_function.py +0 -0
  297. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  298. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  299. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_create_params.py +0 -0
  300. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_list_params.py +0 -0
  301. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_list_view.py +0 -0
  302. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_update_params.py +0 -0
  303. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_view.py +0 -0
  304. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/__init__.py +0 -0
  305. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  306. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
  307. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/agent_source.py +0 -0
  308. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
  309. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  310. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  311. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/mount.py +0 -0
  312. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/object_mount.py +0 -0
  313. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  314. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  315. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  316. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
  317. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
  318. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
  319. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  320. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  321. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  322. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
  323. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  324. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/tunnel_view.py +0 -0
  325. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/__init__.py +0 -0
  326. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/__init__.py +0 -0
  327. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/axons/__init__.py +0 -0
  328. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/axons/test_sql.py +0 -0
  329. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/__init__.py +0 -0
  330. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_browsers.py +0 -0
  331. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_computers.py +0 -0
  332. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  333. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_executions.py +0 -0
  334. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_logs.py +0 -0
  335. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/scenarios/__init__.py +0 -0
  336. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/scenarios/test_runs.py +0 -0
  337. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/scenarios/test_scorers.py +0 -0
  338. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_agents.py +0 -0
  339. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_axons.py +0 -0
  340. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_benchmark_jobs.py +0 -0
  341. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_benchmark_runs.py +0 -0
  342. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_benchmarks.py +0 -0
  343. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_blueprints.py +0 -0
  344. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_devboxes.py +0 -0
  345. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_gateway_configs.py +0 -0
  346. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_mcp_configs.py +0 -0
  347. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_network_policies.py +0 -0
  348. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_objects.py +0 -0
  349. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_repositories.py +0 -0
  350. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_scenarios.py +0 -0
  351. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_secrets.py +0 -0
  352. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/conftest.py +0 -0
  353. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sample_file.txt +0 -0
  354. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/__init__.py +0 -0
  355. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/__init__.py +0 -0
  356. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/conftest.py +0 -0
  357. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_core.py +0 -0
  358. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
  359. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_interfaces.py +0 -0
  360. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_streaming.py +0 -0
  361. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/__init__.py +0 -0
  362. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/conftest.py +0 -0
  363. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_core.py +0 -0
  364. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_edge_cases.py +0 -0
  365. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_interfaces.py +0 -0
  366. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_streaming.py +0 -0
  367. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_agent.py +0 -0
  368. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_agent.py +0 -0
  369. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_benchmark.py +0 -0
  370. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_benchmark_run.py +0 -0
  371. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_blueprint.py +0 -0
  372. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_execution.py +0 -0
  373. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_execution_result.py +0 -0
  374. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_gateway_config.py +0 -0
  375. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_network_policy.py +0 -0
  376. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_ops.py +0 -0
  377. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scenario.py +0 -0
  378. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scenario_builder.py +0 -0
  379. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scenario_run.py +0 -0
  380. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scorer.py +0 -0
  381. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_snapshot.py +0 -0
  382. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_storage_object.py +0 -0
  383. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_benchmark.py +0 -0
  384. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_benchmark_run.py +0 -0
  385. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_blueprint.py +0 -0
  386. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_execution.py +0 -0
  387. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_execution_result.py +0 -0
  388. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_gateway_config.py +0 -0
  389. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_helpers.py +0 -0
  390. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_network_policy.py +0 -0
  391. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_ops.py +0 -0
  392. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scenario.py +0 -0
  393. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scenario_builder.py +0 -0
  394. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scenario_run.py +0 -0
  395. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scorer.py +0 -0
  396. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_snapshot.py +0 -0
  397. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_storage_object.py +0 -0
  398. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/README.md +0 -0
  399. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/__init__.py +0 -0
  400. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/conftest.py +0 -0
  401. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/examples/__init__.py +0 -0
  402. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/examples/test_examples.py +0 -0
  403. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/README.md +0 -0
  404. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/__init__.py +0 -0
  405. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/conftest.py +0 -0
  406. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_agent.py +0 -0
  407. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_agent.py +0 -0
  408. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
  409. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
  410. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_devbox.py +0 -0
  411. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
  412. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
  413. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_scenario.py +0 -0
  414. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_scorer.py +0 -0
  415. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_sdk.py +0 -0
  416. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_secret.py +0 -0
  417. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
  418. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
  419. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_benchmark.py +0 -0
  420. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_blueprint.py +0 -0
  421. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_devbox.py +0 -0
  422. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_gateway_config.py +0 -0
  423. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_mcp_config.py +0 -0
  424. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_network_policy.py +0 -0
  425. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_scenario.py +0 -0
  426. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_scorer.py +0 -0
  427. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_sdk.py +0 -0
  428. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_secret.py +0 -0
  429. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_snapshot.py +0 -0
  430. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_storage_object.py +0 -0
  431. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_blueprints.py +0 -0
  432. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_devboxes.py +0 -0
  433. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_executions.py +0 -0
  434. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  435. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_snapshots.py +0 -0
  436. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/utils.py +0 -0
  437. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_client.py +0 -0
  438. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_command_id.py +0 -0
  439. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_deepcopy.py +0 -0
  440. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_extract_files.py +0 -0
  441. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_files.py +0 -0
  442. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_models.py +0 -0
  443. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_polling.py +0 -0
  444. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_qs.py +0 -0
  445. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_required_args.py +0 -0
  446. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_response.py +0 -0
  447. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_streaming.py +0 -0
  448. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_transform.py +0 -0
  449. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_context_loader.py +0 -0
  450. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_datetime_parse.py +0 -0
  451. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_json.py +0 -0
  452. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_path.py +0 -0
  453. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_proxy.py +0 -0
  454. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_typing.py +0 -0
  455. {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "1.13.2"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.13.2 (2026-03-25)
4
+
5
+ Full Changelog: [v1.13.1...v1.13.2](https://github.com/runloopai/api-client-python/compare/v1.13.1...v1.13.2)
6
+
7
+ ### Bug Fixes
8
+
9
+ * adding axon SQL to sdk ([#767](https://github.com/runloopai/api-client-python/issues/767)) ([d683fd1](https://github.com/runloopai/api-client-python/commit/d683fd189b45120c0d2abe2963236ccb394a5eef))
10
+
3
11
  ## 1.13.1 (2026-03-25)
4
12
 
5
13
  Full Changelog: [v1.13.0...v1.13.1](https://github.com/runloopai/api-client-python/compare/v1.13.0...v1.13.1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 1.13.1
3
+ Version: 1.13.2
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.13.1"
3
+ version = "1.13.2"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "1.13.1" # x-release-please-version
4
+ __version__ = "1.13.2" # x-release-please-version
@@ -5,7 +5,7 @@ Provides both sync (`RunloopSDK`) and async (`AsyncRunloopSDK`) interfaces.
5
5
 
6
6
  from __future__ import annotations
7
7
 
8
- from .axon import Axon
8
+ from .axon import Axon, AxonSqlOps
9
9
  from .sync import (
10
10
  AxonOps,
11
11
  AgentOps,
@@ -48,7 +48,7 @@ from .snapshot import Snapshot
48
48
  from .benchmark import Benchmark
49
49
  from .blueprint import Blueprint
50
50
  from .execution import Execution
51
- from .async_axon import AsyncAxon
51
+ from .async_axon import AsyncAxon, AsyncAxonSqlOps
52
52
  from .mcp_config import McpConfig
53
53
  from .async_agent import AsyncAgent
54
54
  from .async_devbox import AsyncDevbox, AsyncNamedShell
@@ -111,6 +111,8 @@ __all__ = [
111
111
  "AsyncAgent",
112
112
  "Axon",
113
113
  "AsyncAxon",
114
+ "AxonSqlOps",
115
+ "AsyncAxonSqlOps",
114
116
  "AsyncSecret",
115
117
  "Benchmark",
116
118
  "AsyncBenchmark",
@@ -42,6 +42,8 @@ from ..lib.polling import PollingConfig
42
42
  from ..types.devboxes import DiskSnapshotListParams, DiskSnapshotUpdateParams
43
43
  from ..types.scenarios import ScorerListParams, ScorerCreateParams, ScorerUpdateParams
44
44
  from ..types.devbox_create_params import DevboxBaseCreateParams
45
+ from ..types.axons.sql_batch_params import SqlBatchParams
46
+ from ..types.axons.sql_query_params import SqlQueryParams
45
47
  from ..types.scenario_start_run_params import ScenarioStartRunBaseParams
46
48
  from ..types.benchmark_start_run_params import BenchmarkSelfStartRunParams
47
49
  from ..types.devbox_execute_async_params import DevboxNiceExecuteAsyncParams
@@ -196,6 +198,14 @@ class SDKAxonPublishParams(AxonPublishParams, LongRequestOptions):
196
198
  pass
197
199
 
198
200
 
201
+ class SDKAxonSqlQueryParams(SqlQueryParams, LongRequestOptions):
202
+ pass
203
+
204
+
205
+ class SDKAxonSqlBatchParams(SqlBatchParams, LongRequestOptions):
206
+ pass
207
+
208
+
199
209
  class SDKScenarioListParams(ScenarioListParams, BaseRequestOptions):
200
210
  pass
201
211
 
@@ -7,19 +7,48 @@ from typing_extensions import Unpack, override
7
7
  from ._types import (
8
8
  BaseRequestOptions,
9
9
  SDKAxonPublishParams,
10
+ SDKAxonSqlBatchParams,
11
+ SDKAxonSqlQueryParams,
10
12
  )
11
13
  from .._client import AsyncRunloop
12
14
  from .._streaming import AsyncStream
13
15
  from ..types.axon_view import AxonView
14
16
  from ..types.axon_event_view import AxonEventView
15
17
  from ..types.publish_result_view import PublishResultView
18
+ from ..types.axons.sql_batch_result_view import SqlBatchResultView
19
+ from ..types.axons.sql_query_result_view import SqlQueryResultView
20
+
21
+
22
+ class AsyncAxonSqlOps:
23
+ """[Beta] Async SQL operations for an axon's SQLite database.
24
+
25
+ Access via ``axon.sql``.
26
+
27
+ Example:
28
+ >>> axon = await runloop.axon.create()
29
+ >>> await axon.sql.query(sql="CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT)")
30
+ >>> result = await axon.sql.query(sql="SELECT * FROM tasks WHERE id = ?", params=[1])
31
+ """
32
+
33
+ def __init__(self, client: AsyncRunloop, axon_id: str) -> None:
34
+ self._client = client
35
+ self._axon_id = axon_id
36
+
37
+ async def query(self, **params: Unpack[SDKAxonSqlQueryParams]) -> SqlQueryResultView:
38
+ """[Beta] Execute a single parameterized SQL statement against this axon's SQLite database."""
39
+ return await self._client.axons.sql.query(self._axon_id, **params)
40
+
41
+ async def batch(self, **params: Unpack[SDKAxonSqlBatchParams]) -> SqlBatchResultView:
42
+ """[Beta] Execute multiple SQL statements atomically within a single transaction."""
43
+ return await self._client.axons.sql.batch(self._axon_id, **params)
16
44
 
17
45
 
18
46
  class AsyncAxon:
19
47
  """[Beta] Wrapper around asynchronous axon operations.
20
48
 
21
- Axons are event communication channels that support publishing events
22
- and subscribing to event streams via server-sent events (SSE).
49
+ Axons are event communication channels that support publishing events,
50
+ subscribing to event streams via server-sent events (SSE), and executing
51
+ SQL queries against an embedded SQLite database.
23
52
  Obtain instances via ``runloop.axon.create()`` or ``runloop.axon.from_id()``.
24
53
 
25
54
  Example:
@@ -29,11 +58,17 @@ class AsyncAxon:
29
58
  >>> async with await axon.subscribe_sse() as stream:
30
59
  ... async for event in stream:
31
60
  ... print(event.event_type, event.payload)
61
+ >>> await axon.sql.query(sql="CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT)")
32
62
  """
33
63
 
34
64
  def __init__(self, client: AsyncRunloop, axon_id: str) -> None:
35
65
  self._client = client
36
66
  self._id = axon_id
67
+ self._sql = AsyncAxonSqlOps(client, axon_id)
68
+
69
+ @property
70
+ def sql(self) -> AsyncAxonSqlOps:
71
+ return self._sql
37
72
 
38
73
  @override
39
74
  def __repr__(self) -> str:
@@ -7,19 +7,48 @@ from typing_extensions import Unpack, override
7
7
  from ._types import (
8
8
  BaseRequestOptions,
9
9
  SDKAxonPublishParams,
10
+ SDKAxonSqlBatchParams,
11
+ SDKAxonSqlQueryParams,
10
12
  )
11
13
  from .._client import Runloop
12
14
  from .._streaming import Stream
13
15
  from ..types.axon_view import AxonView
14
16
  from ..types.axon_event_view import AxonEventView
15
17
  from ..types.publish_result_view import PublishResultView
18
+ from ..types.axons.sql_batch_result_view import SqlBatchResultView
19
+ from ..types.axons.sql_query_result_view import SqlQueryResultView
20
+
21
+
22
+ class AxonSqlOps:
23
+ """[Beta] SQL operations for an axon's SQLite database.
24
+
25
+ Access via ``axon.sql``.
26
+
27
+ Example:
28
+ >>> axon = runloop.axon.create()
29
+ >>> axon.sql.query(sql="CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT)")
30
+ >>> result = axon.sql.query(sql="SELECT * FROM tasks WHERE id = ?", params=[1])
31
+ """
32
+
33
+ def __init__(self, client: Runloop, axon_id: str) -> None:
34
+ self._client = client
35
+ self._axon_id = axon_id
36
+
37
+ def query(self, **params: Unpack[SDKAxonSqlQueryParams]) -> SqlQueryResultView:
38
+ """[Beta] Execute a single parameterized SQL statement against this axon's SQLite database."""
39
+ return self._client.axons.sql.query(self._axon_id, **params)
40
+
41
+ def batch(self, **params: Unpack[SDKAxonSqlBatchParams]) -> SqlBatchResultView:
42
+ """[Beta] Execute multiple SQL statements atomically within a single transaction."""
43
+ return self._client.axons.sql.batch(self._axon_id, **params)
16
44
 
17
45
 
18
46
  class Axon:
19
47
  """[Beta] Wrapper around synchronous axon operations.
20
48
 
21
- Axons are event communication channels that support publishing events
22
- and subscribing to event streams via server-sent events (SSE).
49
+ Axons are event communication channels that support publishing events,
50
+ subscribing to event streams via server-sent events (SSE), and executing
51
+ SQL queries against an embedded SQLite database.
23
52
  Obtain instances via ``runloop.axon.create()`` or ``runloop.axon.from_id()``.
24
53
 
25
54
  Example:
@@ -29,11 +58,17 @@ class Axon:
29
58
  >>> with axon.subscribe_sse() as stream:
30
59
  ... for event in stream:
31
60
  ... print(event.event_type, event.payload)
61
+ >>> axon.sql.query(sql="CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT)")
32
62
  """
33
63
 
34
64
  def __init__(self, client: Runloop, axon_id: str) -> None:
35
65
  self._client = client
36
66
  self._id = axon_id
67
+ self._sql = AxonSqlOps(client, axon_id)
68
+
69
+ @property
70
+ def sql(self) -> AxonSqlOps:
71
+ return self._sql
37
72
 
38
73
  @override
39
74
  def __repr__(self) -> str:
@@ -133,6 +133,47 @@ class MockPublishResultView:
133
133
  timestamp_ms: int = 1234567890000
134
134
 
135
135
 
136
+ @dataclass
137
+ class MockSqlColumnMetaView:
138
+ """Mock SqlColumnMetaView for testing."""
139
+
140
+ name: str = "id"
141
+ type: str = "INTEGER"
142
+
143
+
144
+ @dataclass
145
+ class MockSqlResultMetaView:
146
+ """Mock SqlResultMetaView for testing."""
147
+
148
+ changes: int = 0
149
+ duration_ms: float = 1.5
150
+ rows_read_limit_reached: bool = False
151
+
152
+
153
+ @dataclass
154
+ class MockSqlQueryResultView:
155
+ """Mock SqlQueryResultView for testing."""
156
+
157
+ columns: list[Any] = field(default_factory=lambda: [MockSqlColumnMetaView()])
158
+ meta: Any = field(default_factory=MockSqlResultMetaView)
159
+ rows: list[Any] = field(default_factory=lambda: [[1, "hello"]])
160
+
161
+
162
+ @dataclass
163
+ class MockSqlStepResultView:
164
+ """Mock SqlStepResultView for testing."""
165
+
166
+ success: Any = field(default_factory=lambda: MockSqlQueryResultView())
167
+ error: Any = None
168
+
169
+
170
+ @dataclass
171
+ class MockSqlBatchResultView:
172
+ """Mock SqlBatchResultView for testing."""
173
+
174
+ results: list[Any] = field(default_factory=lambda: [MockSqlStepResultView()])
175
+
176
+
136
177
  @dataclass
137
178
  class MockScenarioView:
138
179
  """Mock ScenarioView for testing."""
@@ -6,8 +6,9 @@ from unittest.mock import AsyncMock
6
6
 
7
7
  import pytest
8
8
 
9
- from tests.sdk.conftest import MockAxonView, MockPublishResultView
9
+ from tests.sdk.conftest import MockAxonView, MockPublishResultView, MockSqlBatchResultView, MockSqlQueryResultView
10
10
  from runloop_api_client.sdk import AsyncAxon
11
+ from runloop_api_client.types.axons.sql_statement_params import SqlStatementParams
11
12
 
12
13
 
13
14
  class TestAsyncAxon:
@@ -75,3 +76,38 @@ class TestAsyncAxon:
75
76
 
76
77
  assert result == mock_stream
77
78
  mock_async_client.axons.subscribe_sse.assert_awaited_once_with("axn_123")
79
+
80
+ @pytest.mark.asyncio
81
+ async def test_sql_query(self, mock_async_client: AsyncMock) -> None:
82
+ """Test sql.query method delegates to client.axons.sql.query."""
83
+ mock_result = MockSqlQueryResultView()
84
+ mock_async_client.axons.sql.query = AsyncMock(return_value=mock_result)
85
+
86
+ axon = AsyncAxon(mock_async_client, "axn_123")
87
+ result = await axon.sql.query(sql="SELECT * FROM test WHERE id = ?", params=[1])
88
+
89
+ assert result == mock_result
90
+ mock_async_client.axons.sql.query.assert_awaited_once_with(
91
+ "axn_123",
92
+ sql="SELECT * FROM test WHERE id = ?",
93
+ params=[1],
94
+ )
95
+
96
+ @pytest.mark.asyncio
97
+ async def test_sql_batch(self, mock_async_client: AsyncMock) -> None:
98
+ """Test sql.batch method delegates to client.axons.sql.batch."""
99
+ mock_result = MockSqlBatchResultView()
100
+ mock_async_client.axons.sql.batch = AsyncMock(return_value=mock_result)
101
+
102
+ statements: list[SqlStatementParams] = [
103
+ {"sql": "CREATE TABLE t (id INTEGER PRIMARY KEY)"},
104
+ {"sql": "INSERT INTO t (id) VALUES (?)", "params": [1]},
105
+ ]
106
+ axon = AsyncAxon(mock_async_client, "axn_123")
107
+ result = await axon.sql.batch(statements=statements)
108
+
109
+ assert result == mock_result
110
+ mock_async_client.axons.sql.batch.assert_awaited_once_with(
111
+ "axn_123",
112
+ statements=statements,
113
+ )
@@ -4,8 +4,9 @@ from __future__ import annotations
4
4
 
5
5
  from unittest.mock import Mock
6
6
 
7
- from tests.sdk.conftest import MockAxonView, MockPublishResultView
7
+ from tests.sdk.conftest import MockAxonView, MockPublishResultView, MockSqlBatchResultView, MockSqlQueryResultView
8
8
  from runloop_api_client.sdk import Axon
9
+ from runloop_api_client.types.axons.sql_statement_params import SqlStatementParams
9
10
 
10
11
 
11
12
  class TestAxon:
@@ -70,3 +71,36 @@ class TestAxon:
70
71
 
71
72
  assert result == mock_stream
72
73
  mock_client.axons.subscribe_sse.assert_called_once_with("axn_123")
74
+
75
+ def test_sql_query(self, mock_client: Mock) -> None:
76
+ """Test sql.query method delegates to client.axons.sql.query."""
77
+ mock_result = MockSqlQueryResultView()
78
+ mock_client.axons.sql.query.return_value = mock_result
79
+
80
+ axon = Axon(mock_client, "axn_123")
81
+ result = axon.sql.query(sql="SELECT * FROM test WHERE id = ?", params=[1])
82
+
83
+ assert result == mock_result
84
+ mock_client.axons.sql.query.assert_called_once_with(
85
+ "axn_123",
86
+ sql="SELECT * FROM test WHERE id = ?",
87
+ params=[1],
88
+ )
89
+
90
+ def test_sql_batch(self, mock_client: Mock) -> None:
91
+ """Test sql.batch method delegates to client.axons.sql.batch."""
92
+ mock_result = MockSqlBatchResultView()
93
+ mock_client.axons.sql.batch.return_value = mock_result
94
+
95
+ statements: list[SqlStatementParams] = [
96
+ {"sql": "CREATE TABLE t (id INTEGER PRIMARY KEY)"},
97
+ {"sql": "INSERT INTO t (id) VALUES (?)", "params": [1]},
98
+ ]
99
+ axon = Axon(mock_client, "axn_123")
100
+ result = axon.sql.batch(statements=statements)
101
+
102
+ assert result == mock_result
103
+ mock_client.axons.sql.batch.assert_called_once_with(
104
+ "axn_123",
105
+ statements=statements,
106
+ )
@@ -3,11 +3,17 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import json
6
+ import uuid
6
7
 
7
8
  import pytest
8
9
 
9
10
  from runloop_api_client.sdk import AsyncRunloopSDK
10
11
 
12
+
13
+ def _unique_table() -> str:
14
+ return f"t_{uuid.uuid4().hex[:12]}"
15
+
16
+
11
17
  pytestmark = [pytest.mark.smoketest, pytest.mark.asyncio]
12
18
 
13
19
  THIRTY_SECOND_TIMEOUT = 30
@@ -69,6 +75,48 @@ class TestAsyncAxonLifecycle:
69
75
  pass
70
76
 
71
77
 
78
+ class TestAsyncAxonSql:
79
+ """Test async axon SQL operations."""
80
+
81
+ @pytest.mark.timeout(THIRTY_SECOND_TIMEOUT)
82
+ async def test_sql_query_create_and_select(self, async_sdk_client: AsyncRunloopSDK) -> None:
83
+ """Test creating a table and querying it via sql.query."""
84
+ axon = await async_sdk_client.axon.create()
85
+ table = _unique_table()
86
+
87
+ await axon.sql.query(sql=f"CREATE TABLE {table} (id INTEGER PRIMARY KEY, value TEXT)")
88
+
89
+ await axon.sql.query(sql=f"INSERT INTO {table} (id, value) VALUES (?, ?)", params=[1, "hello"])
90
+
91
+ result = await axon.sql.query(sql=f"SELECT * FROM {table} WHERE id = ?", params=[1])
92
+
93
+ assert result.columns is not None
94
+ assert len(result.columns) > 0
95
+ assert len(result.rows) == 1
96
+ assert result.meta.duration_ms >= 0
97
+
98
+ @pytest.mark.timeout(THIRTY_SECOND_TIMEOUT)
99
+ async def test_sql_batch(self, async_sdk_client: AsyncRunloopSDK) -> None:
100
+ """Test executing multiple statements atomically via sql.batch."""
101
+ axon = await async_sdk_client.axon.create()
102
+ table = _unique_table()
103
+
104
+ result = await axon.sql.batch(
105
+ statements=[
106
+ {"sql": f"CREATE TABLE {table} (id INTEGER PRIMARY KEY, name TEXT)"},
107
+ {"sql": f"INSERT INTO {table} (id, name) VALUES (?, ?)", "params": [1, "alice"]},
108
+ {"sql": f"INSERT INTO {table} (id, name) VALUES (?, ?)", "params": [2, "bob"]},
109
+ {"sql": f"SELECT * FROM {table} ORDER BY id"},
110
+ ],
111
+ )
112
+
113
+ assert result.results is not None
114
+ assert len(result.results) == 4
115
+ select_result = result.results[3]
116
+ assert select_result.success is not None
117
+ assert len(select_result.success.rows) == 2
118
+
119
+
72
120
  class TestAsyncAxonListing:
73
121
  """Test axon listing operations."""
74
122
 
@@ -3,11 +3,17 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import json
6
+ import uuid
6
7
 
7
8
  import pytest
8
9
 
9
10
  from runloop_api_client.sdk import RunloopSDK
10
11
 
12
+
13
+ def _unique_table() -> str:
14
+ return f"t_{uuid.uuid4().hex[:12]}"
15
+
16
+
11
17
  pytestmark = [pytest.mark.smoketest]
12
18
 
13
19
  THIRTY_SECOND_TIMEOUT = 30
@@ -69,6 +75,48 @@ class TestAxonLifecycle:
69
75
  pass
70
76
 
71
77
 
78
+ class TestAxonSql:
79
+ """Test axon SQL operations."""
80
+
81
+ @pytest.mark.timeout(THIRTY_SECOND_TIMEOUT)
82
+ def test_sql_query_create_and_select(self, sdk_client: RunloopSDK) -> None:
83
+ """Test creating a table and querying it via sql.query."""
84
+ axon = sdk_client.axon.create()
85
+ table = _unique_table()
86
+
87
+ axon.sql.query(sql=f"CREATE TABLE {table} (id INTEGER PRIMARY KEY, value TEXT)")
88
+
89
+ axon.sql.query(sql=f"INSERT INTO {table} (id, value) VALUES (?, ?)", params=[1, "hello"])
90
+
91
+ result = axon.sql.query(sql=f"SELECT * FROM {table} WHERE id = ?", params=[1])
92
+
93
+ assert result.columns is not None
94
+ assert len(result.columns) > 0
95
+ assert len(result.rows) == 1
96
+ assert result.meta.duration_ms >= 0
97
+
98
+ @pytest.mark.timeout(THIRTY_SECOND_TIMEOUT)
99
+ def test_sql_batch(self, sdk_client: RunloopSDK) -> None:
100
+ """Test executing multiple statements atomically via sql.batch."""
101
+ axon = sdk_client.axon.create()
102
+ table = _unique_table()
103
+
104
+ result = axon.sql.batch(
105
+ statements=[
106
+ {"sql": f"CREATE TABLE {table} (id INTEGER PRIMARY KEY, name TEXT)"},
107
+ {"sql": f"INSERT INTO {table} (id, name) VALUES (?, ?)", "params": [1, "alice"]},
108
+ {"sql": f"INSERT INTO {table} (id, name) VALUES (?, ?)", "params": [2, "bob"]},
109
+ {"sql": f"SELECT * FROM {table} ORDER BY id"},
110
+ ],
111
+ )
112
+
113
+ assert result.results is not None
114
+ assert len(result.results) == 4
115
+ select_result = result.results[3]
116
+ assert select_result.success is not None
117
+ assert len(select_result.success.rows) == 2
118
+
119
+
72
120
  class TestAxonListing:
73
121
  """Test axon listing operations."""
74
122
 
@@ -2386,7 +2386,7 @@ wheels = [
2386
2386
 
2387
2387
  [[package]]
2388
2388
  name = "runloop-api-client"
2389
- version = "1.13.0"
2389
+ version = "1.13.1"
2390
2390
  source = { editable = "." }
2391
2391
  dependencies = [
2392
2392
  { name = "anyio" },
@@ -1,3 +0,0 @@
1
- {
2
- ".": "1.13.1"
3
- }