runloop_api_client 1.20.3__tar.gz → 1.21.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- runloop_api_client-1.21.0/.release-please-manifest.json +3 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/CHANGELOG.md +16 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/PKG-INFO +1 -1
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/api.md +15 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/pyproject.toml +1 -1
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_client.py +38 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_files.py +1 -1
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_models.py +80 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/__init__.py +14 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/devboxes/devboxes.py +101 -0
- runloop_api_client-1.21.0/src/runloop_api_client/resources/pty.py +418 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/__init__.py +5 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/object_view.py +4 -1
- runloop_api_client-1.21.0/src/runloop_api_client/types/pty_connect_params.py +23 -0
- runloop_api_client-1.21.0/src/runloop_api_client/types/pty_connect_view.py +27 -0
- runloop_api_client-1.21.0/src/runloop_api_client/types/pty_control_params.py +17 -0
- runloop_api_client-1.21.0/src/runloop_api_client/types/pty_control_result_view.py +13 -0
- runloop_api_client-1.21.0/src/runloop_api_client/types/pty_tunnel_view.py +21 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_devboxes.py +77 -0
- runloop_api_client-1.21.0/tests/api_resources/test_pty.py +216 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/conftest.py +10 -1
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_models.py +57 -3
- runloop_api_client-1.20.3/.release-please-manifest.json +0 -3
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/.gitignore +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/CONTRIBUTING.md +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/EXAMPLES.md +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/LICENSE +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/README-SDK.md +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/README.md +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/SECURITY.md +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/bin/check-release-environment +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/bin/publish-pypi +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/_harness.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/blueprint_with_build_context.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/devbox_from_blueprint_lifecycle.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/devbox_snapshot_resume.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/devbox_snapshots.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/devbox_tunnel.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/example_types.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/mcp_github_tools.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/registry.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/examples/secrets_with_devbox.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/release-please-config.json +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/requirements-dev.lock +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_base_client.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_compat.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_json.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_path.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/_utils/_validation.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/lib/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/lib/_ignore.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/lib/context_loader.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/lib/wait_for_status.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/agents.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/apikeys.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/axons/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/axons/axons.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/axons/events.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/axons/sql.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/benchmark_jobs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/benchmark_runs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/benchmarks.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/blueprints.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/gateway_configs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/mcp_configs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/network_policies.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/objects.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/restricted_keys.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/_helpers.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/_types.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/agent.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_agent.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_axon.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_benchmark.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_benchmark_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_blueprint.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_devbox.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_execution.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_execution_result.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_gateway_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_mcp_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_network_policy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_scenario.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_scenario_builder.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_scenario_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_scorer.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_secret.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_snapshot.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/async_storage_object.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/axon.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/benchmark.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/benchmark_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/blueprint.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/devbox.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/execution.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/execution_result.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/gateway_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/mcp_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/network_policy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/scenario.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/scenario_builder.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/scenario_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/scorer.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/secret.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/snapshot.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/storage_object.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/sdk/sync.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/agent_devbox_counts_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/agent_list_public_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/agent_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/api_key_created_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/apikey_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axon_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axon_event_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axon_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axon_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axon_publish_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axon_subscribe_sse_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axon_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/axon_event_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/event_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_batch_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_batch_result_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_column_meta_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_query_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_query_result_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_result_meta_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_statement_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_step_error_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/axons/sql_step_result_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_job_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_job_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_job_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_job_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_run_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_update_scenarios_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_enable_tunnel_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_resource_usage_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_shutdown_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/gateway_config_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/gateway_config_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/gateway_config_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/gateway_config_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/gateway_config_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/mcp_config_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/mcp_config_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/mcp_config_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/mcp_config_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/mcp_config_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/network_policy_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/network_policy_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/network_policy_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/network_policy_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/network_policy_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/object_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/object_download_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/object_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/object_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/publish_result_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/restricted_key_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/restricted_key_created_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scope_entry_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scope_entry_view_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/agent_mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/broker_mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/object_mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/agent_mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/broker_mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/object_mount.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/types/tunnel_view.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/axons/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/axons/test_events.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/axons/test_sql.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/devboxes/test_executions.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_agents.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_apikeys.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_axons.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_benchmark_jobs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_benchmark_runs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_benchmarks.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_blueprints.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_gateway_configs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_mcp_configs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_network_policies.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_objects.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_restricted_keys.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_scenarios.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/api_resources/test_secrets.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sample_file.txt +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/async_devbox/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/async_devbox/conftest.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/async_devbox/test_core.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/async_devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/async_devbox/test_streaming.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/conftest.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/devbox/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/devbox/conftest.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/devbox/test_core.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/devbox/test_interfaces.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/devbox/test_streaming.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_axon.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_benchmark_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_execution.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_execution_result.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_gateway_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_ops.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_scenario_builder.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_scenario_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_axon.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_benchmark_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_execution.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_execution_result.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_gateway_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_helpers.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_ops.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_scenario_builder.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_scenario_run.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/README.md +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/conftest.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/examples/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/examples/test_examples.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/README.md +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/__init__.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/conftest.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_agent.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_agent.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_axon.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_benchmark.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_blueprint.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_devbox.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_gateway_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_network_policy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_scenario.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_scorer.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_secret.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_async_storage_object.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_axon.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_benchmark.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_devbox.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_gateway_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_mcp_config.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_network_policy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_scenario.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_scorer.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_sdk.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_secret.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/test_blueprints.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/test_devboxes.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/test_executions.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/test_snapshots.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/smoketests/utils.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_client.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_command_id.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_extract_files.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_files.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_polling.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_qs.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_required_args.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_response.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_shared_pool.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_streaming.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_transform.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_utils/test_context_loader.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_utils/test_json.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_utils/test_path.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/tests/utils.py +0 -0
- {runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/uv.lock +0 -0
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.21.0 (2026-05-13)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v1.20.3...v1.21.0](https://github.com/runloopai/api-client-python/compare/v1.20.3...v1.21.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **internal/types:** support eagerly validating pydantic iterators ([f089d05](https://github.com/runloopai/api-client-python/commit/f089d05c5e00c2ba980d0afdea79ed026242a174))
|
|
10
|
+
* **metadata:** add object metadata viewing, discovery, and validation ([#9124](https://github.com/runloopai/api-client-python/issues/9124)) ([ba0b5dc](https://github.com/runloopai/api-client-python/commit/ba0b5dc873a47073c453b168fe4d966754cccc0e))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **client:** add missing f-string prefix in file type error message ([930b1e2](https://github.com/runloopai/api-client-python/commit/930b1e2d169a291415007f2897fec5a410ecf993))
|
|
16
|
+
* update openapi.stainless.yaml for PTY server methods ([#9218](https://github.com/runloopai/api-client-python/issues/9218)) ([ac1cb22](https://github.com/runloopai/api-client-python/commit/ac1cb2264b8e39da8aa65d8fdcd4595bce55def6))
|
|
17
|
+
* update types for pty control, use int instead of str ([#9235](https://github.com/runloopai/api-client-python/issues/9235)) ([7ceb2bf](https://github.com/runloopai/api-client-python/commit/7ceb2bf09c3241a27892fbab2272d63ef76b1a8a))
|
|
18
|
+
|
|
3
19
|
## 1.20.3 (2026-05-08)
|
|
4
20
|
|
|
5
21
|
Full Changelog: [v1.20.2...v1.20.3](https://github.com/runloopai/api-client-python/compare/v1.20.2...v1.20.3)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.21.0
|
|
4
4
|
Summary: The official Python library for the runloop API
|
|
5
5
|
Project-URL: Homepage, https://github.com/runloopai/api-client-python
|
|
6
6
|
Project-URL: Repository, https://github.com/runloopai/api-client-python
|
|
@@ -198,6 +198,7 @@ from runloop_api_client.types import (
|
|
|
198
198
|
DevboxSnapshotListView,
|
|
199
199
|
DevboxSnapshotView,
|
|
200
200
|
DevboxView,
|
|
201
|
+
PtyTunnelView,
|
|
201
202
|
TunnelView,
|
|
202
203
|
DevboxCreateSSHKeyResponse,
|
|
203
204
|
DevboxReadFileContentsResponse,
|
|
@@ -211,6 +212,7 @@ Methods:
|
|
|
211
212
|
- <code title="get /v1/devboxes/{id}">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
|
|
212
213
|
- <code title="post /v1/devboxes/{id}">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
|
|
213
214
|
- <code title="get /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">list</a>(\*\*<a href="src/runloop_api_client/types/devbox_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_view.py">SyncDevboxesCursorIDPage[DevboxView]</a></code>
|
|
215
|
+
- <code title="post /v1/devboxes/{id}/create_pty_tunnel">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_pty_tunnel</a>(id) -> <a href="./src/runloop_api_client/types/pty_tunnel_view.py">PtyTunnelView</a></code>
|
|
214
216
|
- <code title="post /v1/devboxes/{id}/create_ssh_key">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_ssh_key</a>(id) -> <a href="./src/runloop_api_client/types/devbox_create_ssh_key_response.py">DevboxCreateSSHKeyResponse</a></code>
|
|
215
217
|
- <code title="post /v1/devboxes/disk_snapshots/{id}/delete">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">delete_disk_snapshot</a>(id) -> object</code>
|
|
216
218
|
- <code title="post /v1/devboxes/{id}/download_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">download_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_download_file_params.py">params</a>) -> BinaryAPIResponse</code>
|
|
@@ -278,6 +280,19 @@ Methods:
|
|
|
278
280
|
- <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stderr_updates">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">stream_stderr_updates</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/execution_update_chunk.py">ExecutionUpdateChunk</a></code>
|
|
279
281
|
- <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stdout_updates">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">stream_stdout_updates</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/execution_update_chunk.py">ExecutionUpdateChunk</a></code>
|
|
280
282
|
|
|
283
|
+
# Pty
|
|
284
|
+
|
|
285
|
+
Types:
|
|
286
|
+
|
|
287
|
+
```python
|
|
288
|
+
from runloop_api_client.types import PtyConnectView, PtyControlParams, PtyControlResultView
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Methods:
|
|
292
|
+
|
|
293
|
+
- <code title="get /pty/{session_name}">client.pty.<a href="./src/runloop_api_client/resources/pty.py">connect</a>(session_name, \*\*<a href="src/runloop_api_client/types/pty_connect_params.py">params</a>) -> <a href="./src/runloop_api_client/types/pty_connect_view.py">PtyConnectView</a></code>
|
|
294
|
+
- <code title="post /pty/{session_name}/control">client.pty.<a href="./src/runloop_api_client/resources/pty.py">control</a>(session_name, \*\*<a href="src/runloop_api_client/types/pty_control_params.py">params</a>) -> <a href="./src/runloop_api_client/types/pty_control_result_view.py">PtyControlResultView</a></code>
|
|
295
|
+
|
|
281
296
|
# Scenarios
|
|
282
297
|
|
|
283
298
|
Types:
|
|
@@ -36,6 +36,7 @@ from ._base_client import (
|
|
|
36
36
|
|
|
37
37
|
if TYPE_CHECKING:
|
|
38
38
|
from .resources import (
|
|
39
|
+
pty,
|
|
39
40
|
axons,
|
|
40
41
|
agents,
|
|
41
42
|
apikeys,
|
|
@@ -52,6 +53,7 @@ if TYPE_CHECKING:
|
|
|
52
53
|
restricted_keys,
|
|
53
54
|
network_policies,
|
|
54
55
|
)
|
|
56
|
+
from .resources.pty import PtyResource, AsyncPtyResource
|
|
55
57
|
from .resources.agents import AgentsResource, AsyncAgentsResource
|
|
56
58
|
from .resources.apikeys import ApikeysResource, AsyncApikeysResource
|
|
57
59
|
from .resources.objects import ObjectsResource, AsyncObjectsResource
|
|
@@ -184,6 +186,12 @@ class Runloop(SyncAPIClient):
|
|
|
184
186
|
|
|
185
187
|
return DevboxesResource(self)
|
|
186
188
|
|
|
189
|
+
@cached_property
|
|
190
|
+
def pty(self) -> PtyResource:
|
|
191
|
+
from .resources.pty import PtyResource
|
|
192
|
+
|
|
193
|
+
return PtyResource(self)
|
|
194
|
+
|
|
187
195
|
@cached_property
|
|
188
196
|
def scenarios(self) -> ScenariosResource:
|
|
189
197
|
from .resources.scenarios import ScenariosResource
|
|
@@ -466,6 +474,12 @@ class AsyncRunloop(AsyncAPIClient):
|
|
|
466
474
|
|
|
467
475
|
return AsyncDevboxesResource(self)
|
|
468
476
|
|
|
477
|
+
@cached_property
|
|
478
|
+
def pty(self) -> AsyncPtyResource:
|
|
479
|
+
from .resources.pty import AsyncPtyResource
|
|
480
|
+
|
|
481
|
+
return AsyncPtyResource(self)
|
|
482
|
+
|
|
469
483
|
@cached_property
|
|
470
484
|
def scenarios(self) -> AsyncScenariosResource:
|
|
471
485
|
from .resources.scenarios import AsyncScenariosResource
|
|
@@ -683,6 +697,12 @@ class RunloopWithRawResponse:
|
|
|
683
697
|
|
|
684
698
|
return DevboxesResourceWithRawResponse(self._client.devboxes)
|
|
685
699
|
|
|
700
|
+
@cached_property
|
|
701
|
+
def pty(self) -> pty.PtyResourceWithRawResponse:
|
|
702
|
+
from .resources.pty import PtyResourceWithRawResponse
|
|
703
|
+
|
|
704
|
+
return PtyResourceWithRawResponse(self._client.pty)
|
|
705
|
+
|
|
686
706
|
@cached_property
|
|
687
707
|
def scenarios(self) -> scenarios.ScenariosResourceWithRawResponse:
|
|
688
708
|
from .resources.scenarios import ScenariosResourceWithRawResponse
|
|
@@ -780,6 +800,12 @@ class AsyncRunloopWithRawResponse:
|
|
|
780
800
|
|
|
781
801
|
return AsyncDevboxesResourceWithRawResponse(self._client.devboxes)
|
|
782
802
|
|
|
803
|
+
@cached_property
|
|
804
|
+
def pty(self) -> pty.AsyncPtyResourceWithRawResponse:
|
|
805
|
+
from .resources.pty import AsyncPtyResourceWithRawResponse
|
|
806
|
+
|
|
807
|
+
return AsyncPtyResourceWithRawResponse(self._client.pty)
|
|
808
|
+
|
|
783
809
|
@cached_property
|
|
784
810
|
def scenarios(self) -> scenarios.AsyncScenariosResourceWithRawResponse:
|
|
785
811
|
from .resources.scenarios import AsyncScenariosResourceWithRawResponse
|
|
@@ -877,6 +903,12 @@ class RunloopWithStreamedResponse:
|
|
|
877
903
|
|
|
878
904
|
return DevboxesResourceWithStreamingResponse(self._client.devboxes)
|
|
879
905
|
|
|
906
|
+
@cached_property
|
|
907
|
+
def pty(self) -> pty.PtyResourceWithStreamingResponse:
|
|
908
|
+
from .resources.pty import PtyResourceWithStreamingResponse
|
|
909
|
+
|
|
910
|
+
return PtyResourceWithStreamingResponse(self._client.pty)
|
|
911
|
+
|
|
880
912
|
@cached_property
|
|
881
913
|
def scenarios(self) -> scenarios.ScenariosResourceWithStreamingResponse:
|
|
882
914
|
from .resources.scenarios import ScenariosResourceWithStreamingResponse
|
|
@@ -974,6 +1006,12 @@ class AsyncRunloopWithStreamedResponse:
|
|
|
974
1006
|
|
|
975
1007
|
return AsyncDevboxesResourceWithStreamingResponse(self._client.devboxes)
|
|
976
1008
|
|
|
1009
|
+
@cached_property
|
|
1010
|
+
def pty(self) -> pty.AsyncPtyResourceWithStreamingResponse:
|
|
1011
|
+
from .resources.pty import AsyncPtyResourceWithStreamingResponse
|
|
1012
|
+
|
|
1013
|
+
return AsyncPtyResourceWithStreamingResponse(self._client.pty)
|
|
1014
|
+
|
|
977
1015
|
@cached_property
|
|
978
1016
|
def scenarios(self) -> scenarios.AsyncScenariosResourceWithStreamingResponse:
|
|
979
1017
|
from .resources.scenarios import AsyncScenariosResourceWithStreamingResponse
|
|
@@ -99,7 +99,7 @@ async def async_to_httpx_files(files: RequestFiles | None) -> HttpxRequestFiles
|
|
|
99
99
|
elif is_sequence_t(files):
|
|
100
100
|
files = [(key, await _async_transform_file(file)) for key, file in files]
|
|
101
101
|
else:
|
|
102
|
-
raise TypeError("Unexpected file type input {type(files)}, expected mapping or sequence")
|
|
102
|
+
raise TypeError(f"Unexpected file type input {type(files)}, expected mapping or sequence")
|
|
103
103
|
|
|
104
104
|
return files
|
|
105
105
|
|
|
@@ -25,7 +25,9 @@ from typing_extensions import (
|
|
|
25
25
|
ClassVar,
|
|
26
26
|
Protocol,
|
|
27
27
|
Required,
|
|
28
|
+
Annotated,
|
|
28
29
|
ParamSpec,
|
|
30
|
+
TypeAlias,
|
|
29
31
|
TypedDict,
|
|
30
32
|
TypeGuard,
|
|
31
33
|
final,
|
|
@@ -79,7 +81,15 @@ from ._compat import (
|
|
|
79
81
|
from ._constants import RAW_RESPONSE_HEADER
|
|
80
82
|
|
|
81
83
|
if TYPE_CHECKING:
|
|
84
|
+
from pydantic import GetCoreSchemaHandler, ValidatorFunctionWrapHandler
|
|
85
|
+
from pydantic_core import CoreSchema, core_schema
|
|
82
86
|
from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
|
|
87
|
+
else:
|
|
88
|
+
try:
|
|
89
|
+
from pydantic_core import CoreSchema, core_schema
|
|
90
|
+
except ImportError:
|
|
91
|
+
CoreSchema = None
|
|
92
|
+
core_schema = None
|
|
83
93
|
|
|
84
94
|
__all__ = ["BaseModel", "GenericModel"]
|
|
85
95
|
|
|
@@ -396,6 +406,76 @@ class BaseModel(pydantic.BaseModel):
|
|
|
396
406
|
)
|
|
397
407
|
|
|
398
408
|
|
|
409
|
+
class _EagerIterable(list[_T], Generic[_T]):
|
|
410
|
+
"""
|
|
411
|
+
Accepts any Iterable[T] input (including generators), consumes it
|
|
412
|
+
eagerly, and validates all items upfront.
|
|
413
|
+
|
|
414
|
+
Validation preserves the original container type where possible
|
|
415
|
+
(e.g. a set[T] stays a set[T]). Serialization (model_dump / JSON)
|
|
416
|
+
always emits a list — round-tripping through model_dump() will not
|
|
417
|
+
restore the original container type.
|
|
418
|
+
"""
|
|
419
|
+
|
|
420
|
+
@classmethod
|
|
421
|
+
def __get_pydantic_core_schema__(
|
|
422
|
+
cls,
|
|
423
|
+
source_type: Any,
|
|
424
|
+
handler: GetCoreSchemaHandler,
|
|
425
|
+
) -> CoreSchema:
|
|
426
|
+
(item_type,) = get_args(source_type) or (Any,)
|
|
427
|
+
item_schema: CoreSchema = handler.generate_schema(item_type)
|
|
428
|
+
list_of_items_schema: CoreSchema = core_schema.list_schema(item_schema)
|
|
429
|
+
|
|
430
|
+
return core_schema.no_info_wrap_validator_function(
|
|
431
|
+
cls._validate,
|
|
432
|
+
list_of_items_schema,
|
|
433
|
+
serialization=core_schema.plain_serializer_function_ser_schema(
|
|
434
|
+
cls._serialize,
|
|
435
|
+
info_arg=False,
|
|
436
|
+
),
|
|
437
|
+
)
|
|
438
|
+
|
|
439
|
+
@staticmethod
|
|
440
|
+
def _validate(v: Iterable[_T], handler: "ValidatorFunctionWrapHandler") -> Any:
|
|
441
|
+
original_type: type[Any] = type(v)
|
|
442
|
+
|
|
443
|
+
# Normalize to list so list_schema can validate each item
|
|
444
|
+
if isinstance(v, list):
|
|
445
|
+
items: list[_T] = v
|
|
446
|
+
else:
|
|
447
|
+
try:
|
|
448
|
+
items = list(v)
|
|
449
|
+
except TypeError as e:
|
|
450
|
+
raise TypeError("Value is not iterable") from e
|
|
451
|
+
|
|
452
|
+
# Validate items against the inner schema
|
|
453
|
+
validated: list[_T] = handler(items)
|
|
454
|
+
|
|
455
|
+
# Reconstruct original container type
|
|
456
|
+
if original_type is list:
|
|
457
|
+
return validated
|
|
458
|
+
# str(list) produces the list's repr, not a string built from items,
|
|
459
|
+
# so skip reconstruction for str and its subclasses.
|
|
460
|
+
if issubclass(original_type, str):
|
|
461
|
+
return validated
|
|
462
|
+
try:
|
|
463
|
+
return original_type(validated)
|
|
464
|
+
except (TypeError, ValueError):
|
|
465
|
+
# If the type cannot be reconstructed, just return the validated list
|
|
466
|
+
return validated
|
|
467
|
+
|
|
468
|
+
@staticmethod
|
|
469
|
+
def _serialize(v: Iterable[_T]) -> list[_T]:
|
|
470
|
+
"""Always serialize as a list so Pydantic's JSON encoder is happy."""
|
|
471
|
+
if isinstance(v, list):
|
|
472
|
+
return v
|
|
473
|
+
return list(v)
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
EagerIterable: TypeAlias = Annotated[Iterable[_T], _EagerIterable]
|
|
477
|
+
|
|
478
|
+
|
|
399
479
|
def _construct_field(value: object, field: FieldInfo, key: str) -> object:
|
|
400
480
|
if value is None:
|
|
401
481
|
return field_get_default(field)
|
{runloop_api_client-1.20.3 → runloop_api_client-1.21.0}/src/runloop_api_client/resources/__init__.py
RENAMED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
2
|
|
|
3
|
+
from .pty import (
|
|
4
|
+
PtyResource,
|
|
5
|
+
AsyncPtyResource,
|
|
6
|
+
PtyResourceWithRawResponse,
|
|
7
|
+
AsyncPtyResourceWithRawResponse,
|
|
8
|
+
PtyResourceWithStreamingResponse,
|
|
9
|
+
AsyncPtyResourceWithStreamingResponse,
|
|
10
|
+
)
|
|
3
11
|
from .axons import (
|
|
4
12
|
AxonsResource,
|
|
5
13
|
AsyncAxonsResource,
|
|
@@ -164,6 +172,12 @@ __all__ = [
|
|
|
164
172
|
"AsyncDevboxesResourceWithRawResponse",
|
|
165
173
|
"DevboxesResourceWithStreamingResponse",
|
|
166
174
|
"AsyncDevboxesResourceWithStreamingResponse",
|
|
175
|
+
"PtyResource",
|
|
176
|
+
"AsyncPtyResource",
|
|
177
|
+
"PtyResourceWithRawResponse",
|
|
178
|
+
"AsyncPtyResourceWithRawResponse",
|
|
179
|
+
"PtyResourceWithStreamingResponse",
|
|
180
|
+
"AsyncPtyResourceWithStreamingResponse",
|
|
167
181
|
"ScenariosResource",
|
|
168
182
|
"AsyncScenariosResource",
|
|
169
183
|
"ScenariosResourceWithRawResponse",
|
|
@@ -86,6 +86,7 @@ from ...lib.polling_async import async_poll_until
|
|
|
86
86
|
from ...types.devbox_view import DevboxView
|
|
87
87
|
from ...types.tunnel_view import TunnelView
|
|
88
88
|
from ...lib.wait_for_status import wait_for_status, async_wait_for_status
|
|
89
|
+
from ...types.pty_tunnel_view import PtyTunnelView
|
|
89
90
|
from ...types.shared_params.mount import Mount
|
|
90
91
|
from ...types.devbox_snapshot_view import DevboxSnapshotView
|
|
91
92
|
from ...types.shared.launch_parameters import LaunchParameters as SharedLaunchParameters
|
|
@@ -582,6 +583,50 @@ class DevboxesResource(SyncAPIResource):
|
|
|
582
583
|
model=DevboxView,
|
|
583
584
|
)
|
|
584
585
|
|
|
586
|
+
def create_pty_tunnel(
|
|
587
|
+
self,
|
|
588
|
+
id: str,
|
|
589
|
+
*,
|
|
590
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
591
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
592
|
+
extra_headers: Headers | None = None,
|
|
593
|
+
extra_query: Query | None = None,
|
|
594
|
+
extra_body: Body | None = None,
|
|
595
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
596
|
+
idempotency_key: str | None = None,
|
|
597
|
+
) -> PtyTunnelView:
|
|
598
|
+
"""Create an ephemeral authenticated tunnel for terminal access to a running
|
|
599
|
+
Devbox.
|
|
600
|
+
|
|
601
|
+
This tunnel is not persisted on the Devbox and is generated fresh on
|
|
602
|
+
each request. The returned auth_token must be passed as a Bearer token in the
|
|
603
|
+
Authorization header.
|
|
604
|
+
|
|
605
|
+
Args:
|
|
606
|
+
extra_headers: Send extra headers
|
|
607
|
+
|
|
608
|
+
extra_query: Add additional query parameters to the request
|
|
609
|
+
|
|
610
|
+
extra_body: Add additional JSON properties to the request
|
|
611
|
+
|
|
612
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
613
|
+
|
|
614
|
+
idempotency_key: Specify a custom idempotency key for this request
|
|
615
|
+
"""
|
|
616
|
+
if not id:
|
|
617
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
618
|
+
return self._post(
|
|
619
|
+
path_template("/v1/devboxes/{id}/create_pty_tunnel", id=id),
|
|
620
|
+
options=make_request_options(
|
|
621
|
+
extra_headers=extra_headers,
|
|
622
|
+
extra_query=extra_query,
|
|
623
|
+
extra_body=extra_body,
|
|
624
|
+
timeout=timeout,
|
|
625
|
+
idempotency_key=idempotency_key,
|
|
626
|
+
),
|
|
627
|
+
cast_to=PtyTunnelView,
|
|
628
|
+
)
|
|
629
|
+
|
|
585
630
|
def create_ssh_key(
|
|
586
631
|
self,
|
|
587
632
|
id: str,
|
|
@@ -2200,6 +2245,50 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
2200
2245
|
model=DevboxView,
|
|
2201
2246
|
)
|
|
2202
2247
|
|
|
2248
|
+
async def create_pty_tunnel(
|
|
2249
|
+
self,
|
|
2250
|
+
id: str,
|
|
2251
|
+
*,
|
|
2252
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
2253
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
2254
|
+
extra_headers: Headers | None = None,
|
|
2255
|
+
extra_query: Query | None = None,
|
|
2256
|
+
extra_body: Body | None = None,
|
|
2257
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
2258
|
+
idempotency_key: str | None = None,
|
|
2259
|
+
) -> PtyTunnelView:
|
|
2260
|
+
"""Create an ephemeral authenticated tunnel for terminal access to a running
|
|
2261
|
+
Devbox.
|
|
2262
|
+
|
|
2263
|
+
This tunnel is not persisted on the Devbox and is generated fresh on
|
|
2264
|
+
each request. The returned auth_token must be passed as a Bearer token in the
|
|
2265
|
+
Authorization header.
|
|
2266
|
+
|
|
2267
|
+
Args:
|
|
2268
|
+
extra_headers: Send extra headers
|
|
2269
|
+
|
|
2270
|
+
extra_query: Add additional query parameters to the request
|
|
2271
|
+
|
|
2272
|
+
extra_body: Add additional JSON properties to the request
|
|
2273
|
+
|
|
2274
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
2275
|
+
|
|
2276
|
+
idempotency_key: Specify a custom idempotency key for this request
|
|
2277
|
+
"""
|
|
2278
|
+
if not id:
|
|
2279
|
+
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
|
|
2280
|
+
return await self._post(
|
|
2281
|
+
path_template("/v1/devboxes/{id}/create_pty_tunnel", id=id),
|
|
2282
|
+
options=make_request_options(
|
|
2283
|
+
extra_headers=extra_headers,
|
|
2284
|
+
extra_query=extra_query,
|
|
2285
|
+
extra_body=extra_body,
|
|
2286
|
+
timeout=timeout,
|
|
2287
|
+
idempotency_key=idempotency_key,
|
|
2288
|
+
),
|
|
2289
|
+
cast_to=PtyTunnelView,
|
|
2290
|
+
)
|
|
2291
|
+
|
|
2203
2292
|
async def create_ssh_key(
|
|
2204
2293
|
self,
|
|
2205
2294
|
id: str,
|
|
@@ -3375,6 +3464,9 @@ class DevboxesResourceWithRawResponse:
|
|
|
3375
3464
|
self.list = to_raw_response_wrapper(
|
|
3376
3465
|
devboxes.list,
|
|
3377
3466
|
)
|
|
3467
|
+
self.create_pty_tunnel = to_raw_response_wrapper(
|
|
3468
|
+
devboxes.create_pty_tunnel,
|
|
3469
|
+
)
|
|
3378
3470
|
self.create_ssh_key = to_raw_response_wrapper(
|
|
3379
3471
|
devboxes.create_ssh_key,
|
|
3380
3472
|
)
|
|
@@ -3468,6 +3560,9 @@ class AsyncDevboxesResourceWithRawResponse:
|
|
|
3468
3560
|
self.list = async_to_raw_response_wrapper(
|
|
3469
3561
|
devboxes.list,
|
|
3470
3562
|
)
|
|
3563
|
+
self.create_pty_tunnel = async_to_raw_response_wrapper(
|
|
3564
|
+
devboxes.create_pty_tunnel,
|
|
3565
|
+
)
|
|
3471
3566
|
self.create_ssh_key = async_to_raw_response_wrapper(
|
|
3472
3567
|
devboxes.create_ssh_key,
|
|
3473
3568
|
)
|
|
@@ -3561,6 +3656,9 @@ class DevboxesResourceWithStreamingResponse:
|
|
|
3561
3656
|
self.list = to_streamed_response_wrapper(
|
|
3562
3657
|
devboxes.list,
|
|
3563
3658
|
)
|
|
3659
|
+
self.create_pty_tunnel = to_streamed_response_wrapper(
|
|
3660
|
+
devboxes.create_pty_tunnel,
|
|
3661
|
+
)
|
|
3564
3662
|
self.create_ssh_key = to_streamed_response_wrapper(
|
|
3565
3663
|
devboxes.create_ssh_key,
|
|
3566
3664
|
)
|
|
@@ -3654,6 +3752,9 @@ class AsyncDevboxesResourceWithStreamingResponse:
|
|
|
3654
3752
|
self.list = async_to_streamed_response_wrapper(
|
|
3655
3753
|
devboxes.list,
|
|
3656
3754
|
)
|
|
3755
|
+
self.create_pty_tunnel = async_to_streamed_response_wrapper(
|
|
3756
|
+
devboxes.create_pty_tunnel,
|
|
3757
|
+
)
|
|
3657
3758
|
self.create_ssh_key = async_to_streamed_response_wrapper(
|
|
3658
3759
|
devboxes.create_ssh_key,
|
|
3659
3760
|
)
|