asteroid-odyssey 1.6.51__py3-none-any.whl → 1.6.105__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.
- asteroid_odyssey/__init__.py +6 -0
- asteroid_odyssey/models/__init__.py +3 -0
- asteroid_odyssey/models/agents_execution_list_item.py +5 -1
- asteroid_odyssey/models/agents_profile_agent_profile.py +14 -5
- asteroid_odyssey/models/agents_profile_create_agent_profile_request.py +14 -5
- asteroid_odyssey/models/agents_profile_custom_proxy_config_input.py +92 -0
- asteroid_odyssey/models/agents_profile_custom_proxy_config_output.py +89 -0
- asteroid_odyssey/models/agents_profile_proxy_mode.py +38 -0
- asteroid_odyssey/models/agents_profile_proxy_type.py +1 -1
- asteroid_odyssey/models/agents_profile_update_agent_profile_request.py +13 -4
- {asteroid_odyssey-1.6.51.dist-info → asteroid_odyssey-1.6.105.dist-info}/METADATA +1 -1
- {asteroid_odyssey-1.6.51.dist-info → asteroid_odyssey-1.6.105.dist-info}/RECORD +14 -11
- {asteroid_odyssey-1.6.51.dist-info → asteroid_odyssey-1.6.105.dist-info}/WHEEL +1 -1
- {asteroid_odyssey-1.6.51.dist-info → asteroid_odyssey-1.6.105.dist-info}/top_level.txt +0 -0
asteroid_odyssey/__init__.py
CHANGED
|
@@ -123,7 +123,10 @@ __all__ = [
|
|
|
123
123
|
"AgentsProfileCreateAgentProfileRequest",
|
|
124
124
|
"AgentsProfileCredential",
|
|
125
125
|
"AgentsProfileCredentialUpdate",
|
|
126
|
+
"AgentsProfileCustomProxyConfigInput",
|
|
127
|
+
"AgentsProfileCustomProxyConfigOutput",
|
|
126
128
|
"AgentsProfileOperatingSystem",
|
|
129
|
+
"AgentsProfileProxyMode",
|
|
127
130
|
"AgentsProfileProxyType",
|
|
128
131
|
"AgentsProfileSameSite",
|
|
129
132
|
"AgentsProfileSortField",
|
|
@@ -250,7 +253,10 @@ from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCou
|
|
|
250
253
|
from asteroid_odyssey.models.agents_profile_create_agent_profile_request import AgentsProfileCreateAgentProfileRequest as AgentsProfileCreateAgentProfileRequest
|
|
251
254
|
from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential as AgentsProfileCredential
|
|
252
255
|
from asteroid_odyssey.models.agents_profile_credential_update import AgentsProfileCredentialUpdate as AgentsProfileCredentialUpdate
|
|
256
|
+
from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput as AgentsProfileCustomProxyConfigInput
|
|
257
|
+
from asteroid_odyssey.models.agents_profile_custom_proxy_config_output import AgentsProfileCustomProxyConfigOutput as AgentsProfileCustomProxyConfigOutput
|
|
253
258
|
from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem as AgentsProfileOperatingSystem
|
|
259
|
+
from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode as AgentsProfileProxyMode
|
|
254
260
|
from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType as AgentsProfileProxyType
|
|
255
261
|
from asteroid_odyssey.models.agents_profile_same_site import AgentsProfileSameSite as AgentsProfileSameSite
|
|
256
262
|
from asteroid_odyssey.models.agents_profile_sort_field import AgentsProfileSortField as AgentsProfileSortField
|
|
@@ -106,7 +106,10 @@ from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCou
|
|
|
106
106
|
from asteroid_odyssey.models.agents_profile_create_agent_profile_request import AgentsProfileCreateAgentProfileRequest
|
|
107
107
|
from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
|
|
108
108
|
from asteroid_odyssey.models.agents_profile_credential_update import AgentsProfileCredentialUpdate
|
|
109
|
+
from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput
|
|
110
|
+
from asteroid_odyssey.models.agents_profile_custom_proxy_config_output import AgentsProfileCustomProxyConfigOutput
|
|
109
111
|
from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
|
|
112
|
+
from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
|
|
110
113
|
from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
|
|
111
114
|
from asteroid_odyssey.models.agents_profile_same_site import AgentsProfileSameSite
|
|
112
115
|
from asteroid_odyssey.models.agents_profile_sort_field import AgentsProfileSortField
|
|
@@ -40,6 +40,8 @@ class AgentsExecutionListItem(BaseModel):
|
|
|
40
40
|
organization_id: StrictStr = Field(description="The organization this execution belongs to", alias="organizationId")
|
|
41
41
|
agent_name: StrictStr = Field(description="The agent display name", alias="agentName")
|
|
42
42
|
agent_profile_name: Optional[StrictStr] = Field(default=None, description="The name of the agent profile used for this execution (if any)", alias="agentProfileName")
|
|
43
|
+
agent_profile_id: Optional[StrictStr] = Field(default=None, description="The ID of the agent profile used for this execution (if any)", alias="agentProfileId")
|
|
44
|
+
inputs: Optional[Dict[str, Any]] = Field(default=None, description="Input variables used for this execution")
|
|
43
45
|
execution_result: Optional[AgentsExecutionExecutionResult] = Field(default=None, description="Execution result with outcome, reasoning, and result data", alias="executionResult")
|
|
44
46
|
duration: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="Execution duration in seconds (only present for terminal executions)")
|
|
45
47
|
human_labels: List[AgentsExecutionHumanLabel] = Field(description="Human-applied labels for this execution", alias="humanLabels")
|
|
@@ -47,7 +49,7 @@ class AgentsExecutionListItem(BaseModel):
|
|
|
47
49
|
metadata: Optional[Dict[str, Any]] = Field(default=None, description="Optional metadata key-value pairs attached to this execution")
|
|
48
50
|
browser_recording_url: Optional[StrictStr] = Field(default=None, description="Browser recording URL (if a browser session was used and execution is terminal)", alias="browserRecordingUrl")
|
|
49
51
|
browser_live_view_url: Optional[StrictStr] = Field(default=None, description="Browser live view URL for debugging (if a browser session is active and execution is running)", alias="browserLiveViewUrl")
|
|
50
|
-
__properties: ClassVar[List[str]] = ["id", "agentId", "workflowId", "status", "createdAt", "terminalAt", "organizationId", "agentName", "agentProfileName", "executionResult", "duration", "humanLabels", "comments", "metadata", "browserRecordingUrl", "browserLiveViewUrl"]
|
|
52
|
+
__properties: ClassVar[List[str]] = ["id", "agentId", "workflowId", "status", "createdAt", "terminalAt", "organizationId", "agentName", "agentProfileName", "agentProfileId", "inputs", "executionResult", "duration", "humanLabels", "comments", "metadata", "browserRecordingUrl", "browserLiveViewUrl"]
|
|
51
53
|
|
|
52
54
|
model_config = ConfigDict(
|
|
53
55
|
populate_by_name=True,
|
|
@@ -126,6 +128,8 @@ class AgentsExecutionListItem(BaseModel):
|
|
|
126
128
|
"organizationId": obj.get("organizationId"),
|
|
127
129
|
"agentName": obj.get("agentName"),
|
|
128
130
|
"agentProfileName": obj.get("agentProfileName"),
|
|
131
|
+
"agentProfileId": obj.get("agentProfileId"),
|
|
132
|
+
"inputs": obj.get("inputs"),
|
|
129
133
|
"executionResult": AgentsExecutionExecutionResult.from_dict(obj["executionResult"]) if obj.get("executionResult") is not None else None,
|
|
130
134
|
"duration": obj.get("duration"),
|
|
131
135
|
"humanLabels": [AgentsExecutionHumanLabel.from_dict(_item) for _item in obj["humanLabels"]] if obj.get("humanLabels") is not None else None,
|
|
@@ -23,7 +23,9 @@ from typing import Any, ClassVar, Dict, List, Optional
|
|
|
23
23
|
from asteroid_odyssey.models.agents_profile_cookie import AgentsProfileCookie
|
|
24
24
|
from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCountryCode
|
|
25
25
|
from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
|
|
26
|
+
from asteroid_odyssey.models.agents_profile_custom_proxy_config_output import AgentsProfileCustomProxyConfigOutput
|
|
26
27
|
from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
|
|
28
|
+
from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
|
|
27
29
|
from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
|
|
28
30
|
from typing import Optional, Set
|
|
29
31
|
from typing_extensions import Self
|
|
@@ -36,10 +38,12 @@ class AgentsProfileAgentProfile(BaseModel):
|
|
|
36
38
|
name: StrictStr = Field(description="Name of the agent profile (unique within organization)")
|
|
37
39
|
description: StrictStr = Field(description="Description of the agent profile")
|
|
38
40
|
organization_id: StrictStr = Field(description="The ID of the organization that owns this profile", alias="organizationId")
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
proxy_mode: AgentsProfileProxyMode = Field(description="Proxy configuration mode", alias="proxyMode")
|
|
42
|
+
proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location (for managed proxy mode)", alias="proxyCC")
|
|
43
|
+
proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of managed proxy to use (for managed proxy mode)", alias="proxyType")
|
|
44
|
+
custom_proxy: Optional[AgentsProfileCustomProxyConfigOutput] = Field(default=None, description="Custom proxy configuration (for custom proxy mode, password excluded)", alias="customProxy")
|
|
45
|
+
captcha_solver_active: StrictBool = Field(description="Whether the captcha solver is active for this profile (managed proxy only)", alias="captchaSolverActive")
|
|
46
|
+
sticky_ip: StrictBool = Field(description="Whether to use the same IP address for all executions (managed proxy only)", alias="stickyIP")
|
|
43
47
|
operating_system: Optional[AgentsProfileOperatingSystem] = Field(default=None, description="Operating system to emulate", alias="operatingSystem")
|
|
44
48
|
extra_stealth: StrictBool = Field(description="Whether extra stealth mode is enabled", alias="extraStealth")
|
|
45
49
|
cache_persistence: StrictBool = Field(description="Whether to persist browser cache between sessions", alias="cachePersistence")
|
|
@@ -51,7 +55,7 @@ class AgentsProfileAgentProfile(BaseModel):
|
|
|
51
55
|
cookies: List[AgentsProfileCookie] = Field(description="List of cookies associated with this profile")
|
|
52
56
|
created_at: datetime = Field(description="When the profile was created", alias="createdAt")
|
|
53
57
|
updated_at: datetime = Field(description="When the profile was last updated", alias="updatedAt")
|
|
54
|
-
__properties: ClassVar[List[str]] = ["id", "name", "description", "organizationId", "proxyCC", "proxyType", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies", "createdAt", "updatedAt"]
|
|
58
|
+
__properties: ClassVar[List[str]] = ["id", "name", "description", "organizationId", "proxyMode", "proxyCC", "proxyType", "customProxy", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies", "createdAt", "updatedAt"]
|
|
55
59
|
|
|
56
60
|
model_config = ConfigDict(
|
|
57
61
|
populate_by_name=True,
|
|
@@ -92,6 +96,9 @@ class AgentsProfileAgentProfile(BaseModel):
|
|
|
92
96
|
exclude=excluded_fields,
|
|
93
97
|
exclude_none=True,
|
|
94
98
|
)
|
|
99
|
+
# override the default output from pydantic by calling `to_dict()` of custom_proxy
|
|
100
|
+
if self.custom_proxy:
|
|
101
|
+
_dict['customProxy'] = self.custom_proxy.to_dict()
|
|
95
102
|
# override the default output from pydantic by calling `to_dict()` of each item in credentials (list)
|
|
96
103
|
_items = []
|
|
97
104
|
if self.credentials:
|
|
@@ -122,8 +129,10 @@ class AgentsProfileAgentProfile(BaseModel):
|
|
|
122
129
|
"name": obj.get("name"),
|
|
123
130
|
"description": obj.get("description"),
|
|
124
131
|
"organizationId": obj.get("organizationId"),
|
|
132
|
+
"proxyMode": obj.get("proxyMode"),
|
|
125
133
|
"proxyCC": obj.get("proxyCC"),
|
|
126
134
|
"proxyType": obj.get("proxyType"),
|
|
135
|
+
"customProxy": AgentsProfileCustomProxyConfigOutput.from_dict(obj["customProxy"]) if obj.get("customProxy") is not None else None,
|
|
127
136
|
"captchaSolverActive": obj.get("captchaSolverActive"),
|
|
128
137
|
"stickyIP": obj.get("stickyIP"),
|
|
129
138
|
"operatingSystem": obj.get("operatingSystem"),
|
|
@@ -23,7 +23,9 @@ from typing_extensions import Annotated
|
|
|
23
23
|
from asteroid_odyssey.models.agents_profile_cookie import AgentsProfileCookie
|
|
24
24
|
from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCountryCode
|
|
25
25
|
from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
|
|
26
|
+
from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput
|
|
26
27
|
from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
|
|
28
|
+
from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
|
|
27
29
|
from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
|
|
28
30
|
from typing import Optional, Set
|
|
29
31
|
from typing_extensions import Self
|
|
@@ -35,10 +37,12 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
|
|
|
35
37
|
name: Annotated[str, Field(min_length=1, strict=True, max_length=255)] = Field(description="Name of the agent profile (must be unique within organization)")
|
|
36
38
|
description: Annotated[str, Field(strict=True, max_length=1000)] = Field(description="Description of the agent profile")
|
|
37
39
|
organization_id: StrictStr = Field(description="The ID of the organization that the profile belongs to", alias="organizationId")
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
proxy_mode: Optional[AgentsProfileProxyMode] = Field(default=None, description="Proxy configuration mode", alias="proxyMode")
|
|
41
|
+
proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location (for managed proxy mode)", alias="proxyCC")
|
|
42
|
+
proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of managed proxy to use (required for managed proxy mode)", alias="proxyType")
|
|
43
|
+
custom_proxy: Optional[AgentsProfileCustomProxyConfigInput] = Field(default=None, description="Custom proxy configuration (required for custom proxy mode)", alias="customProxy")
|
|
44
|
+
captcha_solver_active: Optional[StrictBool] = Field(default=False, description="Whether the captcha solver should be active (managed proxy only)", alias="captchaSolverActive")
|
|
45
|
+
sticky_ip: Optional[StrictBool] = Field(default=False, description="Whether to use the same IP address for all executions (managed proxy only)", alias="stickyIP")
|
|
42
46
|
operating_system: Optional[AgentsProfileOperatingSystem] = Field(default=None, description="Operating system to emulate", alias="operatingSystem")
|
|
43
47
|
extra_stealth: Optional[StrictBool] = Field(default=False, description="Whether to enable extra stealth mode", alias="extraStealth")
|
|
44
48
|
cache_persistence: Optional[StrictBool] = Field(default=False, description="Whether to persist browser cache between sessions", alias="cachePersistence")
|
|
@@ -48,7 +52,7 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
|
|
|
48
52
|
media_blocker_active: Optional[StrictBool] = Field(default=False, description="Whether to enable media blocking (images, videos, etc.)", alias="mediaBlockerActive")
|
|
49
53
|
credentials: Optional[List[AgentsProfileCredential]] = Field(default=None, description="Initial credentials to create with the profile")
|
|
50
54
|
cookies: Optional[List[AgentsProfileCookie]] = Field(default=None, description="Initial cookies to create with the profile")
|
|
51
|
-
__properties: ClassVar[List[str]] = ["name", "description", "organizationId", "proxyCC", "proxyType", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies"]
|
|
55
|
+
__properties: ClassVar[List[str]] = ["name", "description", "organizationId", "proxyMode", "proxyCC", "proxyType", "customProxy", "captchaSolverActive", "stickyIP", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentials", "cookies"]
|
|
52
56
|
|
|
53
57
|
model_config = ConfigDict(
|
|
54
58
|
populate_by_name=True,
|
|
@@ -89,6 +93,9 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
|
|
|
89
93
|
exclude=excluded_fields,
|
|
90
94
|
exclude_none=True,
|
|
91
95
|
)
|
|
96
|
+
# override the default output from pydantic by calling `to_dict()` of custom_proxy
|
|
97
|
+
if self.custom_proxy:
|
|
98
|
+
_dict['customProxy'] = self.custom_proxy.to_dict()
|
|
92
99
|
# override the default output from pydantic by calling `to_dict()` of each item in credentials (list)
|
|
93
100
|
_items = []
|
|
94
101
|
if self.credentials:
|
|
@@ -118,8 +125,10 @@ class AgentsProfileCreateAgentProfileRequest(BaseModel):
|
|
|
118
125
|
"name": obj.get("name"),
|
|
119
126
|
"description": obj.get("description"),
|
|
120
127
|
"organizationId": obj.get("organizationId"),
|
|
128
|
+
"proxyMode": obj.get("proxyMode"),
|
|
121
129
|
"proxyCC": obj.get("proxyCC"),
|
|
122
130
|
"proxyType": obj.get("proxyType"),
|
|
131
|
+
"customProxy": AgentsProfileCustomProxyConfigInput.from_dict(obj["customProxy"]) if obj.get("customProxy") is not None else None,
|
|
123
132
|
"captchaSolverActive": obj.get("captchaSolverActive") if obj.get("captchaSolverActive") is not None else False,
|
|
124
133
|
"stickyIP": obj.get("stickyIP") if obj.get("stickyIP") is not None else False,
|
|
125
134
|
"operatingSystem": obj.get("operatingSystem"),
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Agent Service
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: v1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
21
|
+
from typing import Any, ClassVar, Dict, List
|
|
22
|
+
from typing_extensions import Annotated
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class AgentsProfileCustomProxyConfigInput(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
Custom proxy server configuration for input (includes password)
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
server: Annotated[str, Field(min_length=1, strict=True)] = Field(description="Proxy server address including protocol and port (e.g., 'socks5://proxy.example.com:1080' or 'http://proxy.example.com:8080')")
|
|
31
|
+
username: Annotated[str, Field(min_length=1, strict=True)] = Field(description="Proxy authentication username")
|
|
32
|
+
password: Annotated[str, Field(min_length=1, strict=True)] = Field(description="Proxy authentication password")
|
|
33
|
+
__properties: ClassVar[List[str]] = ["server", "username", "password"]
|
|
34
|
+
|
|
35
|
+
model_config = ConfigDict(
|
|
36
|
+
populate_by_name=True,
|
|
37
|
+
validate_assignment=True,
|
|
38
|
+
protected_namespaces=(),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
+
return json.dumps(self.to_dict())
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
+
"""Create an instance of AgentsProfileCustomProxyConfigInput from a JSON string"""
|
|
54
|
+
return cls.from_dict(json.loads(json_str))
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
+
"""Return the dictionary representation of the model using alias.
|
|
58
|
+
|
|
59
|
+
This has the following differences from calling pydantic's
|
|
60
|
+
`self.model_dump(by_alias=True)`:
|
|
61
|
+
|
|
62
|
+
* `None` is only added to the output dict for nullable fields that
|
|
63
|
+
were set at model initialization. Other fields with value `None`
|
|
64
|
+
are ignored.
|
|
65
|
+
"""
|
|
66
|
+
excluded_fields: Set[str] = set([
|
|
67
|
+
])
|
|
68
|
+
|
|
69
|
+
_dict = self.model_dump(
|
|
70
|
+
by_alias=True,
|
|
71
|
+
exclude=excluded_fields,
|
|
72
|
+
exclude_none=True,
|
|
73
|
+
)
|
|
74
|
+
return _dict
|
|
75
|
+
|
|
76
|
+
@classmethod
|
|
77
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
78
|
+
"""Create an instance of AgentsProfileCustomProxyConfigInput from a dict"""
|
|
79
|
+
if obj is None:
|
|
80
|
+
return None
|
|
81
|
+
|
|
82
|
+
if not isinstance(obj, dict):
|
|
83
|
+
return cls.model_validate(obj)
|
|
84
|
+
|
|
85
|
+
_obj = cls.model_validate({
|
|
86
|
+
"server": obj.get("server"),
|
|
87
|
+
"username": obj.get("username"),
|
|
88
|
+
"password": obj.get("password")
|
|
89
|
+
})
|
|
90
|
+
return _obj
|
|
91
|
+
|
|
92
|
+
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Agent Service
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: v1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import pprint
|
|
17
|
+
import re # noqa: F401
|
|
18
|
+
import json
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
21
|
+
from typing import Any, ClassVar, Dict, List
|
|
22
|
+
from typing import Optional, Set
|
|
23
|
+
from typing_extensions import Self
|
|
24
|
+
|
|
25
|
+
class AgentsProfileCustomProxyConfigOutput(BaseModel):
|
|
26
|
+
"""
|
|
27
|
+
Custom proxy server configuration for output (excludes password)
|
|
28
|
+
""" # noqa: E501
|
|
29
|
+
server: StrictStr = Field(description="Proxy server address")
|
|
30
|
+
username: StrictStr = Field(description="Proxy authentication username")
|
|
31
|
+
__properties: ClassVar[List[str]] = ["server", "username"]
|
|
32
|
+
|
|
33
|
+
model_config = ConfigDict(
|
|
34
|
+
populate_by_name=True,
|
|
35
|
+
validate_assignment=True,
|
|
36
|
+
protected_namespaces=(),
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def to_str(self) -> str:
|
|
41
|
+
"""Returns the string representation of the model using alias"""
|
|
42
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
43
|
+
|
|
44
|
+
def to_json(self) -> str:
|
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
|
46
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
47
|
+
return json.dumps(self.to_dict())
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
+
"""Create an instance of AgentsProfileCustomProxyConfigOutput from a JSON string"""
|
|
52
|
+
return cls.from_dict(json.loads(json_str))
|
|
53
|
+
|
|
54
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
55
|
+
"""Return the dictionary representation of the model using alias.
|
|
56
|
+
|
|
57
|
+
This has the following differences from calling pydantic's
|
|
58
|
+
`self.model_dump(by_alias=True)`:
|
|
59
|
+
|
|
60
|
+
* `None` is only added to the output dict for nullable fields that
|
|
61
|
+
were set at model initialization. Other fields with value `None`
|
|
62
|
+
are ignored.
|
|
63
|
+
"""
|
|
64
|
+
excluded_fields: Set[str] = set([
|
|
65
|
+
])
|
|
66
|
+
|
|
67
|
+
_dict = self.model_dump(
|
|
68
|
+
by_alias=True,
|
|
69
|
+
exclude=excluded_fields,
|
|
70
|
+
exclude_none=True,
|
|
71
|
+
)
|
|
72
|
+
return _dict
|
|
73
|
+
|
|
74
|
+
@classmethod
|
|
75
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
76
|
+
"""Create an instance of AgentsProfileCustomProxyConfigOutput from a dict"""
|
|
77
|
+
if obj is None:
|
|
78
|
+
return None
|
|
79
|
+
|
|
80
|
+
if not isinstance(obj, dict):
|
|
81
|
+
return cls.model_validate(obj)
|
|
82
|
+
|
|
83
|
+
_obj = cls.model_validate({
|
|
84
|
+
"server": obj.get("server"),
|
|
85
|
+
"username": obj.get("username")
|
|
86
|
+
})
|
|
87
|
+
return _obj
|
|
88
|
+
|
|
89
|
+
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Agent Service
|
|
5
|
+
|
|
6
|
+
No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: v1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
import json
|
|
17
|
+
from enum import Enum
|
|
18
|
+
from typing_extensions import Self
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class AgentsProfileProxyMode(str, Enum):
|
|
22
|
+
"""
|
|
23
|
+
Proxy configuration mode
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
"""
|
|
27
|
+
allowed enum values
|
|
28
|
+
"""
|
|
29
|
+
NONE = 'none'
|
|
30
|
+
MANAGED = 'managed'
|
|
31
|
+
CUSTOM = 'custom'
|
|
32
|
+
|
|
33
|
+
@classmethod
|
|
34
|
+
def from_json(cls, json_str: str) -> Self:
|
|
35
|
+
"""Create an instance of AgentsProfileProxyMode from a JSON string"""
|
|
36
|
+
return cls(json.loads(json_str))
|
|
37
|
+
|
|
38
|
+
|
|
@@ -24,7 +24,9 @@ from asteroid_odyssey.models.agents_profile_cookie import AgentsProfileCookie
|
|
|
24
24
|
from asteroid_odyssey.models.agents_profile_country_code import AgentsProfileCountryCode
|
|
25
25
|
from asteroid_odyssey.models.agents_profile_credential import AgentsProfileCredential
|
|
26
26
|
from asteroid_odyssey.models.agents_profile_credential_update import AgentsProfileCredentialUpdate
|
|
27
|
+
from asteroid_odyssey.models.agents_profile_custom_proxy_config_input import AgentsProfileCustomProxyConfigInput
|
|
27
28
|
from asteroid_odyssey.models.agents_profile_operating_system import AgentsProfileOperatingSystem
|
|
29
|
+
from asteroid_odyssey.models.agents_profile_proxy_mode import AgentsProfileProxyMode
|
|
28
30
|
from asteroid_odyssey.models.agents_profile_proxy_type import AgentsProfileProxyType
|
|
29
31
|
from typing import Optional, Set
|
|
30
32
|
from typing_extensions import Self
|
|
@@ -35,9 +37,11 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
|
|
|
35
37
|
""" # noqa: E501
|
|
36
38
|
name: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=255)]] = Field(default=None, description="New name for the profile")
|
|
37
39
|
description: Optional[Annotated[str, Field(strict=True, max_length=1000)]] = Field(default=None, description="New description for the profile")
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
proxy_mode: Optional[AgentsProfileProxyMode] = Field(default=None, description="Proxy configuration mode", alias="proxyMode")
|
|
41
|
+
proxy_cc: Optional[AgentsProfileCountryCode] = Field(default=None, description="Country code for proxy location (for managed proxy mode)", alias="proxyCC")
|
|
42
|
+
proxy_type: Optional[AgentsProfileProxyType] = Field(default=None, description="Type of managed proxy to use (for managed proxy mode)", alias="proxyType")
|
|
43
|
+
custom_proxy: Optional[AgentsProfileCustomProxyConfigInput] = Field(default=None, description="Custom proxy configuration (for custom proxy mode)", alias="customProxy")
|
|
44
|
+
captcha_solver_active: Optional[StrictBool] = Field(default=None, description="Whether the captcha solver should be active (managed proxy only)", alias="captchaSolverActive")
|
|
41
45
|
operating_system: Optional[AgentsProfileOperatingSystem] = Field(default=None, description="Operating system to emulate", alias="operatingSystem")
|
|
42
46
|
extra_stealth: Optional[StrictBool] = Field(default=None, description="Whether to enable extra stealth mode", alias="extraStealth")
|
|
43
47
|
cache_persistence: Optional[StrictBool] = Field(default=None, description="Whether to persist browser cache between sessions", alias="cachePersistence")
|
|
@@ -50,7 +54,7 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
|
|
|
50
54
|
credentials_to_delete: Optional[List[StrictStr]] = Field(default=None, description="IDs of credentials to remove from the profile", alias="credentialsToDelete")
|
|
51
55
|
cookies_to_add: Optional[List[AgentsProfileCookie]] = Field(default=None, description="Cookies to add to the profile", alias="cookiesToAdd")
|
|
52
56
|
cookies_to_delete: Optional[List[StrictStr]] = Field(default=None, description="IDs of cookies to remove from the profile", alias="cookiesToDelete")
|
|
53
|
-
__properties: ClassVar[List[str]] = ["name", "description", "proxyCC", "proxyType", "captchaSolverActive", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentialsToAdd", "credentialsToUpdate", "credentialsToDelete", "cookiesToAdd", "cookiesToDelete"]
|
|
57
|
+
__properties: ClassVar[List[str]] = ["name", "description", "proxyMode", "proxyCC", "proxyType", "customProxy", "captchaSolverActive", "operatingSystem", "extraStealth", "cachePersistence", "adblockActive", "popupBlockerActive", "forcePopupsAsTabsActive", "mediaBlockerActive", "credentialsToAdd", "credentialsToUpdate", "credentialsToDelete", "cookiesToAdd", "cookiesToDelete"]
|
|
54
58
|
|
|
55
59
|
model_config = ConfigDict(
|
|
56
60
|
populate_by_name=True,
|
|
@@ -91,6 +95,9 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
|
|
|
91
95
|
exclude=excluded_fields,
|
|
92
96
|
exclude_none=True,
|
|
93
97
|
)
|
|
98
|
+
# override the default output from pydantic by calling `to_dict()` of custom_proxy
|
|
99
|
+
if self.custom_proxy:
|
|
100
|
+
_dict['customProxy'] = self.custom_proxy.to_dict()
|
|
94
101
|
# override the default output from pydantic by calling `to_dict()` of each item in credentials_to_add (list)
|
|
95
102
|
_items = []
|
|
96
103
|
if self.credentials_to_add:
|
|
@@ -126,8 +133,10 @@ class AgentsProfileUpdateAgentProfileRequest(BaseModel):
|
|
|
126
133
|
_obj = cls.model_validate({
|
|
127
134
|
"name": obj.get("name"),
|
|
128
135
|
"description": obj.get("description"),
|
|
136
|
+
"proxyMode": obj.get("proxyMode"),
|
|
129
137
|
"proxyCC": obj.get("proxyCC"),
|
|
130
138
|
"proxyType": obj.get("proxyType"),
|
|
139
|
+
"customProxy": AgentsProfileCustomProxyConfigInput.from_dict(obj["customProxy"]) if obj.get("customProxy") is not None else None,
|
|
131
140
|
"captchaSolverActive": obj.get("captchaSolverActive"),
|
|
132
141
|
"operatingSystem": obj.get("operatingSystem"),
|
|
133
142
|
"extraStealth": obj.get("extraStealth"),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
asteroid_odyssey/__init__.py,sha256=
|
|
1
|
+
asteroid_odyssey/__init__.py,sha256=SLcMg7jH6_u6VpkD6ee2rkLSgoJB4mhzHvhM8bU3wAg,22905
|
|
2
2
|
asteroid_odyssey/api_client.py,sha256=vk7bgx6L2b1SvKdTD9RRCY2d1rRvHaI6QoQy0KiFZ8A,27723
|
|
3
3
|
asteroid_odyssey/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
|
|
4
4
|
asteroid_odyssey/configuration.py,sha256=ICQFu0VrF-OoEScevweF58q4R7IMpP_-r9x60nuyba4,18903
|
|
@@ -10,7 +10,7 @@ asteroid_odyssey/api/agent_profiles_api.py,sha256=EzvS-86oCwa_9xF5XBAy5Z0VaUvJmz
|
|
|
10
10
|
asteroid_odyssey/api/agents_api.py,sha256=EWiMV7wcVBMdas96xbWBNw2mqIs3b04G6S1URXW12-4,26482
|
|
11
11
|
asteroid_odyssey/api/execution_api.py,sha256=vqo84-Aw5BvJ0ZTDfc21SPdpeuSYRWzzBIgPj1u4-as,77059
|
|
12
12
|
asteroid_odyssey/api/files_api.py,sha256=3eelhlLfOhN53THJ90LfdLo3kdCnnw5Qml83dtWqPC4,35447
|
|
13
|
-
asteroid_odyssey/models/__init__.py,sha256=
|
|
13
|
+
asteroid_odyssey/models/__init__.py,sha256=eZKVygfXqqLysfAxoJLaa0VxnlN7gmGrei9heewJvk4,12644
|
|
14
14
|
asteroid_odyssey/models/agent_list200_response.py,sha256=fZNz18hRSrvKPHPAe16A5p1K1RopKj0Unn6Npglhu7w,3235
|
|
15
15
|
asteroid_odyssey/models/agent_profile_clear_browser_cache200_response.py,sha256=R7svpgREt63we4utbMFsBPxw2-oycWLwi5xfINc6wL4,2591
|
|
16
16
|
asteroid_odyssey/models/agent_profiles_list200_response.py,sha256=OHvPOC6Kzo0jLWgkbx8TnkRs9w4VlAMsghH6gpyitdc,3308
|
|
@@ -53,7 +53,7 @@ asteroid_odyssey/models/agents_execution_file_list_completed_details.py,sha256=7
|
|
|
53
53
|
asteroid_odyssey/models/agents_execution_file_read_completed_details.py,sha256=0tB0oJeKm3BSZqW54oDxGGHQFT0_R10W9G7bKrOJXeU,3352
|
|
54
54
|
asteroid_odyssey/models/agents_execution_file_stage_completed_details.py,sha256=aowoJrFg-jwZQ3ImE1WRdMR-8gS2qo4bxrBavbQSCbk,3032
|
|
55
55
|
asteroid_odyssey/models/agents_execution_human_label.py,sha256=ewRTI0UsUuzPts1xk80aD7H4sGeH7J7qi49mLvLQJqA,3218
|
|
56
|
-
asteroid_odyssey/models/agents_execution_list_item.py,sha256=
|
|
56
|
+
asteroid_odyssey/models/agents_execution_list_item.py,sha256=XtE0C0ju67nTeV_jAvwM4xTKR2dchVY2EDAKv9xvlPo,7657
|
|
57
57
|
asteroid_odyssey/models/agents_execution_llm_call_purpose.py,sha256=ZyMEExVLDmrRDU25GWEePHAnDhKFEgJmUaU4h7ij2lU,1065
|
|
58
58
|
asteroid_odyssey/models/agents_execution_llm_call_started_details.py,sha256=90w2yZ2DP7jKndVr0qNx2uFaJfRJTaXWDn1J08UwsN4,3090
|
|
59
59
|
asteroid_odyssey/models/agents_execution_nav_to_completed_details.py,sha256=x3FB2vujx1Kedlplfe6jaZ6KhchFuX0KCliZbGgUDzE,3036
|
|
@@ -97,17 +97,20 @@ asteroid_odyssey/models/agents_files_temp_files_response.py,sha256=QBUpg40FdZ_Sa
|
|
|
97
97
|
asteroid_odyssey/models/agents_graph_models_nodes_properties_playwright_script_llm_var.py,sha256=hRX54qN8R-Ib_A3LVVJKZiVc0encVVXc-4mje80wFy8,3005
|
|
98
98
|
asteroid_odyssey/models/agents_graph_models_nodes_properties_playwright_script_llm_var_type.py,sha256=lu_J1UrE9WKhzNJV34kVDxKxsjV3fvFBJjnnB0LsgIE,914
|
|
99
99
|
asteroid_odyssey/models/agents_graph_models_transitions_transition_type.py,sha256=QnUO0ARjDeBRhPdRiR2emGrSkD8lIJnNgpzG7OHzeTg,882
|
|
100
|
-
asteroid_odyssey/models/agents_profile_agent_profile.py,sha256=
|
|
100
|
+
asteroid_odyssey/models/agents_profile_agent_profile.py,sha256=cpnAQVqEoXYtI_zNso8SiAOwmWUQnLNhXhUB0_PyE1M,8449
|
|
101
101
|
asteroid_odyssey/models/agents_profile_cookie.py,sha256=972PRRMXbzZC5ed2Ql2W-1s_ZvrZwRR15BEQXtRziog,4250
|
|
102
102
|
asteroid_odyssey/models/agents_profile_country_code.py,sha256=fJpWW77odDYMc5xssM8LP-v9KkdHHwTGNncvhsyGHr4,888
|
|
103
|
-
asteroid_odyssey/models/agents_profile_create_agent_profile_request.py,sha256=
|
|
103
|
+
asteroid_odyssey/models/agents_profile_create_agent_profile_request.py,sha256=L1cg-wEFHU_39nrAl0fy_2sbpngEWi3Mg1IPegIAH9M,8824
|
|
104
104
|
asteroid_odyssey/models/agents_profile_credential.py,sha256=4RtP_-koDtuKADkR0JIXPUIGVjAuFrkrqiVlWs6UbmI,3246
|
|
105
105
|
asteroid_odyssey/models/agents_profile_credential_update.py,sha256=nsdvzfhZ0uZPp5Vytx5l8Wi5I3UTJfHVsCxPAsV3-IY,2926
|
|
106
|
+
asteroid_odyssey/models/agents_profile_custom_proxy_config_input.py,sha256=yviuxgw3zPTmwNOMz7NSDmjaCeoQg1RPZPm9Yvf-7YU,3165
|
|
107
|
+
asteroid_odyssey/models/agents_profile_custom_proxy_config_output.py,sha256=g-JaZdUiPUQTiwBiHRuCJSXd7qLhISykk4_XNj-9Wfg,2784
|
|
106
108
|
asteroid_odyssey/models/agents_profile_operating_system.py,sha256=xQCfTpEEMtzXtTnNcWerahiL7J4_J1f-VUm-c74Rxig,814
|
|
107
|
-
asteroid_odyssey/models/
|
|
109
|
+
asteroid_odyssey/models/agents_profile_proxy_mode.py,sha256=efPd1SUqyUyPcv_3R9qRUEN-9wYkXiHko2v9aw-D3rk,804
|
|
110
|
+
asteroid_odyssey/models/agents_profile_proxy_type.py,sha256=-jB4630yA8T9nuhfsnfoKI9LfD6mxDgnk7Nc7hFAdjw,839
|
|
108
111
|
asteroid_odyssey/models/agents_profile_same_site.py,sha256=NBMQWIzxbGPZwghb4r7wl9lHqisvgXNzpMMNf8RYb9Q,800
|
|
109
112
|
asteroid_odyssey/models/agents_profile_sort_field.py,sha256=mLH_ycO9YNwwSMExi193Ty7MqyiEUvjNxd5FBOUUdHA,837
|
|
110
|
-
asteroid_odyssey/models/agents_profile_update_agent_profile_request.py,sha256=
|
|
113
|
+
asteroid_odyssey/models/agents_profile_update_agent_profile_request.py,sha256=9b60K7mbjS8VwmhTB4NqWRtDeQMVc3HuxTYqCte7Nf0,9535
|
|
111
114
|
asteroid_odyssey/models/common_bad_request_error_body.py,sha256=cZQcZH6c2RmQleZe57-mfUsCKW74lGGtVMWbJFGc1ho,2889
|
|
112
115
|
asteroid_odyssey/models/common_error.py,sha256=to8zl1yPqcf8hRXEZeOrhuA_jWhmpaMmly5Y_Xl129k,2551
|
|
113
116
|
asteroid_odyssey/models/common_forbidden_error_body.py,sha256=9yADAujD_9eTW4BtZ7oYifmFCDTpAw-j1jEEJhwdAVs,2885
|
|
@@ -118,7 +121,7 @@ asteroid_odyssey/models/common_sort_direction.py,sha256=UBW99PM3QRGRRE7dB5OSBhmh
|
|
|
118
121
|
asteroid_odyssey/models/common_unauthorized_error_body.py,sha256=Ng62vZVuPWEkTvdnYimbItSKhUGT9G52ZOapMQ2O7Xg,2897
|
|
119
122
|
asteroid_odyssey/models/executions_list200_response.py,sha256=hbMbbsh7F8Cjl3S2hhRkcH4cvHCL24TVz8fwhGE9LfI,3288
|
|
120
123
|
asteroid_odyssey/models/version.py,sha256=Vjiri_a5CcDJ1lSziRqif5HuFpaxneVDLIB1r8SFIkE,707
|
|
121
|
-
asteroid_odyssey-1.6.
|
|
122
|
-
asteroid_odyssey-1.6.
|
|
123
|
-
asteroid_odyssey-1.6.
|
|
124
|
-
asteroid_odyssey-1.6.
|
|
124
|
+
asteroid_odyssey-1.6.105.dist-info/METADATA,sha256=Yf4yzhKYSGv5cLOhwm8h8upsKbKNy37XHP0p7EWKaBc,1891
|
|
125
|
+
asteroid_odyssey-1.6.105.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
126
|
+
asteroid_odyssey-1.6.105.dist-info/top_level.txt,sha256=h4T6NKscnThJ4Nhzors2NKlJeZzepnM7XvDgsnfi5HA,17
|
|
127
|
+
asteroid_odyssey-1.6.105.dist-info/RECORD,,
|
|
File without changes
|