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.
Files changed (362) hide show
  1. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/PKG-INFO +66 -8
  2. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/README.md +62 -7
  3. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/harbor/runta_harbor/environment.py +17 -14
  4. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/pyproject.toml +5 -2
  5. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/PKG-INFO +66 -8
  6. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/SOURCES.txt +42 -1
  7. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/requires.txt +5 -0
  8. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/__init__.py +162 -111
  9. runta_sdk-0.2.2/src/runta/_internal/async_file_io.py +92 -0
  10. runta_sdk-0.2.2/src/runta/_internal/async_http.py +671 -0
  11. runta_sdk-0.2.2/src/runta/_internal/byte_budget.py +16 -0
  12. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/config.py +5 -1
  13. runta_sdk-0.2.2/src/runta/_internal/execution.py +780 -0
  14. runta_sdk-0.2.2/src/runta/_internal/execution.sh +285 -0
  15. runta_sdk-0.2.2/src/runta/_internal/http_limits.py +13 -0
  16. runta_sdk-0.2.2/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_computer_session.py +215 -0
  17. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/list_organization_events.py +60 -0
  18. runta_sdk-0.2.2/src/runta/_internal/openapi/api/identity/get_me.py +172 -0
  19. runta_sdk-0.2.2/src/runta/_internal/openapi/api/ssh_keys/__init__.py +1 -0
  20. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/__init__.py +20 -0
  21. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/allowlist_egress_policy.py +1 -1
  22. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint.py +30 -1
  23. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_runtime_restore_request.py +70 -19
  24. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_computer_session.py +78 -0
  25. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_computer_session_channels.py +50 -0
  26. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_prompt_image.py +61 -0
  27. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_prompt_image_mime_type.py +11 -0
  28. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_prompt_image_type.py +8 -0
  29. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cloud_agent_vnc_session_channel.py +50 -0
  30. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cold_restore_resource_requests.py +52 -0
  31. runta_sdk-0.2.2/src/runta/_internal/openapi/models/cold_restore_resources.py +71 -0
  32. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_checkpoint_request.py +3 -2
  33. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_checkpoint_request_kind.py +2 -0
  34. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_cloud_agent_request.py +45 -0
  35. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_cloud_agent_run_request.py +28 -1
  36. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denylist_egress_policy.py +1 -1
  37. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/fresh_runtime_create_request.py +26 -0
  38. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_request.py +28 -1
  39. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime.py +23 -0
  40. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image.py +10 -1
  41. runta_sdk-0.2.2/src/runta/_internal/openapi/models/user_profile.py +65 -0
  42. runta_sdk-0.2.2/src/runta/_internal/openapi/models/user_profile_response.py +49 -0
  43. runta_sdk-0.2.2/src/runta/_internal/rest_tls.py +12 -0
  44. runta_sdk-0.2.2/src/runta/_internal/retry.py +241 -0
  45. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/streaming_transfer.py +429 -98
  46. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/sync_http.py +217 -47
  47. runta_sdk-0.2.2/src/runta/_internal/tls_resumption.py +151 -0
  48. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/transport.py +28 -4
  49. runta_sdk-0.2.2/src/runta/_internal/user_agent.py +26 -0
  50. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_api_reference_generation.py +1 -1
  51. runta_sdk-0.2.2/tests/test_async_file_io.py +612 -0
  52. runta_sdk-0.2.2/tests/test_async_http_transport.py +383 -0
  53. runta_sdk-0.2.2/tests/test_checkpoint_metadata.py +137 -0
  54. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_config_and_helpers.py +33 -44
  55. runta_sdk-0.2.2/tests/test_connection_pool.py +98 -0
  56. runta_sdk-0.2.2/tests/test_delete_runtime_retry.py +286 -0
  57. runta_sdk-0.2.2/tests/test_directory_upload.py +151 -0
  58. runta_sdk-0.2.2/tests/test_directory_upload_concurrency.py +162 -0
  59. runta_sdk-0.2.2/tests/test_execution.py +1350 -0
  60. runta_sdk-0.2.2/tests/test_execution_result_stream.py +192 -0
  61. runta_sdk-0.2.2/tests/test_fetch_openapi.py +116 -0
  62. runta_sdk-0.2.2/tests/test_get_runtime_retry.py +265 -0
  63. runta_sdk-0.2.2/tests/test_harbor_directory_download.py +193 -0
  64. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_live.py +78 -18
  65. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_openapi_contract.py +2 -2
  66. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_openapi_transport.py +283 -3
  67. runta_sdk-0.2.2/tests/test_read_retries.py +336 -0
  68. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_rest_deployment.py +1 -1
  69. runta_sdk-0.2.2/tests/test_rest_tls.py +376 -0
  70. runta_sdk-0.2.2/tests/test_retry_policy.py +116 -0
  71. runta_sdk-0.2.2/tests/test_runtime_readiness.py +133 -0
  72. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_streaming_transfer.py +258 -1
  73. runta_sdk-0.2.2/tests/test_user_agent.py +76 -0
  74. runta_sdk-0.2.2/tests/test_websocket_tls.py +106 -0
  75. runta_sdk-0.2.2/tests/test_websocket_tls_resumption.py +390 -0
  76. runta_sdk-0.2.0/src/runta/_internal/async_http.py +0 -400
  77. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/harbor/runta_harbor/__init__.py +0 -0
  78. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/harbor/runta_harbor/py.typed +0 -0
  79. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/__init__.py +0 -0
  80. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/durable/__init__.py +0 -0
  81. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/durable/runner.py +0 -0
  82. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/durable/store.py +0 -0
  83. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/py.typed +0 -0
  84. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/integrations/openai-agents-runta/src/agents_runta/sandbox.py +0 -0
  85. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/dependency_links.txt +0 -0
  86. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/runta_sdk.egg-info/top_level.txt +0 -0
  87. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/setup.cfg +0 -0
  88. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/__init__.py +0 -0
  89. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/helpers.py +0 -0
  90. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/__init__.py +0 -0
  91. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/__init__.py +0 -0
  92. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/__init__.py +0 -0
  93. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/begin_device_authorization.py +0 -0
  94. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/exchange_device_token.py +0 -0
  95. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/auth/revoke_current_token.py +0 -0
  96. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/__init__.py +0 -0
  97. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/create_checkpoint.py +0 -0
  98. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/delete_checkpoint.py +0 -0
  99. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/get_checkpoint.py +0 -0
  100. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/checkpoints/list_checkpoints.py +0 -0
  101. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/__init__.py +0 -0
  102. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/cancel_cloud_agent_run.py +0 -0
  103. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent.py +0 -0
  104. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_artifact.py +0 -0
  105. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/create_cloud_agent_run.py +0 -0
  106. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/delete_cloud_agent.py +0 -0
  107. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/delete_cloud_agent_artifact.py +0 -0
  108. {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
  109. {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
  110. {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
  111. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/get_cloud_agent.py +0 -0
  112. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/get_cloud_agent_artifact.py +0 -0
  113. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/get_cloud_agent_run.py +0 -0
  114. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/list_cloud_agent_artifacts.py +0 -0
  115. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/list_cloud_agent_runs.py +0 -0
  116. {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
  117. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/list_cloud_agents.py +0 -0
  118. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/resume_cloud_agent_run.py +0 -0
  119. {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
  120. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/cloud_agents/update_cloud_agent.py +0 -0
  121. {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
  122. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/__init__.py +0 -0
  123. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/get_organization_event.py +0 -0
  124. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/get_organization_token_analysis.py +0 -0
  125. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/list_organization_token_analysis.py +0 -0
  126. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/events/list_organization_token_savings.py +0 -0
  127. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/files/__init__.py +0 -0
  128. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/files/read_runtime_file.py +0 -0
  129. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/files/write_runtime_file.py +0 -0
  130. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/__init__.py +0 -0
  131. {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
  132. {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
  133. {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
  134. {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
  135. {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
  136. {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
  137. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/list_git_hub_branches.py +0 -0
  138. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/git_hub/list_git_hub_repositories.py +0 -0
  139. {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
  140. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/health/__init__.py +0 -0
  141. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/health/head_healthz.py +0 -0
  142. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/health/healthz.py +0 -0
  143. {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
  144. {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
  145. {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
  146. {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
  147. {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
  148. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/cancel_runtime_image_build.py +0 -0
  149. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/create_runtime.py +0 -0
  150. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/create_runtime_image_build.py +0 -0
  151. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/create_runtime_vnc_credential.py +0 -0
  152. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/delete_runtime.py +0 -0
  153. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/delete_runtime_image.py +0 -0
  154. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/disable_runtime_vnc.py +0 -0
  155. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/dismiss_runtime_image_build.py +0 -0
  156. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/enable_runtime_vnc.py +0 -0
  157. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/get_runtime.py +0 -0
  158. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/get_runtime_image_build.py +0 -0
  159. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtime_image_builds.py +0 -0
  160. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtime_images.py +0 -0
  161. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtime_vnc_credentials.py +0 -0
  162. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/list_runtimes.py +0 -0
  163. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/patch_runtime.py +0 -0
  164. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/pause_runtime.py +0 -0
  165. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/resume_runtime.py +0 -0
  166. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/revoke_runtime_vnc_credential.py +0 -0
  167. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/start_runtime.py +0 -0
  168. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/runtimes/stop_runtime.py +0 -0
  169. {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
  170. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/create_secret.py +0 -0
  171. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/delete_secret.py +0 -0
  172. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/get_secret.py +0 -0
  173. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/list_secrets.py +0 -0
  174. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/secrets/set_secret.py +0 -0
  175. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/attach_runtime_ssh_key.py +0 -0
  176. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/create_ssh_key.py +0 -0
  177. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/delete_ssh_key.py +0 -0
  178. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/detach_runtime_ssh_key.py +0 -0
  179. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/get_ssh_host_key.py +0 -0
  180. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/list_runtime_ssh_keys.py +0 -0
  181. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/api/ssh_keys/list_ssh_keys.py +0 -0
  182. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/client.py +0 -0
  183. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/errors.py +0 -0
  184. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/allowlist_egress_policy_mode.py +0 -0
  185. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/approved_git_hub_authorization.py +0 -0
  186. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/approved_git_hub_authorization_status.py +0 -0
  187. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/begin_device_authorization_request.py +0 -0
  188. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/begin_device_authorization_request_client_id.py +0 -0
  189. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_pagination.py +0 -0
  190. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_response.py +0 -0
  191. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/checkpoint_source_runtime.py +0 -0
  192. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent.py +0 -0
  193. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_artifact.py +0 -0
  194. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_event.py +0 -0
  195. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_harness_request.py +0 -0
  196. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_latest_reply.py +0 -0
  197. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_list.py +0 -0
  198. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_run.py +0 -0
  199. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_runtime_reference.py +0 -0
  200. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_runtime_reference_type.py +0 -0
  201. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_session_events.py +0 -0
  202. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_workspace_delete_request.py +0 -0
  203. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_workspace_write_request.py +0 -0
  204. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/cloud_agent_workspace_write_result.py +0 -0
  205. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_cloud_agent_artifact_request.py +0 -0
  206. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_git_hub_authorization_request_request.py +0 -0
  207. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_git_hub_runtime_binding_request.py +0 -0
  208. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_llm_token_saving_policy.py +0 -0
  209. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_image_build_request.py +0 -0
  210. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_image_build_request_architecture.py +0 -0
  211. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_image_selection.py +0 -0
  212. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_resource_requests.py +0 -0
  213. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_runtime_resources.py +0 -0
  214. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_secret_request.py +0 -0
  215. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_ssh_key_request.py +0 -0
  216. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_vnc_credential_request.py +0 -0
  217. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/create_vnc_credential_response.py +0 -0
  218. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denied_git_hub_authorization.py +0 -0
  219. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denied_git_hub_authorization_status.py +0 -0
  220. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/denylist_egress_policy_mode.py +0 -0
  221. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_authorization_start.py +0 -0
  222. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_authorization_start_response.py +0 -0
  223. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_token_error.py +0 -0
  224. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/device_token_response.py +0 -0
  225. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/disabled_idle_policy.py +0 -0
  226. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/disabled_idle_policy_mode.py +0 -0
  227. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/empty_object.py +0 -0
  228. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/empty_response.py +0 -0
  229. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/error_body.py +0 -0
  230. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/error_envelope.py +0 -0
  231. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event.py +0 -0
  232. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event_list.py +0 -0
  233. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event_list_response.py +0 -0
  234. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/event_response.py +0 -0
  235. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/exchange_device_token_request.py +0 -0
  236. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/expired_git_hub_authorization.py +0 -0
  237. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/expired_git_hub_authorization_status.py +0 -0
  238. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/fresh_runtime_create_request_environment_variables.py +0 -0
  239. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_decision_metadata.py +0 -0
  240. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request.py +0 -0
  241. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request_list.py +0 -0
  242. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request_list_response.py +0 -0
  243. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_authorization_request_response.py +0 -0
  244. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_branch.py +0 -0
  245. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_branch_list.py +0 -0
  246. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_branch_list_response.py +0 -0
  247. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_installation.py +0 -0
  248. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_repository.py +0 -0
  249. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_repository_list.py +0 -0
  250. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_repository_list_response.py +0 -0
  251. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding.py +0 -0
  252. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding_list.py +0 -0
  253. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding_list_response.py +0 -0
  254. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/git_hub_runtime_binding_response.py +0 -0
  255. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/installed_git_hub_authorization.py +0 -0
  256. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/installed_git_hub_authorization_status.py +0 -0
  257. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_checkpoints_response.py +0 -0
  258. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_runtime_image_builds_response.py +0 -0
  259. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_runtime_images_response.py +0 -0
  260. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_runtimes_response.py +0 -0
  261. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_secrets_response.py +0 -0
  262. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_ssh_keys_response.py +0 -0
  263. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/list_vnc_credentials_response.py +0 -0
  264. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/llm_token_saving_policy.py +0 -0
  265. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider.py +0 -0
  266. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider_list.py +0 -0
  267. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider_reference.py +0 -0
  268. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/managed_model_provider_reference_type.py +0 -0
  269. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_llm_token_saving_policy.py +0 -0
  270. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_request_environment_variables.py +0 -0
  271. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_resource_requests.py +0 -0
  272. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/patch_runtime_resources.py +0 -0
  273. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/pending_git_hub_authorization.py +0 -0
  274. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/pending_git_hub_authorization_status.py +0 -0
  275. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_checkpoint_state.py +0 -0
  276. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_error_code.py +0 -0
  277. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_ingress_protocol.py +0 -0
  278. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_ingress_spec.py +0 -0
  279. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/public_runtime_status.py +0 -0
  280. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/replace_git_hub_runtime_bindings_request.py +0 -0
  281. {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
  282. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_desired_status.py +0 -0
  283. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_environment_variables.py +0 -0
  284. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_architectures_item.py +0 -0
  285. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build.py +0 -0
  286. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_architecture.py +0 -0
  287. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_attempt.py +0 -0
  288. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_attempt_outcome.py +0 -0
  289. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_response.py +0 -0
  290. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_build_status.py +0 -0
  291. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_disk_capability.py +0 -0
  292. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_model_provider.py +0 -0
  293. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_protocol_binding.py +0 -0
  294. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_recommended_resources.py +0 -0
  295. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_subscription_option.py +0 -0
  296. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_image_web_ui.py +0 -0
  297. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_pagination.py +0 -0
  298. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_repository_selection.py +0 -0
  299. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resource_current.py +0 -0
  300. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resource_limits.py +0 -0
  301. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resource_requests.py +0 -0
  302. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_resources.py +0 -0
  303. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_response.py +0 -0
  304. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_secret_configuration.py +0 -0
  305. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_file_entry.py +0 -0
  306. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_file_kind.py +0 -0
  307. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_operation_kind.py +0 -0
  308. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_operation_request.py +0 -0
  309. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_operation_result.py +0 -0
  310. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_port.py +0 -0
  311. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/runtime_workspace_search_match.py +0 -0
  312. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret.py +0 -0
  313. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_egress_injection.py +0 -0
  314. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_environment_injection.py +0 -0
  315. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_file_injection.py +0 -0
  316. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_injection_action.py +0 -0
  317. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/secret_response.py +0 -0
  318. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/set_secret_request.py +0 -0
  319. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_host_key.py +0 -0
  320. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_host_key_response.py +0 -0
  321. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_key.py +0 -0
  322. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/ssh_key_response.py +0 -0
  323. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_and_wakeup_idle_policy.py +0 -0
  324. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_and_wakeup_idle_policy_mode.py +0 -0
  325. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_only_idle_policy.py +0 -0
  326. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/suspend_only_idle_policy_mode.py +0 -0
  327. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_detail.py +0 -0
  328. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_detail_response.py +0 -0
  329. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding.py +0 -0
  330. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding_confidence.py +0 -0
  331. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding_kind.py +0 -0
  332. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_finding_severity.py +0 -0
  333. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue.py +0 -0
  334. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue_confidence.py +0 -0
  335. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue_kind.py +0 -0
  336. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_issue_severity.py +0 -0
  337. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_list.py +0 -0
  338. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_list_response.py +0 -0
  339. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_summary.py +0 -0
  340. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_analysis_tool_call.py +0 -0
  341. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_saving_event.py +0 -0
  342. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_saving_method.py +0 -0
  343. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_saving_method_method.py +0 -0
  344. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_savings_list.py +0 -0
  345. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_savings_list_response.py +0 -0
  346. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/token_savings_summary.py +0 -0
  347. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/update_cloud_agent_request.py +0 -0
  348. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/update_managed_model_provider_request.py +0 -0
  349. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential.py +0 -0
  350. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential_connection.py +0 -0
  351. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential_connection_security_type.py +0 -0
  352. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_credential_response.py +0 -0
  353. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_gateway_connection.py +0 -0
  354. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_gateway_connection_security_type.py +0 -0
  355. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/models/vnc_gateway_connection_username.py +0 -0
  356. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/openapi/types.py +0 -0
  357. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/_internal/pagination.py +0 -0
  358. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/src/runta/py.typed +0 -0
  359. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_harbor_e2e.py +0 -0
  360. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_harbor_integration.py +0 -0
  361. {runta_sdk-0.2.0 → runta_sdk-0.2.2}/tests/test_harbor_runta_environment.py +0 -0
  362. {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.0
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/crates/runta-openapi/specs/openapi.yaml` and is used by the SDK contract tests.
133
- CI refreshes this file from the latest successful `runta` OpenAPI contract
134
- artifact before running tests. If the artifact is unavailable, it falls back to
135
- the `integration` branch raw YAML and then to the checked-in contract.
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
- cargo make openapi
142
- cp crates/runta-openapi/specs/openapi.yaml ~/RuntaPythonSDK/contracts/runta-api.openapi.yaml
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 latest published contract directly:
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/crates/runta-openapi/specs/openapi.yaml` and is used by the SDK contract tests.
108
- CI refreshes this file from the latest successful `runta` OpenAPI contract
109
- artifact before running tests. If the artifact is unavailable, it falls back to
110
- the `integration` branch raw YAML and then to the checked-in contract.
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
- cargo make openapi
117
- cp crates/runta-openapi/specs/openapi.yaml ~/RuntaPythonSDK/contracts/runta-api.openapi.yaml
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 latest published contract directly:
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
- archive_path = Path(tmp_dir) / "download.tar.gz"
948
- await self._runtime_download_file(archive_name, archive_path)
949
- with tarfile.open(archive_path, "r:gz") as archive:
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.0"
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.0
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/crates/runta-openapi/specs/openapi.yaml` and is used by the SDK contract tests.
133
- CI refreshes this file from the latest successful `runta` OpenAPI contract
134
- artifact before running tests. If the artifact is unavailable, it falls back to
135
- the `integration` branch raw YAML and then to the checked-in contract.
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
- cargo make openapi
142
- cp crates/runta-openapi/specs/openapi.yaml ~/RuntaPythonSDK/contracts/runta-api.openapi.yaml
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 latest published contract directly:
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/test_streaming_transfer.py
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
@@ -1,7 +1,12 @@
1
1
  attrs>=22.2.0
2
2
  httpx>=0.27
3
+ aiohttp<3.15,>=3.14.3
4
+ certifi>=2024.2.2
3
5
  websockets>=13
4
6
 
7
+ [:python_version < "3.11"]
8
+ tomli>=2.0
9
+
5
10
  [dev]
6
11
  griffe>=1.0
7
12
  mkdocs-material