runloop_api_client 1.5.1__py3-none-any.whl

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 (261) hide show
  1. runloop_api_client/__init__.py +95 -0
  2. runloop_api_client/_base_client.py +2127 -0
  3. runloop_api_client/_client.py +866 -0
  4. runloop_api_client/_compat.py +219 -0
  5. runloop_api_client/_constants.py +23 -0
  6. runloop_api_client/_exceptions.py +108 -0
  7. runloop_api_client/_files.py +123 -0
  8. runloop_api_client/_models.py +872 -0
  9. runloop_api_client/_qs.py +150 -0
  10. runloop_api_client/_resource.py +43 -0
  11. runloop_api_client/_response.py +832 -0
  12. runloop_api_client/_streaming.py +518 -0
  13. runloop_api_client/_types.py +270 -0
  14. runloop_api_client/_utils/__init__.py +65 -0
  15. runloop_api_client/_utils/_compat.py +45 -0
  16. runloop_api_client/_utils/_datetime_parse.py +136 -0
  17. runloop_api_client/_utils/_json.py +35 -0
  18. runloop_api_client/_utils/_logs.py +25 -0
  19. runloop_api_client/_utils/_proxy.py +65 -0
  20. runloop_api_client/_utils/_reflection.py +42 -0
  21. runloop_api_client/_utils/_resources_proxy.py +24 -0
  22. runloop_api_client/_utils/_streams.py +12 -0
  23. runloop_api_client/_utils/_sync.py +58 -0
  24. runloop_api_client/_utils/_transform.py +457 -0
  25. runloop_api_client/_utils/_typing.py +156 -0
  26. runloop_api_client/_utils/_utils.py +421 -0
  27. runloop_api_client/_utils/_validation.py +31 -0
  28. runloop_api_client/_version.py +4 -0
  29. runloop_api_client/lib/.keep +4 -0
  30. runloop_api_client/lib/__init__.py +3 -0
  31. runloop_api_client/lib/_ignore.py +496 -0
  32. runloop_api_client/lib/context_loader.py +78 -0
  33. runloop_api_client/lib/polling.py +75 -0
  34. runloop_api_client/lib/polling_async.py +60 -0
  35. runloop_api_client/pagination.py +986 -0
  36. runloop_api_client/py.typed +0 -0
  37. runloop_api_client/resources/__init__.py +173 -0
  38. runloop_api_client/resources/agents.py +431 -0
  39. runloop_api_client/resources/benchmark_jobs.py +394 -0
  40. runloop_api_client/resources/benchmark_runs.py +595 -0
  41. runloop_api_client/resources/benchmarks.py +1085 -0
  42. runloop_api_client/resources/blueprints.py +1563 -0
  43. runloop_api_client/resources/devboxes/__init__.py +89 -0
  44. runloop_api_client/resources/devboxes/browsers.py +267 -0
  45. runloop_api_client/resources/devboxes/computers.py +648 -0
  46. runloop_api_client/resources/devboxes/devboxes.py +3784 -0
  47. runloop_api_client/resources/devboxes/disk_snapshots.py +602 -0
  48. runloop_api_client/resources/devboxes/executions.py +1212 -0
  49. runloop_api_client/resources/devboxes/logs.py +197 -0
  50. runloop_api_client/resources/gateway_configs.py +658 -0
  51. runloop_api_client/resources/network_policies.py +680 -0
  52. runloop_api_client/resources/objects.py +870 -0
  53. runloop_api_client/resources/repositories.py +918 -0
  54. runloop_api_client/resources/scenarios/__init__.py +47 -0
  55. runloop_api_client/resources/scenarios/runs.py +973 -0
  56. runloop_api_client/resources/scenarios/scenarios.py +1101 -0
  57. runloop_api_client/resources/scenarios/scorers.py +629 -0
  58. runloop_api_client/resources/secrets.py +500 -0
  59. runloop_api_client/sdk/__init__.py +117 -0
  60. runloop_api_client/sdk/_helpers.py +49 -0
  61. runloop_api_client/sdk/_types.py +264 -0
  62. runloop_api_client/sdk/agent.py +70 -0
  63. runloop_api_client/sdk/async_.py +1036 -0
  64. runloop_api_client/sdk/async_agent.py +70 -0
  65. runloop_api_client/sdk/async_benchmark.py +169 -0
  66. runloop_api_client/sdk/async_benchmark_run.py +127 -0
  67. runloop_api_client/sdk/async_blueprint.py +104 -0
  68. runloop_api_client/sdk/async_devbox.py +797 -0
  69. runloop_api_client/sdk/async_execution.py +144 -0
  70. runloop_api_client/sdk/async_execution_result.py +175 -0
  71. runloop_api_client/sdk/async_network_policy.py +80 -0
  72. runloop_api_client/sdk/async_scenario.py +118 -0
  73. runloop_api_client/sdk/async_scenario_builder.py +480 -0
  74. runloop_api_client/sdk/async_scenario_run.py +242 -0
  75. runloop_api_client/sdk/async_scorer.py +77 -0
  76. runloop_api_client/sdk/async_snapshot.py +125 -0
  77. runloop_api_client/sdk/async_storage_object.py +188 -0
  78. runloop_api_client/sdk/benchmark.py +167 -0
  79. runloop_api_client/sdk/benchmark_run.py +127 -0
  80. runloop_api_client/sdk/blueprint.py +104 -0
  81. runloop_api_client/sdk/devbox.py +800 -0
  82. runloop_api_client/sdk/execution.py +132 -0
  83. runloop_api_client/sdk/execution_result.py +173 -0
  84. runloop_api_client/sdk/network_policy.py +80 -0
  85. runloop_api_client/sdk/scenario.py +118 -0
  86. runloop_api_client/sdk/scenario_builder.py +480 -0
  87. runloop_api_client/sdk/scenario_run.py +242 -0
  88. runloop_api_client/sdk/scorer.py +77 -0
  89. runloop_api_client/sdk/snapshot.py +125 -0
  90. runloop_api_client/sdk/storage_object.py +188 -0
  91. runloop_api_client/sdk/sync.py +1061 -0
  92. runloop_api_client/types/__init__.py +130 -0
  93. runloop_api_client/types/agent_create_params.py +21 -0
  94. runloop_api_client/types/agent_list_params.py +27 -0
  95. runloop_api_client/types/agent_list_view.py +24 -0
  96. runloop_api_client/types/agent_view.py +30 -0
  97. runloop_api_client/types/benchmark_create_params.py +40 -0
  98. runloop_api_client/types/benchmark_definitions_params.py +15 -0
  99. runloop_api_client/types/benchmark_job_create_params.py +220 -0
  100. runloop_api_client/types/benchmark_job_list_params.py +18 -0
  101. runloop_api_client/types/benchmark_job_list_view.py +19 -0
  102. runloop_api_client/types/benchmark_job_view.py +344 -0
  103. runloop_api_client/types/benchmark_list_params.py +18 -0
  104. runloop_api_client/types/benchmark_list_public_params.py +15 -0
  105. runloop_api_client/types/benchmark_run_list_params.py +21 -0
  106. runloop_api_client/types/benchmark_run_list_scenario_runs_params.py +18 -0
  107. runloop_api_client/types/benchmark_run_list_view.py +19 -0
  108. runloop_api_client/types/benchmark_run_view.py +58 -0
  109. runloop_api_client/types/benchmark_start_run_params.py +29 -0
  110. runloop_api_client/types/benchmark_update_params.py +42 -0
  111. runloop_api_client/types/benchmark_update_scenarios_params.py +18 -0
  112. runloop_api_client/types/benchmark_view.py +49 -0
  113. runloop_api_client/types/blueprint_build_log.py +16 -0
  114. runloop_api_client/types/blueprint_build_logs_list_view.py +16 -0
  115. runloop_api_client/types/blueprint_build_parameters.py +119 -0
  116. runloop_api_client/types/blueprint_create_from_inspection_params.py +49 -0
  117. runloop_api_client/types/blueprint_create_params.py +121 -0
  118. runloop_api_client/types/blueprint_list_params.py +21 -0
  119. runloop_api_client/types/blueprint_list_public_params.py +21 -0
  120. runloop_api_client/types/blueprint_list_view.py +19 -0
  121. runloop_api_client/types/blueprint_preview_params.py +121 -0
  122. runloop_api_client/types/blueprint_preview_view.py +10 -0
  123. runloop_api_client/types/blueprint_view.py +93 -0
  124. runloop_api_client/types/devbox_async_execution_detail_view.py +46 -0
  125. runloop_api_client/types/devbox_create_params.py +124 -0
  126. runloop_api_client/types/devbox_create_ssh_key_response.py +19 -0
  127. runloop_api_client/types/devbox_create_tunnel_params.py +12 -0
  128. runloop_api_client/types/devbox_download_file_params.py +15 -0
  129. runloop_api_client/types/devbox_enable_tunnel_params.py +13 -0
  130. runloop_api_client/types/devbox_execute_async_params.py +33 -0
  131. runloop_api_client/types/devbox_execute_params.py +37 -0
  132. runloop_api_client/types/devbox_execute_sync_params.py +31 -0
  133. runloop_api_client/types/devbox_execution_detail_view.py +24 -0
  134. runloop_api_client/types/devbox_list_disk_snapshots_params.py +32 -0
  135. runloop_api_client/types/devbox_list_params.py +20 -0
  136. runloop_api_client/types/devbox_list_view.py +19 -0
  137. runloop_api_client/types/devbox_read_file_contents_params.py +15 -0
  138. runloop_api_client/types/devbox_read_file_contents_response.py +7 -0
  139. runloop_api_client/types/devbox_remove_tunnel_params.py +12 -0
  140. runloop_api_client/types/devbox_send_std_in_result.py +16 -0
  141. runloop_api_client/types/devbox_snapshot_disk_async_params.py +19 -0
  142. runloop_api_client/types/devbox_snapshot_disk_params.py +19 -0
  143. runloop_api_client/types/devbox_snapshot_list_view.py +19 -0
  144. runloop_api_client/types/devbox_snapshot_view.py +30 -0
  145. runloop_api_client/types/devbox_tunnel_view.py +16 -0
  146. runloop_api_client/types/devbox_update_params.py +16 -0
  147. runloop_api_client/types/devbox_upload_file_params.py +19 -0
  148. runloop_api_client/types/devbox_view.py +121 -0
  149. runloop_api_client/types/devbox_wait_for_command_params.py +28 -0
  150. runloop_api_client/types/devbox_write_file_contents_params.py +18 -0
  151. runloop_api_client/types/devboxes/__init__.py +33 -0
  152. runloop_api_client/types/devboxes/browser_create_params.py +13 -0
  153. runloop_api_client/types/devboxes/browser_view.py +29 -0
  154. runloop_api_client/types/devboxes/computer_create_params.py +26 -0
  155. runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +16 -0
  156. runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +15 -0
  157. runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +35 -0
  158. runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +15 -0
  159. runloop_api_client/types/devboxes/computer_screen_interaction_params.py +12 -0
  160. runloop_api_client/types/devboxes/computer_screen_interaction_response.py +15 -0
  161. runloop_api_client/types/devboxes/computer_view.py +23 -0
  162. runloop_api_client/types/devboxes/devbox_logs_list_view.py +39 -0
  163. runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +20 -0
  164. runloop_api_client/types/devboxes/disk_snapshot_list_params.py +32 -0
  165. runloop_api_client/types/devboxes/disk_snapshot_update_params.py +19 -0
  166. runloop_api_client/types/devboxes/execution_execute_async_params.py +31 -0
  167. runloop_api_client/types/devboxes/execution_execute_sync_params.py +31 -0
  168. runloop_api_client/types/devboxes/execution_kill_params.py +18 -0
  169. runloop_api_client/types/devboxes/execution_retrieve_params.py +14 -0
  170. runloop_api_client/types/devboxes/execution_send_std_in_params.py +18 -0
  171. runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +17 -0
  172. runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +17 -0
  173. runloop_api_client/types/devboxes/execution_update_chunk.py +15 -0
  174. runloop_api_client/types/devboxes/log_list_params.py +15 -0
  175. runloop_api_client/types/gateway_config_create_params.py +41 -0
  176. runloop_api_client/types/gateway_config_list_params.py +21 -0
  177. runloop_api_client/types/gateway_config_list_view.py +21 -0
  178. runloop_api_client/types/gateway_config_update_params.py +32 -0
  179. runloop_api_client/types/gateway_config_view.py +47 -0
  180. runloop_api_client/types/input_context.py +19 -0
  181. runloop_api_client/types/input_context_param.py +20 -0
  182. runloop_api_client/types/input_context_update_param.py +16 -0
  183. runloop_api_client/types/inspection_source_param.py +18 -0
  184. runloop_api_client/types/network_policy_create_params.py +40 -0
  185. runloop_api_client/types/network_policy_list_params.py +21 -0
  186. runloop_api_client/types/network_policy_list_view.py +21 -0
  187. runloop_api_client/types/network_policy_update_params.py +30 -0
  188. runloop_api_client/types/network_policy_view.py +52 -0
  189. runloop_api_client/types/object_create_params.py +30 -0
  190. runloop_api_client/types/object_download_params.py +12 -0
  191. runloop_api_client/types/object_download_url_view.py +12 -0
  192. runloop_api_client/types/object_list_params.py +27 -0
  193. runloop_api_client/types/object_list_public_params.py +27 -0
  194. runloop_api_client/types/object_list_view.py +24 -0
  195. runloop_api_client/types/object_view.py +36 -0
  196. runloop_api_client/types/repository_connection_list_view.py +19 -0
  197. runloop_api_client/types/repository_connection_view.py +18 -0
  198. runloop_api_client/types/repository_create_params.py +22 -0
  199. runloop_api_client/types/repository_inspect_params.py +13 -0
  200. runloop_api_client/types/repository_inspection_details.py +83 -0
  201. runloop_api_client/types/repository_inspection_list_view.py +13 -0
  202. runloop_api_client/types/repository_list_params.py +21 -0
  203. runloop_api_client/types/repository_manifest_view.py +174 -0
  204. runloop_api_client/types/repository_refresh_params.py +16 -0
  205. runloop_api_client/types/scenario_create_params.py +53 -0
  206. runloop_api_client/types/scenario_definition_list_view.py +19 -0
  207. runloop_api_client/types/scenario_environment.py +29 -0
  208. runloop_api_client/types/scenario_environment_param.py +31 -0
  209. runloop_api_client/types/scenario_list_params.py +24 -0
  210. runloop_api_client/types/scenario_list_public_params.py +18 -0
  211. runloop_api_client/types/scenario_run_list_view.py +19 -0
  212. runloop_api_client/types/scenario_run_view.py +55 -0
  213. runloop_api_client/types/scenario_start_run_params.py +30 -0
  214. runloop_api_client/types/scenario_update_params.py +49 -0
  215. runloop_api_client/types/scenario_view.py +61 -0
  216. runloop_api_client/types/scenarios/__init__.py +14 -0
  217. runloop_api_client/types/scenarios/run_list_params.py +27 -0
  218. runloop_api_client/types/scenarios/scorer_create_params.py +18 -0
  219. runloop_api_client/types/scenarios/scorer_create_response.py +18 -0
  220. runloop_api_client/types/scenarios/scorer_list_params.py +15 -0
  221. runloop_api_client/types/scenarios/scorer_list_response.py +18 -0
  222. runloop_api_client/types/scenarios/scorer_retrieve_response.py +18 -0
  223. runloop_api_client/types/scenarios/scorer_update_params.py +18 -0
  224. runloop_api_client/types/scenarios/scorer_update_response.py +18 -0
  225. runloop_api_client/types/scenarios/scorer_validate_params.py +17 -0
  226. runloop_api_client/types/scenarios/scorer_validate_response.py +23 -0
  227. runloop_api_client/types/scoring_contract.py +17 -0
  228. runloop_api_client/types/scoring_contract_param.py +19 -0
  229. runloop_api_client/types/scoring_contract_result_view.py +20 -0
  230. runloop_api_client/types/scoring_contract_update_param.py +15 -0
  231. runloop_api_client/types/scoring_function.py +157 -0
  232. runloop_api_client/types/scoring_function_param.py +153 -0
  233. runloop_api_client/types/scoring_function_result_view.py +25 -0
  234. runloop_api_client/types/secret_create_params.py +23 -0
  235. runloop_api_client/types/secret_list_params.py +12 -0
  236. runloop_api_client/types/secret_list_view.py +24 -0
  237. runloop_api_client/types/secret_update_params.py +16 -0
  238. runloop_api_client/types/secret_view.py +26 -0
  239. runloop_api_client/types/shared/__init__.py +10 -0
  240. runloop_api_client/types/shared/after_idle.py +15 -0
  241. runloop_api_client/types/shared/agent_mount.py +31 -0
  242. runloop_api_client/types/shared/agent_source.py +75 -0
  243. runloop_api_client/types/shared/code_mount_parameters.py +24 -0
  244. runloop_api_client/types/shared/launch_parameters.py +86 -0
  245. runloop_api_client/types/shared/mount.py +43 -0
  246. runloop_api_client/types/shared/object_mount.py +21 -0
  247. runloop_api_client/types/shared/run_profile.py +37 -0
  248. runloop_api_client/types/shared_params/__init__.py +10 -0
  249. runloop_api_client/types/shared_params/after_idle.py +15 -0
  250. runloop_api_client/types/shared_params/agent_mount.py +31 -0
  251. runloop_api_client/types/shared_params/agent_source.py +78 -0
  252. runloop_api_client/types/shared_params/code_mount_parameters.py +25 -0
  253. runloop_api_client/types/shared_params/launch_parameters.py +88 -0
  254. runloop_api_client/types/shared_params/mount.py +43 -0
  255. runloop_api_client/types/shared_params/object_mount.py +21 -0
  256. runloop_api_client/types/shared_params/run_profile.py +38 -0
  257. runloop_api_client/types/tunnel_view.py +34 -0
  258. runloop_api_client-1.5.1.dist-info/METADATA +522 -0
  259. runloop_api_client-1.5.1.dist-info/RECORD +261 -0
  260. runloop_api_client-1.5.1.dist-info/WHEEL +4 -0
  261. runloop_api_client-1.5.1.dist-info/licenses/LICENSE +7 -0
