runta-sdk 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/PKG-INFO +66 -8
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/README.md +62 -7
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/harbor/runta_harbor/environment.py +17 -14
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/pyproject.toml +5 -2
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/PKG-INFO +66 -8
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/SOURCES.txt +42 -1
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/requires.txt +5 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/__init__.py +162 -111
- runta_sdk-0.2.2/src/runta/_internal/async_file_io.py +92 -0
- runta_sdk-0.2.2/src/runta/_internal/async_http.py +671 -0
- runta_sdk-0.2.2/src/runta/_internal/byte_budget.py +16 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/config.py +5 -1
- runta_sdk-0.2.2/src/runta/_internal/execution.py +780 -0
- runta_sdk-0.2.2/src/runta/_internal/execution.sh +285 -0
- runta_sdk-0.2.2/src/runta/_internal/http_limits.py +13 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_computer_session.py +215 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/list_organization_events.py +60 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/api/identity/get_me.py +172 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/api/ssh_keys/__init__.py +1 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/__init__.py +20 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/allowlist_egress_policy.py +1 -1
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint.py +30 -1
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_runtime_restore_request.py +70 -19
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_computer_session.py +78 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_computer_session_channels.py +50 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_prompt_image.py +61 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_prompt_image_mime_type.py +11 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_prompt_image_type.py +8 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_vnc_session_channel.py +50 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cold_restore_resource_requests.py +52 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/cold_restore_resources.py +71 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_checkpoint_request.py +3 -2
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_checkpoint_request_kind.py +2 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_cloud_agent_request.py +45 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_cloud_agent_run_request.py +28 -1
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denylist_egress_policy.py +1 -1
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/fresh_runtime_create_request.py +26 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_request.py +28 -1
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime.py +23 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image.py +10 -1
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/user_profile.py +65 -0
- runta_sdk-0.2.2/src/runta/_internal/openapi/models/user_profile_response.py +49 -0
- runta_sdk-0.2.2/src/runta/_internal/rest_tls.py +12 -0
- runta_sdk-0.2.2/src/runta/_internal/retry.py +241 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/streaming_transfer.py +429 -98
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/sync_http.py +217 -47
- runta_sdk-0.2.2/src/runta/_internal/tls_resumption.py +151 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/transport.py +28 -4
- runta_sdk-0.2.2/src/runta/_internal/user_agent.py +26 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_api_reference_generation.py +1 -1
- runta_sdk-0.2.2/tests/test_async_file_io.py +612 -0
- runta_sdk-0.2.2/tests/test_async_http_transport.py +383 -0
- runta_sdk-0.2.2/tests/test_checkpoint_metadata.py +137 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_config_and_helpers.py +33 -44
- runta_sdk-0.2.2/tests/test_connection_pool.py +98 -0
- runta_sdk-0.2.2/tests/test_delete_runtime_retry.py +286 -0
- runta_sdk-0.2.2/tests/test_directory_upload.py +151 -0
- runta_sdk-0.2.2/tests/test_directory_upload_concurrency.py +162 -0
- runta_sdk-0.2.2/tests/test_execution.py +1350 -0
- runta_sdk-0.2.2/tests/test_execution_result_stream.py +192 -0
- runta_sdk-0.2.2/tests/test_fetch_openapi.py +116 -0
- runta_sdk-0.2.2/tests/test_get_runtime_retry.py +265 -0
- runta_sdk-0.2.2/tests/test_harbor_directory_download.py +193 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_live.py +78 -18
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_openapi_contract.py +2 -2
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_openapi_transport.py +283 -3
- runta_sdk-0.2.2/tests/test_read_retries.py +336 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_rest_deployment.py +1 -1
- runta_sdk-0.2.2/tests/test_rest_tls.py +376 -0
- runta_sdk-0.2.2/tests/test_retry_policy.py +116 -0
- runta_sdk-0.2.2/tests/test_runtime_readiness.py +133 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_streaming_transfer.py +258 -1
- runta_sdk-0.2.2/tests/test_user_agent.py +76 -0
- runta_sdk-0.2.2/tests/test_websocket_tls.py +106 -0
- runta_sdk-0.2.2/tests/test_websocket_tls_resumption.py +390 -0
- runta_sdk-0.2.0/src/runta/_internal/async_http.py +0 -400
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/harbor/runta_harbor/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/harbor/runta_harbor/py.typed +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/durable/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/durable/runner.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/durable/store.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/py.typed +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/sandbox.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/dependency_links.txt +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/top_level.txt +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/setup.cfg +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/helpers.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/begin_device_authorization.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/exchange_device_token.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/revoke_current_token.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/create_checkpoint.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/delete_checkpoint.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/get_checkpoint.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/list_checkpoints.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/cancel_cloud_agent_run.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_artifact.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_run.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/delete_cloud_agent.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/delete_cloud_agent_artifact.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/delete_cloud_agent_workspace_file.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/execute_cloud_agent_workspace_operation.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/follow_up_cloud_agent_run.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/get_cloud_agent.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/get_cloud_agent_artifact.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/get_cloud_agent_run.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/list_cloud_agent_artifacts.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/list_cloud_agent_runs.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/list_cloud_agent_session_events.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/list_cloud_agents.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/resume_cloud_agent_run.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/stream_cloud_agent_run_events.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/update_cloud_agent.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/write_cloud_agent_workspace_file.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/get_organization_event.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/get_organization_token_analysis.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/list_organization_token_analysis.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/list_organization_token_savings.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/files/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/files/read_runtime_file.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/files/write_runtime_file.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/create_git_hub_authorization_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/create_git_hub_runtime_binding.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/delete_git_hub_runtime_binding.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/get_git_hub_authorization_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/get_git_hub_runtime_binding.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/list_git_hub_authorization_requests.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/list_git_hub_branches.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/list_git_hub_repositories.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/replace_git_hub_runtime_bindings.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/health/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/health/head_healthz.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/health/healthz.py +0 -0
- {runta_sdk-0.2.0/src/runta/_internal/openapi/api/managed_model_providers → runta_sdk-0.2.2/src/runta/_internal/openapi/api/identity}/__init__.py +0 -0
- {runta_sdk-0.2.0/src/runta/_internal/openapi/api/runtimes → runta_sdk-0.2.2/src/runta/_internal/openapi/api/managed_model_providers}/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/managed_model_providers/list_managed_model_providers.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/managed_model_providers/update_managed_model_provider.py +0 -0
- {runta_sdk-0.2.0/src/runta/_internal/openapi/api/secrets → runta_sdk-0.2.2/src/runta/_internal/openapi/api/runtimes}/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/cancel_runtime_image_build.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/create_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/create_runtime_image_build.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/create_runtime_vnc_credential.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/delete_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/delete_runtime_image.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/disable_runtime_vnc.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/dismiss_runtime_image_build.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/enable_runtime_vnc.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/get_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/get_runtime_image_build.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtime_image_builds.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtime_images.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtime_vnc_credentials.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtimes.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/patch_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/pause_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/resume_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/revoke_runtime_vnc_credential.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/start_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/stop_runtime.py +0 -0
- {runta_sdk-0.2.0/src/runta/_internal/openapi/api/ssh_keys → runta_sdk-0.2.2/src/runta/_internal/openapi/api/secrets}/__init__.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/create_secret.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/delete_secret.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/get_secret.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/list_secrets.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/set_secret.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/attach_runtime_ssh_key.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/create_ssh_key.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/delete_ssh_key.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/detach_runtime_ssh_key.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/get_ssh_host_key.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/list_runtime_ssh_keys.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/list_ssh_keys.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/client.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/errors.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/allowlist_egress_policy_mode.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/approved_git_hub_authorization.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/approved_git_hub_authorization_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/begin_device_authorization_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/begin_device_authorization_request_client_id.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_pagination.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_source_runtime.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_artifact.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_event.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_harness_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_latest_reply.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_run.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_runtime_reference.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_runtime_reference_type.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_session_events.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_workspace_delete_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_workspace_write_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_workspace_write_result.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_cloud_agent_artifact_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_git_hub_authorization_request_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_git_hub_runtime_binding_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_llm_token_saving_policy.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_image_build_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_image_build_request_architecture.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_image_selection.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_resource_requests.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_resources.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_secret_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_ssh_key_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_vnc_credential_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_vnc_credential_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denied_git_hub_authorization.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denied_git_hub_authorization_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denylist_egress_policy_mode.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_authorization_start.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_authorization_start_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_token_error.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_token_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/disabled_idle_policy.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/disabled_idle_policy_mode.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/empty_object.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/empty_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/error_body.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/error_envelope.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event_list_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/exchange_device_token_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/expired_git_hub_authorization.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/expired_git_hub_authorization_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/fresh_runtime_create_request_environment_variables.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_decision_metadata.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request_list_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_branch.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_branch_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_branch_list_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_installation.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_repository.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_repository_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_repository_list_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding_list_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/installed_git_hub_authorization.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/installed_git_hub_authorization_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_checkpoints_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_runtime_image_builds_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_runtime_images_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_runtimes_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_secrets_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_ssh_keys_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_vnc_credentials_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/llm_token_saving_policy.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider_reference.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider_reference_type.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_llm_token_saving_policy.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_request_environment_variables.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_resource_requests.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_resources.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/pending_git_hub_authorization.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/pending_git_hub_authorization_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_checkpoint_state.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_error_code.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_ingress_protocol.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_ingress_spec.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_runtime_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/replace_git_hub_runtime_bindings_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/replace_git_hub_runtime_bindings_request_repositories_item.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_desired_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_environment_variables.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_architectures_item.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_architecture.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_attempt.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_attempt_outcome.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_status.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_disk_capability.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_model_provider.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_protocol_binding.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_recommended_resources.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_subscription_option.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_web_ui.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_pagination.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_repository_selection.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resource_current.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resource_limits.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resource_requests.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resources.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_secret_configuration.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_file_entry.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_file_kind.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_operation_kind.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_operation_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_operation_result.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_port.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_search_match.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_egress_injection.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_environment_injection.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_file_injection.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_injection_action.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/set_secret_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_host_key.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_host_key_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_key.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_key_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_and_wakeup_idle_policy.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_and_wakeup_idle_policy_mode.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_only_idle_policy.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_only_idle_policy_mode.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_detail.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_detail_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding_confidence.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding_kind.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding_severity.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue_confidence.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue_kind.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue_severity.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_list_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_summary.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_tool_call.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_saving_event.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_saving_method.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_saving_method_method.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_savings_list.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_savings_list_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_savings_summary.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/update_cloud_agent_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/update_managed_model_provider_request.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential_connection.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential_connection_security_type.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential_response.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_gateway_connection.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_gateway_connection_security_type.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_gateway_connection_username.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/types.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/pagination.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/py.typed +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_harbor_e2e.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_harbor_integration.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_harbor_runta_environment.py +0 -0
- {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_openai_extra_packaging.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: runta-sdk
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Python SDK for Runta runtime management
|
|
5
5
|
Author: Runta
|
|
6
6
|
License-Expression: MIT
|
|
@@ -8,7 +8,10 @@ Requires-Python: >=3.10
|
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
Requires-Dist: attrs>=22.2.0
|
|
10
10
|
Requires-Dist: httpx>=0.27
|
|
11
|
+
Requires-Dist: aiohttp<3.15,>=3.14.3
|
|
12
|
+
Requires-Dist: certifi>=2024.2.2
|
|
11
13
|
Requires-Dist: websockets>=13
|
|
14
|
+
Requires-Dist: tomli>=2.0; python_version < "3.11"
|
|
12
15
|
Provides-Extra: harbor
|
|
13
16
|
Requires-Dist: harbor>=0.20.0; python_version >= "3.12" and extra == "harbor"
|
|
14
17
|
Provides-Extra: openai
|
|
@@ -85,6 +88,11 @@ print(result.stdout_text)
|
|
|
85
88
|
runta.close()
|
|
86
89
|
```
|
|
87
90
|
|
|
91
|
+
Commands run as independent Runtime tasks. The SDK keeps a WebSocket open to
|
|
92
|
+
observe progress and reconnects to the same task after a disconnect, without
|
|
93
|
+
executing the command again. See [execution and automatic reconnection](docs/background-execution.md)
|
|
94
|
+
for Runtime dependencies, timeouts, and recovering a task by ID.
|
|
95
|
+
|
|
88
96
|
Authentication uses `Runta(token="rt_...")` or `RUNTA_TOKEN`. The endpoint
|
|
89
97
|
defaults to `https://api.runta.com`; override it with `Runta(endpoint="...")`,
|
|
90
98
|
`RUNTA_ENDPOINT`, or `endpoint` from the optional Runta config file.
|
|
@@ -126,25 +134,75 @@ runtime.files.upload("./project", "/workspace/project")
|
|
|
126
134
|
runtime.files.download("/workspace/dist", "./artifacts/")
|
|
127
135
|
```
|
|
128
136
|
|
|
137
|
+
Runtime, Checkpoint, and Secret queries, file reads, Runtime creation and deletion,
|
|
138
|
+
resource and egress updates, and streaming transfers retry transient failures
|
|
139
|
+
with exponential backoff and full jitter. The default is 16 total attempts,
|
|
140
|
+
including the first request; set `retry_max_attempts` on
|
|
141
|
+
`Runta` or `AsyncRunta` to use 1–16 attempts. Creation uses one idempotency key
|
|
142
|
+
per call, and PATCH retries keep the original expected revision. Reads, Runtime
|
|
143
|
+
creation and deletion, and PATCH operations have an eight-minute retry budget.
|
|
144
|
+
Read and Runtime deletion retries use a valid `Retry-After` on HTTP 429 instead of
|
|
145
|
+
full jitter;
|
|
146
|
+
the header accepts seconds or an HTTP date and cannot extend the retry budget.
|
|
147
|
+
Otherwise the jitter bound starts at one second and doubles up to 60 seconds.
|
|
148
|
+
Authentication, permission, not-found, parameter, and certificate errors are
|
|
149
|
+
not retried. Paginated reads retry only the failed page, with one time budget
|
|
150
|
+
shared across all pages. Runtime and Checkpoint readiness queries, their
|
|
151
|
+
name-lookup fallbacks, and polling delays share the readiness timeout instead
|
|
152
|
+
of receiving a separate eight-minute budget. Health checks remain single requests.
|
|
153
|
+
|
|
154
|
+
Runtime, Checkpoint, and Secret lookups retain their direct-GET then list
|
|
155
|
+
fallback. Names and UUIDs use the same retry policy.
|
|
156
|
+
|
|
157
|
+
Runtime deletion retries the revision GET and DELETE together without nested
|
|
158
|
+
GET retries, fetching the current revision for each attempt. A 404 from either
|
|
159
|
+
request means the Runtime is already deleted and is treated as success;
|
|
160
|
+
202/204 returns immediately without polling for deletion to finish. Revision
|
|
161
|
+
conflicts are not retried.
|
|
162
|
+
Deletion also retries HTTP 500 from either the revision GET or DELETE. HTTP 501
|
|
163
|
+
and revision conflicts still fail immediately; other operations keep their
|
|
164
|
+
existing retry status policy.
|
|
165
|
+
|
|
166
|
+
Async REST requests share one aiohttp session per client. The client's `timeout`
|
|
167
|
+
(30 seconds by default) covers each complete REST request, including connection
|
|
168
|
+
pool waiting and response reading. Use and close an async client in the same
|
|
169
|
+
event loop. Synchronous REST continues to use httpx. New async HTTPS connections attempt TLS
|
|
170
|
+
1.2/1.3 session resumption using an in-memory cache per client, isolated by
|
|
171
|
+
hostname and port. Missing, expired, or rejected tickets fall back to a full
|
|
172
|
+
handshake. Certificate verification remains enabled; no 0-RTT data is sent.
|
|
173
|
+
Closing the client clears its TLS session cache.
|
|
174
|
+
|
|
175
|
+
Each transfer connection uses the client's `timeout` (30 seconds by default);
|
|
176
|
+
an established transfer has no overall time limit. Transfers restart from the
|
|
177
|
+
beginning after a disconnect.
|
|
178
|
+
|
|
179
|
+
Directory uploads wait for stdin EOF before committing the extracted files and
|
|
180
|
+
reporting completion, so tar's archive trailer cannot close the connection
|
|
181
|
+
before the SDK finishes its upload.
|
|
182
|
+
Async directory uploads wait for archive data in the event loop, keeping
|
|
183
|
+
executor threads available to produce archives under concurrent uploads.
|
|
184
|
+
|
|
129
185
|
## REST contract
|
|
130
186
|
|
|
131
187
|
`contracts/runta-api.openapi.yaml` is copied from
|
|
132
|
-
`runta/
|
|
133
|
-
CI
|
|
134
|
-
|
|
135
|
-
the
|
|
188
|
+
`runta/openapi/public.yaml` and is used by the SDK contract tests.
|
|
189
|
+
CI fetches this file directly from the `runta` repository's `integration` branch
|
|
190
|
+
using the GitHub Contents API and `RUNTA_CONTRACT_TOKEN`. The contract sync check
|
|
191
|
+
fails if the source cannot be fetched or differs from the committed copy.
|
|
192
|
+
The test job may fall back to raw YAML and then to the checked-in contract when
|
|
193
|
+
the source is unavailable.
|
|
136
194
|
|
|
137
195
|
To refresh it locally after changing `runta-api`:
|
|
138
196
|
|
|
139
197
|
```bash
|
|
140
198
|
cd ~/runta
|
|
141
|
-
|
|
142
|
-
cp
|
|
199
|
+
mise run api-contract
|
|
200
|
+
cp openapi/public.yaml ~/RuntaPythonSDK/contracts/runta-api.openapi.yaml
|
|
143
201
|
cd ~/RuntaPythonSDK
|
|
144
202
|
uv run python -m pytest tests/test_openapi_contract.py
|
|
145
203
|
```
|
|
146
204
|
|
|
147
|
-
To fetch the
|
|
205
|
+
To fetch the current source contract directly:
|
|
148
206
|
|
|
149
207
|
```bash
|
|
150
208
|
scripts/fetch-runta-openapi.py
|
|
@@ -60,6 +60,11 @@ print(result.stdout_text)
|
|
|
60
60
|
runta.close()
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
+
Commands run as independent Runtime tasks. The SDK keeps a WebSocket open to
|
|
64
|
+
observe progress and reconnects to the same task after a disconnect, without
|
|
65
|
+
executing the command again. See [execution and automatic reconnection](docs/background-execution.md)
|
|
66
|
+
for Runtime dependencies, timeouts, and recovering a task by ID.
|
|
67
|
+
|
|
63
68
|
Authentication uses `Runta(token="rt_...")` or `RUNTA_TOKEN`. The endpoint
|
|
64
69
|
defaults to `https://api.runta.com`; override it with `Runta(endpoint="...")`,
|
|
65
70
|
`RUNTA_ENDPOINT`, or `endpoint` from the optional Runta config file.
|
|
@@ -101,25 +106,75 @@ runtime.files.upload("./project", "/workspace/project")
|
|
|
101
106
|
runtime.files.download("/workspace/dist", "./artifacts/")
|
|
102
107
|
```
|
|
103
108
|
|
|
109
|
+
Runtime, Checkpoint, and Secret queries, file reads, Runtime creation and deletion,
|
|
110
|
+
resource and egress updates, and streaming transfers retry transient failures
|
|
111
|
+
with exponential backoff and full jitter. The default is 16 total attempts,
|
|
112
|
+
including the first request; set `retry_max_attempts` on
|
|
113
|
+
`Runta` or `AsyncRunta` to use 1–16 attempts. Creation uses one idempotency key
|
|
114
|
+
per call, and PATCH retries keep the original expected revision. Reads, Runtime
|
|
115
|
+
creation and deletion, and PATCH operations have an eight-minute retry budget.
|
|
116
|
+
Read and Runtime deletion retries use a valid `Retry-After` on HTTP 429 instead of
|
|
117
|
+
full jitter;
|
|
118
|
+
the header accepts seconds or an HTTP date and cannot extend the retry budget.
|
|
119
|
+
Otherwise the jitter bound starts at one second and doubles up to 60 seconds.
|
|
120
|
+
Authentication, permission, not-found, parameter, and certificate errors are
|
|
121
|
+
not retried. Paginated reads retry only the failed page, with one time budget
|
|
122
|
+
shared across all pages. Runtime and Checkpoint readiness queries, their
|
|
123
|
+
name-lookup fallbacks, and polling delays share the readiness timeout instead
|
|
124
|
+
of receiving a separate eight-minute budget. Health checks remain single requests.
|
|
125
|
+
|
|
126
|
+
Runtime, Checkpoint, and Secret lookups retain their direct-GET then list
|
|
127
|
+
fallback. Names and UUIDs use the same retry policy.
|
|
128
|
+
|
|
129
|
+
Runtime deletion retries the revision GET and DELETE together without nested
|
|
130
|
+
GET retries, fetching the current revision for each attempt. A 404 from either
|
|
131
|
+
request means the Runtime is already deleted and is treated as success;
|
|
132
|
+
202/204 returns immediately without polling for deletion to finish. Revision
|
|
133
|
+
conflicts are not retried.
|
|
134
|
+
Deletion also retries HTTP 500 from either the revision GET or DELETE. HTTP 501
|
|
135
|
+
and revision conflicts still fail immediately; other operations keep their
|
|
136
|
+
existing retry status policy.
|
|
137
|
+
|
|
138
|
+
Async REST requests share one aiohttp session per client. The client's `timeout`
|
|
139
|
+
(30 seconds by default) covers each complete REST request, including connection
|
|
140
|
+
pool waiting and response reading. Use and close an async client in the same
|
|
141
|
+
event loop. Synchronous REST continues to use httpx. New async HTTPS connections attempt TLS
|
|
142
|
+
1.2/1.3 session resumption using an in-memory cache per client, isolated by
|
|
143
|
+
hostname and port. Missing, expired, or rejected tickets fall back to a full
|
|
144
|
+
handshake. Certificate verification remains enabled; no 0-RTT data is sent.
|
|
145
|
+
Closing the client clears its TLS session cache.
|
|
146
|
+
|
|
147
|
+
Each transfer connection uses the client's `timeout` (30 seconds by default);
|
|
148
|
+
an established transfer has no overall time limit. Transfers restart from the
|
|
149
|
+
beginning after a disconnect.
|
|
150
|
+
|
|
151
|
+
Directory uploads wait for stdin EOF before committing the extracted files and
|
|
152
|
+
reporting completion, so tar's archive trailer cannot close the connection
|
|
153
|
+
before the SDK finishes its upload.
|
|
154
|
+
Async directory uploads wait for archive data in the event loop, keeping
|
|
155
|
+
executor threads available to produce archives under concurrent uploads.
|
|
156
|
+
|
|
104
157
|
## REST contract
|
|
105
158
|
|
|
106
159
|
`contracts/runta-api.openapi.yaml` is copied from
|
|
107
|
-
`runta/
|
|
108
|
-
CI
|
|
109
|
-
|
|
110
|
-
the
|
|
160
|
+
`runta/openapi/public.yaml` and is used by the SDK contract tests.
|
|
161
|
+
CI fetches this file directly from the `runta` repository's `integration` branch
|
|
162
|
+
using the GitHub Contents API and `RUNTA_CONTRACT_TOKEN`. The contract sync check
|
|
163
|
+
fails if the source cannot be fetched or differs from the committed copy.
|
|
164
|
+
The test job may fall back to raw YAML and then to the checked-in contract when
|
|
165
|
+
the source is unavailable.
|
|
111
166
|
|
|
112
167
|
To refresh it locally after changing `runta-api`:
|
|
113
168
|
|
|
114
169
|
```bash
|
|
115
170
|
cd ~/runta
|
|
116
|
-
|
|
117
|
-
cp
|
|
171
|
+
mise run api-contract
|
|
172
|
+
cp openapi/public.yaml ~/RuntaPythonSDK/contracts/runta-api.openapi.yaml
|
|
118
173
|
cd ~/RuntaPythonSDK
|
|
119
174
|
uv run python -m pytest tests/test_openapi_contract.py
|
|
120
175
|
```
|
|
121
176
|
|
|
122
|
-
To fetch the
|
|
177
|
+
To fetch the current source contract directly:
|
|
123
178
|
|
|
124
179
|
```bash
|
|
125
180
|
scripts/fetch-runta-openapi.py
|
|
@@ -936,25 +936,28 @@ class RuntaEnvironment(BaseEnvironment):
|
|
|
936
936
|
async def _runtime_download_dir(
|
|
937
937
|
self, source_dir: str, target_dir: Path | str
|
|
938
938
|
) -> None:
|
|
939
|
+
# Resolve only the source directory: tar otherwise archives a top-level
|
|
940
|
+
# symlink rather than its contents. Keep nested-link extraction checks.
|
|
941
|
+
result = await self._runtime_exec_raw(
|
|
942
|
+
f"CDPATH= cd -P -- {shlex.quote(source_dir)} && pwd -P", timeout_sec=30
|
|
943
|
+
)
|
|
944
|
+
self._check(result, "resolve download source directory")
|
|
945
|
+
source_dir = result.stdout.removesuffix("\n")
|
|
939
946
|
target = Path(target_dir)
|
|
940
947
|
target.mkdir(parents=True, exist_ok=True)
|
|
941
|
-
archive_name = f"/tmp/runta-harbor-{uuid.uuid4().hex}.tar.gz"
|
|
942
|
-
command = f"tar czf {shlex.quote(archive_name)} -C {shlex.quote(source_dir)} ."
|
|
943
|
-
result = await self._runtime_exec_raw(command, timeout_sec=120)
|
|
944
|
-
self._check(result, f"archive {source_dir}")
|
|
945
|
-
|
|
946
948
|
with tempfile.TemporaryDirectory() as tmp_dir:
|
|
947
|
-
|
|
948
|
-
await self.
|
|
949
|
-
|
|
949
|
+
source = Path(tmp_dir) / "contents"
|
|
950
|
+
await self._require_runtime().files.download(source_dir, str(source))
|
|
951
|
+
# Harbor downloads contents into an existing directory, whereas the
|
|
952
|
+
# SDK downloads the source directory itself to a staged destination.
|
|
953
|
+
# Retain Harbor's safe content merge, including existing destination
|
|
954
|
+
# symlink checks. This merge archive stays local.
|
|
955
|
+
archive_path = Path(tmp_dir) / "merge.tar"
|
|
956
|
+
with tarfile.open(archive_path, "w") as archive:
|
|
957
|
+
archive.add(source, arcname=".")
|
|
958
|
+
with tarfile.open(archive_path, "r") as archive:
|
|
950
959
|
archive.extractall(target, filter="data")
|
|
951
960
|
|
|
952
|
-
cleanup = await self._runtime_exec_raw(
|
|
953
|
-
f"rm -f {shlex.quote(archive_name)}", timeout_sec=30
|
|
954
|
-
)
|
|
955
|
-
if cleanup.return_code != 0:
|
|
956
|
-
self.logger.warning("failed to remove remote archive %s", archive_name)
|
|
957
|
-
|
|
958
961
|
async def _runtime_ensure_dirs(self, dirs: list[str]) -> None:
|
|
959
962
|
if not dirs:
|
|
960
963
|
return
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "runta-sdk"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.2"
|
|
8
8
|
description = "Python SDK for Runta runtime management"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -13,7 +13,10 @@ authors = [{ name = "Runta" }]
|
|
|
13
13
|
dependencies = [
|
|
14
14
|
"attrs>=22.2.0",
|
|
15
15
|
"httpx>=0.27",
|
|
16
|
+
"aiohttp>=3.14.3,<3.15",
|
|
17
|
+
"certifi>=2024.2.2",
|
|
16
18
|
"websockets>=13",
|
|
19
|
+
"tomli>=2.0; python_version < '3.11'",
|
|
17
20
|
]
|
|
18
21
|
|
|
19
22
|
[project.optional-dependencies]
|
|
@@ -38,7 +41,7 @@ dev = [
|
|
|
38
41
|
where = ["src", "integrations/harbor", "integrations/openai-agents-runta/src"]
|
|
39
42
|
|
|
40
43
|
[tool.setuptools.package-data]
|
|
41
|
-
runta = ["py.typed"]
|
|
44
|
+
runta = ["py.typed", "_internal/execution.sh"]
|
|
42
45
|
runta_harbor = ["py.typed"]
|
|
43
46
|
agents_runta = ["py.typed"]
|
|
44
47
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: runta-sdk
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.2
|
|
4
4
|
Summary: Python SDK for Runta runtime management
|
|
5
5
|
Author: Runta
|
|
6
6
|
License-Expression: MIT
|
|
@@ -8,7 +8,10 @@ Requires-Python: >=3.10
|
|
|
8
8
|
Description-Content-Type: text/markdown
|
|
9
9
|
Requires-Dist: attrs>=22.2.0
|
|
10
10
|
Requires-Dist: httpx>=0.27
|
|
11
|
+
Requires-Dist: aiohttp<3.15,>=3.14.3
|
|
12
|
+
Requires-Dist: certifi>=2024.2.2
|
|
11
13
|
Requires-Dist: websockets>=13
|
|
14
|
+
Requires-Dist: tomli>=2.0; python_version < "3.11"
|
|
12
15
|
Provides-Extra: harbor
|
|
13
16
|
Requires-Dist: harbor>=0.20.0; python_version >= "3.12" and extra == "harbor"
|
|
14
17
|
Provides-Extra: openai
|
|
@@ -85,6 +88,11 @@ print(result.stdout_text)
|
|
|
85
88
|
runta.close()
|
|
86
89
|
```
|
|
87
90
|
|
|
91
|
+
Commands run as independent Runtime tasks. The SDK keeps a WebSocket open to
|
|
92
|
+
observe progress and reconnects to the same task after a disconnect, without
|
|
93
|
+
executing the command again. See [execution and automatic reconnection](docs/background-execution.md)
|
|
94
|
+
for Runtime dependencies, timeouts, and recovering a task by ID.
|
|
95
|
+
|
|
88
96
|
Authentication uses `Runta(token="rt_...")` or `RUNTA_TOKEN`. The endpoint
|
|
89
97
|
defaults to `https://api.runta.com`; override it with `Runta(endpoint="...")`,
|
|
90
98
|
`RUNTA_ENDPOINT`, or `endpoint` from the optional Runta config file.
|
|
@@ -126,25 +134,75 @@ runtime.files.upload("./project", "/workspace/project")
|
|
|
126
134
|
runtime.files.download("/workspace/dist", "./artifacts/")
|
|
127
135
|
```
|
|
128
136
|
|
|
137
|
+
Runtime, Checkpoint, and Secret queries, file reads, Runtime creation and deletion,
|
|
138
|
+
resource and egress updates, and streaming transfers retry transient failures
|
|
139
|
+
with exponential backoff and full jitter. The default is 16 total attempts,
|
|
140
|
+
including the first request; set `retry_max_attempts` on
|
|
141
|
+
`Runta` or `AsyncRunta` to use 1–16 attempts. Creation uses one idempotency key
|
|
142
|
+
per call, and PATCH retries keep the original expected revision. Reads, Runtime
|
|
143
|
+
creation and deletion, and PATCH operations have an eight-minute retry budget.
|
|
144
|
+
Read and Runtime deletion retries use a valid `Retry-After` on HTTP 429 instead of
|
|
145
|
+
full jitter;
|
|
146
|
+
the header accepts seconds or an HTTP date and cannot extend the retry budget.
|
|
147
|
+
Otherwise the jitter bound starts at one second and doubles up to 60 seconds.
|
|
148
|
+
Authentication, permission, not-found, parameter, and certificate errors are
|
|
149
|
+
not retried. Paginated reads retry only the failed page, with one time budget
|
|
150
|
+
shared across all pages. Runtime and Checkpoint readiness queries, their
|
|
151
|
+
name-lookup fallbacks, and polling delays share the readiness timeout instead
|
|
152
|
+
of receiving a separate eight-minute budget. Health checks remain single requests.
|
|
153
|
+
|
|
154
|
+
Runtime, Checkpoint, and Secret lookups retain their direct-GET then list
|
|
155
|
+
fallback. Names and UUIDs use the same retry policy.
|
|
156
|
+
|
|
157
|
+
Runtime deletion retries the revision GET and DELETE together without nested
|
|
158
|
+
GET retries, fetching the current revision for each attempt. A 404 from either
|
|
159
|
+
request means the Runtime is already deleted and is treated as success;
|
|
160
|
+
202/204 returns immediately without polling for deletion to finish. Revision
|
|
161
|
+
conflicts are not retried.
|
|
162
|
+
Deletion also retries HTTP 500 from either the revision GET or DELETE. HTTP 501
|
|
163
|
+
and revision conflicts still fail immediately; other operations keep their
|
|
164
|
+
existing retry status policy.
|
|
165
|
+
|
|
166
|
+
Async REST requests share one aiohttp session per client. The client's `timeout`
|
|
167
|
+
(30 seconds by default) covers each complete REST request, including connection
|
|
168
|
+
pool waiting and response reading. Use and close an async client in the same
|
|
169
|
+
event loop. Synchronous REST continues to use httpx. New async HTTPS connections attempt TLS
|
|
170
|
+
1.2/1.3 session resumption using an in-memory cache per client, isolated by
|
|
171
|
+
hostname and port. Missing, expired, or rejected tickets fall back to a full
|
|
172
|
+
handshake. Certificate verification remains enabled; no 0-RTT data is sent.
|
|
173
|
+
Closing the client clears its TLS session cache.
|
|
174
|
+
|
|
175
|
+
Each transfer connection uses the client's `timeout` (30 seconds by default);
|
|
176
|
+
an established transfer has no overall time limit. Transfers restart from the
|
|
177
|
+
beginning after a disconnect.
|
|
178
|
+
|
|
179
|
+
Directory uploads wait for stdin EOF before committing the extracted files and
|
|
180
|
+
reporting completion, so tar's archive trailer cannot close the connection
|
|
181
|
+
before the SDK finishes its upload.
|
|
182
|
+
Async directory uploads wait for archive data in the event loop, keeping
|
|
183
|
+
executor threads available to produce archives under concurrent uploads.
|
|
184
|
+
|
|
129
185
|
## REST contract
|
|
130
186
|
|
|
131
187
|
`contracts/runta-api.openapi.yaml` is copied from
|
|
132
|
-
`runta/
|
|
133
|
-
CI
|
|
134
|
-
|
|
135
|
-
the
|
|
188
|
+
`runta/openapi/public.yaml` and is used by the SDK contract tests.
|
|
189
|
+
CI fetches this file directly from the `runta` repository's `integration` branch
|
|
190
|
+
using the GitHub Contents API and `RUNTA_CONTRACT_TOKEN`. The contract sync check
|
|
191
|
+
fails if the source cannot be fetched or differs from the committed copy.
|
|
192
|
+
The test job may fall back to raw YAML and then to the checked-in contract when
|
|
193
|
+
the source is unavailable.
|
|
136
194
|
|
|
137
195
|
To refresh it locally after changing `runta-api`:
|
|
138
196
|
|
|
139
197
|
```bash
|
|
140
198
|
cd ~/runta
|
|
141
|
-
|
|
142
|
-
cp
|
|
199
|
+
mise run api-contract
|
|
200
|
+
cp openapi/public.yaml ~/RuntaPythonSDK/contracts/runta-api.openapi.yaml
|
|
143
201
|
cd ~/RuntaPythonSDK
|
|
144
202
|
uv run python -m pytest tests/test_openapi_contract.py
|
|
145
203
|
```
|
|
146
204
|
|
|
147
|
-
To fetch the
|
|
205
|
+
To fetch the current source contract directly:
|
|
148
206
|
|
|
149
207
|
```bash
|
|
150
208
|
scripts/fetch-runta-openapi.py
|
|
@@ -17,13 +17,22 @@ runta_sdk.egg-info/top_level.txt
|
|
|
17
17
|
src/runta/__init__.py
|
|
18
18
|
src/runta/py.typed
|
|
19
19
|
src/runta/_internal/__init__.py
|
|
20
|
+
src/runta/_internal/async_file_io.py
|
|
20
21
|
src/runta/_internal/async_http.py
|
|
22
|
+
src/runta/_internal/byte_budget.py
|
|
21
23
|
src/runta/_internal/config.py
|
|
24
|
+
src/runta/_internal/execution.py
|
|
25
|
+
src/runta/_internal/execution.sh
|
|
22
26
|
src/runta/_internal/helpers.py
|
|
27
|
+
src/runta/_internal/http_limits.py
|
|
23
28
|
src/runta/_internal/pagination.py
|
|
29
|
+
src/runta/_internal/rest_tls.py
|
|
30
|
+
src/runta/_internal/retry.py
|
|
24
31
|
src/runta/_internal/streaming_transfer.py
|
|
25
32
|
src/runta/_internal/sync_http.py
|
|
33
|
+
src/runta/_internal/tls_resumption.py
|
|
26
34
|
src/runta/_internal/transport.py
|
|
35
|
+
src/runta/_internal/user_agent.py
|
|
27
36
|
src/runta/_internal/openapi/__init__.py
|
|
28
37
|
src/runta/_internal/openapi/client.py
|
|
29
38
|
src/runta/_internal/openapi/errors.py
|
|
@@ -42,6 +51,7 @@ src/runta/_internal/openapi/api/cloud_agents/__init__.py
|
|
|
42
51
|
src/runta/_internal/openapi/api/cloud_agents/cancel_cloud_agent_run.py
|
|
43
52
|
src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent.py
|
|
44
53
|
src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_artifact.py
|
|
54
|
+
src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_computer_session.py
|
|
45
55
|
src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_run.py
|
|
46
56
|
src/runta/_internal/openapi/api/cloud_agents/delete_cloud_agent.py
|
|
47
57
|
src/runta/_internal/openapi/api/cloud_agents/delete_cloud_agent_artifact.py
|
|
@@ -81,6 +91,8 @@ src/runta/_internal/openapi/api/git_hub/replace_git_hub_runtime_bindings.py
|
|
|
81
91
|
src/runta/_internal/openapi/api/health/__init__.py
|
|
82
92
|
src/runta/_internal/openapi/api/health/head_healthz.py
|
|
83
93
|
src/runta/_internal/openapi/api/health/healthz.py
|
|
94
|
+
src/runta/_internal/openapi/api/identity/__init__.py
|
|
95
|
+
src/runta/_internal/openapi/api/identity/get_me.py
|
|
84
96
|
src/runta/_internal/openapi/api/managed_model_providers/__init__.py
|
|
85
97
|
src/runta/_internal/openapi/api/managed_model_providers/list_managed_model_providers.py
|
|
86
98
|
src/runta/_internal/openapi/api/managed_model_providers/update_managed_model_provider.py
|
|
@@ -134,17 +146,25 @@ src/runta/_internal/openapi/models/checkpoint_runtime_restore_request.py
|
|
|
134
146
|
src/runta/_internal/openapi/models/checkpoint_source_runtime.py
|
|
135
147
|
src/runta/_internal/openapi/models/cloud_agent.py
|
|
136
148
|
src/runta/_internal/openapi/models/cloud_agent_artifact.py
|
|
149
|
+
src/runta/_internal/openapi/models/cloud_agent_computer_session.py
|
|
150
|
+
src/runta/_internal/openapi/models/cloud_agent_computer_session_channels.py
|
|
137
151
|
src/runta/_internal/openapi/models/cloud_agent_event.py
|
|
138
152
|
src/runta/_internal/openapi/models/cloud_agent_harness_request.py
|
|
139
153
|
src/runta/_internal/openapi/models/cloud_agent_latest_reply.py
|
|
140
154
|
src/runta/_internal/openapi/models/cloud_agent_list.py
|
|
155
|
+
src/runta/_internal/openapi/models/cloud_agent_prompt_image.py
|
|
156
|
+
src/runta/_internal/openapi/models/cloud_agent_prompt_image_mime_type.py
|
|
157
|
+
src/runta/_internal/openapi/models/cloud_agent_prompt_image_type.py
|
|
141
158
|
src/runta/_internal/openapi/models/cloud_agent_run.py
|
|
142
159
|
src/runta/_internal/openapi/models/cloud_agent_runtime_reference.py
|
|
143
160
|
src/runta/_internal/openapi/models/cloud_agent_runtime_reference_type.py
|
|
144
161
|
src/runta/_internal/openapi/models/cloud_agent_session_events.py
|
|
162
|
+
src/runta/_internal/openapi/models/cloud_agent_vnc_session_channel.py
|
|
145
163
|
src/runta/_internal/openapi/models/cloud_agent_workspace_delete_request.py
|
|
146
164
|
src/runta/_internal/openapi/models/cloud_agent_workspace_write_request.py
|
|
147
165
|
src/runta/_internal/openapi/models/cloud_agent_workspace_write_result.py
|
|
166
|
+
src/runta/_internal/openapi/models/cold_restore_resource_requests.py
|
|
167
|
+
src/runta/_internal/openapi/models/cold_restore_resources.py
|
|
148
168
|
src/runta/_internal/openapi/models/create_checkpoint_request.py
|
|
149
169
|
src/runta/_internal/openapi/models/create_checkpoint_request_kind.py
|
|
150
170
|
src/runta/_internal/openapi/models/create_cloud_agent_artifact_request.py
|
|
@@ -298,6 +318,8 @@ src/runta/_internal/openapi/models/token_savings_list_response.py
|
|
|
298
318
|
src/runta/_internal/openapi/models/token_savings_summary.py
|
|
299
319
|
src/runta/_internal/openapi/models/update_cloud_agent_request.py
|
|
300
320
|
src/runta/_internal/openapi/models/update_managed_model_provider_request.py
|
|
321
|
+
src/runta/_internal/openapi/models/user_profile.py
|
|
322
|
+
src/runta/_internal/openapi/models/user_profile_response.py
|
|
301
323
|
src/runta/_internal/openapi/models/vnc_credential.py
|
|
302
324
|
src/runta/_internal/openapi/models/vnc_credential_connection.py
|
|
303
325
|
src/runta/_internal/openapi/models/vnc_credential_connection_security_type.py
|
|
@@ -306,7 +328,19 @@ src/runta/_internal/openapi/models/vnc_gateway_connection.py
|
|
|
306
328
|
src/runta/_internal/openapi/models/vnc_gateway_connection_security_type.py
|
|
307
329
|
src/runta/_internal/openapi/models/vnc_gateway_connection_username.py
|
|
308
330
|
tests/test_api_reference_generation.py
|
|
331
|
+
tests/test_async_file_io.py
|
|
332
|
+
tests/test_async_http_transport.py
|
|
333
|
+
tests/test_checkpoint_metadata.py
|
|
309
334
|
tests/test_config_and_helpers.py
|
|
335
|
+
tests/test_connection_pool.py
|
|
336
|
+
tests/test_delete_runtime_retry.py
|
|
337
|
+
tests/test_directory_upload.py
|
|
338
|
+
tests/test_directory_upload_concurrency.py
|
|
339
|
+
tests/test_execution.py
|
|
340
|
+
tests/test_execution_result_stream.py
|
|
341
|
+
tests/test_fetch_openapi.py
|
|
342
|
+
tests/test_get_runtime_retry.py
|
|
343
|
+
tests/test_harbor_directory_download.py
|
|
310
344
|
tests/test_harbor_e2e.py
|
|
311
345
|
tests/test_harbor_integration.py
|
|
312
346
|
tests/test_harbor_runta_environment.py
|
|
@@ -314,5 +348,12 @@ tests/test_live.py
|
|
|
314
348
|
tests/test_openai_extra_packaging.py
|
|
315
349
|
tests/test_openapi_contract.py
|
|
316
350
|
tests/test_openapi_transport.py
|
|
351
|
+
tests/test_read_retries.py
|
|
317
352
|
tests/test_rest_deployment.py
|
|
318
|
-
tests/
|
|
353
|
+
tests/test_rest_tls.py
|
|
354
|
+
tests/test_retry_policy.py
|
|
355
|
+
tests/test_runtime_readiness.py
|
|
356
|
+
tests/test_streaming_transfer.py
|
|
357
|
+
tests/test_user_agent.py
|
|
358
|
+
tests/test_websocket_tls.py
|
|
359
|
+
tests/test_websocket_tls_resumption.py
|