asteroid-odyssey 1.3.6__py3-none-any.whl → 1.3.8__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 (89) hide show
  1. asteroid_odyssey/__init__.py +4 -2
  2. asteroid_odyssey/agents_v1_gen/__init__.py +0 -1
  3. asteroid_odyssey/agents_v1_gen/api/execution_api.py +26 -311
  4. asteroid_odyssey/agents_v1_gen/models/__init__.py +0 -1
  5. asteroid_odyssey/agents_v1_gen/models/agent_profile.py +4 -2
  6. asteroid_odyssey/agents_v1_gen/models/create_agent_profile_request.py +5 -3
  7. asteroid_odyssey/agents_v1_gen/models/proxy_type.py +1 -0
  8. asteroid_odyssey/agents_v1_gen/models/update_agent_profile_request.py +4 -2
  9. asteroid_odyssey/agents_v2_gen/__init__.py +53 -15
  10. asteroid_odyssey/agents_v2_gen/api/__init__.py +3 -1
  11. asteroid_odyssey/agents_v2_gen/api/agents_api.py +684 -0
  12. asteroid_odyssey/agents_v2_gen/api/{default_api.py → execution_api.py} +381 -479
  13. asteroid_odyssey/agents_v2_gen/api/files_api.py +895 -0
  14. asteroid_odyssey/agents_v2_gen/models/__init__.py +50 -14
  15. asteroid_odyssey/agents_v2_gen/models/agents_agent_execute_agent_request.py +103 -0
  16. asteroid_odyssey/{agents_v1_gen/models/upload_execution_files200_response.py → agents_v2_gen/models/agents_agent_execute_agent_response.py} +11 -13
  17. asteroid_odyssey/agents_v2_gen/models/agents_execution_action_name.py +93 -0
  18. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_action_completed_info.py +350 -0
  19. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_action_completed_payload.py +25 -3
  20. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_action_failed_payload.py +19 -3
  21. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_action_started_info.py +252 -0
  22. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_action_started_payload.py +23 -3
  23. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_file_added_payload.py +10 -1
  24. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_generic_payload.py +11 -2
  25. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_payload_union.py +132 -104
  26. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_playwright_script_generated_payload.py +114 -0
  27. asteroid_odyssey/agents_v2_gen/models/{activity_payload_union_terminal.py → agents_execution_activity_reasoning_payload.py} +9 -13
  28. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_status_changed_payload.py +11 -2
  29. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_step_completed_payload.py +11 -2
  30. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_step_started_payload.py +11 -2
  31. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_transitioned_node_payload.py +20 -4
  32. asteroid_odyssey/agents_v2_gen/models/agents_execution_activity_user_message_received_payload.py +11 -2
  33. asteroid_odyssey/agents_v2_gen/models/{activity_payload_union_action_started.py → agents_execution_activity_workflow_updated_payload.py} +17 -13
  34. asteroid_odyssey/agents_v2_gen/models/agents_execution_comment.py +100 -0
  35. asteroid_odyssey/agents_v2_gen/models/agents_execution_completed_payload.py +4 -11
  36. asteroid_odyssey/agents_v2_gen/models/agents_execution_element_file_upload_completed_details.py +96 -0
  37. asteroid_odyssey/agents_v2_gen/models/agents_execution_execution_result.py +103 -0
  38. asteroid_odyssey/agents_v2_gen/models/agents_execution_ext_api_call_completed_details.py +102 -0
  39. asteroid_odyssey/agents_v2_gen/models/agents_execution_ext_get_mail_completed_details.py +98 -0
  40. asteroid_odyssey/agents_v2_gen/models/agents_execution_failed_payload.py +8 -2
  41. asteroid_odyssey/agents_v2_gen/models/{activity_payload_union_file_added.py → agents_execution_file_list_completed_details.py} +13 -17
  42. asteroid_odyssey/agents_v2_gen/models/agents_execution_file_read_completed_details.py +100 -0
  43. asteroid_odyssey/agents_v2_gen/models/agents_execution_file_stage_completed_details.py +96 -0
  44. asteroid_odyssey/agents_v2_gen/models/agents_execution_human_label.py +96 -0
  45. asteroid_odyssey/agents_v2_gen/models/agents_execution_list_item.py +141 -0
  46. asteroid_odyssey/agents_v2_gen/models/agents_execution_llm_call_purpose.py +40 -0
  47. asteroid_odyssey/agents_v2_gen/models/agents_execution_llm_call_started_details.py +97 -0
  48. asteroid_odyssey/agents_v2_gen/models/agents_execution_nav_to_completed_details.py +96 -0
  49. asteroid_odyssey/agents_v2_gen/models/agents_execution_nav_to_started_details.py +96 -0
  50. asteroid_odyssey/agents_v2_gen/models/agents_execution_obs_snapshot_with_selectors_completed_details.py +98 -0
  51. asteroid_odyssey/agents_v2_gen/models/agents_execution_rules_details.py +87 -0
  52. asteroid_odyssey/agents_v2_gen/models/agents_execution_scratchpad_read_completed_details.py +98 -0
  53. asteroid_odyssey/agents_v2_gen/models/{activity_payload_union_generic.py → agents_execution_scratchpad_read_started_details.py} +20 -17
  54. asteroid_odyssey/agents_v2_gen/models/agents_execution_scratchpad_write_completed_details.py +104 -0
  55. asteroid_odyssey/agents_v2_gen/models/{activity_payload_union_step_started.py → agents_execution_scratchpad_write_started_details.py} +20 -17
  56. asteroid_odyssey/agents_v2_gen/models/agents_execution_script_hybrid_playwright_completed_details.py +102 -0
  57. asteroid_odyssey/agents_v2_gen/models/agents_execution_script_hybrid_playwright_started_details.py +96 -0
  58. asteroid_odyssey/agents_v2_gen/models/agents_execution_script_pad_run_function_completed_details.py +102 -0
  59. asteroid_odyssey/agents_v2_gen/models/agents_execution_script_playwright_completed_details.py +102 -0
  60. asteroid_odyssey/agents_v2_gen/models/agents_execution_script_playwright_started_details.py +96 -0
  61. asteroid_odyssey/agents_v2_gen/models/agents_execution_scriptpad_read_completed_details.py +96 -0
  62. asteroid_odyssey/agents_v2_gen/models/agents_execution_scriptpad_read_started_details.py +98 -0
  63. asteroid_odyssey/agents_v2_gen/models/{activity_payload_union_action_completed.py → agents_execution_scriptpad_run_function_started_details.py} +21 -18
  64. asteroid_odyssey/agents_v2_gen/models/agents_execution_scriptpad_search_replace_completed_details.py +106 -0
  65. asteroid_odyssey/agents_v2_gen/models/agents_execution_scriptpad_search_replace_started_details.py +100 -0
  66. asteroid_odyssey/agents_v2_gen/models/agents_execution_scriptpad_write_completed_details.py +102 -0
  67. asteroid_odyssey/agents_v2_gen/models/agents_execution_sort_field.py +37 -0
  68. asteroid_odyssey/agents_v2_gen/models/agents_execution_terminal_payload.py +11 -2
  69. asteroid_odyssey/agents_v2_gen/models/{activity_payload_union_action_failed.py → agents_execution_util_get_datetime_completed_details.py} +20 -19
  70. asteroid_odyssey/agents_v2_gen/models/agents_execution_util_get_datetime_started_details.py +96 -0
  71. asteroid_odyssey/agents_v2_gen/models/{agents_execution_graph_update.py → agents_execution_workflow_update.py} +11 -5
  72. asteroid_odyssey/agents_v2_gen/models/agents_files_temp_file.py +89 -0
  73. asteroid_odyssey/agents_v2_gen/models/{agents_execution_activity_graph_updated_payload.py → agents_files_temp_files_response.py} +14 -14
  74. asteroid_odyssey/agents_v2_gen/models/agents_graph_models_nodes_properties_playwright_script_llm_var.py +92 -0
  75. asteroid_odyssey/agents_v2_gen/models/agents_graph_models_nodes_properties_playwright_script_llm_var_type.py +38 -0
  76. asteroid_odyssey/agents_v2_gen/models/agents_graph_models_transitions_transition_type.py +38 -0
  77. asteroid_odyssey/agents_v2_gen/models/common_os_error.py +87 -0
  78. asteroid_odyssey/agents_v2_gen/models/executions_list200_response.py +101 -0
  79. asteroid_odyssey/client.py +204 -33
  80. {asteroid_odyssey-1.3.6.dist-info → asteroid_odyssey-1.3.8.dist-info}/METADATA +1 -1
  81. asteroid_odyssey-1.3.8.dist-info/RECORD +132 -0
  82. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_graph_updated.py +0 -100
  83. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_status_changed.py +0 -100
  84. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_step_completed.py +0 -100
  85. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_transitioned_node.py +0 -100
  86. asteroid_odyssey/agents_v2_gen/models/activity_payload_union_user_message_received.py +0 -100
  87. asteroid_odyssey-1.3.6.dist-info/RECORD +0 -95
  88. {asteroid_odyssey-1.3.6.dist-info → asteroid_odyssey-1.3.8.dist-info}/WHEEL +0 -0
  89. {asteroid_odyssey-1.3.6.dist-info → asteroid_odyssey-1.3.8.dist-info}/top_level.txt +0 -0
