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.
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,364 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from ...core.client_wrapper import SyncClientWrapper
5
+ from ...core.request_options import RequestOptions
6
+ from ...types.memory import Memory
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
+ # this is used as the default value for optional parameters
16
+ OMIT = typing.cast(typing.Any, ...)
17
+
18
+
19
+ class MemoryBlocksClient:
20
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
21
+ self._client_wrapper = client_wrapper
22
+
23
+ def remove(
24
+ self, agent_id: str, block_label: str, *, request_options: typing.Optional[RequestOptions] = None
25
+ ) -> Memory:
26
+ """
27
+ Removes a memory block from an agent by unlnking it. If the block is not linked to any other agent, it is deleted.
28
+
29
+ Parameters
30
+ ----------
31
+ agent_id : str
32
+
33
+ block_label : str
34
+
35
+ request_options : typing.Optional[RequestOptions]
36
+ Request-specific configuration.
37
+
38
+ Returns
39
+ -------
40
+ Memory
41
+ Successful Response
42
+
43
+ Examples
44
+ --------
45
+ from letta import Letta
46
+
47
+ client = Letta(
48
+ token="YOUR_TOKEN",
49
+ )
50
+ client.agents.memory_blocks.remove(
51
+ agent_id="agent_id",
52
+ block_label="block_label",
53
+ )
54
+ """
55
+ _response = self._client_wrapper.httpx_client.request(
56
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/block/{jsonable_encoder(block_label)}",
57
+ method="DELETE",
58
+ request_options=request_options,
59
+ )
60
+ try:
61
+ if 200 <= _response.status_code < 300:
62
+ return typing.cast(
63
+ Memory,
64
+ parse_obj_as(
65
+ type_=Memory, # type: ignore
66
+ object_=_response.json(),
67
+ ),
68
+ )
69
+ if _response.status_code == 422:
70
+ raise UnprocessableEntityError(
71
+ typing.cast(
72
+ HttpValidationError,
73
+ parse_obj_as(
74
+ type_=HttpValidationError, # type: ignore
75
+ object_=_response.json(),
76
+ ),
77
+ )
78
+ )
79
+ _response_json = _response.json()
80
+ except JSONDecodeError:
81
+ raise ApiError(status_code=_response.status_code, body=_response.text)
82
+ raise ApiError(status_code=_response.status_code, body=_response_json)
83
+
84
+ def add(
85
+ self,
86
+ agent_id: str,
87
+ *,
88
+ value: str,
89
+ label: str,
90
+ limit: typing.Optional[int] = OMIT,
91
+ name: typing.Optional[str] = OMIT,
92
+ is_template: typing.Optional[bool] = OMIT,
93
+ description: typing.Optional[str] = OMIT,
94
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
95
+ request_options: typing.Optional[RequestOptions] = None,
96
+ ) -> Memory:
97
+ """
98
+ Creates a memory block and links it to the agent.
99
+
100
+ Parameters
101
+ ----------
102
+ agent_id : str
103
+
104
+ value : str
105
+ Value of the block.
106
+
107
+ label : str
108
+ Label of the block.
109
+
110
+ limit : typing.Optional[int]
111
+ Character limit of the block.
112
+
113
+ name : typing.Optional[str]
114
+ Name of the block if it is a template.
115
+
116
+ is_template : typing.Optional[bool]
117
+
118
+ description : typing.Optional[str]
119
+ Description of the block.
120
+
121
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
122
+ Metadata of the block.
123
+
124
+ request_options : typing.Optional[RequestOptions]
125
+ Request-specific configuration.
126
+
127
+ Returns
128
+ -------
129
+ Memory
130
+ Successful Response
131
+
132
+ Examples
133
+ --------
134
+ from letta import Letta
135
+
136
+ client = Letta(
137
+ token="YOUR_TOKEN",
138
+ )
139
+ client.agents.memory_blocks.add(
140
+ agent_id="agent_id",
141
+ value="value",
142
+ label="label",
143
+ )
144
+ """
145
+ _response = self._client_wrapper.httpx_client.request(
146
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/block",
147
+ method="POST",
148
+ json={
149
+ "value": value,
150
+ "limit": limit,
151
+ "name": name,
152
+ "is_template": is_template,
153
+ "label": label,
154
+ "description": description,
155
+ "metadata_": metadata,
156
+ },
157
+ request_options=request_options,
158
+ omit=OMIT,
159
+ )
160
+ try:
161
+ if 200 <= _response.status_code < 300:
162
+ return typing.cast(
163
+ Memory,
164
+ parse_obj_as(
165
+ type_=Memory, # type: ignore
166
+ object_=_response.json(),
167
+ ),
168
+ )
169
+ if _response.status_code == 422:
170
+ raise UnprocessableEntityError(
171
+ typing.cast(
172
+ HttpValidationError,
173
+ parse_obj_as(
174
+ type_=HttpValidationError, # type: ignore
175
+ object_=_response.json(),
176
+ ),
177
+ )
178
+ )
179
+ _response_json = _response.json()
180
+ except JSONDecodeError:
181
+ raise ApiError(status_code=_response.status_code, body=_response.text)
182
+ raise ApiError(status_code=_response.status_code, body=_response_json)
183
+
184
+
185
+ class AsyncMemoryBlocksClient:
186
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
187
+ self._client_wrapper = client_wrapper
188
+
189
+ async def remove(
190
+ self, agent_id: str, block_label: str, *, request_options: typing.Optional[RequestOptions] = None
191
+ ) -> Memory:
192
+ """
193
+ Removes a memory block from an agent by unlnking it. If the block is not linked to any other agent, it is deleted.
194
+
195
+ Parameters
196
+ ----------
197
+ agent_id : str
198
+
199
+ block_label : str
200
+
201
+ request_options : typing.Optional[RequestOptions]
202
+ Request-specific configuration.
203
+
204
+ Returns
205
+ -------
206
+ Memory
207
+ Successful Response
208
+
209
+ Examples
210
+ --------
211
+ import asyncio
212
+
213
+ from letta import AsyncLetta
214
+
215
+ client = AsyncLetta(
216
+ token="YOUR_TOKEN",
217
+ )
218
+
219
+
220
+ async def main() -> None:
221
+ await client.agents.memory_blocks.remove(
222
+ agent_id="agent_id",
223
+ block_label="block_label",
224
+ )
225
+
226
+
227
+ asyncio.run(main())
228
+ """
229
+ _response = await self._client_wrapper.httpx_client.request(
230
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/block/{jsonable_encoder(block_label)}",
231
+ method="DELETE",
232
+ request_options=request_options,
233
+ )
234
+ try:
235
+ if 200 <= _response.status_code < 300:
236
+ return typing.cast(
237
+ Memory,
238
+ parse_obj_as(
239
+ type_=Memory, # type: ignore
240
+ object_=_response.json(),
241
+ ),
242
+ )
243
+ if _response.status_code == 422:
244
+ raise UnprocessableEntityError(
245
+ typing.cast(
246
+ HttpValidationError,
247
+ parse_obj_as(
248
+ type_=HttpValidationError, # type: ignore
249
+ object_=_response.json(),
250
+ ),
251
+ )
252
+ )
253
+ _response_json = _response.json()
254
+ except JSONDecodeError:
255
+ raise ApiError(status_code=_response.status_code, body=_response.text)
256
+ raise ApiError(status_code=_response.status_code, body=_response_json)
257
+
258
+ async def add(
259
+ self,
260
+ agent_id: str,
261
+ *,
262
+ value: str,
263
+ label: str,
264
+ limit: typing.Optional[int] = OMIT,
265
+ name: typing.Optional[str] = OMIT,
266
+ is_template: typing.Optional[bool] = OMIT,
267
+ description: typing.Optional[str] = OMIT,
268
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = OMIT,
269
+ request_options: typing.Optional[RequestOptions] = None,
270
+ ) -> Memory:
271
+ """
272
+ Creates a memory block and links it to the agent.
273
+
274
+ Parameters
275
+ ----------
276
+ agent_id : str
277
+
278
+ value : str
279
+ Value of the block.
280
+
281
+ label : str
282
+ Label of the block.
283
+
284
+ limit : typing.Optional[int]
285
+ Character limit of the block.
286
+
287
+ name : typing.Optional[str]
288
+ Name of the block if it is a template.
289
+
290
+ is_template : typing.Optional[bool]
291
+
292
+ description : typing.Optional[str]
293
+ Description of the block.
294
+
295
+ metadata : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
296
+ Metadata of the block.
297
+
298
+ request_options : typing.Optional[RequestOptions]
299
+ Request-specific configuration.
300
+
301
+ Returns
302
+ -------
303
+ Memory
304
+ Successful Response
305
+
306
+ Examples
307
+ --------
308
+ import asyncio
309
+
310
+ from letta import AsyncLetta
311
+
312
+ client = AsyncLetta(
313
+ token="YOUR_TOKEN",
314
+ )
315
+
316
+
317
+ async def main() -> None:
318
+ await client.agents.memory_blocks.add(
319
+ agent_id="agent_id",
320
+ value="value",
321
+ label="label",
322
+ )
323
+
324
+
325
+ asyncio.run(main())
326
+ """
327
+ _response = await self._client_wrapper.httpx_client.request(
328
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/block",
329
+ method="POST",
330
+ json={
331
+ "value": value,
332
+ "limit": limit,
333
+ "name": name,
334
+ "is_template": is_template,
335
+ "label": label,
336
+ "description": description,
337
+ "metadata_": metadata,
338
+ },
339
+ request_options=request_options,
340
+ omit=OMIT,
341
+ )
342
+ try:
343
+ if 200 <= _response.status_code < 300:
344
+ return typing.cast(
345
+ Memory,
346
+ parse_obj_as(
347
+ type_=Memory, # type: ignore
348
+ object_=_response.json(),
349
+ ),
350
+ )
351
+ if _response.status_code == 422:
352
+ raise UnprocessableEntityError(
353
+ typing.cast(
354
+ HttpValidationError,
355
+ parse_obj_as(
356
+ type_=HttpValidationError, # type: ignore
357
+ object_=_response.json(),
358
+ ),
359
+ )
360
+ )
361
+ _response_json = _response.json()
362
+ except JSONDecodeError:
363
+ raise ApiError(status_code=_response.status_code, body=_response.text)
364
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from .types import LettaStreamingResponse, MessagesListResponse, MessagesListResponseItem
4
+
5
+ __all__ = ["LettaStreamingResponse", "MessagesListResponse", "MessagesListResponseItem"]