robosystems-client 0.1.14__py3-none-any.whl → 0.1.16__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.

Potentially problematic release.


This version of robosystems-client might be problematic. Click here for more details.

Files changed (45) hide show
  1. robosystems_client/api/agent/auto_select_agent.py +264 -0
  2. robosystems_client/api/agent/batch_process_queries.py +279 -0
  3. robosystems_client/api/agent/execute_specific_agent.py +276 -0
  4. robosystems_client/api/agent/get_agent_metadata.py +256 -0
  5. robosystems_client/api/agent/list_agents.py +264 -0
  6. robosystems_client/api/agent/recommend_agent.py +273 -0
  7. robosystems_client/api/graph_credits/check_credit_balance.py +14 -10
  8. robosystems_client/models/__init__.py +35 -3
  9. robosystems_client/models/agent_list_response.py +74 -0
  10. robosystems_client/models/agent_list_response_agents.py +67 -0
  11. robosystems_client/models/{credits_summary_response_credits_by_addon_item.py → agent_list_response_agents_additional_property.py} +5 -5
  12. robosystems_client/models/agent_message.py +35 -1
  13. robosystems_client/models/agent_metadata_response.py +133 -0
  14. robosystems_client/models/agent_mode.py +11 -0
  15. robosystems_client/models/agent_recommendation.py +106 -0
  16. robosystems_client/models/agent_recommendation_request.py +108 -0
  17. robosystems_client/models/agent_recommendation_request_context_type_0.py +44 -0
  18. robosystems_client/models/agent_recommendation_response.py +82 -0
  19. robosystems_client/models/agent_request.py +110 -6
  20. robosystems_client/models/agent_response.py +161 -11
  21. robosystems_client/models/agent_response_error_details_type_0.py +44 -0
  22. robosystems_client/models/agent_response_tokens_used_type_0.py +44 -0
  23. robosystems_client/models/auth_response.py +20 -6
  24. robosystems_client/models/batch_agent_request.py +85 -0
  25. robosystems_client/models/batch_agent_response.py +90 -0
  26. robosystems_client/models/credit_summary.py +35 -9
  27. robosystems_client/models/credits_summary_response.py +47 -21
  28. robosystems_client/models/credits_summary_response_credits_by_addon_type_0_item.py +44 -0
  29. robosystems_client/models/custom_schema_definition.py +7 -14
  30. robosystems_client/models/custom_schema_definition_metadata.py +1 -6
  31. robosystems_client/models/database_health_response.py +11 -11
  32. robosystems_client/models/database_info_response.py +13 -14
  33. robosystems_client/models/error_response.py +4 -8
  34. robosystems_client/models/graph_metadata.py +4 -5
  35. robosystems_client/models/health_status.py +2 -2
  36. robosystems_client/models/repository_credits_response.py +43 -16
  37. robosystems_client/models/schema_export_response.py +5 -8
  38. robosystems_client/models/schema_validation_request.py +3 -5
  39. robosystems_client/models/schema_validation_response.py +5 -5
  40. robosystems_client/models/selection_criteria.py +122 -0
  41. robosystems_client/models/success_response.py +1 -1
  42. {robosystems_client-0.1.14.dist-info → robosystems_client-0.1.16.dist-info}/METADATA +1 -1
  43. {robosystems_client-0.1.14.dist-info → robosystems_client-0.1.16.dist-info}/RECORD +44 -25
  44. robosystems_client/api/agent/query_financial_agent.py +0 -423
  45. {robosystems_client-0.1.14.dist-info → robosystems_client-0.1.16.dist-info}/WHEEL +0 -0
@@ -2,11 +2,26 @@
2
2
 
3
3
  from .account_info import AccountInfo
4
4
  from .add_on_credit_info import AddOnCreditInfo
5
+ from .agent_list_response import AgentListResponse
6
+ from .agent_list_response_agents import AgentListResponseAgents
7
+ from .agent_list_response_agents_additional_property import (
8
+ AgentListResponseAgentsAdditionalProperty,
9
+ )
5
10
  from .agent_message import AgentMessage