@@ -19,7 +19,8 @@ from .client import (
19
19
  AsteroidAPIError,
20
20
  ExecutionError,
21
21
  TimeoutError,
22
- AgentInteractionResult
22
+ AgentInteractionResult,
23
+ TempFile,
23
24
  )
24
25
  from .agents_v1_gen import ExecutionResult
25
26
 
@@ -45,5 +46,6 @@ __all__ = [
45
46
  'ExecutionError',
46
47
  'TimeoutError',
47
48
  'AgentInteractionResult',
48
- 'ExecutionResult'
49
+ 'ExecutionResult',
50
+ 'TempFile',
49
51
  ]
@@ -51,4 +51,3 @@ from asteroid_odyssey.agents_v1_gen.models.proxy_type import ProxyType
51
51
  from asteroid_odyssey.agents_v1_gen.models.status import Status
52
52
  from asteroid_odyssey.agents_v1_gen.models.structured_agent_execution_request import StructuredAgentExecutionRequest
53
53
  from asteroid_odyssey.agents_v1_gen.models.update_agent_profile_request import UpdateAgentProfileRequest
54
- from asteroid_odyssey.agents_v1_gen.models.upload_execution_files200_response import UploadExecutionFiles200Response
@@ -16,15 +16,14 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
16
  from typing import Any, Dict, List, Optional, Tuple, Union
