runloop-api-client 0.63.0__tar.gz → 0.64.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. runloop_api_client-0.64.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/CHANGELOG.md +10 -0
  3. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/PKG-INFO +1 -1
  4. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/api.md +2 -0
  5. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/pyproject.toml +1 -1
  6. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/devboxes/executions.py +126 -0
  8. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/repositories.py +97 -8
  9. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/__init__.py +1 -0
  10. runloop_api_client-0.64.0/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +18 -0
  11. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/devboxes/test_executions.py +116 -0
  12. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/test_repositories.py +126 -34
  13. runloop_api_client-0.63.0/.release-please-manifest.json +0 -3
  14. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/.gitignore +0 -0
  15. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/CONTRIBUTING.md +0 -0
  16. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/LICENSE +0 -0
  17. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/README.md +0 -0
  18. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/SECURITY.md +0 -0
  19. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/bin/check-release-environment +0 -0
  20. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/bin/publish-pypi +0 -0
  21. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/examples/.keep +0 -0
  22. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/release-please-config.json +0 -0
  23. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/requirements-dev.lock +0 -0
  24. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop/lib/.keep +0 -0
  25. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/__init__.py +0 -0
  26. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_base_client.py +0 -0
  27. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_client.py +0 -0
  28. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_compat.py +0 -0
  29. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_constants.py +0 -0
  30. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_exceptions.py +0 -0
  31. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_files.py +0 -0
  32. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_models.py +0 -0
  33. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_qs.py +0 -0
  34. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_resource.py +0 -0
  35. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_response.py +0 -0
  36. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_streaming.py +0 -0
  37. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_types.py +0 -0
  38. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  39. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_compat.py +0 -0
  40. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
  41. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  42. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  43. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  44. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  45. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  46. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  47. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  48. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  49. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  50. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/lib/.keep +0 -0
  51. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/lib/polling.py +0 -0
  52. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  53. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/pagination.py +0 -0
  54. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/py.typed +0 -0
  55. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/__init__.py +0 -0
  56. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  57. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  58. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  59. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  60. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  61. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  62. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  63. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  64. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  65. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  66. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/objects.py +0 -0
  67. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  68. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  69. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
  70. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  71. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/resources/secrets.py +0 -0
  72. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/__init__.py +0 -0
  73. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  74. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  75. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  76. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  77. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  78. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  79. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  80. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  81. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  82. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  83. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  84. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
  85. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  86. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  87. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  88. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
  89. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  90. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  91. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
  92. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  93. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  94. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  95. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  96. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  97. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  98. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  99. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  100. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  101. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  102. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
  103. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  104. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  105. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  106. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  107. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  108. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  109. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  110. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  111. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  112. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  113. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  114. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  115. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  116. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  117. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  118. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  119. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
  120. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  121. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  122. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  123. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  124. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  125. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  126. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  127. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  128. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  129. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  130. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  131. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  132. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  133. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  134. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  135. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  136. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  137. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
  138. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  139. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
  140. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
  141. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
  142. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  143. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/input_context.py +0 -0
  144. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  145. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  146. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
  147. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/object_create_params.py +0 -0
  148. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/object_download_params.py +0 -0
  149. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
  150. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/object_list_params.py +0 -0
  151. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
  152. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/object_list_view.py +0 -0
  153. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/object_view.py +0 -0
  154. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  155. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  156. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  157. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
  158. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  159. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  160. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  161. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  162. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  163. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  164. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  165. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  166. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  167. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  168. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  169. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  170. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  171. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  172. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  173. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  174. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  175. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  176. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  177. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  178. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  179. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  180. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  181. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  182. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  183. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  184. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  185. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  186. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  187. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  188. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  189. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  190. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  191. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  192. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  193. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
  194. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  195. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  196. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/secret_view.py +0 -0
  197. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  198. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  199. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/agent_mount_parameters.py +0 -0
  200. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  201. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  202. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/mount.py +0 -0
  203. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/object_mount_parameters.py +0 -0
  204. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared/run_profile.py +0 -0
  205. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  206. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  207. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/agent_mount_parameters.py +0 -0
  208. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  209. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  210. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/mount.py +0 -0
  211. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/object_mount_parameters.py +0 -0
  212. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/src/runloop_api_client/types/shared_params/run_profile.py +0 -0
  213. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/__init__.py +0 -0
  214. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/__init__.py +0 -0
  215. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  216. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  217. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/devboxes/__init__.py +0 -0
  218. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  219. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  220. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  221. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  222. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/scenarios/__init__.py +0 -0
  223. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  224. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  225. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/test_benchmarks.py +0 -0
  226. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/test_blueprints.py +0 -0
  227. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/test_devboxes.py +0 -0
  228. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/test_objects.py +0 -0
  229. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/test_scenarios.py +0 -0
  230. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/api_resources/test_secrets.py +0 -0
  231. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/conftest.py +0 -0
  232. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/sample_file.txt +0 -0
  233. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/README.md +0 -0
  234. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/__init__.py +0 -0
  235. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/conftest.py +0 -0
  236. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/test_blueprints.py +0 -0
  237. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/test_devboxes.py +0 -0
  238. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/test_executions.py +0 -0
  239. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
  240. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/test_snapshots.py +0 -0
  241. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/smoketests/utils.py +0 -0
  242. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_client.py +0 -0
  243. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_deepcopy.py +0 -0
  244. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_extract_files.py +0 -0
  245. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_files.py +0 -0
  246. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_models.py +0 -0
  247. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_polling.py +0 -0
  248. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_qs.py +0 -0
  249. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_required_args.py +0 -0
  250. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_response.py +0 -0
  251. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_streaming.py +0 -0
  252. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_transform.py +0 -0
  253. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_utils/test_datetime_parse.py +0 -0
  254. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_utils/test_proxy.py +0 -0
  255. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/test_utils/test_typing.py +0 -0
  256. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/tests/utils.py +0 -0
  257. {runloop_api_client-0.63.0 → runloop_api_client-0.64.0}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.64.0"
