runloop_api_client 1.13.2__tar.gz → 1.13.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- runloop_api_client-1.13.3/.release-please-manifest.json +3 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/CHANGELOG.md +14 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/PKG-INFO +1 -1
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/README-SDK.md +111 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/pyproject.toml +1 -1
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_devbox.py +3 -1
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/devbox.py +3 -1
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_view.py +6 -3
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_core.py +24 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_core.py +23 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/uv.lock +1 -1
- runloop_api_client-1.13.2/.release-please-manifest.json +0 -3
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/.gitignore +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/CONTRIBUTING.md +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/EXAMPLES.md +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/LICENSE +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/README.md +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/SECURITY.md +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/api.md +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/bin/check-release-environment +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/bin/publish-pypi +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/_harness.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/blueprint_with_build_context.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/devbox_from_blueprint_lifecycle.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/devbox_snapshot_resume.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/devbox_tunnel.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/example_types.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/mcp_github_tools.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/registry.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/examples/secrets_with_devbox.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/release-please-config.json +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/requirements-dev.lock +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_base_client.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_compat.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_json.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_path.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_validation.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/_ignore.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/context_loader.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/agents.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/axons/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/axons/axons.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/axons/sql.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/benchmarks.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/blueprints.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/gateway_configs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/mcp_configs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/network_policies.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/objects.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/_helpers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/_types.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/agent.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_agent.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_axon.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_execution.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scenario.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scorer.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_secret.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/axon.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/benchmark.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/blueprint.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/execution.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/execution_result.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/gateway_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/mcp_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/network_policy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scenario.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scenario_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/scorer.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/secret.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/snapshot.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/storage_object.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/sync.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/agent_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_event_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_publish_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axon_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/gateway_config_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/input_context_update_param.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/inspection_source_param.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/mcp_config_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/network_policy_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_download_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_download_url_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_list_public_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/object_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/publish_result_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_list_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/agent_source.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/object_mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared/run_profile.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/types/tunnel_view.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/axons/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/axons/test_sql.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_browsers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_computers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_executions.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/scenarios/test_scorers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_agents.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_axons.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_benchmark_jobs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_benchmark_runs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_benchmarks.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_blueprints.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_devboxes.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_gateway_configs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_mcp_configs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_network_policies.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_objects.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_repositories.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_scenarios.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/api_resources/test_secrets.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/conftest.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sample_file.txt +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/conftest.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/async_devbox/test_streaming.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/conftest.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/conftest.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/devbox/test_streaming.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_axon.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_benchmark_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_execution.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_execution_result.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_gateway_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_ops.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scenario_builder.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scenario_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_axon.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_benchmark_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_execution.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_execution_result.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_gateway_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_helpers.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_ops.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scenario_builder.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scenario_run.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/README.md +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/conftest.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/examples/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/examples/test_examples.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/README.md +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/__init__.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/conftest.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_axon.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_devbox.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_sdk.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_secret.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_axon.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_devbox.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_gateway_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_mcp_config.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_sdk.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_secret.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_blueprints.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_devboxes.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_executions.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/test_snapshots.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/smoketests/utils.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_client.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_command_id.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_extract_files.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_files.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_models.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_polling.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_qs.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_required_args.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_response.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_streaming.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_transform.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_context_loader.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_datetime_parse.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_json.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_path.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/tests/utils.py +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.13.3 (2026-03-26)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v1.13.2...v1.13.3](https://github.com/runloopai/api-client-python/compare/v1.13.2...v1.13.3)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
* **api:** surface scenario setup failures instead of silently dropping them ([#8300](https://github.com/runloopai/api-client-python/issues/8300)) ([dd910d0](https://github.com/runloopai/api-client-python/commit/dd910d0e867e9964d24cb792b27dd9b56d670a98))
|
|
10
|
+
* **devbox:** `get_tunnel_url` now derives tunnel domain from base url ([#771](https://github.com/runloopai/api-client-python/issues/771)) ([2634c64](https://github.com/runloopai/api-client-python/commit/2634c64f91e187633d0252dcda6449d72631bc09))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Chores
|
|
14
|
+
|
|
15
|
+
* **axon:** add axon to sdk readme ([#769](https://github.com/runloopai/api-client-python/issues/769)) ([68afe5a](https://github.com/runloopai/api-client-python/commit/68afe5aa20120ed5c0aed061d540e287df945f6c))
|
|
16
|
+
|
|
3
17
|
## 1.13.2 (2026-03-25)
|
|
4
18
|
|
|
5
19
|
Full Changelog: [v1.13.1...v1.13.2](https://github.com/runloopai/api-client-python/compare/v1.13.1...v1.13.2)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 1.13.
|
|
3
|
+
Version: 1.13.3
|
|
4
4
|
Summary: The official Python library for the runloop API
|
|
5
5
|
Project-URL: Homepage, https://github.com/runloopai/api-client-python
|
|
6
6
|
Project-URL: Repository, https://github.com/runloopai/api-client-python
|
|
@@ -25,6 +25,10 @@ The `RunloopSDK` builds on top of the underlying REST client and provides a Pyth
|
|
|
25
25
|
- [StorageObject](#storageobject)
|
|
26
26
|
- [Storage Object Upload Helpers](#storage-object-upload-helpers)
|
|
27
27
|
- [Mounting Storage Objects to Devboxes](#mounting-storage-objects-to-devboxes)
|
|
28
|
+
- [Axon](#axon)
|
|
29
|
+
- [Publishing Events](#publishing-events)
|
|
30
|
+
- [Subscribing to Events (SSE)](#subscribing-to-events-sse)
|
|
31
|
+
- [SQL Operations](#sql-operations)
|
|
28
32
|
- [Accessing the Underlying REST Client](#accessing-the-underlying-rest-client)
|
|
29
33
|
- [Error Handling](#error-handling)
|
|
30
34
|
- [Advanced Configuration](#advanced-configuration)
|
|
@@ -116,6 +120,7 @@ The SDK provides object-oriented interfaces for all major Runloop resources:
|
|
|
116
120
|
- **`runloop.blueprint`** - Blueprint management (create, list, build blueprints)
|
|
117
121
|
- **`runloop.snapshot`** - Snapshot management (list disk snapshots)
|
|
118
122
|
- **`runloop.storage_object`** - Storage object management (upload, download, list objects)
|
|
123
|
+
- **`runloop.axon`** - [Beta] Axon management (create, publish events, subscribe to SSE streams, SQL queries)
|
|
119
124
|
- **`runloop.secret`** - Secret management (create, update, list, delete encrypted key-value pairs)
|
|
120
125
|
- **`runloop.api`** - Direct access to the underlying REST API client
|
|
121
126
|
|
|
@@ -679,6 +684,112 @@ result = devbox_with_archive.cmd.exec("ls -la /home/user/project/")
|
|
|
679
684
|
print(result.stdout())
|
|
680
685
|
```
|
|
681
686
|
|
|
687
|
+
### Axon
|
|
688
|
+
|
|
689
|
+
> **Beta:** Axon APIs are in beta and may change.
|
|
690
|
+
|
|
691
|
+
Object-oriented interface for working with axons — event communication channels that support
|
|
692
|
+
publishing events, subscribing to event streams via SSE, and executing SQL queries against an
|
|
693
|
+
embedded SQLite database. Created via `runloop.axon.create()` or `runloop.axon.from_id()`:
|
|
694
|
+
|
|
695
|
+
```python
|
|
696
|
+
# Create a new axon
|
|
697
|
+
axon = runloop.axon.create(name="my-axon")
|
|
698
|
+
|
|
699
|
+
# Or get an existing one
|
|
700
|
+
axon = runloop.axon.from_id(axon_id="axn_123")
|
|
701
|
+
|
|
702
|
+
# List all axons
|
|
703
|
+
axons = runloop.axon.list()
|
|
704
|
+
|
|
705
|
+
# Get axon details
|
|
706
|
+
info = axon.get_info()
|
|
707
|
+
print(f"Axon {info.name} created at {info.created_at_ms}")
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
#### Publishing Events
|
|
711
|
+
|
|
712
|
+
Publish structured events to an axon:
|
|
713
|
+
|
|
714
|
+
```python
|
|
715
|
+
result = axon.publish(
|
|
716
|
+
event_type="task_completed",
|
|
717
|
+
origin="AGENT_EVENT", # EXTERNAL_EVENT | AGENT_EVENT | USER_EVENT
|
|
718
|
+
payload='{"task_id": 42, "status": "done"}',
|
|
719
|
+
source="my-agent",
|
|
720
|
+
)
|
|
721
|
+
print(f"Sequence: {result.sequence}, Timestamp: {result.timestamp_ms}")
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
#### Subscribing to Events (SSE)
|
|
725
|
+
|
|
726
|
+
Subscribe to real-time events via server-sent events:
|
|
727
|
+
|
|
728
|
+
```python
|
|
729
|
+
with axon.subscribe_sse() as stream:
|
|
730
|
+
for event in stream:
|
|
731
|
+
print(f"[{event.source}] {event.event_type}: {event.payload}")
|
|
732
|
+
# event.axon_id, event.origin, event.sequence, event.timestamp_ms also available
|
|
733
|
+
```
|
|
734
|
+
|
|
735
|
+
Async:
|
|
736
|
+
|
|
737
|
+
```python
|
|
738
|
+
async with await axon.subscribe_sse() as stream:
|
|
739
|
+
async for event in stream:
|
|
740
|
+
print(f"[{event.source}] {event.event_type}: {event.payload}")
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
#### SQL Operations
|
|
744
|
+
|
|
745
|
+
Each axon has an embedded SQLite database accessible via `axon.sql`:
|
|
746
|
+
|
|
747
|
+
```python
|
|
748
|
+
# Create a table
|
|
749
|
+
axon.sql.query(sql="CREATE TABLE tasks (id INTEGER PRIMARY KEY, name TEXT, done INTEGER)")
|
|
750
|
+
|
|
751
|
+
# Insert with parameterized queries (? placeholders)
|
|
752
|
+
axon.sql.query(
|
|
753
|
+
sql="INSERT INTO tasks (id, name, done) VALUES (?, ?, ?)",
|
|
754
|
+
params=[1, "Write docs", 0],
|
|
755
|
+
)
|
|
756
|
+
|
|
757
|
+
# Query
|
|
758
|
+
result = axon.sql.query(sql="SELECT * FROM tasks WHERE done = ?", params=[0])
|
|
759
|
+
for row in result.rows:
|
|
760
|
+
print(row) # e.g. [1, "Write docs", 0]
|
|
761
|
+
print(result.columns) # [SqlColumnMetaView(name="id", type="INTEGER"), ...]
|
|
762
|
+
print(result.meta) # SqlResultMetaView(changes=0, duration_ms=0.5, rows_read_limit_reached=False)
|
|
763
|
+
```
|
|
764
|
+
|
|
765
|
+
Execute multiple statements atomically with `batch`:
|
|
766
|
+
|
|
767
|
+
```python
|
|
768
|
+
result = axon.sql.batch(
|
|
769
|
+
statements=[
|
|
770
|
+
{"sql": "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)"},
|
|
771
|
+
{"sql": "INSERT INTO users (id, name) VALUES (?, ?)", "params": [1, "Alice"]},
|
|
772
|
+
{"sql": "INSERT INTO users (id, name) VALUES (?, ?)", "params": [2, "Bob"]},
|
|
773
|
+
{"sql": "SELECT * FROM users ORDER BY id"},
|
|
774
|
+
],
|
|
775
|
+
)
|
|
776
|
+
|
|
777
|
+
# Each statement gets a result
|
|
778
|
+
for step in result.results:
|
|
779
|
+
if step.success:
|
|
780
|
+
print(f"Rows: {step.success.rows}, Changes: {step.success.meta.changes}")
|
|
781
|
+
elif step.error:
|
|
782
|
+
print(f"Error: {step.error}")
|
|
783
|
+
```
|
|
784
|
+
|
|
785
|
+
**Key methods:**
|
|
786
|
+
|
|
787
|
+
- `axon.get_info()` – Get axon details (name, created_at_ms)
|
|
788
|
+
- `axon.publish()` – Publish an event (event_type, origin, payload, source)
|
|
789
|
+
- `axon.subscribe_sse()` – Subscribe to event stream (returns `Stream[AxonEventView]`)
|
|
790
|
+
- `axon.sql.query()` – Execute a single SQL statement with optional params
|
|
791
|
+
- `axon.sql.batch()` – Execute multiple SQL statements atomically
|
|
792
|
+
|
|
682
793
|
## Accessing the Underlying REST Client
|
|
683
794
|
|
|
684
795
|
The SDK always exposes the underlying client through the `.api` attribute:
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_devbox.py
RENAMED
|
@@ -161,7 +161,9 @@ class AsyncDevbox:
|
|
|
161
161
|
tunnel_view = await self.get_tunnel(**options)
|
|
162
162
|
if tunnel_view is None:
|
|
163
163
|
return None
|
|
164
|
-
|
|
164
|
+
api_host = self._client.base_url.host
|
|
165
|
+
base_domain = api_host[4:] if api_host.startswith("api.") else api_host
|
|
166
|
+
return f"https://{port}-{tunnel_view.tunnel_key}.tunnel.{base_domain}"
|
|
165
167
|
|
|
166
168
|
async def logs(
|
|
167
169
|
self,
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/devbox.py
RENAMED
|
@@ -160,7 +160,9 @@ class Devbox:
|
|
|
160
160
|
tunnel_view = self.get_tunnel(**options)
|
|
161
161
|
if tunnel_view is None:
|
|
162
162
|
return None
|
|
163
|
-
|
|
163
|
+
api_host = self._client.base_url.host
|
|
164
|
+
base_domain = api_host[4:] if api_host.startswith("api.") else api_host
|
|
165
|
+
return f"https://{port}-{tunnel_view.tunnel_key}.tunnel.{base_domain}"
|
|
164
166
|
|
|
165
167
|
def logs(
|
|
166
168
|
self,
|
|
@@ -53,9 +53,6 @@ class BenchmarkOutcomeScenarioOutcome(BaseModel):
|
|
|
53
53
|
scenario_name: str
|
|
54
54
|
"""The name of the scenario."""
|
|
55
55
|
|
|
56
|
-
scenario_run_id: str
|
|
57
|
-
"""The ID of the scenario run."""
|
|
58
|
-
|
|
59
56
|
state: Literal["COMPLETED", "FAILED", "TIMEOUT", "CANCELED"]
|
|
60
57
|
"""The final state of the scenario execution."""
|
|
61
58
|
|
|
@@ -68,6 +65,12 @@ class BenchmarkOutcomeScenarioOutcome(BaseModel):
|
|
|
68
65
|
Contains exception type and message.
|
|
69
66
|
"""
|
|
70
67
|
|
|
68
|
+
scenario_run_id: Optional[str] = None
|
|
69
|
+
"""The ID of the scenario run.
|
|
70
|
+
|
|
71
|
+
May be absent if the scenario failed during setup before a run was created.
|
|
72
|
+
"""
|
|
73
|
+
|
|
71
74
|
score: Optional[float] = None
|
|
72
75
|
"""The score achieved for this scenario (0.0 to 1.0).
|
|
73
76
|
|
|
@@ -9,6 +9,7 @@ from __future__ import annotations
|
|
|
9
9
|
from types import SimpleNamespace
|
|
10
10
|
from unittest.mock import AsyncMock
|
|
11
11
|
|
|
12
|
+
import httpx
|
|
12
13
|
import pytest
|
|
13
14
|
|
|
14
15
|
from tests.sdk.conftest import MockDevboxView
|
|
@@ -377,6 +378,7 @@ class TestAsyncDevbox:
|
|
|
377
378
|
tunnel=tunnel_view,
|
|
378
379
|
)
|
|
379
380
|
mock_async_client.devboxes.retrieve = AsyncMock(return_value=devbox_view_with_tunnel)
|
|
381
|
+
mock_async_client.base_url = httpx.URL("https://api.runloop.ai")
|
|
380
382
|
|
|
381
383
|
devbox = AsyncDevbox(mock_async_client, "dbx_123")
|
|
382
384
|
result = await devbox.get_tunnel_url(8080)
|
|
@@ -384,6 +386,28 @@ class TestAsyncDevbox:
|
|
|
384
386
|
assert result == "https://8080-abc123xyz.tunnel.runloop.ai"
|
|
385
387
|
mock_async_client.devboxes.retrieve.assert_called_once_with("dbx_123")
|
|
386
388
|
|
|
389
|
+
@pytest.mark.asyncio
|
|
390
|
+
async def test_get_tunnel_url_derives_domain_from_base_url(self, mock_async_client: AsyncMock) -> None:
|
|
391
|
+
"""Test get_tunnel_url derives tunnel domain from client base_url."""
|
|
392
|
+
tunnel_view = SimpleNamespace(
|
|
393
|
+
tunnel_key="abc123xyz",
|
|
394
|
+
auth_mode="open",
|
|
395
|
+
create_time_ms=1234567890000,
|
|
396
|
+
)
|
|
397
|
+
devbox_view_with_tunnel = SimpleNamespace(
|
|
398
|
+
id="dbx_123",
|
|
399
|
+
status="running",
|
|
400
|
+
tunnel=tunnel_view,
|
|
401
|
+
)
|
|
402
|
+
mock_async_client.devboxes.retrieve = AsyncMock(return_value=devbox_view_with_tunnel)
|
|
403
|
+
devbox = AsyncDevbox(mock_async_client, "dbx_123")
|
|
404
|
+
|
|
405
|
+
mock_async_client.base_url = httpx.URL("https://api.runloop.pro")
|
|
406
|
+
assert await devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.runloop.pro"
|
|
407
|
+
|
|
408
|
+
mock_async_client.base_url = httpx.URL("http://127.0.0.1:8080")
|
|
409
|
+
assert await devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.127.0.0.1"
|
|
410
|
+
|
|
387
411
|
@pytest.mark.asyncio
|
|
388
412
|
async def test_get_tunnel_url_returns_none_when_no_tunnel(self, mock_async_client: AsyncMock) -> None:
|
|
389
413
|
"""Test get_tunnel_url returns None when no tunnel is enabled."""
|
|
@@ -9,6 +9,7 @@ from __future__ import annotations
|
|
|
9
9
|
from types import SimpleNamespace
|
|
10
10
|
from unittest.mock import Mock
|
|
11
11
|
|
|
12
|
+
import httpx
|
|
12
13
|
import pytest
|
|
13
14
|
|
|
14
15
|
from tests.sdk.conftest import (
|
|
@@ -373,6 +374,7 @@ class TestDevbox:
|
|
|
373
374
|
tunnel=tunnel_view,
|
|
374
375
|
)
|
|
375
376
|
mock_client.devboxes.retrieve.return_value = devbox_view_with_tunnel
|
|
377
|
+
mock_client.base_url = httpx.URL("https://api.runloop.ai")
|
|
376
378
|
|
|
377
379
|
devbox = Devbox(mock_client, "dbx_123")
|
|
378
380
|
result = devbox.get_tunnel_url(8080)
|
|
@@ -380,6 +382,27 @@ class TestDevbox:
|
|
|
380
382
|
assert result == "https://8080-abc123xyz.tunnel.runloop.ai"
|
|
381
383
|
mock_client.devboxes.retrieve.assert_called_once_with("dbx_123")
|
|
382
384
|
|
|
385
|
+
def test_get_tunnel_url_derives_domain_from_base_url(self, mock_client: Mock) -> None:
|
|
386
|
+
"""Test get_tunnel_url derives tunnel domain from client base_url."""
|
|
387
|
+
tunnel_view = SimpleNamespace(
|
|
388
|
+
tunnel_key="abc123xyz",
|
|
389
|
+
auth_mode="open",
|
|
390
|
+
create_time_ms=1234567890000,
|
|
391
|
+
)
|
|
392
|
+
devbox_view_with_tunnel = SimpleNamespace(
|
|
393
|
+
id="dbx_123",
|
|
394
|
+
status="running",
|
|
395
|
+
tunnel=tunnel_view,
|
|
396
|
+
)
|
|
397
|
+
mock_client.devboxes.retrieve.return_value = devbox_view_with_tunnel
|
|
398
|
+
devbox = Devbox(mock_client, "dbx_123")
|
|
399
|
+
|
|
400
|
+
mock_client.base_url = httpx.URL("https://api.runloop.pro")
|
|
401
|
+
assert devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.runloop.pro"
|
|
402
|
+
|
|
403
|
+
mock_client.base_url = httpx.URL("http://127.0.0.1:8080")
|
|
404
|
+
assert devbox.get_tunnel_url(8080) == "https://8080-abc123xyz.tunnel.127.0.0.1"
|
|
405
|
+
|
|
383
406
|
def test_get_tunnel_url_returns_none_when_no_tunnel(self, mock_client: Mock) -> None:
|
|
384
407
|
"""Test get_tunnel_url returns None when no tunnel is enabled."""
|
|
385
408
|
devbox_view_no_tunnel = SimpleNamespace(
|
|
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.2 → runloop_api_client-1.13.3}/examples/blueprint_with_build_context.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/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.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_base_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_constants.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/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.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_streaming.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_compat.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_json.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_logs.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_path.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_proxy.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_reflection.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_streams.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_sync.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_transform.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_typing.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_utils.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/_utils/_validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/_ignore.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/context_loader.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/polling.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/lib/polling_async.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/pagination.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/agents.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
|
|
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.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/objects.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.2 → runloop_api_client-1.13.3}/src/runloop_api_client/resources/secrets.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/_helpers.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/_types.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_agent.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_axon.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
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scenario.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_scorer.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_secret.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/async_snapshot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/benchmark.py
RENAMED
|
File without changes
|
{runloop_api_client-1.13.2 → runloop_api_client-1.13.3}/src/runloop_api_client/sdk/benchmark_run.py
RENAMED
|
File without changes
|