17
17
  from typing_extensions import Annotated
18
18
 
19
- from pydantic import Field, StrictBytes, StrictStr
20
- from typing import Any, Dict, List, Optional, Tuple, Union
19
+ from pydantic import Field, StrictStr
20
+ from typing import Any, Dict
21
21
  from typing_extensions import Annotated
22
22
  from asteroid_odyssey.agents_v1_gen.models.browser_session_recording_response import BrowserSessionRecordingResponse
23
23
  from asteroid_odyssey.agents_v1_gen.models.execution_response import ExecutionResponse
24
24
  from asteroid_odyssey.agents_v1_gen.models.execution_result_response import ExecutionResultResponse
25
25
  from asteroid_odyssey.agents_v1_gen.models.execution_status_response import ExecutionStatusResponse
26
26
  from asteroid_odyssey.agents_v1_gen.models.structured_agent_execution_request import StructuredAgentExecutionRequest
27
- from asteroid_odyssey.agents_v1_gen.models.upload_execution_files200_response import UploadExecutionFiles200Response
28
27
 
29
28
  from asteroid_odyssey.agents_v1_gen.api_client import ApiClient, RequestSerialized
30
29
  from asteroid_odyssey.agents_v1_gen.api_response import ApiResponse
@@ -363,7 +362,7 @@ class ExecutionApi:
363
362
  _headers: Optional[Dict[StrictStr, Any]] = None,
364
363
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
365
364
  ) -> ExecutionResponse:
366
- """Execute an agent with structured parameters
365
+ """(Deprecated) Execute an agent with structured parameters
367
366
 
368
367
  Executes an agent with structured parameters including optional agent profile configuration. This is the recommended method for new integrations.
369
368
 
@@ -392,6 +391,7 @@ class ExecutionApi:
392
391
  :type _host_index: int, optional
393
392
  :return: Returns the result object.
394
393
  """ # noqa: E501
394
+ warnings.warn("POST /agent/{id}/execute is deprecated.", DeprecationWarning)
395
395
 
396
396
  _param = self._execute_agent_structured_serialize(
397
397
  id=id,
@@ -437,7 +437,7 @@ class ExecutionApi:
437
437
  _headers: Optional[Dict[StrictStr, Any]] = None,
438
438
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
439
439
  ) -> ApiResponse[ExecutionResponse]:
440
- """Execute an agent with structured parameters
440
+ """(Deprecated) Execute an agent with structured parameters
441
441
 
442
442
  Executes an agent with structured parameters including optional agent profile configuration. This is the recommended method for new integrations.
443
443
 
@@ -466,6 +466,7 @@ class ExecutionApi:
466
466
  :type _host_index: int, optional
467
467
  :return: Returns the result object.
468
468
  """ # noqa: E501
469
+ warnings.warn("POST /agent/{id}/execute is deprecated.", DeprecationWarning)
469
470
 
470
471
  _param = self._execute_agent_structured_serialize(
471
472
  id=id,
@@ -511,7 +512,7 @@ class ExecutionApi:
511
512
  _headers: Optional[Dict[StrictStr, Any]] = None,
512
513
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
513
514
  ) -> RESTResponseType:
514
- """Execute an agent with structured parameters
515
+ """(Deprecated) Execute an agent with structured parameters
515
516
 
516
517
  Executes an agent with structured parameters including optional agent profile configuration. This is the recommended method for new integrations.
517
518
 
@@ -540,6 +541,7 @@ class ExecutionApi:
540
541
  :type _host_index: int, optional
541
542
  :return: Returns the result object.
542
543
  """ # noqa: E501
544
+ warnings.warn("POST /agent/{id}/execute is deprecated.", DeprecationWarning)
543
545
 
544
546
  _param = self._execute_agent_structured_serialize(
545
547
  id=id,
@@ -660,7 +662,7 @@ class ExecutionApi:
660
662
  _headers: Optional[Dict[StrictStr, Any]] = None,
661
663
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
662
664
  ) -> BrowserSessionRecordingResponse:
663
- """Get browser session recording
665
+ """(Deprecated) Get browser session recording
664
666
 
665
667
  Retrieves the browser session recording URL for a completed execution
666
668
 
@@ -687,6 +689,7 @@ class ExecutionApi:
687
689
  :type _host_index: int, optional
688
690
  :return: Returns the result object.
689
691
  """ # noqa: E501
