asteroid-odyssey 0.1.22__py3-none-any.whl → 0.4.0__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 (138) hide show
  1. asteroid_odyssey/__init__.py +28 -34
  2. asteroid_odyssey/agents_v1_gen/__init__.py +87 -0
  3. asteroid_odyssey/agents_v1_gen/api/__init__.py +7 -0
  4. asteroid_odyssey/agents_v1_gen/api/agent_profile_api.py +1696 -0
  5. asteroid_odyssey/agents_v1_gen/api/api_api.py +516 -0
  6. asteroid_odyssey/agents_v1_gen/api/execution_api.py +1734 -0
  7. asteroid_odyssey/agents_v1_gen/api_client.py +801 -0
  8. asteroid_odyssey/agents_v1_gen/api_response.py +21 -0
  9. asteroid_odyssey/agents_v1_gen/configuration.py +606 -0
  10. asteroid_odyssey/agents_v1_gen/exceptions.py +216 -0
  11. asteroid_odyssey/agents_v1_gen/models/__init__.py +34 -0
  12. asteroid_odyssey/agents_v1_gen/models/agent_profile.py +118 -0
  13. asteroid_odyssey/agents_v1_gen/models/browser_session_recording_response.py +87 -0
  14. asteroid_odyssey/agents_v1_gen/models/country_code.py +44 -0
  15. asteroid_odyssey/agents_v1_gen/models/create_agent_profile_request.py +112 -0
  16. asteroid_odyssey/agents_v1_gen/models/credential.py +95 -0
  17. asteroid_odyssey/agents_v1_gen/models/delete_agent_profile200_response.py +87 -0
  18. asteroid_odyssey/agents_v1_gen/models/error_response.py +87 -0
  19. asteroid_odyssey/agents_v1_gen/models/execution_response.py +87 -0
  20. asteroid_odyssey/agents_v1_gen/models/execution_result.py +101 -0
  21. asteroid_odyssey/agents_v1_gen/models/execution_result_response.py +100 -0
  22. asteroid_odyssey/agents_v1_gen/models/execution_status_response.py +95 -0
  23. asteroid_odyssey/agents_v1_gen/models/health_check200_response.py +87 -0
  24. asteroid_odyssey/agents_v1_gen/models/health_check500_response.py +87 -0
  25. asteroid_odyssey/agents_v1_gen/models/proxy_type.py +37 -0
  26. asteroid_odyssey/agents_v1_gen/models/status.py +43 -0
  27. asteroid_odyssey/agents_v1_gen/models/structured_agent_execution_request.py +89 -0
  28. asteroid_odyssey/agents_v1_gen/models/update_agent_profile_request.py +112 -0
  29. asteroid_odyssey/agents_v1_gen/models/upload_execution_files200_response.py +89 -0
  30. asteroid_odyssey/agents_v1_gen/rest.py +258 -0
  31. asteroid_odyssey/agents_v2_gen/__init__.py +99 -0
  32. asteroid_odyssey/agents_v2_gen/api/__init__.py +5 -0
  33. asteroid_odyssey/agents_v2_gen/api/execution_api.py +625 -0
  34. asteroid_odyssey/agents_v2_gen/api_client.py +801 -0
  35. asteroid_odyssey/agents_v2_gen/api_response.py +21 -0
  36. asteroid_odyssey/agents_v2_gen/configuration.py +612 -0
  37. asteroid_odyssey/agents_v2_gen/exceptions.py +216 -0
  38. asteroid_odyssey/agents_v2_gen/models/__init__.py +42 -0
  39. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_action_completed.py +100 -0
  40. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_action_failed.py +100 -0
  41. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_action_started.py +100 -0
  42. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_generic.py +100 -0
  43. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_status_changed.py +100 -0
  44. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_step_completed.py +100 -0
  45. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_step_started.py +100 -0
  46. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_terminal.py +100 -0
  47. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_transitioned_node.py +100 -0
  48. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_user_message_received.py +100 -0
  49. asteroid_odyssey/agents_v2_gen/models/error.py +89 -0
  50. asteroid_odyssey/agents_v2_gen/models/execution_activity.py +98 -0
  51. asteroid_odyssey/agents_v2_gen/models/execution_activity_action_completed_payload.py +87 -0
  52. asteroid_odyssey/agents_v2_gen/models/execution_activity_action_failed_payload.py +87 -0
  53. asteroid_odyssey/agents_v2_gen/models/execution_activity_action_started_payload.py +87 -0
  54. asteroid_odyssey/agents_v2_gen/models/execution_activity_generic_payload.py +87 -0
  55. asteroid_odyssey/agents_v2_gen/models/execution_activity_payload_union.py +252 -0
  56. asteroid_odyssey/agents_v2_gen/models/execution_activity_status_changed_payload.py +88 -0
  57. asteroid_odyssey/agents_v2_gen/models/execution_activity_step_completed_payload.py +87 -0
  58. asteroid_odyssey/agents_v2_gen/models/execution_activity_step_started_payload.py +87 -0
  59. asteroid_odyssey/agents_v2_gen/models/execution_activity_transitioned_node_payload.py +89 -0
  60. asteroid_odyssey/agents_v2_gen/models/execution_activity_user_message_received_payload.py +89 -0
  61. asteroid_odyssey/agents_v2_gen/models/execution_status.py +43 -0
  62. asteroid_odyssey/agents_v2_gen/models/execution_terminal_payload.py +96 -0
  63. asteroid_odyssey/agents_v2_gen/models/execution_user_messages_add_text_body.py +87 -0
  64. asteroid_odyssey/agents_v2_gen/models/versions.py +37 -0
  65. asteroid_odyssey/agents_v2_gen/rest.py +258 -0
  66. asteroid_odyssey/client.py +881 -304
  67. asteroid_odyssey-0.4.0.dist-info/METADATA +213 -0
  68. asteroid_odyssey-0.4.0.dist-info/RECORD +72 -0
  69. {asteroid_odyssey-0.1.22.dist-info → asteroid_odyssey-0.4.0.dist-info}/WHEEL +1 -1
  70. asteroid_odyssey/api/generated/asteroid_agents_api_client/__init__.py +0 -8
  71. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/__init__.py +0 -1
  72. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/agent/get_agents.py +0 -127
  73. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/api/get_open_api.py +0 -79
  74. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/api/health_check.py +0 -131
  75. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/credentials/__init__.py +0 -0
  76. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/credentials/get_credentials_public_key.py +0 -127
  77. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/__init__.py +0 -0
  78. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/delete_execution.py +0 -156
  79. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/get_browser_session.py +0 -154
  80. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/get_execution.py +0 -154
  81. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/get_execution_files.py +0 -159
  82. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/get_execution_progress.py +0 -159
  83. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/get_executions_for_workflow.py +0 -156
  84. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/execution/update_execution_status.py +0 -115
  85. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/notifications/__init__.py +0 -0
  86. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/notifications/set_slack_channel.py +0 -107
  87. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/optimiser/__init__.py +0 -0
  88. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/optimiser/queue_optimisation_job.py +0 -103
  89. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/__init__.py +0 -0
  90. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/add_workflow_credential.py +0 -111
  91. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/create_workflow.py +0 -174
  92. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/delete_workflow.py +0 -156
  93. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/delete_workflow_credentials.py +0 -96
  94. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/execute_workflow.py +0 -179
  95. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/get_agent_workflow_executions.py +0 -155
  96. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/get_workflow.py +0 -154
  97. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/get_workflow_credentials.py +0 -154
  98. asteroid_odyssey/api/generated/asteroid_agents_api_client/api/workflow/get_workflow_versions.py +0 -159
  99. asteroid_odyssey/api/generated/asteroid_agents_api_client/client.py +0 -268
  100. asteroid_odyssey/api/generated/asteroid_agents_api_client/errors.py +0 -16
  101. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/__init__.py +0 -61
  102. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/agent.py +0 -90
  103. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/browser_session.py +0 -136
  104. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/create_workflow_request.py +0 -126
  105. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/create_workflow_request_fields.py +0 -48
  106. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/create_workflow_request_provider.py +0 -9
  107. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/credential.py +0 -66
  108. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/credentials_request.py +0 -72
  109. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/credentials_response.py +0 -80
  110. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/delete_execution_response_200.py +0 -58
  111. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/delete_execution_response_404.py +0 -58
  112. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/delete_workflow_response_200.py +0 -58
  113. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/delete_workflow_response_404.py +0 -58
  114. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/execution.py +0 -147
  115. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/execution_dynamic_data.py +0 -48
  116. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/execution_result.py +0 -43
  117. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/execution_status.py +0 -89
  118. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/file.py +0 -127
  119. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/health_check_response_200.py +0 -58
  120. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/health_check_response_500.py +0 -58
  121. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/optimisation_request.py +0 -59
  122. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/progress_update.py +0 -77
  123. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/result_schema.py +0 -51
  124. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/slack_channel_request.py +0 -58
  125. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/status.py +0 -13
  126. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/workflow.py +0 -152
  127. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/workflow_execution.py +0 -82
  128. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/workflow_execution_request.py +0 -48
  129. asteroid_odyssey/api/generated/asteroid_agents_api_client/models/workflow_fields.py +0 -48
  130. asteroid_odyssey/api/generated/asteroid_agents_api_client/py.typed +0 -1
  131. asteroid_odyssey/api/generated/asteroid_agents_api_client/types.py +0 -45
  132. asteroid_odyssey/exceptions.py +0 -15
  133. asteroid_odyssey-0.1.22.dist-info/METADATA +0 -31
  134. asteroid_odyssey-0.1.22.dist-info/RECORD +0 -72
  135. asteroid_odyssey-0.1.22.dist-info/entry_points.txt +0 -2
  136. /asteroid_odyssey/{api/generated/asteroid_agents_api_client/api/agent/__init__.py → agents_v1_gen/py.typed} +0 -0
  137. /asteroid_odyssey/{api/generated/asteroid_agents_api_client/api/api/__init__.py → agents_v2_gen/py.typed} +0 -0
  138. {asteroid_odyssey-0.1.22.dist-info → asteroid_odyssey-0.4.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,213 @@
1
+ Metadata-Version: 2.4
2
+ Name: asteroid-odyssey
3
+ Version: 0.4.0
4
+ Summary: A Python SDK for browser automation using Asteroid platform.
5
+ Author-email: David Mlcoch <founders@asteroid.com>
6
+ License-Expression: MIT
7
+ Project-URL: Repository, https://github.com/asteroid/asteroid-odyssey-py
8
+ Project-URL: Homepage, https://asteroid.ai
9
+ Project-URL: Documentation, https://docs.asteroid.ai
10
+ Keywords: OpenAPI,OpenAPI-Generator,Asteroid Agents API,browser automation,AI agents
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
16
+ Classifier: Topic :: Internet :: WWW/HTTP :: Browsers
17
+ Requires-Python: >=3.9
18
+ Description-Content-Type: text/markdown
19
+ Requires-Dist: urllib3<3.0.0,>=2.1.0
20
+ Requires-Dist: python-dateutil>=2.8.2
21
+ Requires-Dist: pydantic>=2
22
+ Requires-Dist: typing-extensions>=4.7.1
23
+ Requires-Dist: requests>=2.28.0
24
+ Requires-Dist: cryptography>=41.0.0
25
+ Provides-Extra: dev
26
+ Requires-Dist: pytest>=7.2.1; extra == "dev"
27
+ Requires-Dist: pytest-cov>=2.8.1; extra == "dev"
28
+ Requires-Dist: tox>=3.9.0; extra == "dev"
29
+ Requires-Dist: flake8>=4.0.0; extra == "dev"
30
+ Requires-Dist: types-python-dateutil>=2.8.19.14; extra == "dev"
31
+ Requires-Dist: mypy>=1.5; extra == "dev"
32
+
33
+ # Asteroid Odyssey
34
+
35
+ The official Python SDK for interacting with the Asteroid Agents API.
36
+
37
+ ## Installation
38
+
39
+ ```bash
40
+ pip install asteroid-odyssey
41
+ ```
42
+
43
+ ## Usage
44
+
45
+ Please head to our documentation at https://docs.asteroid.ai/sdk/python
46
+
47
+ ## License
48
+
49
+ The Asteroid Odyssey SDK is available under the MIT License.
50
+
51
+ ### Tests
52
+
53
+ Execute `pytest` to run the tests.
54
+
55
+ ## Getting Started
56
+
57
+ The SDK provides a high-level `AsteroidClient` class that makes it easy to interact with the Asteroid Agents API:
58
+
59
+ ```python
60
+ from asteroid_odyssey import AsteroidClient
61
+
62
+ # Create a client with your API key
63
+ client = AsteroidClient('your-api-key')
64
+
65
+ # Execute an agent
66
+ execution_id = client.execute_agent('my-agent-id', {'input': 'some dynamic value'})
67
+
68
+ # Wait for the execution to complete and get the result
69
+ result = client.wait_for_execution_result(execution_id)
70
+ print(result)
71
+
72
+ # Or check status manually
73
+ status = client.get_execution_status(execution_id)
74
+ print(f"Status: {status.status}")
75
+
76
+ # Upload files to an execution
77
+ hello_content = "Hello World!".encode()
78
+ response = client.upload_execution_files(execution_id, [hello_content])
79
+ print(f"Uploaded files: {response.file_ids}")
80
+
81
+ # Get browser session recording (for completed executions)
82
+ recording_url = client.get_browser_session_recording(execution_id)
83
+ print(f"Recording available at: {recording_url}")
84
+ ```
85
+
86
+ ### Context Manager Usage
87
+
88
+ The client can also be used as a context manager:
89
+
90
+ ```python
91
+ from asteroid_odyssey import AsteroidClient
92
+
93
+ with AsteroidClient('your-api-key') as client:
94
+ execution_id = client.execute_agent('my-agent-id', {'input': 'test'})
95
+ result = client.wait_for_execution_result(execution_id)
96
+ print(result)
97
+ ```
98
+
99
+ ### Convenience Functions
100
+
101
+ The SDK also provides convenience functions:
102
+
103
+ ```python
104
+ from asteroid_odyssey import create_client, execute_agent, wait_for_execution_result
105
+
106
+ client = create_client('your-api-key')
107
+ execution_id = execute_agent(client, 'my-agent-id', {'input': 'test'})
108
+ result = wait_for_execution_result(client, execution_id)
109
+ ```
110
+
111
+ ## API Reference
112
+
113
+ ### AsteroidClient
114
+
115
+ The main client class provides the following methods:
116
+
117
+ - `execute_agent(agent_id, agent_profile_id (optional), execution_data(optional))` - Execute an agent and return execution ID
118
+ - `get_execution_status(execution_id)` - Get current execution status
119
+ - `get_execution_result(execution_id)` - Get final execution result
120
+ - `wait_for_execution_result(execution_id, interval=1.0, timeout=3600.0)` - Wait for completion
121
+ - `upload_execution_files(execution_id, files, default_filename="file.txt")` - Upload files
122
+ - `get_browser_session_recording(execution_id)` - Get browser recording URL
123
+
124
+ ### Low-Level API Access
125
+
126
+ If you need direct access to the generated OpenAPI client, you can still use it:
127
+
128
+ ```python
129
+ import openapi_client
130
+ from openapi_client.rest import ApiException
131
+ from pprint import pprint
132
+
133
+ # Defining the host is optional and defaults to https://odyssey.asteroid.ai/api/v1
134
+ configuration = openapi_client.Configuration(
135
+ host = "https://odyssey.asteroid.ai/api/v1"
136
+ )
137
+
138
+ # Enter a context with an instance of the API client
139
+ with openapi_client.ApiClient(configuration) as api_client:
140
+ # Create an instance of the API class
141
+ api_instance = openapi_client.APIApi(api_client)
142
+
143
+ try:
144
+ # Get the OpenAPI schema
145
+ api_instance.get_open_api()
146
+ except ApiException as e:
147
+ print("Exception when calling APIApi->get_open_api: %s\n" % e)
148
+ ```
149
+
150
+ | Class | Method | Return Type Representation | Description |
151
+ | ---------------- | ------------------------------- | -------------------------- | -------------------------------------------------------- |
152
+ | `AsteroidClient` | `execute_agent` | `str` (execution ID) | Executes an agent and returns its execution ID. |
153
+ | `AsteroidClient` | `get_execution_status` | `dict-like object` | Gets the current status of an execution. |
154
+ | `AsteroidClient` | `get_execution_result` | `dict` (execution result) | Retrieves the result data of a completed execution. |
155
+ | `AsteroidClient` | `get_browser_session_recording` | `str` (URL) | Returns the session recording URL of an execution. |
156
+ | `AsteroidClient` | `upload_execution_files` | `dict-like object` | Uploads files to an execution and returns file metadata. |
157
+
158
+
159
+
160
+
161
+ <a id="documentation-for-authorization"></a>
162
+ ## Documentation For Authorization
163
+
164
+ To generate an API key, go to our [platform](https://platform.asteroid.ai) and in your profile section, click on API Keys. You can now create and manage your API keys.
165
+
166
+ Authentication schemes defined for the API:
167
+ <a id="ApiKeyAuth"></a>
168
+ ### ApiKeyAuth
169
+
170
+ - **Type**: API key
171
+ - **API key parameter name**: X-Asteroid-Agents-Api-Key
172
+ - **Location**: HTTP header
173
+
174
+
175
+ ## Development quick‑start
176
+ ```bash
177
+ # clone
178
+ git clone https://github.com/<org>/asteroid-odyssey-py.git
179
+ cd asteroid-odyssey-py
180
+
181
+ # create / activate a virtualenv (example using venv)
182
+ python -m venv .venv
183
+ source .venv/bin/activate
184
+
185
+ # install project in *editable* mode + dev tools
186
+ pip install -U pip
187
+ pip install -e .[dev] # or: pip install -e .
188
+
189
+ # run the generated SDK tests
190
+ pytest
191
+ ```
192
+
193
+ ## Regenerating the SDK
194
+
195
+ To update the SDK, regenerate the code by running
196
+
197
+ ```bash
198
+ ./regen-sdk.sh
199
+ ```
200
+
201
+ If the OpenAPI spec changes:
202
+ ```bash
203
+ ./regen-sdk.sh # regenerate client & docs
204
+ pip install -e . # refresh editable install (safe to rerun)
205
+ pytest # all tests should still pass
206
+ ```
207
+
208
+ After generation, ensure `pyproject.toml` is configured correctly and that files are modified correctly. Check for new files and if they are needed.
209
+
210
+
211
+
212
+
213
+
@@ -0,0 +1,72 @@
1
+ asteroid_odyssey/__init__.py,sha256=UEWVMA46rvvJFAP0eAnfY84sh2EImKMLuMLF2pFhrXw,653
2
+ asteroid_odyssey/client.py,sha256=etlUKFJsaUB59ifsHQKGJSHpvsJck0oSKt3EK-f4y94,35896
3
+ asteroid_odyssey/agents_v1_gen/__init__.py,sha256=TJdnk__jClVyed4Wvpkm6g2CwCtQeLy7aY5kMYSNJwI,4298
4
+ asteroid_odyssey/agents_v1_gen/api_client.py,sha256=Fq7Uh5yc9Mwza9NgCE1A0g2zrJ_hl5qQ_WFkACeHxWw,27747
5
+ asteroid_odyssey/agents_v1_gen/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
6
+ asteroid_odyssey/agents_v1_gen/configuration.py,sha256=Q5iAuaxcXVhsirre6lzbDLNP6okMLJacsp9UxNvt-5I,19060
7
+ asteroid_odyssey/agents_v1_gen/exceptions.py,sha256=xauMukb96TkgN7Rx5c_d_XWOJb7ldCY5SuTmybyKTr8,6414
8
+ asteroid_odyssey/agents_v1_gen/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ asteroid_odyssey/agents_v1_gen/rest.py,sha256=WJRyCYuQaJij3dz1-1tH0Gd9XHZ8msE7xRfT2hIzfxk,9427
10
+ asteroid_odyssey/agents_v1_gen/api/__init__.py,sha256=oj1pzgrbo8C6FrpBVC7IvfUu-uplU4JQjfE_jZE0Mz4,265
11
+ asteroid_odyssey/agents_v1_gen/api/agent_profile_api.py,sha256=uOgyH3VN8LseS5Mq2uFxAbZM5iH88O0YEmXFTMc8bQ0,66369
12
+ asteroid_odyssey/agents_v1_gen/api/api_api.py,sha256=vqZ7wQEQGOpa1D6U1QLL27XK-0DY5_v9tdQJNt_lpsM,19217
13
+ asteroid_odyssey/agents_v1_gen/api/execution_api.py,sha256=RXYDwX_VKMfM44IrKRb-c5D3FXnAPw8QQcpqDoGpL3Q,67849
14
+ asteroid_odyssey/agents_v1_gen/models/__init__.py,sha256=xBLsQJ8YhBrZy8S153OH0mJAzsGwwvT-ylegSOKLNAI,1989
15
+ asteroid_odyssey/agents_v1_gen/models/agent_profile.py,sha256=L121f_DtK0zIGm9NEuoG9KMWuq-zGX8b9iGaKaaNQCc,4718
16
+ asteroid_odyssey/agents_v1_gen/models/browser_session_recording_response.py,sha256=OgYXsMiADk5IIDKkWJTy0RfnnBO3Zbaq9mEUyaxTaH0,2590
17
+ asteroid_odyssey/agents_v1_gen/models/country_code.py,sha256=pYFM0OC_maaGfUsFTTnKtSJxXKQiNS0pU3O0LLFz_Uo,802
18
+ asteroid_odyssey/agents_v1_gen/models/create_agent_profile_request.py,sha256=3GpU72vT31ntV_qMRyCp2ejN6BbBxXv5eFPVahrFE68,4567
19
+ asteroid_odyssey/agents_v1_gen/models/credential.py,sha256=MSzwgGLjNiH_fclHpZpYKKDWn-498etD1CLS_EfmA7k,3033
20
+ asteroid_odyssey/agents_v1_gen/models/delete_agent_profile200_response.py,sha256=y6gaG8VLeC2muBcw-i6KG64i-xrHq1v-8A7T8ViwBwk,2514
21
+ asteroid_odyssey/agents_v1_gen/models/error_response.py,sha256=njnDeKZeMPiteuX4l3MsWTHkG4qEiv8sbIUTv0Z8yQY,2459
22
+ asteroid_odyssey/agents_v1_gen/models/execution_response.py,sha256=c4PJNQDsWlQwumSonH1Sxqcb1q521FhNGgZugoinZNA,2513
23
+ asteroid_odyssey/agents_v1_gen/models/execution_result.py,sha256=o6V8oHt9QR7vfRcCrnHwk8exwALUollWBfShze_lzBM,3354
24
+ asteroid_odyssey/agents_v1_gen/models/execution_result_response.py,sha256=zBGBV9FOtCOFE9vDwfWEJkcKMkXYOHluo2ycJlW_S2A,3603
25
+ asteroid_odyssey/agents_v1_gen/models/execution_status_response.py,sha256=ykdr-9kRFmIs3FnmsYWrlX4s-096wlMy3BQX6CCdiBc,3050
26
+ asteroid_odyssey/agents_v1_gen/models/health_check200_response.py,sha256=x_6F6rhTvqpuMUFtD5ynLrUFY4vuVdkWfDRkTx2hVp0,2548
27
+ asteroid_odyssey/agents_v1_gen/models/health_check500_response.py,sha256=b6pG-pqUKkQ5oqmWWyakdr7YYjnTYYeZjoVHkcU-TSY,2533
28
+ asteroid_odyssey/agents_v1_gen/models/proxy_type.py,sha256=5AUJvncQEl77V3QLJCIidk-WQRU1BlhMJo9ARUUdo1Y,704
29
+ asteroid_odyssey/agents_v1_gen/models/status.py,sha256=tnt_4jdoMzcjo6J0vttf2QKLNK0FC9XcjZKbGC3sbz0,889
30
+ asteroid_odyssey/agents_v1_gen/models/structured_agent_execution_request.py,sha256=VZyW85pVz9T27aiG4ZlGywnnxTOaJCAjHSDz8D2YxY8,2913
31
+ asteroid_odyssey/agents_v1_gen/models/update_agent_profile_request.py,sha256=pIk46Eb5wk-JbxOM_C8TOuUsE-LEJq7zSdL0WRSrlx8,4709
32
+ asteroid_odyssey/agents_v1_gen/models/upload_execution_files200_response.py,sha256=u85oEP2bEuhszonE78VcrB_keT0UZpv16CTGvfse_v4,2735
33
+ asteroid_odyssey/agents_v2_gen/__init__.py,sha256=m5xswSgtY2acRs-Ezgm1sbBK0HG_nUbzYyekVJdxqhw,6464
34
+ asteroid_odyssey/agents_v2_gen/api_client.py,sha256=KxpVoMofYD5Uwdg7-TXy6TdWgGdtQtaD3UunO3T75MY,27807
35
+ asteroid_odyssey/agents_v2_gen/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
36
+ asteroid_odyssey/agents_v2_gen/configuration.py,sha256=Anb7lKRriv-3p5j16Oj72gj1yvYx_KxH9ngkMiGXTBk,19319
37
+ asteroid_odyssey/agents_v2_gen/exceptions.py,sha256=hBo-qUqJrW250S_xxUORV_LZU3YWE1-EhXXTxX5-P3k,6474
38
+ asteroid_odyssey/agents_v2_gen/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ asteroid_odyssey/agents_v2_gen/rest.py,sha256=QUgg1ahRFOoPjd6F0BU4uZ0MxdrxqGQartE6QMMziTI,9487
40
+ asteroid_odyssey/agents_v2_gen/api/__init__.py,sha256=HJP59V3S9sayesugWn215uvjoIfhzWxNGRknmMvtRJE,122
41
+ asteroid_odyssey/agents_v2_gen/api/execution_api.py,sha256=1rCYuGB2S4dgsFJmocRXXj9IVig7dEdx1xyGXwRF5bA,25365
42
+ asteroid_odyssey/agents_v2_gen/models/__init__.py,sha256=08hB-NQQCuoo8HaWalo_wUkie3bgnE6lsE-5TilwB3I,3394
43
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_action_completed.py,sha256=djIqJOhSsyNDehLRJ_RKfjhZyQL596TNz4XhYC65FgY,3389
44
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_action_failed.py,sha256=Ld0T3X-TjRwd3PnBObiHE7jFpHBejRXgt8ENB486zU8,3359
45
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_action_started.py,sha256=ZVanUlpD1p5u1woVZ1YWi6qpj2X1Yg1twTCVI-ZoBB0,3369
46
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_generic.py,sha256=N7x1y4vctkmh_xO4Ri2e-4Tbco_Xhj0eRHaxdJ1LLVw,3306
47
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_status_changed.py,sha256=r6RLtCxpEN_GmOJYEs1aR93BWHJ5TfX6IMdmcrF5pb4,3369
48
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_step_completed.py,sha256=NAwB7k14ydY_QcskRv6eNIiWgIUcrG-MNOtw3Z_DSGE,3369
49
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_step_started.py,sha256=vaSXQiO4H4qH8Q650agbJTUU3T0KFvwLC8lYVNb0nL8,3349
50
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_terminal.py,sha256=vDWM7IKhtUyLJGnCjaKSQb7lI4MgqrhwkS18Jq3uKrY,3283
51
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_transitioned_node.py,sha256=pOou5D9n0ojtImrU_0KRW8EylA1eTwlFvvF0n7HI3-M,3399
52
+ asteroid_odyssey/agents_v2_gen/models/activity_payload_union_user_message_received.py,sha256=DtvCeoXNOyBEDmwXYZmSkPtbEsxhFX_ngtOvgrPLwWk,3432
53
+ asteroid_odyssey/agents_v2_gen/models/error.py,sha256=gxvmPlORWeuW8WBKxTQhWX9fT6ILNUkz5OyNue0JiJE,2527
54
+ asteroid_odyssey/agents_v2_gen/models/execution_activity.py,sha256=hs47z2cEQ3w4EUmg3dc2HUYp3uHbWu_27UegbT_wEj0,3179
55
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_action_completed_payload.py,sha256=RMDQhAjJh-q_xoYbFazJD_VELpw67Vc7Gbs3eQeDSGc,2587
56
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_action_failed_payload.py,sha256=hRaq3_seIFpTB16d8CbZsLiAO9_Xmav_fdFUTBLwucY,2575
57
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_action_started_payload.py,sha256=yC9InGz_D_CyIFiC5ZOUBjh0VpTpfb8k_tfIviEOdFA,2579
58
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_generic_payload.py,sha256=xkECW6M-Rd-DhbAFiCT2-2QN7o0ZGeej4Xml24Mg_xU,2555
59
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_payload_union.py,sha256=9RlOiopP4UpYCb1RsqXdN2GAJY33Q9_gFn_L3dvuQ2U,14956
60
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_status_changed_payload.py,sha256=oTNr-hXTTjm_mIxqh4HU3CAhrS8wD0VL6mhoxcb1EMs,2653
61
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_step_completed_payload.py,sha256=SOC8Y7Ox5POHbrACjYUX9wUkEnGFgWdRV60dhqhfbPg,2627
62
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_step_started_payload.py,sha256=6IIbpvDKLIDzc5sr2KaHcGGKPDnUu4iPR-LlXChysT0,2619
63
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_transitioned_node_payload.py,sha256=nvHGIaaF37ol12EjU0RduaUnRhUaDpKD1qKStpJ7qLE,2769
64
+ asteroid_odyssey/agents_v2_gen/models/execution_activity_user_message_received_payload.py,sha256=47US747NjJy11BsuwggH-o8-UhO3HUDamnNA4KISjjM,2718
65
+ asteroid_odyssey/agents_v2_gen/models/execution_status.py,sha256=SHpsS6IzN42kPdDiykmKudEzmCiR1yRttJ9nG206W-g,959
66
+ asteroid_odyssey/agents_v2_gen/models/execution_terminal_payload.py,sha256=hWh7Fuy0fswZZFwXncRwdtlyDD4WGEA-wYYdtOg8-vQ,2935
67
+ asteroid_odyssey/agents_v2_gen/models/execution_user_messages_add_text_body.py,sha256=BQ9klnV_2-3svbyPFcGC272y7uKanIKtpbwVPXQs6gk,2559
68
+ asteroid_odyssey/agents_v2_gen/models/versions.py,sha256=54MndkW0A32LnZbTGHEsFnNRrrT112iWNJMgk7-a2eM,736
69
+ asteroid_odyssey-0.4.0.dist-info/METADATA,sha256=vbFgK9Q-5Cko8z7bfIz-G9kh-kQ43pWVqzqkRTRMbGg,7073
70
+ asteroid_odyssey-0.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
71
+ asteroid_odyssey-0.4.0.dist-info/top_level.txt,sha256=h4T6NKscnThJ4Nhzors2NKlJeZzepnM7XvDgsnfi5HA,17
72
+ asteroid_odyssey-0.4.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,8 +0,0 @@
1
- """A client library for accessing Asteroid Agents API"""
2
-
3
- from .client import AuthenticatedClient, Client
4
-
5
- __all__ = (
6
- "AuthenticatedClient",
7
- "Client",
8
- )
@@ -1 +0,0 @@
1
- """Contains methods for accessing the API"""
@@ -1,127 +0,0 @@
1
- from http import HTTPStatus
2
- from typing import Any, Dict, List, Optional, Union
3
-
4
- import httpx
5
-
6
- from ... import errors
7
- from ...client import AuthenticatedClient, Client
8
- from ...models.agent import Agent
9
- from ...types import Response
10
-
11
-
12
- def _get_kwargs() -> Dict[str, Any]:
13
- _kwargs: Dict[str, Any] = {
14
- "method": "get",
15
- "url": "/agents",
16
- }
17
-
18
- return _kwargs
19
-
20
-
21
- def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[List["Agent"]]:
22
- if response.status_code == 200:
23
- response_200 = []
24
- _response_200 = response.json()
25
- for response_200_item_data in _response_200:
26
- response_200_item = Agent.from_dict(response_200_item_data)
27
-
28
- response_200.append(response_200_item)
29
-
30
- return response_200
31
- if client.raise_on_unexpected_status:
32
- raise errors.UnexpectedStatus(response.status_code, response.content)
33
- else:
34
- return None
35
-
36
-
37
- def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[List["Agent"]]:
38
- return Response(
39
- status_code=HTTPStatus(response.status_code),
40
- content=response.content,
41
- headers=response.headers,
42
- parsed=_parse_response(client=client, response=response),
43
- )
44
-
45
-
46
- def sync_detailed(
47
- *,
48
- client: Union[AuthenticatedClient, Client],
49
- ) -> Response[List["Agent"]]:
50
- """Get all agents
51
-
52
- Raises:
53
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
54
- httpx.TimeoutException: If the request takes longer than Client.timeout.
55
-
56
- Returns:
57
- Response[List['Agent']]
58
- """
59
-
60
- kwargs = _get_kwargs()
61
-
62
- response = client.get_httpx_client().request(
63
- **kwargs,
64
- )
65
-
66
- return _build_response(client=client, response=response)
67
-
68
-
69
- def sync(
70
- *,
71
- client: Union[AuthenticatedClient, Client],
72
- ) -> Optional[List["Agent"]]:
73
- """Get all agents
74
-
75
- Raises:
76
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
77
- httpx.TimeoutException: If the request takes longer than Client.timeout.
78
-
79
- Returns:
80
- List['Agent']
81
- """
82
-
83
- return sync_detailed(
84
- client=client,
85
- ).parsed
86
-
87
-
88
- async def asyncio_detailed(
89
- *,
90
- client: Union[AuthenticatedClient, Client],
91
- ) -> Response[List["Agent"]]:
92
- """Get all agents
93
-
94
- Raises:
95
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
96
- httpx.TimeoutException: If the request takes longer than Client.timeout.
97
-
98
- Returns:
99
- Response[List['Agent']]
100
- """
101
-
102
- kwargs = _get_kwargs()
103
-
104
- response = await client.get_async_httpx_client().request(**kwargs)
105
-
106
- return _build_response(client=client, response=response)
107
-
108
-
109
- async def asyncio(
110
- *,
111
- client: Union[AuthenticatedClient, Client],
112
- ) -> Optional[List["Agent"]]:
113
- """Get all agents
114
-
115
- Raises:
116
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
117
- httpx.TimeoutException: If the request takes longer than Client.timeout.
118
-
119
- Returns:
120
- List['Agent']
121
- """
122
-
123
- return (
124
- await asyncio_detailed(
125
- client=client,
126
- )
127
- ).parsed
@@ -1,79 +0,0 @@
1
- from http import HTTPStatus
2
- from typing import Any, Dict, Optional, Union
3
-
4
- import httpx
5
-
6
- from ... import errors
7
- from ...client import AuthenticatedClient, Client
8
- from ...types import Response
9
-
10
-
11
- def _get_kwargs() -> Dict[str, Any]:
12
- _kwargs: Dict[str, Any] = {
13
- "method": "get",
14
- "url": "/openapi.yaml",
15
- }
16
-
17
- return _kwargs
18
-
19
-
20
- def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
21
- if response.status_code == 200:
22
- return None
23
- if client.raise_on_unexpected_status:
24
- raise errors.UnexpectedStatus(response.status_code, response.content)
25
- else:
26
- return None
27
-
28
-
29
- def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
30
- return Response(
31
- status_code=HTTPStatus(response.status_code),
32
- content=response.content,
33
- headers=response.headers,
34
- parsed=_parse_response(client=client, response=response),
35
- )
36
-
37
-
38
- def sync_detailed(
39
- *,
40
- client: Union[AuthenticatedClient, Client],
41
- ) -> Response[Any]:
42
- """Get the OpenAPI schema
43
-
44
- Raises:
45
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
46
- httpx.TimeoutException: If the request takes longer than Client.timeout.
47
-
48
- Returns:
49
- Response[Any]
50
- """
51
-
52
- kwargs = _get_kwargs()
53
-
54
- response = client.get_httpx_client().request(
55
- **kwargs,
56
- )
57
-
58
- return _build_response(client=client, response=response)
59
-
60
-
61
- async def asyncio_detailed(
62
- *,
63
- client: Union[AuthenticatedClient, Client],
64
- ) -> Response[Any]:
65
- """Get the OpenAPI schema
66
-
67
- Raises:
68
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
69
- httpx.TimeoutException: If the request takes longer than Client.timeout.
70
-
71
- Returns:
72
- Response[Any]
73
- """
74
-
75
- kwargs = _get_kwargs()
76
-
77
- response = await client.get_async_httpx_client().request(**kwargs)
78
-
79
- return _build_response(client=client, response=response)
@@ -1,131 +0,0 @@
1
- from http import HTTPStatus
2
- from typing import Any, Dict, Optional, Union
3
-
4
- import httpx
5
-
6
- from ... import errors
7
- from ...client import AuthenticatedClient, Client
8
- from ...models.health_check_response_200 import HealthCheckResponse200
9
- from ...models.health_check_response_500 import HealthCheckResponse500
10
- from ...types import Response
11
-
12
-
13
- def _get_kwargs() -> Dict[str, Any]:
14
- _kwargs: Dict[str, Any] = {
15
- "method": "get",
16
- "url": "/health",
17
- }
18
-
19
- return _kwargs
20
-
21
-
22
- def _parse_response(
23
- *, client: Union[AuthenticatedClient, Client], response: httpx.Response
24
- ) -> Optional[Union[HealthCheckResponse200, HealthCheckResponse500]]:
25
- if response.status_code == 200:
26
- response_200 = HealthCheckResponse200.from_dict(response.json())
27
-
28
- return response_200
29
- if response.status_code == 500:
30
- response_500 = HealthCheckResponse500.from_dict(response.json())
31
-
32
- return response_500
33
- if client.raise_on_unexpected_status:
34
- raise errors.UnexpectedStatus(response.status_code, response.content)
35
- else:
36
- return None
37
-
38
-
39
- def _build_response(
40
- *, client: Union[AuthenticatedClient, Client], response: httpx.Response
41
- ) -> Response[Union[HealthCheckResponse200, HealthCheckResponse500]]:
42
- return Response(
43
- status_code=HTTPStatus(response.status_code),
44
- content=response.content,
45
- headers=response.headers,
46
- parsed=_parse_response(client=client, response=response),
47
- )
48
-
49
-
50
- def sync_detailed(
51
- *,
52
- client: Union[AuthenticatedClient, Client],
53
- ) -> Response[Union[HealthCheckResponse200, HealthCheckResponse500]]:
54
- """Check the health of the API
55
-
56
- Raises:
57
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
58
- httpx.TimeoutException: If the request takes longer than Client.timeout.
59
-
60
- Returns:
61
- Response[Union[HealthCheckResponse200, HealthCheckResponse500]]
62
- """
63
-
64
- kwargs = _get_kwargs()
65
-
66
- response = client.get_httpx_client().request(
67
- **kwargs,
68
- )
69
-
70
- return _build_response(client=client, response=response)
71
-
72
-
73
- def sync(
74
- *,
75
- client: Union[AuthenticatedClient, Client],
76
- ) -> Optional[Union[HealthCheckResponse200, HealthCheckResponse500]]:
77
- """Check the health of the API
78
-
79
- Raises:
80
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
81
- httpx.TimeoutException: If the request takes longer than Client.timeout.
82
-
83
- Returns:
84
- Union[HealthCheckResponse200, HealthCheckResponse500]
85
- """
86
-
87
- return sync_detailed(
88
- client=client,
89
- ).parsed
90
-
91
-
92
- async def asyncio_detailed(
93
- *,
94
- client: Union[AuthenticatedClient, Client],
95
- ) -> Response[Union[HealthCheckResponse200, HealthCheckResponse500]]:
96
- """Check the health of the API
97
-
98
- Raises:
99
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
100
- httpx.TimeoutException: If the request takes longer than Client.timeout.
101
-
102
- Returns:
103
- Response[Union[HealthCheckResponse200, HealthCheckResponse500]]
104
- """
105
-
106
- kwargs = _get_kwargs()
107
-
108
- response = await client.get_async_httpx_client().request(**kwargs)
109
-
110
- return _build_response(client=client, response=response)
111
-
112
-
113
- async def asyncio(
114
- *,
115
- client: Union[AuthenticatedClient, Client],
116
- ) -> Optional[Union[HealthCheckResponse200, HealthCheckResponse500]]:
117
- """Check the health of the API
118
-
119
- Raises:
120
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
121
- httpx.TimeoutException: If the request takes longer than Client.timeout.
122
-
123
- Returns:
124
- Union[HealthCheckResponse200, HealthCheckResponse500]
125
- """
126
-
127
- return (
128
- await asyncio_detailed(
129
- client=client,
130
- )
131
- ).parsed