@@ -0,0 +1,18 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .._models import BaseModel
4
+
5
+ __all__ = ["RepositoryConnectionView"]
6
+
7
+
8
+ class RepositoryConnectionView(BaseModel):
9
+ """The ID of the Repository."""
10
+
11
+ id: str
12
+ """The ID of the Repository."""
13
+
14
+ name: str
15
+ """The name of the Repository."""
16
+
17
+ owner: str
18
+ """The account owner of the Repository."""
@@ -0,0 +1,22 @@
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 Required, TypedDict
7
+
8
+ __all__ = ["RepositoryCreateParams"]
9
+
10
+
11
+ class RepositoryCreateParams(TypedDict, total=False):
12
+ name: Required[str]
13
+ """Name of the repository."""
14
+
15
+ owner: Required[str]
16
+ """Account owner of the repository."""
17
+
18
+ blueprint_id: Optional[str]
19
+ """ID of blueprint to use as base for resulting RepositoryVersion blueprint."""
20
+
21
+ github_auth_token: Optional[str]
22
+ """GitHub authentication token for accessing private repositories."""
@@ -0,0 +1,13 @@
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 TypedDict
7
+
8
+ __all__ = ["RepositoryInspectParams"]
9
+
10
+
11
+ class RepositoryInspectParams(TypedDict, total=False):
12
+ github_auth_token: Optional[str]
13
+ """GitHub authentication token for accessing private repositories."""
@@ -0,0 +1,83 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .repository_manifest_view import RepositoryManifestView
8
+
9
+ __all__ = ["RepositoryInspectionDetails", "WorkflowContexts", "WorkflowContextsActionsContext"]
10
+
11
+
12
+ class WorkflowContextsActionsContext(BaseModel):
13
+ """Details about actions processing for this workflow."""
14
+
15
+ actions_skipped_unnecessary: List[str]
16
+ """
17
+ Actions that were skipped because they were unnecessary (e.g., upload
18
+ artifacts).
19
+ """
20
+
21
+ actions_taken: List[str]
22
+ """Actions that were translated into commands and executed."""
23
+
24
+ actions_unknown: List[str]
25
+ """
26
+ Actions that were not understood and skipped because we did not know what to do.
27
+ """
28
+
29
+
30
+ class WorkflowContexts(BaseModel):
31
+ """
32
+ Workflow context containing file name and details about actions processing during inspection.
33
+ """
34
+
35
+ actions_context: WorkflowContextsActionsContext
36
+ """Details about actions processing for this workflow."""
37
+
38
+ file_name: str
39
+ """The file name of the workflow."""
40
+
41
+
42
+ class RepositoryInspectionDetails(BaseModel):
43
+ id: str
44
+ """The ID of the inspection."""
45
+
46
+ commit_sha: str
47
+ """The sha of the inspected version of the Repository."""
48
+
49
+ inspected_at: int
50
+ """Inspection time of the Repository Version (Unix timestamp milliseconds)."""
51
+
52
+ repository_manifest: RepositoryManifestView
53
+ """Repository manifest containing container config and workspace details."""
54
+
55
+ status: Literal[
56
+ "invalid",
57
+ "repo_auth_pending",
58
+ "repo_authentication_failure",
59
+ "repo_access_failure",
60
+ "inspection_pending",
61
+ "inspection_failed",
62
+ "inspection_success",
63
+ "inspection_user_manifest_added",
64
+ ]
65
+ """The status of the repository inspection."""
66
+
67
+ blueprint_id: Optional[str] = None
68
+ """The blueprint ID associated with this inspection if successful."""
69
+
70
+ blueprint_name: Optional[str] = None
71
+ """The blueprint name associated with this inspection if successful."""
72
+
73
+ build_status: Optional[Literal["image_building", "image_build_success", "image_build_failure"]] = None
74
+ """The status of the linked Blueprint build."""
75
+
76
+ user_manifest: Optional[RepositoryManifestView] = None
77
+ """
78
+ User uploaded repository manifest containing container config and workspace
79
+ details.
80
+ """
81
+
82
+ workflow_contexts: Optional[Dict[str, WorkflowContexts]] = None
83
+ """Workflow contexts mapping workflow names to their processing details."""
@@ -0,0 +1,13 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from .._models import BaseModel
6
+ from .repository_inspection_details import RepositoryInspectionDetails
7
+
8
+ __all__ = ["RepositoryInspectionListView"]
9
+
10
+
11
+ class RepositoryInspectionListView(BaseModel):
12
+ inspections: List[RepositoryInspectionDetails]
13
+ """List of inspections for this repository."""
@@ -0,0 +1,21 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["RepositoryListParams"]
8
+
9
+
10
+ class RepositoryListParams(TypedDict, total=False):
11
+ limit: int
12
+ """The limit of items to return. Default is 20. Max is 5000."""
13
+
14
+ name: str
15
+ """Filter by repository name"""
16
+
17
+ owner: str
18
+ """Filter by repository owner"""
19
+
20
+ starting_after: str
21
+ """Load the next page of data starting after the item with the given ID."""
@@ -0,0 +1,174 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, List, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+
8
+ __all__ = [
9
+ "RepositoryManifestView",
10
+ "ContainerConfig",
11
+ "Language",
12
+ "Workspace",
13
+ "WorkspaceDevCommands",
14
+ "ContainerizedService",
15
+ "ContainerizedServiceCredentials",
16
+ ]
17
+
18
+
19
+ class ContainerConfig(BaseModel):
20
+ """Container configuration specifying the base image and setup commands."""
21
+
22
+ base_image_name: str
23
+ """The name of the base image.
24
+
25
+ Should be one of the GitHub public images like ubuntu-latest, ubuntu-24.04,
26
+ ubuntu-22.04, windows-latest, windows-2022, macos-latest etc.
27
+ """
28
+
29
+ architecture: Optional[Literal["x86_64", "arm64"]] = None
30
+ """The target architecture for the Repository Container."""
31
+
32
+ setup_commands: Optional[List[str]] = None
33
+ """
34
+ Commands to run to setup the base container such as installing necessary
35
+ toolchains (e.g. apt install).
36
+ """
37
+
38
+
39
+ class Language(BaseModel):
40
+ language: Optional[str] = None
41
+
42
+ version: Optional[str] = None
43
+
44
+
45
+ class WorkspaceDevCommands(BaseModel):
46
+ """
47
+ Extracted common commands important to the developer life cycle like linting, testing, building, etc.
48
+ """
49
+
50
+ build: Optional[List[str]] = None
51
+ """Build command (e.g. npm run build)."""
52
+
53
+ install: Optional[List[str]] = None
54
+ """Installation command (e.g. pip install -r requirements.txt)."""
55
+
56
+ lint: Optional[List[str]] = None
57
+ """Lint command (e.g. flake8)."""
58
+
59
+ scripts: Optional[List[str]] = None
60
+ """Script commands."""
61
+
62
+ test: Optional[List[str]] = None
63
+ """Test command (e.g. pytest)."""
64
+
65
+
66
+ class Workspace(BaseModel):
67
+ """
68
+ A workspace is a buildable unit of code within a repository and often represents a deployable unit of code like a backend service or a frontend app.
69
+ """
70
+
71
+ build_tool: List[str]
72
+ """Name of the build tool used (e.g. pip, npm)."""
73
+
74
+ dev_commands: Optional[WorkspaceDevCommands] = None
75
+ """
76
+ Extracted common commands important to the developer life cycle like linting,
77
+ testing, building, etc.
78
+ """
79
+
80
+ name: Optional[str] = None
81
+ """Name of the workspace.
82
+
83
+ Can be empty if the workspace is the root of the repository. Only necessary for
84
+ monorepo style repositories.
85
+ """
86
+
87
+ path: Optional[str] = None
88
+ """Path to the workspace from the root of the repository.
89
+
90
+ Can be empty if the workspace is the root of the repository. Only necessary for
91
+ monorepo style repositories.
92
+ """
93
+
94
+ workspace_refresh_commands: Optional[List[str]] = None
95
+ """
96
+ Commands to run to refresh this workspace after pulling the latest changes to
97
+ the repository via git (e.g. npm install).
98
+ """
99
+
100
+ workspace_setup_commands: Optional[List[str]] = None
101
+ """
102
+ Commands to run to setup this workspace after a fresh clone of the repository on
103
+ a new container such as installing necessary toolchains and dependencies (e.g.
104
+ npm install).
105
+ """
106
+
107
+
108
+ class ContainerizedServiceCredentials(BaseModel):
109
+ """The credentials of the container service."""
110
+
111
+ password: str
112
+ """The password of the container service."""
113
+
114
+ username: str
115
+ """The username of the container service."""
116
+
117
+
118
+ class ContainerizedService(BaseModel):
119
+ image: str
120
+ """The image of the container service."""
121
+
122
+ name: str
123
+ """The name of the container service."""
124
+
125
+ credentials: Optional[ContainerizedServiceCredentials] = None
126
+ """The credentials of the container service."""
127
+
128
+ env: Optional[Dict[str, str]] = None
129
+ """The environment variables of the container service."""
130
+
131
+ options: Optional[str] = None
132
+ """Additional Docker container create options."""
133
+
134
+ port_mappings: Optional[List[str]] = None
135
+ """The port mappings of the container service.
136
+
137
+ Port mappings are in the format of <host_port>:<container_port>.
138
+ """
139
+
140
+
141
+ class RepositoryManifestView(BaseModel):
142
+ """
143
+ The repository manifest contains container configuration and workspace definitions for a repository.
144
+ """
145
+
146
+ container_config: ContainerConfig
147
+ """Container configuration specifying the base image and setup commands."""
148
+
149
+ languages: List[Language]
150
+ """List of required languages found in Repository."""
151
+
152
+ workspaces: List[Workspace]
153
+ """List of workspaces within the repository.
154
+
155
+ Each workspace represents a buildable unit of code.
156
+ """
157
+
158
+ containerized_services: Optional[List[ContainerizedService]] = None
159
+ """List of discovered ContainerizedServices.
160
+
161
+ Services can be explicitly started when creating a Devbox.
162
+ """
163
+
164
+ env_vars: Optional[Dict[str, str]] = None
165
+ """
166
+ Qualified environment variables and values that should be set for this
167
+ repository to run correctly.
168
+ """
169
+
170
+ required_env_vars: Optional[List[str]] = None
171
+ """
172
+ Missing environment variables that (may) be required for this repository to run
173
+ correctly.
174
+ """
@@ -0,0 +1,16 @@
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 TypedDict
7
+
8
+ __all__ = ["RepositoryRefreshParams"]
9
+
10
+
11
+ class RepositoryRefreshParams(TypedDict, total=False):
12
+ blueprint_id: Optional[str]
13
+ """ID of blueprint to use as base for resulting RepositoryVersion blueprint."""
14
+
15
+ github_auth_token: Optional[str]
16
+ """GitHub authentication token for accessing private repositories."""
@@ -0,0 +1,53 @@
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 Dict, Optional
6
+ from typing_extensions import Literal, Required, TypedDict
7
+
8
+ from .._types import SequenceNotStr
9
+ from .input_context_param import InputContextParam
10
+ from .scoring_contract_param import ScoringContractParam
11
+ from .scenario_environment_param import ScenarioEnvironmentParam
12
+
13
+ __all__ = ["ScenarioCreateParams"]
14
+
15
+
16
+ class ScenarioCreateParams(TypedDict, total=False):
17
+ input_context: Required[InputContextParam]
18
+ """The input context for the Scenario."""
19
+
20
+ name: Required[str]
21
+ """Name of the scenario."""
22
+
23
+ scoring_contract: Required[ScoringContractParam]
24
+ """The scoring contract for the Scenario."""
25
+
26
+ environment_parameters: Optional[ScenarioEnvironmentParam]
27
+ """The Environment in which the Scenario will run."""
28
+
29
+ metadata: Optional[Dict[str, str]]
30
+ """User defined metadata to attach to the scenario for organization."""
31
+
32
+ reference_output: Optional[str]
33
+ """A string representation of the reference output to solve the scenario.
34
+
35
+ Commonly can be the result of a git diff or a sequence of command actions to
36
+ apply to the environment.
37
+ """
38
+
39
+ required_environment_variables: Optional[SequenceNotStr[str]]
40
+ """Environment variables required to run the scenario.
41
+
42
+ If these variables are not provided, the scenario will fail to start.
43
+ """
44
+
45
+ required_secret_names: Optional[SequenceNotStr[str]]
46
+ """
47
+ Secrets required to run the scenario (user secret name to scenario required
48
+ secret name). If these secrets are not provided or the mapping is incorrect, the
49
+ scenario will fail to start.
50
+ """
51
+
52
+ validation_type: Optional[Literal["UNSPECIFIED", "FORWARD", "REVERSE", "EVALUATION"]]
53
+ """Validation strategy."""
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from .._models import BaseModel
6
+ from .scenario_view import ScenarioView
7
+
8
+ __all__ = ["ScenarioDefinitionListView"]
9
+
10
+
11
+ class ScenarioDefinitionListView(BaseModel):
12
+ has_more: bool
13
+
14
+ remaining_count: int
15
+
16
+ scenarios: List[ScenarioView]
17
+ """List of Scenarios matching filter."""
18
+
19
+ total_count: int
@@ -0,0 +1,29 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Optional
4
+
5
+ from .._models import BaseModel
6
+ from .shared.launch_parameters import LaunchParameters
7
+
8
+ __all__ = ["ScenarioEnvironment"]
9
+
10
+
11
+ class ScenarioEnvironment(BaseModel):
12
+ """
13
+ ScenarioEnvironmentParameters specify the environment in which a Scenario will be run.
14
+ """
15
+
16
+ blueprint_id: Optional[str] = None
17
+ """Use the blueprint with matching ID."""
18
+
19
+ launch_parameters: Optional[LaunchParameters] = None
20
+ """Optional launch parameters to apply to the devbox environment at launch."""
21
+
22
+ snapshot_id: Optional[str] = None
23
+ """Use the snapshot with matching ID."""
24
+
25
+ working_directory: Optional[str] = None
26
+ """The working directory where the agent is expected to fulfill the scenario.
27
+
28
+ Scoring functions also run from the working directory.
29
+ """
@@ -0,0 +1,31 @@
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 TypedDict
7
+
8
+ from .shared_params.launch_parameters import LaunchParameters
9
+
10
+ __all__ = ["ScenarioEnvironmentParam"]
11
+
12
+
13
+ class ScenarioEnvironmentParam(TypedDict, total=False):
14
+ """
15
+ ScenarioEnvironmentParameters specify the environment in which a Scenario will be run.
16
+ """
17
+
18
+ blueprint_id: Optional[str]
19
+ """Use the blueprint with matching ID."""
20
+
21
+ launch_parameters: Optional[LaunchParameters]
22
+ """Optional launch parameters to apply to the devbox environment at launch."""
23
+
24
+ snapshot_id: Optional[str]
25
+ """Use the snapshot with matching ID."""
26
+
27
+ working_directory: Optional[str]
28
+ """The working directory where the agent is expected to fulfill the scenario.
29
+
30
+ Scoring functions also run from the working directory.
31
+ """
@@ -0,0 +1,24 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing_extensions import TypedDict
6
+
7
+ __all__ = ["ScenarioListParams"]
8
+
9
+
10
+ class ScenarioListParams(TypedDict, total=False):
11
+ benchmark_id: str
12
+ """Filter scenarios by benchmark ID."""
13
+
14
+ limit: int
15
+ """The limit of items to return. Default is 20. Max is 5000."""
16
+
17
+ name: str
18
+ """Query for Scenarios with a given name."""
19
+
20
+ starting_after: str
21
+ """Load the next page of data starting after the item with the given ID."""
22
+
23
+ validation_type: str
24
+ """Filter by validation type"""
@@ -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_extensions import TypedDict
6
+
7
+ __all__ = ["ScenarioListPublicParams"]
8
+
9
+
10
+ class ScenarioListPublicParams(TypedDict, total=False):
11
+ limit: int
12
+ """The limit of items to return. Default is 20. Max is 5000."""
13
+
14
+ name: str
15
+ """Query for Scenarios with a given name."""
16
+
17
+ starting_after: str
18
+ """Load the next page of data starting after the item with the given ID."""
@@ -0,0 +1,19 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List
4
+
5
+ from .._models import BaseModel
6
+ from .scenario_run_view import ScenarioRunView
7
+
8
+ __all__ = ["ScenarioRunListView"]
9
+
10
+
11
+ class ScenarioRunListView(BaseModel):
12
+ has_more: bool
13
+
14
+ remaining_count: int
15
+
16
+ runs: List[ScenarioRunView]
17
+ """List of ScenarioRuns matching filter."""
18
+
19
+ total_count: int
@@ -0,0 +1,55 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import Dict, Optional
4
+ from typing_extensions import Literal
5
+
6
+ from .._models import BaseModel
7
+ from .scoring_contract_result_view import ScoringContractResultView
8
+
9
+ __all__ = ["ScenarioRunView"]
10
+
11
+
12
+ class ScenarioRunView(BaseModel):
13
+ """A ScenarioRunView represents a single run of a Scenario on a Devbox.
14
+
15
+ When completed, the ScenarioRun will contain the final score and output of the run.
16
+ """
17
+
18
+ id: str
19
+ """ID of the ScenarioRun."""
20
+
21
+ devbox_id: str
22
+ """ID of the Devbox on which the Scenario is running."""
23
+
24
+ metadata: Dict[str, str]
25
+ """User defined metadata to attach to the scenario run for organization."""
26
+
27
+ scenario_id: str
28
+ """ID of the Scenario that has been run."""
29
+
30
+ state: Literal["running", "scoring", "scored", "completed", "canceled", "timeout", "failed"]
31
+ """The state of the ScenarioRun."""
32
+
33
+ benchmark_run_id: Optional[str] = None
34
+ """ID of the BenchmarkRun that this Scenario is associated with, if any."""
35
+
36
+ duration_ms: Optional[int] = None
37
+ """Duration scenario took to run."""
38
+
39
+ environment_variables: Optional[Dict[str, str]] = None
40
+ """Environment variables used to run the scenario."""
41
+
42
+ name: Optional[str] = None
43
+ """Optional name of ScenarioRun."""
44
+
45
+ purpose: Optional[str] = None
46
+ """Purpose of the ScenarioRun."""
47
+
48
+ scoring_contract_result: Optional[ScoringContractResultView] = None
49
+ """The scoring result of the ScenarioRun."""
50
+
51
+ secrets_provided: Optional[Dict[str, str]] = None
52
+ """User secrets used to run the scenario."""
53
+
54
+ start_time_ms: Optional[int] = None
55
+ """The time that the scenario started"""
@@ -0,0 +1,30 @@
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 Dict, Optional
6
+ from typing_extensions import Required, Annotated, TypedDict
7
+
8
+ from .._utils import PropertyInfo
9
+ from .shared_params.run_profile import RunProfile
10
+
11
+ __all__ = ["ScenarioStartRunParams"]
12
+
13
+
14
+ class ScenarioStartRunBaseParams(TypedDict, total=False):
15
+ benchmark_run_id: Optional[str]
16
+ """Benchmark to associate the run."""
17
+
18
+ metadata: Optional[Dict[str, str]]
19
+ """User defined metadata to attach to the run for organization."""
20
+
21
+ run_name: Optional[str]
22
+ """Display name of the run."""
23
+
24
+ run_profile: Annotated[Optional[RunProfile], PropertyInfo(alias="runProfile")]
25
+ """Runtime configuration to use for this benchmark run"""
26
+
27
+
28
+ class ScenarioStartRunParams(ScenarioStartRunBaseParams):
29
+ scenario_id: Required[str]
30
+ """ID of the Scenario to run."""