692
+ warnings.warn("GET /execution/{id}/browser_session/recording is deprecated.", DeprecationWarning)
690
693
 
691
694
  _param = self._get_browser_session_recording_serialize(
692
695
  id=id,
@@ -729,7 +732,7 @@ class ExecutionApi:
729
732
  _headers: Optional[Dict[StrictStr, Any]] = None,
730
733
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
731
734
  ) -> ApiResponse[BrowserSessionRecordingResponse]:
732
- """Get browser session recording
735
+ """(Deprecated) Get browser session recording
733
736
 
734
737
  Retrieves the browser session recording URL for a completed execution
735
738
 
@@ -756,6 +759,7 @@ class ExecutionApi:
756
759
  :type _host_index: int, optional
757
760
  :return: Returns the result object.
758
761
  """ # noqa: E501
762
+ warnings.warn("GET /execution/{id}/browser_session/recording is deprecated.", DeprecationWarning)
759
763
 
760
764
  _param = self._get_browser_session_recording_serialize(
761
765
  id=id,
@@ -798,7 +802,7 @@ class ExecutionApi:
798
802
  _headers: Optional[Dict[StrictStr, Any]] = None,
799
803
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
800
804
  ) -> RESTResponseType:
801
- """Get browser session recording
805
+ """(Deprecated) Get browser session recording
802
806
 
803
807
  Retrieves the browser session recording URL for a completed execution
804
808
 
@@ -825,6 +829,7 @@ class ExecutionApi:
825
829
  :type _host_index: int, optional
826
830
  :return: Returns the result object.
827
831
  """ # noqa: E501
832
+ warnings.warn("GET /execution/{id}/browser_session/recording is deprecated.", DeprecationWarning)
828
833
 
829
834
  _param = self._get_browser_session_recording_serialize(
830
835
  id=id,
@@ -927,7 +932,7 @@ class ExecutionApi:
927
932
  _headers: Optional[Dict[StrictStr, Any]] = None,
928
933
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
929
934
  ) -> ExecutionResultResponse:
930
- """Get execution result
935
+ """(Deprecated) Get execution result
931
936
 
932
937
 
933
938
  :param id: The ID of the execution (required)
@@ -953,6 +958,7 @@ class ExecutionApi:
953
958
  :type _host_index: int, optional
954
959
  :return: Returns the result object.
955
960
  """ # noqa: E501
961
+ warnings.warn("GET /execution/{id}/result is deprecated.", DeprecationWarning)
956
962
 
957
963
  _param = self._get_execution_result_serialize(
958
964
  id=id,
@@ -995,7 +1001,7 @@ class ExecutionApi:
995
1001
  _headers: Optional[Dict[StrictStr, Any]] = None,
996
1002
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
997
1003
  ) -> ApiResponse[ExecutionResultResponse]:
998
- """Get execution result
1004
+ """(Deprecated) Get execution result
999
1005
 
1000
1006
 
1001
1007
  :param id: The ID of the execution (required)
@@ -1021,6 +1027,7 @@ class ExecutionApi:
1021
1027
  :type _host_index: int, optional
1022
1028
  :return: Returns the result object.
1023
1029
  """ # noqa: E501
1030
+ warnings.warn("GET /execution/{id}/result is deprecated.", DeprecationWarning)
1024
1031
 
1025
1032
  _param = self._get_execution_result_serialize(
1026
1033
  id=id,
@@ -1063,7 +1070,7 @@ class ExecutionApi:
1063
1070
  _headers: Optional[Dict[StrictStr, Any]] = None,
1064
1071
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1065
1072
  ) -> RESTResponseType:
1066
- """Get execution result
1073
+ """(Deprecated) Get execution result
1067
1074
 
1068
1075
 
1069
1076
  :param id: The ID of the execution (required)
@@ -1089,6 +1096,7 @@ class ExecutionApi:
1089
1096
  :type _host_index: int, optional
1090
1097
  :return: Returns the result object.
1091
1098
  """ # noqa: E501
1099
+ warnings.warn("GET /execution/{id}/result is deprecated.", DeprecationWarning)
1092
1100
 
1093
1101
  _param = self._get_execution_result_serialize(
1094
1102
  id=id,
@@ -1191,7 +1199,7 @@ class ExecutionApi:
1191
1199
  _headers: Optional[Dict[StrictStr, Any]] = None,
1192
1200
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1193
1201
  ) -> ExecutionStatusResponse:
1194
- """Get execution status
1202
+ """(Deprecated) Get execution status
1195
1203
 
1196
1204
 
1197
1205
  :param id: The ID of the execution (required)
@@ -1217,6 +1225,7 @@ class ExecutionApi:
1217
1225
  :type _host_index: int, optional
1218
1226
  :return: Returns the result object.
1219
1227
  """ # noqa: E501