11
+ from .agent_metadata_response import AgentMetadataResponse
12
+ from .agent_mode import AgentMode
13
+ from .agent_recommendation import AgentRecommendation
14
+ from .agent_recommendation_request import AgentRecommendationRequest
15
+ from .agent_recommendation_request_context_type_0 import (
16
+ AgentRecommendationRequestContextType0,
17
+ )
18
+ from .agent_recommendation_response import AgentRecommendationResponse
6
19
  from .agent_request import AgentRequest
7
20
  from .agent_request_context_type_0 import AgentRequestContextType0
8
21
  from .agent_response import AgentResponse
22
+ from .agent_response_error_details_type_0 import AgentResponseErrorDetailsType0
9
23
  from .agent_response_metadata_type_0 import AgentResponseMetadataType0
24
+ from .agent_response_tokens_used_type_0 import AgentResponseTokensUsedType0
10
25
  from .api_key_info import APIKeyInfo
11
26
  from .api_keys_response import APIKeysResponse
12
27
  from .auth_response import AuthResponse
@@ -19,6 +34,8 @@ from .backup_response import BackupResponse
19
34
  from .backup_restore_request import BackupRestoreRequest
20
35
  from .backup_stats_response import BackupStatsResponse
21
36
  from .backup_stats_response_backup_formats import BackupStatsResponseBackupFormats
37
+ from .batch_agent_request import BatchAgentRequest
38
+ from .batch_agent_response import BatchAgentResponse
22
39
  from .cancel_operation_response_canceloperation import (
23
40
  CancelOperationResponseCanceloperation,
24
41
  )
@@ -46,8 +63,8 @@ from .create_subgraph_request_metadata_type_0 import CreateSubgraphRequestMetada
46
63
  from .credit_summary import CreditSummary
47
64
  from .credit_summary_response import CreditSummaryResponse
48
65
  from .credits_summary_response import CreditsSummaryResponse
