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.
- runloop_api_client-1.13.2/.release-please-manifest.json +3 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/CHANGELOG.md +8 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/PKG-INFO +1 -1
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/pyproject.toml +1 -1
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/__init__.py +4 -2
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/_types.py +10 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_axon.py +37 -2
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/axon.py +37 -2
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/conftest.py +41 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_axon.py +37 -1
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_axon.py +35 -1
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_axon.py +48 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_axon.py +48 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/uv.lock +1 -1
- runloop_api_client-1.13.1/.release-please-manifest.json +0 -3
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/.gitignore +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/CONTRIBUTING.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/EXAMPLES.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/LICENSE +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/README-SDK.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/README.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/SECURITY.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/api.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/bin/check-release-environment +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/bin/publish-pypi +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/_harness.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/blueprint_with_build_context.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/devbox_from_blueprint_lifecycle.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/devbox_snapshot_resume.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/devbox_tunnel.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/example_types.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/mcp_github_tools.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/registry.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/secrets_with_devbox.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/release-please-config.json +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/requirements-dev.lock +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_base_client.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_compat.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_json.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_path.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_validation.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/_ignore.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/context_loader.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/agents.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/axons/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/axons/axons.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/axons/sql.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/benchmarks.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/blueprints.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/gateway_configs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/mcp_configs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/network_policies.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/objects.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/_helpers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/agent.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_agent.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_devbox.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_execution.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scenario.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_scorer.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_secret.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/benchmark.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/blueprint.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/devbox.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/execution.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/execution_result.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/gateway_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/mcp_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/network_policy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scenario.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scenario_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/scorer.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/secret.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/snapshot.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/storage_object.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/sync.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/agent_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_event_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_publish_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axon_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devbox_view.py +0 -0
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {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
- {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
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/gateway_config_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/input_context_update_param.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/inspection_source_param.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/mcp_config_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/network_policy_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_download_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_download_url_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_list_public_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/object_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/publish_result_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_list_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/agent_source.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/mount.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/object_mount.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared/run_profile.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
- {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
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/mount.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/types/tunnel_view.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/axons/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/axons/test_sql.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_browsers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_computers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_executions.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/scenarios/test_scorers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_agents.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_axons.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_benchmark_jobs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_benchmark_runs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_benchmarks.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_blueprints.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_devboxes.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_gateway_configs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_mcp_configs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_network_policies.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_objects.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_repositories.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_scenarios.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/api_resources/test_secrets.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/conftest.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sample_file.txt +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/conftest.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_core.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/async_devbox/test_streaming.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/conftest.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_core.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/devbox/test_streaming.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_benchmark_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_execution.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_execution_result.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_gateway_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_ops.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scenario_builder.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scenario_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_benchmark_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_execution.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_execution_result.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_gateway_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_helpers.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_ops.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scenario_builder.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scenario_run.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/README.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/conftest.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/examples/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/examples/test_examples.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/README.md +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/__init__.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/conftest.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_devbox.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_sdk.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_secret.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_devbox.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_gateway_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_mcp_config.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_sdk.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_secret.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_blueprints.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_devboxes.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_executions.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/test_snapshots.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/utils.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_client.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_command_id.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_extract_files.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_files.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_models.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_polling.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_qs.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_required_args.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_response.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_streaming.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_transform.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_context_loader.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_datetime_parse.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_json.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_path.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/utils.py +0 -0
|
@@ -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.
|
|
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
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/__init__.py
RENAMED
|
@@ -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",
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/_types.py
RENAMED
|
@@ -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
|
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/sdk/async_axon.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
+
)
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/tests/smoketests/sdk/test_async_axon.py
RENAMED
|
@@ -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
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/blueprint_with_build_context.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/examples/devbox_from_blueprint_lifecycle.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_base_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_constants.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_streaming.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_compat.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_json.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_logs.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_path.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_proxy.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_reflection.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_streams.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_sync.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.1 → runloop_api_client-1.13.2}/src/runloop_api_client/_utils/_transform.py
RENAMED
|
File without changes
|