1228
+ warnings.warn("GET /execution/{id}/status is deprecated.", DeprecationWarning)
1220
1229
 
1221
1230
  _param = self._get_execution_status_serialize(
1222
1231
  id=id,
@@ -1259,7 +1268,7 @@ class ExecutionApi:
1259
1268
  _headers: Optional[Dict[StrictStr, Any]] = None,
1260
1269
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1261
1270
  ) -> ApiResponse[ExecutionStatusResponse]:
1262
- """Get execution status
1271
+ """(Deprecated) Get execution status
1263
1272
 
1264
1273
 
1265
1274
  :param id: The ID of the execution (required)
@@ -1285,6 +1294,7 @@ class ExecutionApi:
1285
1294
  :type _host_index: int, optional
1286
1295
  :return: Returns the result object.
1287
1296
  """ # noqa: E501
1297
+ warnings.warn("GET /execution/{id}/status is deprecated.", DeprecationWarning)
1288
1298
 
1289
1299
  _param = self._get_execution_status_serialize(
1290
1300
  id=id,
@@ -1327,7 +1337,7 @@ class ExecutionApi:
1327
1337
  _headers: Optional[Dict[StrictStr, Any]] = None,
1328
1338
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1329
1339
  ) -> RESTResponseType:
1330
- """Get execution status
1340
+ """(Deprecated) Get execution status
1331
1341
 
1332
1342
 
1333
1343
  :param id: The ID of the execution (required)
@@ -1353,6 +1363,7 @@ class ExecutionApi:
1353
1363
  :type _host_index: int, optional
1354
1364
  :return: Returns the result object.
1355
1365
  """ # noqa: E501
1366
+ warnings.warn("GET /execution/{id}/status is deprecated.", DeprecationWarning)
1356
1367
 
1357
1368
  _param = self._get_execution_status_serialize(
1358
1369
  id=id,
@@ -1436,299 +1447,3 @@ class ExecutionApi:
1436
1447
  )
1437
1448
 
1438
1449
 