49
- from .credits_summary_response_credits_by_addon_item import (
50
- CreditsSummaryResponseCreditsByAddonItem,
66
+ from .credits_summary_response_credits_by_addon_type_0_item import (
67
+ CreditsSummaryResponseCreditsByAddonType0Item,
51
68
  )
52
69
  from .custom_schema_definition import CustomSchemaDefinition
53
70
  from .custom_schema_definition_metadata import CustomSchemaDefinitionMetadata
@@ -187,6 +204,7 @@ from .schema_validation_response_compatibility_type_0 import (
187
204
  )
188
205
  from .schema_validation_response_stats_type_0 import SchemaValidationResponseStatsType0
189
206
  from .sec_connection_config import SECConnectionConfig
207
+ from .selection_criteria import SelectionCriteria
190
208
  from .sso_complete_request import SSOCompleteRequest
191
209
  from .sso_exchange_request import SSOExchangeRequest
192
210
  from .sso_exchange_response import SSOExchangeResponse
@@ -243,11 +261,22 @@ from .validation_error import ValidationError
243
261
  __all__ = (
244
262
  "AccountInfo",
245
263
  "AddOnCreditInfo",
264
+ "AgentListResponse",
265
+ "AgentListResponseAgents",
266
+ "AgentListResponseAgentsAdditionalProperty",
246
267
  "AgentMessage",
268
+ "AgentMetadataResponse",
269
+ "AgentMode",
270
+ "AgentRecommendation",
271
+ "AgentRecommendationRequest",
272
+ "AgentRecommendationRequestContextType0",
273
+ "AgentRecommendationResponse",
247
274
  "AgentRequest",
248
275
  "AgentRequestContextType0",
249
276
  "AgentResponse",
277
+ "AgentResponseErrorDetailsType0",
250
278
  "AgentResponseMetadataType0",
279
+ "AgentResponseTokensUsedType0",
251
280
  "APIKeyInfo",
252
281
  "APIKeysResponse",
253
282
  "AuthResponse",
@@ -260,6 +289,8 @@ __all__ = (
260
289
  "BackupRestoreRequest",
261
290
  "BackupStatsResponse",
262
291
  "BackupStatsResponseBackupFormats",
292
+ "BatchAgentRequest",
293
+ "BatchAgentResponse",
263
294
  "CancellationResponse",
264
295
  "CancelOperationResponseCanceloperation",
265
296
  "CheckCreditBalanceResponseCheckcreditbalance",
@@ -281,7 +312,7 @@ __all__ = (
281
312
  "CreateSubgraphRequest",
282
313
  "CreateSubgraphRequestMetadataType0",
283
314
  "CreditsSummaryResponse",
284
- "CreditsSummaryResponseCreditsByAddonItem",
315
+ "CreditsSummaryResponseCreditsByAddonType0Item",
285
316
  "CreditSummary",
286
317
  "CreditSummaryResponse",
287
318
  "CustomSchemaDefinition",
@@ -374,6 +405,7 @@ __all__ = (
374
405
  "SchemaValidationResponseCompatibilityType0",
375
406
  "SchemaValidationResponseStatsType0",
376
407
  "SECConnectionConfig",
408
+ "SelectionCriteria",
377
409
  "SSOCompleteRequest",
378
410
  "SSOExchangeRequest",
379
411
  "SSOExchangeResponse",
@@ -0,0 +1,74 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.agent_list_response_agents import AgentListResponseAgents
9
+
10
+
11
+ T = TypeVar("T", bound="AgentListResponse")
12
+
13
+
14
+ @_attrs_define
15
+ class AgentListResponse:
16
+ """Response for listing available agents.
17
+
18
+ Attributes:
19
+ agents (AgentListResponseAgents): Dictionary of available agents with metadata
20
+ total (int): Total number of agents
21
+ """
22
+
23
+ agents: "AgentListResponseAgents"
24
+ total: int
25
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> dict[str, Any]:
28
+ agents = self.agents.to_dict()
29
+
30
+ total = self.total
31
+
32
+ field_dict: dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update(
35
+ {
36
+ "agents": agents,
37
+ "total": total,
38
+ }
39
+ )
40
+
41
+ return field_dict
42
+
43
+ @classmethod
44
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
45
+ from ..models.agent_list_response_agents import AgentListResponseAgents
46
+
47
+ d = dict(src_dict)
48
+ agents = AgentListResponseAgents.from_dict(d.pop("agents"))
49
+
50
+ total = d.pop("total")
51
+
52
+ agent_list_response = cls(
53
+ agents=agents,
54
+ total=total,
55
+ )
56
+
57
+ agent_list_response.additional_properties = d
58
+ return agent_list_response
59
+
60
+ @property
61
+ def additional_keys(self) -> list[str]:
62
+ return list(self.additional_properties.keys())
63
+
64
+ def __getitem__(self, key: str) -> Any:
65
+ return self.additional_properties[key]
66
+
67
+ def __setitem__(self, key: str, value: Any) -> None:
68
+ self.additional_properties[key] = value
69
+
70
+ def __delitem__(self, key: str) -> None:
71
+ del self.additional_properties[key]
72
+
73
+ def __contains__(self, key: str) -> bool:
74
+ return key in self.additional_properties
@@ -0,0 +1,67 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.agent_list_response_agents_additional_property import (
9
+ AgentListResponseAgentsAdditionalProperty,
10
+ )
11
+
12
+
13
+ T = TypeVar("T", bound="AgentListResponseAgents")
14
+
15
+
16
+ @_attrs_define
17
+ class AgentListResponseAgents:
18
+ """Dictionary of available agents with metadata"""
19
+
20
+ additional_properties: dict[str, "AgentListResponseAgentsAdditionalProperty"] = (
21
+ _attrs_field(init=False, factory=dict)
22
+ )
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ field_dict: dict[str, Any] = {}
26
+ for prop_name, prop in self.additional_properties.items():
27
+ field_dict[prop_name] = prop.to_dict()
28
+
29
+ return field_dict
30
+
31
+ @classmethod
32
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
33
+ from ..models.agent_list_response_agents_additional_property import (
34
+ AgentListResponseAgentsAdditionalProperty,
35
+ )
36
+
37
+ d = dict(src_dict)
38
+ agent_list_response_agents = cls()
39
+
40
+ additional_properties = {}
41
+ for prop_name, prop_dict in d.items():
42
+ additional_property = AgentListResponseAgentsAdditionalProperty.from_dict(
43
+ prop_dict
44
+ )
45
+
46
+ additional_properties[prop_name] = additional_property
47
+
48
+ agent_list_response_agents.additional_properties = additional_properties
49
+ return agent_list_response_agents
50
+
51
+ @property
52
+ def additional_keys(self) -> list[str]:
53
+ return list(self.additional_properties.keys())
54
+
55
+ def __getitem__(self, key: str) -> "AgentListResponseAgentsAdditionalProperty":
56
+ return self.additional_properties[key]
57
+
58
+ def __setitem__(
59
+ self, key: str, value: "AgentListResponseAgentsAdditionalProperty"
60
+ ) -> None:
61
+ self.additional_properties[key] = value
62
+
63
+ def __delitem__(self, key: str) -> None:
64
+ del self.additional_properties[key]
65
+
66
+ def __contains__(self, key: str) -> bool:
67
+ return key in self.additional_properties
@@ -4,11 +4,11 @@ from typing import Any, TypeVar
4
4
  from attrs import define as _attrs_define
5
5
  from attrs import field as _attrs_field
6
6
 
7
- T = TypeVar("T", bound="CreditsSummaryResponseCreditsByAddonItem")
7
+ T = TypeVar("T", bound="AgentListResponseAgentsAdditionalProperty")
8
8
 
9
9
 
10
10
  @_attrs_define
11
- class CreditsSummaryResponseCreditsByAddonItem:
11
+ class AgentListResponseAgentsAdditionalProperty:
12
12
  """ """
13
13
 
14
14
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -22,10 +22,10 @@ class CreditsSummaryResponseCreditsByAddonItem:
22
22
  @classmethod
23
23
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
24
  d = dict(src_dict)
25
- credits_summary_response_credits_by_addon_item = cls()
25
+ agent_list_response_agents_additional_property = cls()
26
26
 
27
- credits_summary_response_credits_by_addon_item.additional_properties = d
28
- return credits_summary_response_credits_by_addon_item
27
+ agent_list_response_agents_additional_property.additional_properties = d
28
+ return agent_list_response_agents_additional_property
29
29
 
30
30
  @property
31
31
  def additional_keys(self) -> list[str]:
@@ -1,8 +1,12 @@
1
+ import datetime
1
2
  from collections.abc import Mapping
2
- from typing import Any, TypeVar
3
+ from typing import Any, TypeVar, Union, cast
3
4
 
4
5
  from attrs import define as _attrs_define
5
6
  from attrs import field as _attrs_field
7
+ from dateutil.parser import isoparse
8
+
9
+ from ..types import UNSET, Unset
6
10
 
7
11
  T = TypeVar("T", bound="AgentMessage")
8
12
 
@@ -14,10 +18,12 @@ class AgentMessage:
14
18
  Attributes:
15
19
  role (str): Message role (user/assistant)
16
20
  content (str): Message content
21
+ timestamp (Union[None, Unset, datetime.datetime]): Message timestamp
17
22
  """
18
23
 
19
24
  role: str
20
25
  content: str
26
+ timestamp: Union[None, Unset, datetime.datetime] = UNSET
21
27
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
22
28
 
23
29
  def to_dict(self) -> dict[str, Any]:
@@ -25,6 +31,14 @@ class AgentMessage:
25
31
 
26
32
  content = self.content
27
33
 
34
+ timestamp: Union[None, Unset, str]
35
+ if isinstance(self.timestamp, Unset):
36
+ timestamp = UNSET
37
+ elif isinstance(self.timestamp, datetime.datetime):
38
+ timestamp = self.timestamp.isoformat()
39
+ else:
40
+ timestamp = self.timestamp
41
+
28
42
  field_dict: dict[str, Any] = {}
29
43
  field_dict.update(self.additional_properties)
30
44
  field_dict.update(
@@ -33,6 +47,8 @@ class AgentMessage:
33
47
  "content": content,
34
48
  }
35
49
  )
50
+ if timestamp is not UNSET:
51
+ field_dict["timestamp"] = timestamp
36
52
 
37
53
  return field_dict
38
54
 
@@ -43,9 +59,27 @@ class AgentMessage:
43
59
 
44
60
  content = d.pop("content")
45
61
 
62
+ def _parse_timestamp(data: object) -> Union[None, Unset, datetime.datetime]:
63
+ if data is None:
64
+ return data
65
+ if isinstance(data, Unset):
66
+ return data
67
+ try:
68
+ if not isinstance(data, str):
69
+ raise TypeError()
70
+ timestamp_type_0 = isoparse(data)
71
+
72
+ return timestamp_type_0
73
+ except: # noqa: E722
74
+ pass
75
+ return cast(Union[None, Unset, datetime.datetime], data)
76
+
77
+ timestamp = _parse_timestamp(d.pop("timestamp", UNSET))
78
+
46
79
  agent_message = cls(
47
80
  role=role,
48
81
  content=content,
82
+ timestamp=timestamp,
49
83
  )
50
84
 
51
85
  agent_message.additional_properties = d
@@ -0,0 +1,133 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="AgentMetadataResponse")
10
+
11
+
12
+ @_attrs_define
13
+ class AgentMetadataResponse:
14
+ """Response for agent metadata.
15
+
16
+ Attributes:
17
+ name (str): Agent name
18
+ description (str): Agent description
19
+ version (str): Agent version
20
+ capabilities (list[str]): Agent capabilities
21
+ supported_modes (list[str]): Supported execution modes
22
+ requires_credits (bool): Whether agent requires credits
23
+ author (Union[None, Unset, str]): Agent author
24
+ tags (Union[Unset, list[str]]): Agent tags
25
+ """
26
+
27
+ name: str
28
+ description: str
29
+ version: str
30
+ capabilities: list[str]
31
+ supported_modes: list[str]
32
+ requires_credits: bool
33
+ author: Union[None, Unset, str] = UNSET
34
+ tags: Union[Unset, list[str]] = UNSET
35
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
+
37
+ def to_dict(self) -> dict[str, Any]:
38
+ name = self.name
39
+
40
+ description = self.description
41
+
42
+ version = self.version
43
+
44
+ capabilities = self.capabilities
45
+
46
+ supported_modes = self.supported_modes
47
+
48
+ requires_credits = self.requires_credits
49
+
50
+ author: Union[None, Unset, str]
51
+ if isinstance(self.author, Unset):
52
+ author = UNSET
53
+ else:
54
+ author = self.author
55
+
56
+ tags: Union[Unset, list[str]] = UNSET
57
+ if not isinstance(self.tags, Unset):
58
+ tags = self.tags
59
+
60
+ field_dict: dict[str, Any] = {}
61
+ field_dict.update(self.additional_properties)
62
+ field_dict.update(
63
+ {
64
+ "name": name,
65
+ "description": description,
66
+ "version": version,
67
+ "capabilities": capabilities,
68
+ "supported_modes": supported_modes,
69
+ "requires_credits": requires_credits,
70
+ }
71
+ )
72
+ if author is not UNSET:
73
+ field_dict["author"] = author
74
+ if tags is not UNSET:
75
+ field_dict["tags"] = tags
76
+
77
+ return field_dict
78
+
79
+ @classmethod
80
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
81
+ d = dict(src_dict)
82
+ name = d.pop("name")
83
+
84
+ description = d.pop("description")
85
+
86
+ version = d.pop("version")
87
+
88
+ capabilities = cast(list[str], d.pop("capabilities"))
89
+
90
+ supported_modes = cast(list[str], d.pop("supported_modes"))
91
+
92
+ requires_credits = d.pop("requires_credits")
93
+
94
+ def _parse_author(data: object) -> Union[None, Unset, str]:
95
+ if data is None:
96
+ return data
97
+ if isinstance(data, Unset):
98
+ return data
99
+ return cast(Union[None, Unset, str], data)
100
+
101
+ author = _parse_author(d.pop("author", UNSET))
102
+
103
+ tags = cast(list[str], d.pop("tags", UNSET))
104
+
105
+ agent_metadata_response = cls(
106
+ name=name,
107
+ description=description,
108
+ version=version,
109
+ capabilities=capabilities,
110
+ supported_modes=supported_modes,
111
+ requires_credits=requires_credits,
112
+ author=author,
113
+ tags=tags,
114
+ )
115
+
116
+ agent_metadata_response.additional_properties = d
117
+ return agent_metadata_response
118
+
119
+ @property
120
+ def additional_keys(self) -> list[str]:
121
+ return list(self.additional_properties.keys())
122
+
123
+ def __getitem__(self, key: str) -> Any:
124
+ return self.additional_properties[key]
125
+
126
+ def __setitem__(self, key: str, value: Any) -> None:
127
+ self.additional_properties[key] = value
128
+
129
+ def __delitem__(self, key: str) -> None:
130
+ del self.additional_properties[key]
131
+
132
+ def __contains__(self, key: str) -> bool:
133
+ return key in self.additional_properties
@@ -0,0 +1,11 @@
1
+ from enum import Enum
2
+
3
+
4
+ class AgentMode(str, Enum):
5
+ EXTENDED = "extended"
6
+ QUICK = "quick"
7
+ STANDARD = "standard"
8
+ STREAMING = "streaming"
9
+
10
+ def __str__(self) -> str:
11
+ return str(self.value)
@@ -0,0 +1,106 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="AgentRecommendation")
10
+
11
+
12
+ @_attrs_define
13
+ class AgentRecommendation:
14
+ """Single agent recommendation.
15
+
16
+ Attributes:
17
+ agent_type (str): Agent type identifier
18
+ agent_name (str): Agent display name
19
+ confidence (float): Confidence score (0-1)
20
+ capabilities (list[str]): Agent capabilities
21
+ reason (Union[None, Unset, str]): Reason for recommendation
22
+ """
23
+
24
+ agent_type: str
25
+ agent_name: str
26
+ confidence: float
27
+ capabilities: list[str]
28
+ reason: Union[None, Unset, str] = UNSET
29
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
30
+
31
+ def to_dict(self) -> dict[str, Any]:
32
+ agent_type = self.agent_type
33
+
34
+ agent_name = self.agent_name
35
+
36
+ confidence = self.confidence
37
+
38
+ capabilities = self.capabilities
39
+
40
+ reason: Union[None, Unset, str]
41
+ if isinstance(self.reason, Unset):
42
+ reason = UNSET
43
+ else:
44
+ reason = self.reason
45
+
46
+ field_dict: dict[str, Any] = {}
47
+ field_dict.update(self.additional_properties)
48
+ field_dict.update(
49
+ {
50
+ "agent_type": agent_type,
51
+ "agent_name": agent_name,
52
+ "confidence": confidence,
53
+ "capabilities": capabilities,
54
+ }
55
+ )
56
+ if reason is not UNSET:
57
+ field_dict["reason"] = reason
58
+
59
+ return field_dict
60
+
61
+ @classmethod
62
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
63
+ d = dict(src_dict)
64
+ agent_type = d.pop("agent_type")
65
+
66
+ agent_name = d.pop("agent_name")
67
+
68
+ confidence = d.pop("confidence")
69
+
70
+ capabilities = cast(list[str], d.pop("capabilities"))
71
+
72
+ def _parse_reason(data: object) -> Union[None, Unset, str]:
73
+ if data is None:
74
+ return data
75
+ if isinstance(data, Unset):
76
+ return data
77
+ return cast(Union[None, Unset, str], data)
78
+
79
+ reason = _parse_reason(d.pop("reason", UNSET))
80
+
81
+ agent_recommendation = cls(
82
+ agent_type=agent_type,
83
+ agent_name=agent_name,
84
+ confidence=confidence,
85
+ capabilities=capabilities,
86
+ reason=reason,
87
+ )
88
+
89
+ agent_recommendation.additional_properties = d
90
+ return agent_recommendation
91
+
92
+ @property
93
+ def additional_keys(self) -> list[str]:
94
+ return list(self.additional_properties.keys())
95
+
96
+ def __getitem__(self, key: str) -> Any:
97
+ return self.additional_properties[key]
98
+
99
+ def __setitem__(self, key: str, value: Any) -> None:
100
+ self.additional_properties[key] = value
101
+
102
+ def __delitem__(self, key: str) -> None:
103
+ del self.additional_properties[key]
104
+
105
+ def __contains__(self, key: str) -> bool:
106
+ return key in self.additional_properties