3
+ }
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.64.0 (2025-10-06)
4
+
5
+ Full Changelog: [v0.63.0...v0.64.0](https://github.com/runloopai/api-client-python/compare/v0.63.0...v0.64.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([b13e49f](https://github.com/runloopai/api-client-python/commit/b13e49f006c45d3e10c0383825fbe2054b31b351))
10
+ * **api:** api update ([736c122](https://github.com/runloopai/api-client-python/commit/736c122c5a350ba081eb495786e94ad6b999b121))
11
+ * **api:** api update ([c4dbcf3](https://github.com/runloopai/api-client-python/commit/c4dbcf33822da8045def9617948e7b30f617fe51))
12
+
3
13
  ## 0.63.0 (2025-10-02)
4
14
 
5
15
  Full Changelog: [v0.62.0...v0.63.0](https://github.com/runloopai/api-client-python/compare/v0.62.0...v0.63.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.63.0
3
+ Version: 0.64.0
4
4
  Summary: The official Python library for the runloop API
5
5
  Project-URL: Homepage, https://github.com/runloopai/api-client-python
6
6
  Project-URL: Repository, https://github.com/runloopai/api-client-python
@@ -198,6 +198,7 @@ Methods:
198
198
  - <code title="post /v1/devboxes/{id}/execute_async">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_async</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_async_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
199
199
  - <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
200
200
  - <code title="post /v1/devboxes/{devbox_id}/executions/{execution_id}/kill">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">kill</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_kill_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
201
+ - <code title="post /v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">send_std_in</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_send_std_in_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_async_execution_detail_view.py">DevboxAsyncExecutionDetailView</a></code>
201
202
  - <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stderr_updates">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">stream_stderr_updates</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/execution_update_chunk.py">ExecutionUpdateChunk</a></code>
202
203
  - <code title="get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stdout_updates">client.devboxes.executions.<a href="./src/runloop_api_client/resources/devboxes/executions.py">stream_stdout_updates</a>(execution_id, \*, devbox_id, \*\*<a href="src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devboxes/execution_update_chunk.py">ExecutionUpdateChunk</a></code>
203
204
 
@@ -312,6 +313,7 @@ Methods:
312
313
  - <code title="post /v1/repositories/{id}/inspect">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">inspect</a>(id, \*\*<a href="src/runloop_api_client/types/repository_inspect_params.py">params</a>) -> <a href="./src/runloop_api_client/types/repository_inspection_details.py">RepositoryInspectionDetails</a></code>
313
314
  - <code title="get /v1/repositories/{id}/inspections">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">list_inspections</a>(id) -> <a href="./src/runloop_api_client/types/repository_inspection_list_view.py">RepositoryInspectionListView</a></code>
314
315
  - <code title="post /v1/repositories/{id}/refresh">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">refresh</a>(id, \*\*<a href="src/runloop_api_client/types/repository_refresh_params.py">params</a>) -> object</code>
316
+ - <code title="get /v1/repositories/inspections/{id}">client.repositories.<a href="./src/runloop_api_client/resources/repositories.py">retrieve_inspection</a>(id) -> <a href="./src/runloop_api_client/types/repository_inspection_details.py">RepositoryInspectionDetails</a></code>
315
317
 
316
318
  # Secrets
317
319
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.63.0"
3
+ version = "0.64.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "0.63.0" # x-release-please-version
4
+ __version__ = "0.64.0" # x-release-please-version
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import typing_extensions
6
6
  from typing import Optional, cast
7
+ from typing_extensions import Literal
7
8
 
8
9
  import httpx
9
10
 
@@ -25,6 +26,7 @@ from ..._base_client import make_request_options
25
26
  from ...types.devboxes import (
26
27
  execution_kill_params,
27
28
  execution_retrieve_params,
29
+ execution_send_std_in_params,
28
30
  execution_execute_sync_params,
29
31
  execution_execute_async_params,
30
32
  execution_stream_stderr_updates_params,
@@ -332,6 +334,62 @@ class ExecutionsResource(SyncAPIResource):
332
334
  cast_to=DevboxAsyncExecutionDetailView,
333
335
  )
334
336
 
337
+ def send_std_in(
338
+ self,
339
+ execution_id: str,
340
+ *,
341
+ devbox_id: str,
342
+ signal: Optional[Literal["EOF", "INTERRUPT"]] | Omit = omit,
343
+ text: Optional[str] | Omit = omit,
344
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
345
+ # The extra values given here take precedence over values defined on the client or passed to this method.
346
+ extra_headers: Headers | None = None,
347
+ extra_query: Query | None = None,
348
+ extra_body: Body | None = None,
349
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
350
+ idempotency_key: str | None = None,
351
+ ) -> DevboxAsyncExecutionDetailView:
352
+ """
353
+ Send content to the Std In of a running execution.
354
+
355
+ Args:
356
+ signal: Signal to send to std in of the running execution.
357
+
358
+ text: Text to send to std in of the running execution.
359
+
360
+ extra_headers: Send extra headers
361
+
362
+ extra_query: Add additional query parameters to the request
363
+
364
+ extra_body: Add additional JSON properties to the request
365
+
366
+ timeout: Override the client-level default timeout for this request, in seconds
367
+
368
+ idempotency_key: Specify a custom idempotency key for this request
369
+ """
370
+ if not devbox_id:
371
+ raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
372
+ if not execution_id:
373
+ raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
374
+ return self._post(
375
+ f"/v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in",
376
+ body=maybe_transform(
377
+ {
378
+ "signal": signal,
379
+ "text": text,
380
+ },
381
+ execution_send_std_in_params.ExecutionSendStdInParams,
382
+ ),
383
+ options=make_request_options(
384
+ extra_headers=extra_headers,
385
+ extra_query=extra_query,
386
+ extra_body=extra_body,
387
+ timeout=timeout,
388
+ idempotency_key=idempotency_key,
389
+ ),
390
+ cast_to=DevboxAsyncExecutionDetailView,
391
+ )
392
+
335
393
  def stream_stderr_updates(
336
394
  self,
337
395
  execution_id: str,
@@ -785,6 +843,62 @@ class AsyncExecutionsResource(AsyncAPIResource):
785
843
  cast_to=DevboxAsyncExecutionDetailView,
786
844
  )
787
845
 
846
+ async def send_std_in(
847
+ self,
848
+ execution_id: str,
849
+ *,
850
+ devbox_id: str,
851
+ signal: Optional[Literal["EOF", "INTERRUPT"]] | Omit = omit,
852
+ text: Optional[str] | Omit = omit,
853
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
854
+ # The extra values given here take precedence over values defined on the client or passed to this method.
855
+ extra_headers: Headers | None = None,
856
+ extra_query: Query | None = None,
857
+ extra_body: Body | None = None,
858
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
859
+ idempotency_key: str | None = None,
860
+ ) -> DevboxAsyncExecutionDetailView:
861
+ """
862
+ Send content to the Std In of a running execution.
863
+
864
+ Args:
865
+ signal: Signal to send to std in of the running execution.
866
+
867
+ text: Text to send to std in of the running execution.
868
+
869
+ extra_headers: Send extra headers
870
+
871
+ extra_query: Add additional query parameters to the request
872
+
873
+ extra_body: Add additional JSON properties to the request
874
+
875
+ timeout: Override the client-level default timeout for this request, in seconds
876
+
877
+ idempotency_key: Specify a custom idempotency key for this request
878
+ """
879
+ if not devbox_id:
880
+ raise ValueError(f"Expected a non-empty value for `devbox_id` but received {devbox_id!r}")
881
+ if not execution_id:
882
+ raise ValueError(f"Expected a non-empty value for `execution_id` but received {execution_id!r}")
883
+ return await self._post(
884
+ f"/v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in",
885
+ body=await async_maybe_transform(
886
+ {
887
+ "signal": signal,
888
+ "text": text,
889
+ },
890
+ execution_send_std_in_params.ExecutionSendStdInParams,
891
+ ),
892
+ options=make_request_options(
893
+ extra_headers=extra_headers,
894
+ extra_query=extra_query,
895
+ extra_body=extra_body,
896
+ timeout=timeout,
897
+ idempotency_key=idempotency_key,
898
+ ),
899
+ cast_to=DevboxAsyncExecutionDetailView,
900
+ )
901
+
788
902
  async def stream_stderr_updates(
789
903
  self,
790
904
  execution_id: str,
@@ -973,6 +1087,9 @@ class ExecutionsResourceWithRawResponse:
973
1087
  self.kill = to_raw_response_wrapper(
974
1088
  executions.kill,
975
1089
  )
1090
+ self.send_std_in = to_raw_response_wrapper(
1091
+ executions.send_std_in,
1092
+ )
976
1093
  self.stream_stdout_updates = to_raw_response_wrapper(
977
1094
  executions.stream_stdout_updates,
978
1095
  )
@@ -999,6 +1116,9 @@ class AsyncExecutionsResourceWithRawResponse:
999
1116
  self.kill = async_to_raw_response_wrapper(
1000
1117
  executions.kill,
1001
1118
  )
1119
+ self.send_std_in = async_to_raw_response_wrapper(
1120
+ executions.send_std_in,
1121
+ )
1002
1122
  self.stream_stdout_updates = async_to_raw_response_wrapper(
1003
1123
  executions.stream_stdout_updates,
1004
1124
  )
@@ -1025,6 +1145,9 @@ class ExecutionsResourceWithStreamingResponse:
1025
1145
  self.kill = to_streamed_response_wrapper(
1026
1146
  executions.kill,
1027
1147
  )
1148
+ self.send_std_in = to_streamed_response_wrapper(
1149
+ executions.send_std_in,
1150
+ )
1028
1151
  self.stream_stdout_updates = to_streamed_response_wrapper(
1029
1152
  executions.stream_stdout_updates,
1030
1153
  )
@@ -1051,6 +1174,9 @@ class AsyncExecutionsResourceWithStreamingResponse:
1051
1174
  self.kill = async_to_streamed_response_wrapper(
1052
1175
  executions.kill,
1053
1176
  )
1177
+ self.send_std_in = async_to_streamed_response_wrapper(
1178
+ executions.send_std_in,
1179
+ )
1054
1180
  self.stream_stdout_updates = async_to_streamed_response_wrapper(
1055
1181
  executions.stream_stdout_updates,
1056
1182
  )
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import typing_extensions
5
6
  from typing import Optional
6
7
 
7
8
  import httpx
@@ -321,6 +322,7 @@ class RepositoriesResource(SyncAPIResource):
321
322
  cast_to=RepositoryInspectionListView,
322
323
  )
323
324
 
325
+ @typing_extensions.deprecated("deprecated")
324
326
  def refresh(
325
327
  self,
326
328
  id: str,
@@ -375,6 +377,39 @@ class RepositoriesResource(SyncAPIResource):
375
377
  cast_to=object,
376
378
  )
377
379
 
380
+ def retrieve_inspection(
381
+ self,
382
+ id: str,
383
+ *,
384
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
385
+ # The extra values given here take precedence over values defined on the client or passed to this method.
386
+ extra_headers: Headers | None = None,
387
+ extra_query: Query | None = None,
388
+ extra_body: Body | None = None,
389
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
390
+ ) -> RepositoryInspectionDetails:
391
+ """
392
+ Get a repository inspection by id.
393
+
394
+ Args:
395
+ extra_headers: Send extra headers
396
+
397
+ extra_query: Add additional query parameters to the request
398
+
399
+ extra_body: Add additional JSON properties to the request
400
+
401
+ timeout: Override the client-level default timeout for this request, in seconds
402
+ """
403
+ if not id:
404
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
405
+ return self._get(
406
+ f"/v1/repositories/inspections/{id}",
407
+ options=make_request_options(
408
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
409
+ ),
410
+ cast_to=RepositoryInspectionDetails,
411
+ )
412
+
378
413
 
379
414
  class AsyncRepositoriesResource(AsyncAPIResource):
380
415
  @cached_property
@@ -666,6 +701,7 @@ class AsyncRepositoriesResource(AsyncAPIResource):
666
701
  cast_to=RepositoryInspectionListView,
667
702
  )
668
703
 
704
+ @typing_extensions.deprecated("deprecated")
669
705
  async def refresh(
670
706
  self,
671
707
  id: str,
@@ -720,6 +756,39 @@ class AsyncRepositoriesResource(AsyncAPIResource):
720
756
  cast_to=object,
721
757
  )
722
758
 
759
+ async def retrieve_inspection(
760
+ self,
761
+ id: str,
762
+ *,
763
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
764
+ # The extra values given here take precedence over values defined on the client or passed to this method.
765
+ extra_headers: Headers | None = None,
766
+ extra_query: Query | None = None,
767
+ extra_body: Body | None = None,
768
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
769
+ ) -> RepositoryInspectionDetails:
770
+ """
771
+ Get a repository inspection by id.
772
+
773
+ Args:
774
+ extra_headers: Send extra headers
775
+
776
+ extra_query: Add additional query parameters to the request
777
+
778
+ extra_body: Add additional JSON properties to the request
779
+
780
+ timeout: Override the client-level default timeout for this request, in seconds
781
+ """
782
+ if not id:
783
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
784
+ return await self._get(
785
+ f"/v1/repositories/inspections/{id}",
786
+ options=make_request_options(
787
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
788
+ ),
789
+ cast_to=RepositoryInspectionDetails,
790
+ )
791
+
723
792
 
724
793
  class RepositoriesResourceWithRawResponse:
725
794
  def __init__(self, repositories: RepositoriesResource) -> None:
@@ -743,8 +812,13 @@ class RepositoriesResourceWithRawResponse:
743
812
  self.list_inspections = to_raw_response_wrapper(
744
813
  repositories.list_inspections,
745
814
  )
746
- self.refresh = to_raw_response_wrapper(
747
- repositories.refresh,
815
+ self.refresh = ( # pyright: ignore[reportDeprecated]
816
+ to_raw_response_wrapper(
817
+ repositories.refresh, # pyright: ignore[reportDeprecated],
818
+ )
819
+ )
820
+ self.retrieve_inspection = to_raw_response_wrapper(
821
+ repositories.retrieve_inspection,
748
822
  )
749
823
 
750
824
 
@@ -770,8 +844,13 @@ class AsyncRepositoriesResourceWithRawResponse:
770
844
  self.list_inspections = async_to_raw_response_wrapper(
771
845
  repositories.list_inspections,
772
846
  )
773
- self.refresh = async_to_raw_response_wrapper(
774
- repositories.refresh,
847
+ self.refresh = ( # pyright: ignore[reportDeprecated]
848
+ async_to_raw_response_wrapper(
849
+ repositories.refresh, # pyright: ignore[reportDeprecated],
850
+ )
851
+ )
852
+ self.retrieve_inspection = async_to_raw_response_wrapper(
853
+ repositories.retrieve_inspection,
775
854
  )
776
855
 
777
856
 
@@ -797,8 +876,13 @@ class RepositoriesResourceWithStreamingResponse:
797
876
  self.list_inspections = to_streamed_response_wrapper(
798
877
  repositories.list_inspections,
799
878
  )
800
- self.refresh = to_streamed_response_wrapper(
801
- repositories.refresh,
879
+ self.refresh = ( # pyright: ignore[reportDeprecated]
880
+ to_streamed_response_wrapper(
881
+ repositories.refresh, # pyright: ignore[reportDeprecated],
882
+ )
883
+ )
884
+ self.retrieve_inspection = to_streamed_response_wrapper(
885
+ repositories.retrieve_inspection,
802
886
  )
803
887
 
804
888
 
@@ -824,6 +908,11 @@ class AsyncRepositoriesResourceWithStreamingResponse:
824
908
  self.list_inspections = async_to_streamed_response_wrapper(
825
909
  repositories.list_inspections,
826
910
  )
827
- self.refresh = async_to_streamed_response_wrapper(
828
- repositories.refresh,
911
+ self.refresh = ( # pyright: ignore[reportDeprecated]
912
+ async_to_streamed_response_wrapper(
913
+ repositories.refresh, # pyright: ignore[reportDeprecated],
914
+ )
915
+ )
916
+ self.retrieve_inspection = async_to_streamed_response_wrapper(
917
+ repositories.retrieve_inspection,
829
918
  )
@@ -13,6 +13,7 @@ from .execution_update_chunk import ExecutionUpdateChunk as ExecutionUpdateChunk
13
13
  from .disk_snapshot_list_params import DiskSnapshotListParams as DiskSnapshotListParams
14
14
  from .execution_retrieve_params import ExecutionRetrieveParams as ExecutionRetrieveParams
15
15
  from .disk_snapshot_update_params import DiskSnapshotUpdateParams as DiskSnapshotUpdateParams
16
+ from .execution_send_std_in_params import ExecutionSendStdInParams as ExecutionSendStdInParams
16
17
  from .execution_execute_sync_params import ExecutionExecuteSyncParams as ExecutionExecuteSyncParams
17
18
  from .execution_execute_async_params import ExecutionExecuteAsyncParams as ExecutionExecuteAsyncParams
18
19
  from .computer_mouse_interaction_params import ComputerMouseInteractionParams as ComputerMouseInteractionParams
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ __all__ = ["ExecutionSendStdInParams"]
9
+
10
+
11
+ class ExecutionSendStdInParams(TypedDict, total=False):
12
+ devbox_id: Required[str]
13
+
14
+ signal: Optional[Literal["EOF", "INTERRUPT"]]
15
+ """Signal to send to std in of the running execution."""
16
+
17
+ text: Optional[str]
18
+ """Text to send to std in of the running execution."""
@@ -247,6 +247,64 @@ class TestExecutions:
247
247
  devbox_id="devbox_id",
248
248
  )
249
249
 
250
+ @parametrize
251
+ def test_method_send_std_in(self, client: Runloop) -> None:
252
+ execution = client.devboxes.executions.send_std_in(
253
+ execution_id="execution_id",
254
+ devbox_id="devbox_id",
255
+ )
256
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
257
+
258
+ @parametrize
259
+ def test_method_send_std_in_with_all_params(self, client: Runloop) -> None:
260
+ execution = client.devboxes.executions.send_std_in(
261
+ execution_id="execution_id",
262
+ devbox_id="devbox_id",
263
+ signal="EOF",
264
+ text="text",
265
+ )
266
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
267
+
268
+ @parametrize
269
+ def test_raw_response_send_std_in(self, client: Runloop) -> None:
270
+ response = client.devboxes.executions.with_raw_response.send_std_in(
271
+ execution_id="execution_id",
272
+ devbox_id="devbox_id",
273
+ )
274
+
275
+ assert response.is_closed is True
276
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
277
+ execution = response.parse()
278
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
279
+
280
+ @parametrize
281
+ def test_streaming_response_send_std_in(self, client: Runloop) -> None:
282
+ with client.devboxes.executions.with_streaming_response.send_std_in(
283
+ execution_id="execution_id",
284
+ devbox_id="devbox_id",
285
+ ) as response:
286
+ assert not response.is_closed
287
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
288
+
289
+ execution = response.parse()
290
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
291
+
292
+ assert cast(Any, response.is_closed) is True
293
+
294
+ @parametrize
295
+ def test_path_params_send_std_in(self, client: Runloop) -> None:
296
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `devbox_id` but received ''"):
297
+ client.devboxes.executions.with_raw_response.send_std_in(
298
+ execution_id="execution_id",
299
+ devbox_id="",
300
+ )
301
+
302
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `execution_id` but received ''"):
303
+ client.devboxes.executions.with_raw_response.send_std_in(
304
+ execution_id="",
305
+ devbox_id="devbox_id",
306
+ )
307
+
250
308
  @parametrize
251
309
  def test_method_stream_stdout_updates(self, client: Runloop, respx_mock: MockRouter) -> None:
252
310
  respx_mock.get("/v1/devboxes/devbox_id/executions/execution_id/stream_stdout_updates").mock(
@@ -770,6 +828,64 @@ class TestAsyncExecutions:
770
828
  devbox_id="devbox_id",
771
829
  )
772
830
 
831
+ @parametrize
832
+ async def test_method_send_std_in(self, async_client: AsyncRunloop) -> None:
833
+ execution = await async_client.devboxes.executions.send_std_in(
834
+ execution_id="execution_id",
835
+ devbox_id="devbox_id",
836
+ )
837
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
838
+
839
+ @parametrize
840
+ async def test_method_send_std_in_with_all_params(self, async_client: AsyncRunloop) -> None:
841
+ execution = await async_client.devboxes.executions.send_std_in(
842
+ execution_id="execution_id",
843
+ devbox_id="devbox_id",
844
+ signal="EOF",
845
+ text="text",
846
+ )
847
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
848
+
849
+ @parametrize
850
+ async def test_raw_response_send_std_in(self, async_client: AsyncRunloop) -> None:
851
+ response = await async_client.devboxes.executions.with_raw_response.send_std_in(
852
+ execution_id="execution_id",
853
+ devbox_id="devbox_id",
854
+ )
855
+
856
+ assert response.is_closed is True
857
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
858
+ execution = await response.parse()
859
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
860
+
861
+ @parametrize
862
+ async def test_streaming_response_send_std_in(self, async_client: AsyncRunloop) -> None:
863
+ async with async_client.devboxes.executions.with_streaming_response.send_std_in(
864
+ execution_id="execution_id",
865
+ devbox_id="devbox_id",
866
+ ) as response:
867
+ assert not response.is_closed
868
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
869
+
870
+ execution = await response.parse()
871
+ assert_matches_type(DevboxAsyncExecutionDetailView, execution, path=["response"])
872
+
873
+ assert cast(Any, response.is_closed) is True
874
+
875
+ @parametrize
876
+ async def test_path_params_send_std_in(self, async_client: AsyncRunloop) -> None:
877
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `devbox_id` but received ''"):
878
+ await async_client.devboxes.executions.with_raw_response.send_std_in(
879
+ execution_id="execution_id",
880
+ devbox_id="",
881
+ )
882
+
883
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `execution_id` but received ''"):
884
+ await async_client.devboxes.executions.with_raw_response.send_std_in(
885
+ execution_id="",
886
+ devbox_id="devbox_id",
887
+ )
888
+
773
889
  @parametrize
774
890
  async def test_method_stream_stdout_updates(self, async_client: AsyncRunloop, respx_mock: MockRouter) -> None:
775
891
  respx_mock.get("/v1/devboxes/devbox_id/executions/execution_id/stream_stdout_updates").mock(