1439
-
1440
-
1441
- @validate_call
1442
- def upload_execution_files(
1443
- self,
1444
- id: Annotated[StrictStr, Field(description="The ID of the execution")],
1445
- files: Annotated[Optional[List[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]]], Field(description="Files to upload to the execution")] = None,
1446
- _request_timeout: Union[
1447
- None,
1448
- Annotated[StrictFloat, Field(gt=0)],
1449
- Tuple[
1450
- Annotated[StrictFloat, Field(gt=0)],
1451
- Annotated[StrictFloat, Field(gt=0)]
1452
- ]
1453
- ] = None,
1454
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
1455
- _content_type: Optional[StrictStr] = None,
1456
- _headers: Optional[Dict[StrictStr, Any]] = None,
1457
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1458
- ) -> UploadExecutionFiles200Response:
1459
- """Upload files to an execution
1460
-
1461
-
1462
- :param id: The ID of the execution (required)
1463
- :type id: str
1464
- :param files: Files to upload to the execution
1465
- :type files: List[bytearray]
1466
- :param _request_timeout: timeout setting for this request. If one
1467
- number provided, it will be total request
1468
- timeout. It can also be a pair (tuple) of
1469
- (connection, read) timeouts.
1470
- :type _request_timeout: int, tuple(int, int), optional
1471
- :param _request_auth: set to override the auth_settings for an a single
1472
- request; this effectively ignores the
1473
- authentication in the spec for a single request.
1474
- :type _request_auth: dict, optional
1475
- :param _content_type: force content-type for the request.
1476
- :type _content_type: str, Optional
1477
- :param _headers: set to override the headers for a single
1478
- request; this effectively ignores the headers
1479
- in the spec for a single request.
1480
- :type _headers: dict, optional
1481
- :param _host_index: set to override the host_index for a single
1482
- request; this effectively ignores the host_index
1483
- in the spec for a single request.
1484
- :type _host_index: int, optional
1485
- :return: Returns the result object.
1486
- """ # noqa: E501
1487
-
1488
- _param = self._upload_execution_files_serialize(
1489
- id=id,
1490
- files=files,
1491
- _request_auth=_request_auth,
1492
- _content_type=_content_type,
1493
- _headers=_headers,
1494
- _host_index=_host_index
1495
- )
1496
-
1497
- _response_types_map: Dict[str, Optional[str]] = {
1498
- '200': "UploadExecutionFiles200Response",
1499
- '400': "ErrorResponse",
1500
- '401': "ErrorResponse",
1501
- '404': "ErrorResponse",
1502
- }
1503
- response_data = self.api_client.call_api(
1504
- *_param,
1505
- _request_timeout=_request_timeout
1506
- )
1507
- response_data.read()
1508
- return self.api_client.response_deserialize(
1509
- response_data=response_data,
1510
- response_types_map=_response_types_map,
1511
- ).data
1512
-
1513
-
1514
- @validate_call
1515
- def upload_execution_files_with_http_info(
1516
- self,
1517
- id: Annotated[StrictStr, Field(description="The ID of the execution")],
1518
- files: Annotated[Optional[List[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]]], Field(description="Files to upload to the execution")] = None,
1519
- _request_timeout: Union[
1520
- None,
1521
- Annotated[StrictFloat, Field(gt=0)],
1522
- Tuple[
1523
- Annotated[StrictFloat, Field(gt=0)],
1524
- Annotated[StrictFloat, Field(gt=0)]
1525
- ]
1526
- ] = None,
1527
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
1528
- _content_type: Optional[StrictStr] = None,
1529
- _headers: Optional[Dict[StrictStr, Any]] = None,
1530
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1531
- ) -> ApiResponse[UploadExecutionFiles200Response]:
1532
- """Upload files to an execution
1533
-
1534
-
1535
- :param id: The ID of the execution (required)
1536
- :type id: str
1537
- :param files: Files to upload to the execution
1538
- :type files: List[bytearray]
1539
- :param _request_timeout: timeout setting for this request. If one
1540
- number provided, it will be total request
1541
- timeout. It can also be a pair (tuple) of
1542
- (connection, read) timeouts.
1543
- :type _request_timeout: int, tuple(int, int), optional
1544
- :param _request_auth: set to override the auth_settings for an a single
1545
- request; this effectively ignores the
1546
- authentication in the spec for a single request.
1547
- :type _request_auth: dict, optional
1548
- :param _content_type: force content-type for the request.
1549
- :type _content_type: str, Optional
1550
- :param _headers: set to override the headers for a single
1551
- request; this effectively ignores the headers
1552
- in the spec for a single request.
1553
- :type _headers: dict, optional
1554
- :param _host_index: set to override the host_index for a single
1555
- request; this effectively ignores the host_index
1556
- in the spec for a single request.
1557
- :type _host_index: int, optional
1558
- :return: Returns the result object.
1559
- """ # noqa: E501
1560
-
1561
- _param = self._upload_execution_files_serialize(
1562
- id=id,
1563
- files=files,
1564
- _request_auth=_request_auth,
1565
- _content_type=_content_type,
1566
- _headers=_headers,
1567
- _host_index=_host_index
1568
- )
1569
-
1570
- _response_types_map: Dict[str, Optional[str]] = {
1571
- '200': "UploadExecutionFiles200Response",
1572
- '400': "ErrorResponse",
1573
- '401': "ErrorResponse",
1574
- '404': "ErrorResponse",
1575
- }
1576
- response_data = self.api_client.call_api(
1577
- *_param,
1578
- _request_timeout=_request_timeout
1579
- )
1580
- response_data.read()
1581
- return self.api_client.response_deserialize(
1582
- response_data=response_data,
1583
- response_types_map=_response_types_map,
1584
- )
1585
-
1586
-
1587
- @validate_call
1588
- def upload_execution_files_without_preload_content(
1589
- self,
1590
- id: Annotated[StrictStr, Field(description="The ID of the execution")],
1591
- files: Annotated[Optional[List[Union[StrictBytes, StrictStr, Tuple[StrictStr, StrictBytes]]]], Field(description="Files to upload to the execution")] = None,
1592
- _request_timeout: Union[
1593
- None,
1594
- Annotated[StrictFloat, Field(gt=0)],
1595
- Tuple[
1596
- Annotated[StrictFloat, Field(gt=0)],
1597
- Annotated[StrictFloat, Field(gt=0)]
1598
- ]
1599
- ] = None,
1600
- _request_auth: Optional[Dict[StrictStr, Any]] = None,
1601
- _content_type: Optional[StrictStr] = None,
1602
- _headers: Optional[Dict[StrictStr, Any]] = None,
1603
- _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1604
- ) -> RESTResponseType:
1605
- """Upload files to an execution
1606
-
1607
-
1608
- :param id: The ID of the execution (required)
1609
- :type id: str
1610
- :param files: Files to upload to the execution
1611
- :type files: List[bytearray]
1612
- :param _request_timeout: timeout setting for this request. If one
1613
- number provided, it will be total request
1614
- timeout. It can also be a pair (tuple) of
1615
- (connection, read) timeouts.
1616
- :type _request_timeout: int, tuple(int, int), optional
1617
- :param _request_auth: set to override the auth_settings for an a single
1618
- request; this effectively ignores the
1619
- authentication in the spec for a single request.
1620
- :type _request_auth: dict, optional
1621
- :param _content_type: force content-type for the request.
1622
- :type _content_type: str, Optional
1623
- :param _headers: set to override the headers for a single
1624
- request; this effectively ignores the headers
1625
- in the spec for a single request.
1626
- :type _headers: dict, optional
1627
- :param _host_index: set to override the host_index for a single
1628
- request; this effectively ignores the host_index
1629
- in the spec for a single request.
1630
- :type _host_index: int, optional
1631
- :return: Returns the result object.
1632
- """ # noqa: E501
1633
-
1634
- _param = self._upload_execution_files_serialize(
1635
- id=id,
1636
- files=files,
1637
- _request_auth=_request_auth,
1638
- _content_type=_content_type,
1639
- _headers=_headers,
1640
- _host_index=_host_index
1641
- )
1642
-
1643
- _response_types_map: Dict[str, Optional[str]] = {
1644
- '200': "UploadExecutionFiles200Response",
1645
- '400': "ErrorResponse",
1646
- '401': "ErrorResponse",
1647
- '404': "ErrorResponse",
1648
- }
1649
- response_data = self.api_client.call_api(
1650
- *_param,
1651
- _request_timeout=_request_timeout
1652
- )
1653
- return response_data.response
1654
-
1655
-
1656
- def _upload_execution_files_serialize(
1657
- self,
1658
- id,
1659
- files,
1660
- _request_auth,
1661
- _content_type,
1662
- _headers,
1663
- _host_index,
1664
- ) -> RequestSerialized:
1665
-
1666
- _host = None
1667
-
1668
- _collection_formats: Dict[str, str] = {
1669
- 'files': 'csv',
1670
- }
1671
-
1672
- _path_params: Dict[str, str] = {}
1673
- _query_params: List[Tuple[str, str]] = []
1674
- _header_params: Dict[str, Optional[str]] = _headers or {}
1675
- _form_params: List[Tuple[str, str]] = []
1676
- _files: Dict[
1677
- str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1678
- ] = {}
1679
- _body_params: Optional[bytes] = None
1680
-
1681
- # process the path parameters
1682
- if id is not None:
1683
- _path_params['id'] = id
1684
- # process the query parameters
1685
- # process the header parameters
1686
- # process the form parameters
1687
- if files is not None:
1688
- _files['files'] = files
1689
- # process the body parameter
1690
-
1691
-
1692
- # set the HTTP header `Accept`
1693
- if 'Accept' not in _header_params:
1694
- _header_params['Accept'] = self.api_client.select_header_accept(
1695
- [
1696
- 'application/json'
1697
- ]
1698
- )
1699
-
1700
- # set the HTTP header `Content-Type`
1701
- if _content_type:
1702
- _header_params['Content-Type'] = _content_type
1703
- else:
1704
- _default_content_type = (
1705
- self.api_client.select_header_content_type(
1706
- [
1707
- 'multipart/form-data'
1708
- ]
1709
- )
1710
- )
1711
- if _default_content_type is not None:
1712
- _header_params['Content-Type'] = _default_content_type
1713
-
1714
- # authentication setting
1715
- _auth_settings: List[str] = [
1716
- 'ApiKeyAuth'
1717
- ]
1718
-
1719
- return self.api_client.param_serialize(
1720
- method='POST',
1721
- resource_path='/execution/{id}/files',
1722
- path_params=_path_params,
1723
- query_params=_query_params,
1724
- header_params=_header_params,
1725
- body=_body_params,
1726
- post_params=_form_params,
1727
- files=_files,
1728
- auth_settings=_auth_settings,
1729
- collection_formats=_collection_formats,
1730
- _host=_host,
1731
- _request_auth=_request_auth
1732
- )
1733
-
1734
-
@@ -32,4 +32,3 @@ from asteroid_odyssey.agents_v1_gen.models.proxy_type import ProxyType
32
32
  from asteroid_odyssey.agents_v1_gen.models.status import Status
