letta-client 0.1.0__py3-none-any.whl → 0.1.4__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 letta-client might be problematic. Click here for more details.

Files changed (193) hide show
  1. letta/__init__.py +277 -0
  2. letta/agents/__init__.py +44 -0
  3. letta/agents/archival_memory/__init__.py +2 -0
  4. letta/agents/archival_memory/client.py +591 -0
  5. letta/agents/client.py +2604 -0
  6. letta/agents/context/__init__.py +2 -0
  7. letta/agents/context/client.py +145 -0
  8. letta/agents/memory/__init__.py +5 -0
  9. letta/agents/memory/client.py +149 -0
  10. letta/agents/memory/messages/__init__.py +2 -0
  11. letta/agents/memory/messages/client.py +147 -0
  12. letta/agents/memory_blocks/__init__.py +2 -0
  13. letta/agents/memory_blocks/client.py +364 -0
  14. letta/agents/messages/__init__.py +5 -0
  15. letta/agents/messages/client.py +787 -0
  16. letta/agents/messages/types/__init__.py +7 -0
  17. letta/agents/messages/types/letta_streaming_response.py +20 -0
  18. letta/agents/messages/types/messages_list_response.py +7 -0
  19. letta/agents/messages/types/messages_list_response_item.py +13 -0
  20. letta/agents/recall_memory/__init__.py +2 -0
  21. letta/agents/recall_memory/client.py +147 -0
  22. letta/agents/sources/__init__.py +2 -0
  23. letta/agents/sources/client.py +145 -0
  24. letta/agents/tools/__init__.py +2 -0
  25. letta/agents/tools/client.py +408 -0
  26. letta/agents/types/__init__.py +39 -0
  27. letta/agents/types/agents_get_agent_variables_response.py +19 -0
  28. letta/agents/types/agents_migrate_response.py +19 -0
  29. letta/agents/types/agents_search_deployed_agents_request_combinator.py +5 -0
  30. letta/agents/types/agents_search_deployed_agents_request_search_item.py +16 -0
  31. letta/agents/types/agents_search_deployed_agents_request_search_item_direction.py +27 -0
  32. letta/agents/types/agents_search_deployed_agents_request_search_item_direction_direction.py +5 -0
  33. letta/agents/types/agents_search_deployed_agents_request_search_item_direction_value.py +7 -0
  34. letta/agents/types/agents_search_deployed_agents_request_search_item_operator.py +24 -0
  35. letta/agents/types/agents_search_deployed_agents_request_search_item_operator_operator.py +7 -0
  36. letta/agents/types/agents_search_deployed_agents_request_search_item_zero.py +20 -0
  37. letta/agents/types/create_agent_request_tool_rules_item.py +9 -0
  38. letta/agents/types/update_agent_tool_rules_item.py +9 -0
  39. letta/blocks/__init__.py +2 -0
  40. letta/blocks/client.py +1054 -0
  41. letta/client.py +164 -0
  42. letta/core/__init__.py +47 -0
  43. letta/core/api_error.py +15 -0
  44. letta/core/client_wrapper.py +76 -0
  45. letta/core/datetime_utils.py +28 -0
  46. letta/core/file.py +67 -0
  47. letta/core/http_client.py +499 -0
  48. letta/core/jsonable_encoder.py +101 -0
  49. letta/core/pydantic_utilities.py +296 -0
  50. letta/core/query_encoder.py +58 -0
  51. letta/core/remove_none_from_dict.py +11 -0
  52. letta/core/request_options.py +35 -0
  53. letta/core/serialization.py +272 -0
  54. letta/environment.py +8 -0
  55. letta/errors/__init__.py +8 -0
  56. letta/errors/conflict_error.py +9 -0
  57. letta/errors/internal_server_error.py +9 -0
  58. letta/errors/not_found_error.py +9 -0
  59. letta/errors/unprocessable_entity_error.py +9 -0
  60. letta/health/__init__.py +2 -0
  61. letta/health/client.py +108 -0
  62. letta/jobs/__init__.py +2 -0
  63. letta/jobs/client.py +503 -0
  64. letta/models/__init__.py +2 -0
  65. letta/models/client.py +201 -0
  66. letta/sources/__init__.py +5 -0
  67. letta/sources/client.py +1154 -0
  68. letta/sources/files/__init__.py +2 -0
  69. letta/sources/files/client.py +436 -0
  70. letta/sources/passages/__init__.py +2 -0
  71. letta/sources/passages/client.py +145 -0
  72. letta/tools/__init__.py +2 -0
  73. letta/tools/client.py +1823 -0
  74. letta/types/__init__.py +231 -0
  75. letta/types/action_model.py +36 -0
  76. letta/types/action_parameters_model.py +26 -0
  77. letta/types/action_response_model.py +26 -0
  78. letta/types/agent_state.py +139 -0
  79. letta/types/agent_state_tool_rules_item.py +9 -0
  80. letta/types/agent_type.py +8 -0
  81. letta/types/app_auth_scheme.py +34 -0
  82. letta/types/app_auth_scheme_auth_mode.py +7 -0
  83. letta/types/app_model.py +44 -0
  84. letta/types/archival_memory_summary.py +22 -0
  85. letta/types/assistant_file.py +33 -0
  86. letta/types/assistant_message_input.py +23 -0
  87. letta/types/assistant_message_output.py +23 -0
  88. letta/types/auth_request.py +22 -0
  89. letta/types/auth_response.py +29 -0
  90. letta/types/auth_scheme_field.py +30 -0
  91. letta/types/block.py +91 -0
  92. letta/types/block_update.py +60 -0
  93. letta/types/chat_completion_request.py +49 -0
  94. letta/types/chat_completion_request_function_call.py +6 -0
  95. letta/types/chat_completion_request_messages_item.py +11 -0
  96. letta/types/chat_completion_request_stop.py +5 -0
  97. letta/types/chat_completion_request_tool_choice.py +8 -0
  98. letta/types/chat_completion_response.py +32 -0
  99. letta/types/child_tool_rule.py +33 -0
  100. letta/types/choice.py +25 -0
  101. letta/types/conditional_tool_rule.py +43 -0
  102. letta/types/conflict_error_body.py +21 -0
  103. letta/types/context_window_overview.py +105 -0
  104. letta/types/create_assistant_file_request.py +22 -0
  105. letta/types/create_assistant_request.py +57 -0
  106. letta/types/create_block.py +56 -0
  107. letta/types/delete_assistant_file_response.py +28 -0
  108. letta/types/delete_assistant_response.py +28 -0
  109. letta/types/e_2_b_sandbox_config.py +32 -0
  110. letta/types/embedding_config.py +77 -0
  111. letta/types/embedding_config_embedding_endpoint_type.py +26 -0
  112. letta/types/file_metadata.py +82 -0
  113. letta/types/function_call_input.py +19 -0
  114. letta/types/function_call_output.py +20 -0
  115. letta/types/function_schema.py +21 -0
  116. letta/types/health.py +24 -0
  117. letta/types/http_validation_error.py +20 -0
  118. letta/types/init_tool_rule.py +29 -0
  119. letta/types/internal_server_error_body.py +19 -0
  120. letta/types/job.py +79 -0
  121. letta/types/job_status.py +5 -0
  122. letta/types/letta_request.py +33 -0
  123. letta/types/letta_response.py +37 -0
  124. letta/types/letta_schemas_letta_message_tool_call.py +21 -0
  125. letta/types/letta_schemas_message_message.py +103 -0
  126. letta/types/letta_schemas_openai_chat_completion_request_tool.py +21 -0
  127. letta/types/letta_schemas_openai_chat_completion_request_tool_call.py +24 -0
  128. letta/types/letta_schemas_openai_chat_completion_request_tool_call_function.py +20 -0
  129. letta/types/letta_schemas_openai_chat_completion_response_message.py +24 -0
  130. letta/types/letta_schemas_openai_chat_completion_response_tool_call.py +22 -0
  131. letta/types/letta_schemas_openai_chat_completions_tool_call_function.py +27 -0
  132. letta/types/letta_schemas_openai_chat_completions_tool_call_input.py +29 -0
  133. letta/types/letta_schemas_openai_chat_completions_tool_call_output.py +29 -0
  134. letta/types/letta_schemas_tool_tool.py +88 -0
  135. letta/types/letta_usage_statistics.py +48 -0
  136. letta/types/llm_config.py +65 -0
  137. letta/types/llm_config_model_endpoint_type.py +26 -0
  138. letta/types/local_sandbox_config.py +32 -0
  139. letta/types/log_prob_token.py +21 -0
  140. letta/types/memory.py +32 -0
  141. letta/types/message_content_log_prob.py +23 -0
  142. letta/types/message_create.py +37 -0
  143. letta/types/message_create_role.py +5 -0
  144. letta/types/message_role.py +5 -0
  145. letta/types/not_found_error_body.py +19 -0
  146. letta/types/not_found_error_body_message.py +11 -0
  147. letta/types/open_ai_assistant.py +67 -0
  148. letta/types/organization.py +33 -0
  149. letta/types/organization_create.py +22 -0
  150. letta/types/passage.py +107 -0
  151. letta/types/reasoning_message.py +32 -0
  152. letta/types/recall_memory_summary.py +22 -0
  153. letta/types/response_format.py +19 -0
  154. letta/types/sandbox_config.py +59 -0
  155. letta/types/sandbox_config_create.py +23 -0
  156. letta/types/sandbox_config_create_config.py +7 -0
  157. letta/types/sandbox_config_update.py +27 -0
  158. letta/types/sandbox_config_update_config.py +7 -0
  159. letta/types/sandbox_environment_variable.py +68 -0
  160. letta/types/sandbox_environment_variable_create.py +32 -0
  161. letta/types/sandbox_environment_variable_update.py +36 -0
  162. letta/types/sandbox_type.py +5 -0
  163. letta/types/source.py +85 -0
  164. letta/types/system_message_input.py +21 -0
  165. letta/types/system_message_output.py +32 -0
  166. letta/types/terminal_tool_rule.py +29 -0
  167. letta/types/tool_call_delta.py +21 -0
  168. letta/types/tool_call_function_output.py +27 -0
  169. letta/types/tool_call_message.py +33 -0
  170. letta/types/tool_call_message_tool_call.py +7 -0
  171. letta/types/tool_create.py +57 -0
  172. letta/types/tool_function_choice.py +21 -0
  173. letta/types/tool_input.py +21 -0
  174. letta/types/tool_message.py +21 -0
  175. letta/types/tool_return_message.py +41 -0
  176. letta/types/tool_return_message_status.py +5 -0
  177. letta/types/tool_rule_type.py +10 -0
  178. letta/types/usage_statistics.py +21 -0
  179. letta/types/user.py +57 -0
  180. letta/types/user_create.py +27 -0
  181. letta/types/user_message_input.py +22 -0
  182. letta/types/user_message_input_content.py +5 -0
  183. letta/types/user_message_output.py +32 -0
  184. letta/types/user_update.py +32 -0
  185. letta/types/validation_error.py +22 -0
  186. letta/types/validation_error_loc_item.py +5 -0
  187. letta/version.py +3 -0
  188. letta_client-0.1.4.dist-info/METADATA +189 -0
  189. letta_client-0.1.4.dist-info/RECORD +191 -0
  190. {letta_client-0.1.0.dist-info → letta_client-0.1.4.dist-info}/WHEEL +1 -1
  191. letta_client-0.1.0.dist-info/METADATA +0 -15
  192. letta_client-0.1.0.dist-info/RECORD +0 -4
  193. /letta_client/__init__.py → /letta/py.typed +0 -0
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .letta_streaming_response import LettaStreamingResponse
4
+ from .messages_list_response import MessagesListResponse
5
+ from .messages_list_response_item import MessagesListResponseItem
6
+
7
+ __all__ = ["LettaStreamingResponse", "MessagesListResponse", "MessagesListResponseItem"]
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from ....types.system_message_output import SystemMessageOutput
5
+ from ....types.user_message_output import UserMessageOutput
6
+ from ....types.reasoning_message import ReasoningMessage
7
+ from ....types.tool_call_message import ToolCallMessage
8
+ from ....types.tool_return_message import ToolReturnMessage
9
+ from ....types.assistant_message_output import AssistantMessageOutput
10
+ from ....types.letta_usage_statistics import LettaUsageStatistics
11
+
12
+ LettaStreamingResponse = typing.Union[
13
+ SystemMessageOutput,
14
+ UserMessageOutput,
15
+ ReasoningMessage,
16
+ ToolCallMessage,
17
+ ToolReturnMessage,
18
+ AssistantMessageOutput,
19
+ LettaUsageStatistics,
20
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from ....types.letta_schemas_message_message import LettaSchemasMessageMessage
5
+ from .messages_list_response_item import MessagesListResponseItem
6
+
7
+ MessagesListResponse = typing.Union[typing.List[LettaSchemasMessageMessage], typing.List[MessagesListResponseItem]]
@@ -0,0 +1,13 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from ....types.system_message_output import SystemMessageOutput
5
+ from ....types.user_message_output import UserMessageOutput
6
+ from ....types.reasoning_message import ReasoningMessage
7
+ from ....types.tool_call_message import ToolCallMessage
8
+ from ....types.tool_return_message import ToolReturnMessage
9
+ from ....types.assistant_message_output import AssistantMessageOutput
10
+
11
+ MessagesListResponseItem = typing.Union[
12
+ SystemMessageOutput, UserMessageOutput, ReasoningMessage, ToolCallMessage, ToolReturnMessage, AssistantMessageOutput
13
+ ]
@@ -0,0 +1,2 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
@@ -0,0 +1,147 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ...core.client_wrapper import SyncClientWrapper
4
+ import typing
5
+ from ...core.request_options import RequestOptions
6
+ from ...types.recall_memory_summary import RecallMemorySummary
7
+ from ...core.jsonable_encoder import jsonable_encoder
8
+ from ...core.pydantic_utilities import parse_obj_as
9
+ from ...errors.unprocessable_entity_error import UnprocessableEntityError
10
+ from ...types.http_validation_error import HttpValidationError
11
+ from json.decoder import JSONDecodeError
12
+ from ...core.api_error import ApiError
13
+ from ...core.client_wrapper import AsyncClientWrapper
14
+
15
+
16
+ class RecallMemoryClient:
17
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
18
+ self._client_wrapper = client_wrapper
19
+
20
+ def get_summary(
21
+ self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None
22
+ ) -> RecallMemorySummary:
23
+ """
24
+ Retrieve the summary of the recall memory of a specific agent.
25
+
26
+ Parameters
27
+ ----------
28
+ agent_id : str
29
+
30
+ request_options : typing.Optional[RequestOptions]
31
+ Request-specific configuration.
32
+
33
+ Returns
34
+ -------
35
+ RecallMemorySummary
36
+ Successful Response
37
+
38
+ Examples
39
+ --------
40
+ from letta import Letta
41
+
42
+ client = Letta(
43
+ token="YOUR_TOKEN",
44
+ )
45
+ client.agents.recall_memory.get_summary(
46
+ agent_id="agent_id",
47
+ )
48
+ """
49
+ _response = self._client_wrapper.httpx_client.request(
50
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/recall",
51
+ method="GET",
52
+ request_options=request_options,
53
+ )
54
+ try:
55
+ if 200 <= _response.status_code < 300:
56
+ return typing.cast(
57
+ RecallMemorySummary,
58
+ parse_obj_as(
59
+ type_=RecallMemorySummary, # type: ignore
60
+ object_=_response.json(),
61
+ ),
62
+ )
63
+ if _response.status_code == 422:
64
+ raise UnprocessableEntityError(
65
+ typing.cast(
66
+ HttpValidationError,
67
+ parse_obj_as(
68
+ type_=HttpValidationError, # type: ignore
69
+ object_=_response.json(),
70
+ ),
71
+ )
72
+ )
73
+ _response_json = _response.json()
74
+ except JSONDecodeError:
75
+ raise ApiError(status_code=_response.status_code, body=_response.text)
76
+ raise ApiError(status_code=_response.status_code, body=_response_json)
77
+
78
+
79
+ class AsyncRecallMemoryClient:
80
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
81
+ self._client_wrapper = client_wrapper
82
+
83
+ async def get_summary(
84
+ self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None
85
+ ) -> RecallMemorySummary:
86
+ """
87
+ Retrieve the summary of the recall memory of a specific agent.
88
+
89
+ Parameters
90
+ ----------
91
+ agent_id : str
92
+
93
+ request_options : typing.Optional[RequestOptions]
94
+ Request-specific configuration.
95
+
96
+ Returns
97
+ -------
98
+ RecallMemorySummary
99
+ Successful Response
100
+
101
+ Examples
102
+ --------
103
+ import asyncio
104
+
105
+ from letta import AsyncLetta
106
+
107
+ client = AsyncLetta(
108
+ token="YOUR_TOKEN",
109
+ )
110
+
111
+
112
+ async def main() -> None:
113
+ await client.agents.recall_memory.get_summary(
114
+ agent_id="agent_id",
115
+ )
116
+
117
+
118
+ asyncio.run(main())
119
+ """
120
+ _response = await self._client_wrapper.httpx_client.request(
121
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/recall",
122
+ method="GET",
123
+ request_options=request_options,
124
+ )
125
+ try:
126
+ if 200 <= _response.status_code < 300:
127
+ return typing.cast(
128
+ RecallMemorySummary,
129
+ parse_obj_as(
130
+ type_=RecallMemorySummary, # type: ignore
131
+ object_=_response.json(),
132
+ ),
133
+ )
134
+ if _response.status_code == 422:
135
+ raise UnprocessableEntityError(
136
+ typing.cast(
137
+ HttpValidationError,
138
+ parse_obj_as(
139
+ type_=HttpValidationError, # type: ignore
140
+ object_=_response.json(),
141
+ ),
142
+ )
143
+ )
144
+ _response_json = _response.json()
145
+ except JSONDecodeError:
146
+ raise ApiError(status_code=_response.status_code, body=_response.text)
147
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -0,0 +1,2 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
@@ -0,0 +1,145 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ...core.client_wrapper import SyncClientWrapper
4
+ import typing
5
+ from ...core.request_options import RequestOptions
6
+ from ...types.source import Source
7
+ from ...core.jsonable_encoder import jsonable_encoder
8
+ from ...core.pydantic_utilities import parse_obj_as
9
+ from ...errors.unprocessable_entity_error import UnprocessableEntityError
10
+ from ...types.http_validation_error import HttpValidationError
11
+ from json.decoder import JSONDecodeError
12
+ from ...core.api_error import ApiError
13
+ from ...core.client_wrapper import AsyncClientWrapper
14
+
15
+
16
+ class SourcesClient:
17
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
18
+ self._client_wrapper = client_wrapper
19
+
20
+ def get(self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[Source]:
21
+ """
22
+ Get the sources associated with an agent.
23
+
24
+ Parameters
25
+ ----------
26
+ agent_id : str
27
+
28
+ request_options : typing.Optional[RequestOptions]
29
+ Request-specific configuration.
30
+
31
+ Returns
32
+ -------
33
+ typing.List[Source]
34
+ Successful Response
35
+
36
+ Examples
37
+ --------
38
+ from letta import Letta
39
+
40
+ client = Letta(
41
+ token="YOUR_TOKEN",
42
+ )
43
+ client.agents.sources.get(
44
+ agent_id="agent_id",
45
+ )
46
+ """
47
+ _response = self._client_wrapper.httpx_client.request(
48
+ f"v1/agents/{jsonable_encoder(agent_id)}/sources",
49
+ method="GET",
50
+ request_options=request_options,
51
+ )
52
+ try:
53
+ if 200 <= _response.status_code < 300:
54
+ return typing.cast(
55
+ typing.List[Source],
56
+ parse_obj_as(
57
+ type_=typing.List[Source], # type: ignore
58
+ object_=_response.json(),
59
+ ),
60
+ )
61
+ if _response.status_code == 422:
62
+ raise UnprocessableEntityError(
63
+ typing.cast(
64
+ HttpValidationError,
65
+ parse_obj_as(
66
+ type_=HttpValidationError, # type: ignore
67
+ object_=_response.json(),
68
+ ),
69
+ )
70
+ )
71
+ _response_json = _response.json()
72
+ except JSONDecodeError:
73
+ raise ApiError(status_code=_response.status_code, body=_response.text)
74
+ raise ApiError(status_code=_response.status_code, body=_response_json)
75
+
76
+
77
+ class AsyncSourcesClient:
78
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
79
+ self._client_wrapper = client_wrapper
80
+
81
+ async def get(
82
+ self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None
83
+ ) -> typing.List[Source]:
84
+ """
85
+ Get the sources associated with an agent.
86
+
87
+ Parameters
88
+ ----------
89
+ agent_id : str
90
+
91
+ request_options : typing.Optional[RequestOptions]
92
+ Request-specific configuration.
93
+
94
+ Returns
95
+ -------
96
+ typing.List[Source]
97
+ Successful Response
98
+
99
+ Examples
100
+ --------
101
+ import asyncio
102
+
103
+ from letta import AsyncLetta
104
+
105
+ client = AsyncLetta(
106
+ token="YOUR_TOKEN",
107
+ )
108
+
109
+
110
+ async def main() -> None:
111
+ await client.agents.sources.get(
112
+ agent_id="agent_id",
113
+ )
114
+
115
+
116
+ asyncio.run(main())
117
+ """
118
+ _response = await self._client_wrapper.httpx_client.request(
119
+ f"v1/agents/{jsonable_encoder(agent_id)}/sources",
120
+ method="GET",
121
+ request_options=request_options,
122
+ )
123
+ try:
124
+ if 200 <= _response.status_code < 300:
125
+ return typing.cast(
126
+ typing.List[Source],
127
+ parse_obj_as(
128
+ type_=typing.List[Source], # type: ignore
129
+ object_=_response.json(),
130
+ ),
131
+ )
132
+ if _response.status_code == 422:
133
+ raise UnprocessableEntityError(
134
+ typing.cast(
135
+ HttpValidationError,
136
+ parse_obj_as(
137
+ type_=HttpValidationError, # type: ignore
138
+ object_=_response.json(),
139
+ ),
140
+ )
141
+ )
142
+ _response_json = _response.json()
143
+ except JSONDecodeError:
144
+ raise ApiError(status_code=_response.status_code, body=_response.text)
145
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -0,0 +1,2 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+