33
33
  from asteroid_odyssey.agents_v1_gen.models.structured_agent_execution_request import StructuredAgentExecutionRequest
34
34
  from asteroid_odyssey.agents_v1_gen.models.update_agent_profile_request import UpdateAgentProfileRequest
35
- from asteroid_odyssey.agents_v1_gen.models.upload_execution_files200_response import UploadExecutionFiles200Response
@@ -43,7 +43,8 @@ class AgentProfile(BaseModel):
43
43
  cookies: List[Cookie] = Field(description="List of cookies associated with this agent profile")
44
44
  created_at: datetime = Field(description="The date and time the agent profile was created")
45
45
  updated_at: datetime = Field(description="The last update time of the agent profile")
46
- __properties: ClassVar[List[str]] = ["id", "name", "description", "organization_id", "proxy_cc", "proxy_type", "captcha_solver_active", "sticky_ip", "credentials", "cookies", "created_at", "updated_at"]
46
+ extra_stealth: StrictBool = Field(description="Whether to enable extra stealth for the profile")
47
+ __properties: ClassVar[List[str]] = ["id", "name", "description", "organization_id", "proxy_cc", "proxy_type", "captcha_solver_active", "sticky_ip", "credentials", "cookies", "created_at", "updated_at", "extra_stealth"]
47
48
 
48
49
  model_config = ConfigDict(
49
50
  populate_by_name=True,
@@ -121,7 +122,8 @@ class AgentProfile(BaseModel):
121
122
  "credentials": [Credential.from_dict(_item) for _item in obj["credentials"]] if obj.get("credentials") is not None else None,
122
123
  "cookies": [Cookie.from_dict(_item) for _item in obj["cookies"]] if obj.get("cookies") is not None else None,
123
124
  "created_at": obj.get("created_at"),
124
- "updated_at": obj.get("updated_at")
125
+ "updated_at": obj.get("updated_at"),
126
+ "extra_stealth": obj.get("extra_stealth")
125
127
  })
126
128
  return _obj
127
129
 
@@ -18,7 +18,7 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
21
- from typing import Any, ClassVar, Dict, List
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing_extensions import Annotated
23
23
  from asteroid_odyssey.agents_v1_gen.models.cookie import Cookie
24
24
  from asteroid_odyssey.agents_v1_gen.models.country_code import CountryCode
@@ -40,7 +40,8 @@ class CreateAgentProfileRequest(BaseModel):
40
40
  sticky_ip: StrictBool = Field(description="Whether the same IP address should be used for all executions of this profile")
41
41
  credentials: List[Credential] = Field(description="Optional list of credentials to create with the profile")
42
42
  cookies: List[Cookie] = Field(description="Optional list of cookies to create with the profile")
43
- __properties: ClassVar[List[str]] = ["name", "description", "organization_id", "proxy_cc", "proxy_type", "captcha_solver_active", "sticky_ip", "credentials", "cookies"]
43
+ extra_stealth: Optional[StrictBool] = Field(default=False, description="Whether to enable extra stealth for the profile")
44
+ __properties: ClassVar[List[str]] = ["name", "description", "organization_id", "proxy_cc", "proxy_type", "captcha_solver_active", "sticky_ip", "credentials", "cookies", "extra_stealth"]
44
45
 
45
46
  model_config = ConfigDict(
46
47
  populate_by_name=True,
@@ -115,7 +116,8 @@ class CreateAgentProfileRequest(BaseModel):
115
116
  "captcha_solver_active": obj.get("captcha_solver_active") if obj.get("captcha_solver_active") is not None else False,
116
117
  "sticky_ip": obj.get("sticky_ip") if obj.get("sticky_ip") is not None else False,
117
118
  "credentials": [Credential.from_dict(_item) for _item in obj["credentials"]] if obj.get("credentials") is not None else None,
118
- "cookies": [Cookie.from_dict(_item) for _item in obj["cookies"]] if obj.get("cookies") is not None else None
119
+ "cookies": [Cookie.from_dict(_item) for _item in obj["cookies"]] if obj.get("cookies") is not None else None,
120
+ "extra_stealth": obj.get("extra_stealth") if obj.get("extra_stealth") is not None else False
119
121
  })
120
122
  return _obj
121
123
 
@@ -26,6 +26,7 @@ class ProxyType(str, Enum):
26
26
  """
27
27
  allowed enum values
28
28
  """
29
+ BASIC = 'basic'
29
30
  RESIDENTIAL = 'residential'
30
31
  MOBILE = 'mobile'
31
32
 
@@ -41,7 +41,8 @@ class UpdateAgentProfileRequest(BaseModel):
41
41
  credentials_to_delete: Optional[List[StrictStr]] = Field(default=None, description="List of credential IDs to delete from the profile")
42
42
  cookies_to_add: Optional[List[Cookie]] = Field(default=None, description="List of cookies to add to the profile")
43
43
  cookies_to_delete: Optional[List[StrictStr]] = Field(default=None, description="List of cookie IDs to delete from the profile")
44
- __properties: ClassVar[List[str]] = ["name", "description", "proxy_cc", "proxy_type", "captcha_solver_active", "sticky_ip", "credentials_to_add", "credentials_to_delete", "cookies_to_add", "cookies_to_delete"]
44
+ extra_stealth: Optional[StrictBool] = Field(default=False, description="Whether to enable extra stealth for the profile")
45
+ __properties: ClassVar[List[str]] = ["name", "description", "proxy_cc", "proxy_type", "captcha_solver_active", "sticky_ip", "credentials_to_add", "credentials_to_delete", "cookies_to_add", "cookies_to_delete", "extra_stealth"]
45
46
 
46
47
  model_config = ConfigDict(
47
48
  populate_by_name=True,
@@ -117,7 +118,8 @@ class UpdateAgentProfileRequest(BaseModel):
117
118
  "credentials_to_add": [Credential.from_dict(_item) for _item in obj["credentials_to_add"]] if obj.get("credentials_to_add") is not None else None,
118
119
  "credentials_to_delete": obj.get("credentials_to_delete"),
119
120
  "cookies_to_add": [Cookie.from_dict(_item) for _item in obj["cookies_to_add"]] if obj.get("cookies_to_add") is not None else None,
120
- "cookies_to_delete": obj.get("cookies_to_delete")
121
+ "cookies_to_delete": obj.get("cookies_to_delete"),
122
+ "extra_stealth": obj.get("extra_stealth") if obj.get("extra_stealth") is not None else False
121
123
  })
122
124
  return _obj
123
125