letta-client 0.1.0__py3-none-any.whl → 0.1.2__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 (201) hide show
  1. letta/__init__.py +293 -0
  2. letta/agents/__init__.py +28 -0
  3. letta/agents/archival_memory/__init__.py +2 -0
  4. letta/agents/archival_memory/client.py +591 -0
  5. letta/agents/client.py +2166 -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 +13 -0
  27. letta/agents/types/agents_create_version_response.py +22 -0
  28. letta/agents/types/agents_migrate_response.py +19 -0
  29. letta/agents/types/create_agent_request_tool_rules_item.py +9 -0
  30. letta/agents/types/update_agent_tool_rules_item.py +9 -0
  31. letta/blocks/__init__.py +2 -0
  32. letta/blocks/client.py +1054 -0
  33. letta/client.py +164 -0
  34. letta/core/__init__.py +47 -0
  35. letta/core/api_error.py +15 -0
  36. letta/core/client_wrapper.py +76 -0
  37. letta/core/datetime_utils.py +28 -0
  38. letta/core/file.py +67 -0
  39. letta/core/http_client.py +499 -0
  40. letta/core/jsonable_encoder.py +101 -0
  41. letta/core/pydantic_utilities.py +296 -0
  42. letta/core/query_encoder.py +58 -0
  43. letta/core/remove_none_from_dict.py +11 -0
  44. letta/core/request_options.py +35 -0
  45. letta/core/serialization.py +272 -0
  46. letta/environment.py +8 -0
  47. letta/errors/__init__.py +8 -0
  48. letta/errors/conflict_error.py +9 -0
  49. letta/errors/internal_server_error.py +9 -0
  50. letta/errors/not_found_error.py +9 -0
  51. letta/errors/unprocessable_entity_error.py +9 -0
  52. letta/health/__init__.py +2 -0
  53. letta/health/client.py +108 -0
  54. letta/jobs/__init__.py +2 -0
  55. letta/jobs/client.py +503 -0
  56. letta/models/__init__.py +2 -0
  57. letta/models/client.py +201 -0
  58. letta/sources/__init__.py +5 -0
  59. letta/sources/client.py +1154 -0
  60. letta/sources/files/__init__.py +2 -0
  61. letta/sources/files/client.py +436 -0
  62. letta/sources/passages/__init__.py +2 -0
  63. letta/sources/passages/client.py +145 -0
  64. letta/tools/__init__.py +2 -0
  65. letta/tools/client.py +1823 -0
  66. letta/types/__init__.py +263 -0
  67. letta/types/action_model.py +36 -0
  68. letta/types/action_parameters_model.py +26 -0
  69. letta/types/action_response_model.py +26 -0
  70. letta/types/agent_state.py +139 -0
  71. letta/types/agent_state_tool_rules_item.py +9 -0
  72. letta/types/agent_type.py +8 -0
  73. letta/types/app_auth_scheme.py +34 -0
  74. letta/types/app_auth_scheme_auth_mode.py +7 -0
  75. letta/types/app_model.py +44 -0
  76. letta/types/archival_memory_summary.py +22 -0
  77. letta/types/assistant_file.py +33 -0
  78. letta/types/assistant_message_input.py +23 -0
  79. letta/types/assistant_message_output.py +23 -0
  80. letta/types/auth_request.py +22 -0
  81. letta/types/auth_response.py +29 -0
  82. letta/types/auth_scheme_field.py +30 -0
  83. letta/types/block.py +91 -0
  84. letta/types/block_update.py +60 -0
  85. letta/types/chat_completion_request.py +49 -0
  86. letta/types/chat_completion_request_function_call.py +6 -0
  87. letta/types/chat_completion_request_messages_item.py +11 -0
  88. letta/types/chat_completion_request_stop.py +5 -0
  89. letta/types/chat_completion_request_tool_choice.py +8 -0
  90. letta/types/chat_completion_response.py +32 -0
  91. letta/types/child_tool_rule.py +33 -0
  92. letta/types/choice.py +25 -0
  93. letta/types/conditional_tool_rule.py +43 -0
  94. letta/types/conflict_error_body.py +21 -0
  95. letta/types/context_window_overview.py +105 -0
  96. letta/types/create_assistant_file_request.py +22 -0
  97. letta/types/create_assistant_request.py +57 -0
  98. letta/types/create_block.py +56 -0
  99. letta/types/delete_assistant_file_response.py +28 -0
  100. letta/types/delete_assistant_response.py +28 -0
  101. letta/types/e_2_b_sandbox_config.py +32 -0
  102. letta/types/embedding_config.py +72 -0
  103. letta/types/embedding_config_embedding_endpoint_type.py +26 -0
  104. letta/types/file_metadata.py +82 -0
  105. letta/types/function_call_input.py +19 -0
  106. letta/types/function_call_output.py +20 -0
  107. letta/types/function_schema.py +21 -0
  108. letta/types/health.py +24 -0
  109. letta/types/http_validation_error.py +20 -0
  110. letta/types/init_tool_rule.py +29 -0
  111. letta/types/internal_server_error_body.py +19 -0
  112. letta/types/job.py +79 -0
  113. letta/types/job_status.py +5 -0
  114. letta/types/letta_request.py +33 -0
  115. letta/types/letta_response.py +125 -0
  116. letta/types/letta_response_assistant_message.py +23 -0
  117. letta/types/letta_response_letta_usage_statistics.py +47 -0
  118. letta/types/letta_response_reasoning_message.py +32 -0
  119. letta/types/letta_response_system_message.py +32 -0
  120. letta/types/letta_response_tool_call.py +21 -0
  121. letta/types/letta_response_tool_call_delta.py +21 -0
  122. letta/types/letta_response_tool_call_message.py +33 -0
  123. letta/types/letta_response_tool_call_message_tool_call.py +9 -0
  124. letta/types/letta_response_tool_call_message_tool_call_one.py +21 -0
  125. letta/types/letta_response_tool_call_message_tool_call_zero.py +21 -0
  126. letta/types/letta_response_tool_return_message.py +41 -0
  127. letta/types/letta_response_tool_return_message_status.py +5 -0
  128. letta/types/letta_response_usage_message.py +40 -0
  129. letta/types/letta_response_usage_message_usage.py +47 -0
  130. letta/types/letta_response_user_message.py +32 -0
  131. letta/types/letta_schemas_letta_message_tool_call.py +21 -0
  132. letta/types/letta_schemas_message_message.py +103 -0
  133. letta/types/letta_schemas_openai_chat_completion_request_tool.py +21 -0
  134. letta/types/letta_schemas_openai_chat_completion_request_tool_call.py +24 -0
  135. letta/types/letta_schemas_openai_chat_completion_request_tool_call_function.py +20 -0
  136. letta/types/letta_schemas_openai_chat_completion_response_message.py +24 -0
  137. letta/types/letta_schemas_openai_chat_completion_response_tool_call.py +22 -0
  138. letta/types/letta_schemas_openai_chat_completions_tool_call_function.py +27 -0
  139. letta/types/letta_schemas_openai_chat_completions_tool_call_input.py +29 -0
  140. letta/types/letta_schemas_openai_chat_completions_tool_call_output.py +29 -0
  141. letta/types/letta_schemas_tool_tool.py +88 -0
  142. letta/types/letta_usage_statistics.py +47 -0
  143. letta/types/llm_config.py +60 -0
  144. letta/types/llm_config_model_endpoint_type.py +26 -0
  145. letta/types/local_sandbox_config.py +32 -0
  146. letta/types/log_prob_token.py +21 -0
  147. letta/types/memory.py +32 -0
  148. letta/types/message_content_log_prob.py +23 -0
  149. letta/types/message_create.py +37 -0
  150. letta/types/message_create_role.py +5 -0
  151. letta/types/message_role.py +5 -0
  152. letta/types/not_found_error_body.py +20 -0
  153. letta/types/not_found_error_body_message.py +11 -0
  154. letta/types/open_ai_assistant.py +67 -0
  155. letta/types/organization.py +33 -0
  156. letta/types/organization_create.py +22 -0
  157. letta/types/passage.py +107 -0
  158. letta/types/reasoning_message.py +32 -0
  159. letta/types/recall_memory_summary.py +22 -0
  160. letta/types/response_format.py +19 -0
  161. letta/types/sandbox_config.py +59 -0
  162. letta/types/sandbox_config_create.py +23 -0
  163. letta/types/sandbox_config_create_config.py +7 -0
  164. letta/types/sandbox_config_update.py +27 -0
  165. letta/types/sandbox_config_update_config.py +7 -0
  166. letta/types/sandbox_environment_variable.py +68 -0
  167. letta/types/sandbox_environment_variable_create.py +32 -0
  168. letta/types/sandbox_environment_variable_update.py +36 -0
  169. letta/types/sandbox_type.py +5 -0
  170. letta/types/source.py +85 -0
  171. letta/types/system_message_input.py +21 -0
  172. letta/types/system_message_output.py +32 -0
  173. letta/types/terminal_tool_rule.py +29 -0
  174. letta/types/tool_call_delta.py +21 -0
  175. letta/types/tool_call_function_output.py +27 -0
  176. letta/types/tool_call_message.py +33 -0
  177. letta/types/tool_call_message_tool_call.py +7 -0
  178. letta/types/tool_create.py +57 -0
  179. letta/types/tool_function_choice.py +21 -0
  180. letta/types/tool_input.py +21 -0
  181. letta/types/tool_message.py +21 -0
  182. letta/types/tool_return_message.py +41 -0
  183. letta/types/tool_return_message_status.py +5 -0
  184. letta/types/tool_rule_type.py +10 -0
  185. letta/types/usage_message.py +31 -0
  186. letta/types/usage_statistics.py +21 -0
  187. letta/types/user.py +57 -0
  188. letta/types/user_create.py +27 -0
  189. letta/types/user_message_input.py +22 -0
  190. letta/types/user_message_input_content.py +5 -0
  191. letta/types/user_message_output.py +32 -0
  192. letta/types/user_update.py +32 -0
  193. letta/types/validation_error.py +22 -0
  194. letta/types/validation_error_loc_item.py +5 -0
  195. letta/version.py +3 -0
  196. letta_client-0.1.2.dist-info/METADATA +189 -0
  197. letta_client-0.1.2.dist-info/RECORD +199 -0
  198. {letta_client-0.1.0.dist-info → letta_client-0.1.2.dist-info}/WHEEL +1 -1
  199. letta_client-0.1.0.dist-info/METADATA +0 -15
  200. letta_client-0.1.0.dist-info/RECORD +0 -4
  201. /letta_client/__init__.py → /letta/py.typed +0 -0
@@ -0,0 +1,591 @@
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.archival_memory_summary import ArchivalMemorySummary
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 ...types.passage import Passage
14
+ from ...core.client_wrapper import AsyncClientWrapper
15
+
16
+ # this is used as the default value for optional parameters
17
+ OMIT = typing.cast(typing.Any, ...)
18
+
19
+
20
+ class ArchivalMemoryClient:
21
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
22
+ self._client_wrapper = client_wrapper
23
+
24
+ def get_summary(
25
+ self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None
26
+ ) -> ArchivalMemorySummary:
27
+ """
28
+ Retrieve the summary of the archival memory of a specific agent.
29
+
30
+ Parameters
31
+ ----------
32
+ agent_id : str
33
+
34
+ request_options : typing.Optional[RequestOptions]
35
+ Request-specific configuration.
36
+
37
+ Returns
38
+ -------
39
+ ArchivalMemorySummary
40
+ Successful Response
41
+
42
+ Examples
43
+ --------
44
+ from letta import Letta
45
+
46
+ client = Letta(
47
+ token="YOUR_TOKEN",
48
+ )
49
+ client.agents.archival_memory.get_summary(
50
+ agent_id="agent_id",
51
+ )
52
+ """
53
+ _response = self._client_wrapper.httpx_client.request(
54
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/archival",
55
+ method="GET",
56
+ request_options=request_options,
57
+ )
58
+ try:
59
+ if 200 <= _response.status_code < 300:
60
+ return typing.cast(
61
+ ArchivalMemorySummary,
62
+ parse_obj_as(
63
+ type_=ArchivalMemorySummary, # type: ignore
64
+ object_=_response.json(),
65
+ ),
66
+ )
67
+ if _response.status_code == 422:
68
+ raise UnprocessableEntityError(
69
+ typing.cast(
70
+ HttpValidationError,
71
+ parse_obj_as(
72
+ type_=HttpValidationError, # type: ignore
73
+ object_=_response.json(),
74
+ ),
75
+ )
76
+ )
77
+ _response_json = _response.json()
78
+ except JSONDecodeError:
79
+ raise ApiError(status_code=_response.status_code, body=_response.text)
80
+ raise ApiError(status_code=_response.status_code, body=_response_json)
81
+
82
+ def list(
83
+ self,
84
+ agent_id: str,
85
+ *,
86
+ after: typing.Optional[int] = None,
87
+ before: typing.Optional[int] = None,
88
+ limit: typing.Optional[int] = None,
89
+ request_options: typing.Optional[RequestOptions] = None,
90
+ ) -> typing.List[Passage]:
91
+ """
92
+ Retrieve the memories in an agent's archival memory store (paginated query).
93
+
94
+ Parameters
95
+ ----------
96
+ agent_id : str
97
+
98
+ after : typing.Optional[int]
99
+ Unique ID of the memory to start the query range at.
100
+
101
+ before : typing.Optional[int]
102
+ Unique ID of the memory to end the query range at.
103
+
104
+ limit : typing.Optional[int]
105
+ How many results to include in the response.
106
+
107
+ request_options : typing.Optional[RequestOptions]
108
+ Request-specific configuration.
109
+
110
+ Returns
111
+ -------
112
+ typing.List[Passage]
113
+ Successful Response
114
+
115
+ Examples
116
+ --------
117
+ from letta import Letta
118
+
119
+ client = Letta(
120
+ token="YOUR_TOKEN",
121
+ )
122
+ client.agents.archival_memory.list(
123
+ agent_id="agent_id",
124
+ )
125
+ """
126
+ _response = self._client_wrapper.httpx_client.request(
127
+ f"v1/agents/{jsonable_encoder(agent_id)}/archival",
128
+ method="GET",
129
+ params={
130
+ "after": after,
131
+ "before": before,
132
+ "limit": limit,
133
+ },
134
+ request_options=request_options,
135
+ )
136
+ try:
137
+ if 200 <= _response.status_code < 300:
138
+ return typing.cast(
139
+ typing.List[Passage],
140
+ parse_obj_as(
141
+ type_=typing.List[Passage], # type: ignore
142
+ object_=_response.json(),
143
+ ),
144
+ )
145
+ if _response.status_code == 422:
146
+ raise UnprocessableEntityError(
147
+ typing.cast(
148
+ HttpValidationError,
149
+ parse_obj_as(
150
+ type_=HttpValidationError, # type: ignore
151
+ object_=_response.json(),
152
+ ),
153
+ )
154
+ )
155
+ _response_json = _response.json()
156
+ except JSONDecodeError:
157
+ raise ApiError(status_code=_response.status_code, body=_response.text)
158
+ raise ApiError(status_code=_response.status_code, body=_response_json)
159
+
160
+ def create(
161
+ self, agent_id: str, *, text: str, request_options: typing.Optional[RequestOptions] = None
162
+ ) -> typing.List[Passage]:
163
+ """
164
+ Insert a memory into an agent's archival memory store.
165
+
166
+ Parameters
167
+ ----------
168
+ agent_id : str
169
+
170
+ text : str
171
+ Text to write to archival memory.
172
+
173
+ request_options : typing.Optional[RequestOptions]
174
+ Request-specific configuration.
175
+
176
+ Returns
177
+ -------
178
+ typing.List[Passage]
179
+ Successful Response
180
+
181
+ Examples
182
+ --------
183
+ from letta import Letta
184
+
185
+ client = Letta(
186
+ token="YOUR_TOKEN",
187
+ )
188
+ client.agents.archival_memory.create(
189
+ agent_id="agent_id",
190
+ text="text",
191
+ )
192
+ """
193
+ _response = self._client_wrapper.httpx_client.request(
194
+ f"v1/agents/{jsonable_encoder(agent_id)}/archival",
195
+ method="POST",
196
+ json={
197
+ "text": text,
198
+ },
199
+ headers={
200
+ "content-type": "application/json",
201
+ },
202
+ request_options=request_options,
203
+ omit=OMIT,
204
+ )
205
+ try:
206
+ if 200 <= _response.status_code < 300:
207
+ return typing.cast(
208
+ typing.List[Passage],
209
+ parse_obj_as(
210
+ type_=typing.List[Passage], # type: ignore
211
+ object_=_response.json(),
212
+ ),
213
+ )
214
+ if _response.status_code == 422:
215
+ raise UnprocessableEntityError(
216
+ typing.cast(
217
+ HttpValidationError,
218
+ parse_obj_as(
219
+ type_=HttpValidationError, # type: ignore
220
+ object_=_response.json(),
221
+ ),
222
+ )
223
+ )
224
+ _response_json = _response.json()
225
+ except JSONDecodeError:
226
+ raise ApiError(status_code=_response.status_code, body=_response.text)
227
+ raise ApiError(status_code=_response.status_code, body=_response_json)
228
+
229
+ def delete(
230
+ self, agent_id: str, memory_id: str, *, request_options: typing.Optional[RequestOptions] = None
231
+ ) -> typing.Optional[typing.Any]:
232
+ """
233
+ Delete a memory from an agent's archival memory store.
234
+
235
+ Parameters
236
+ ----------
237
+ agent_id : str
238
+
239
+ memory_id : str
240
+
241
+ request_options : typing.Optional[RequestOptions]
242
+ Request-specific configuration.
243
+
244
+ Returns
245
+ -------
246
+ typing.Optional[typing.Any]
247
+ Successful Response
248
+
249
+ Examples
250
+ --------
251
+ from letta import Letta
252
+
253
+ client = Letta(
254
+ token="YOUR_TOKEN",
255
+ )
256
+ client.agents.archival_memory.delete(
257
+ agent_id="agent_id",
258
+ memory_id="memory_id",
259
+ )
260
+ """
261
+ _response = self._client_wrapper.httpx_client.request(
262
+ f"v1/agents/{jsonable_encoder(agent_id)}/archival/{jsonable_encoder(memory_id)}",
263
+ method="DELETE",
264
+ request_options=request_options,
265
+ )
266
+ try:
267
+ if 200 <= _response.status_code < 300:
268
+ return typing.cast(
269
+ typing.Optional[typing.Any],
270
+ parse_obj_as(
271
+ type_=typing.Optional[typing.Any], # type: ignore
272
+ object_=_response.json(),
273
+ ),
274
+ )
275
+ if _response.status_code == 422:
276
+ raise UnprocessableEntityError(
277
+ typing.cast(
278
+ HttpValidationError,
279
+ parse_obj_as(
280
+ type_=HttpValidationError, # type: ignore
281
+ object_=_response.json(),
282
+ ),
283
+ )
284
+ )
285
+ _response_json = _response.json()
286
+ except JSONDecodeError:
287
+ raise ApiError(status_code=_response.status_code, body=_response.text)
288
+ raise ApiError(status_code=_response.status_code, body=_response_json)
289
+
290
+
291
+ class AsyncArchivalMemoryClient:
292
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
293
+ self._client_wrapper = client_wrapper
294
+
295
+ async def get_summary(
296
+ self, agent_id: str, *, request_options: typing.Optional[RequestOptions] = None
297
+ ) -> ArchivalMemorySummary:
298
+ """
299
+ Retrieve the summary of the archival memory of a specific agent.
300
+
301
+ Parameters
302
+ ----------
303
+ agent_id : str
304
+
305
+ request_options : typing.Optional[RequestOptions]
306
+ Request-specific configuration.
307
+
308
+ Returns
309
+ -------
310
+ ArchivalMemorySummary
311
+ Successful Response
312
+
313
+ Examples
314
+ --------
315
+ import asyncio
316
+
317
+ from letta import AsyncLetta
318
+
319
+ client = AsyncLetta(
320
+ token="YOUR_TOKEN",
321
+ )
322
+
323
+
324
+ async def main() -> None:
325
+ await client.agents.archival_memory.get_summary(
326
+ agent_id="agent_id",
327
+ )
328
+
329
+
330
+ asyncio.run(main())
331
+ """
332
+ _response = await self._client_wrapper.httpx_client.request(
333
+ f"v1/agents/{jsonable_encoder(agent_id)}/memory/archival",
334
+ method="GET",
335
+ request_options=request_options,
336
+ )
337
+ try:
338
+ if 200 <= _response.status_code < 300:
339
+ return typing.cast(
340
+ ArchivalMemorySummary,
341
+ parse_obj_as(
342
+ type_=ArchivalMemorySummary, # type: ignore
343
+ object_=_response.json(),
344
+ ),
345
+ )
346
+ if _response.status_code == 422:
347
+ raise UnprocessableEntityError(
348
+ typing.cast(
349
+ HttpValidationError,
350
+ parse_obj_as(
351
+ type_=HttpValidationError, # type: ignore
352
+ object_=_response.json(),
353
+ ),
354
+ )
355
+ )
356
+ _response_json = _response.json()
357
+ except JSONDecodeError:
358
+ raise ApiError(status_code=_response.status_code, body=_response.text)
359
+ raise ApiError(status_code=_response.status_code, body=_response_json)
360
+
361
+ async def list(
362
+ self,
363
+ agent_id: str,
364
+ *,
365
+ after: typing.Optional[int] = None,
366
+ before: typing.Optional[int] = None,
367
+ limit: typing.Optional[int] = None,
368
+ request_options: typing.Optional[RequestOptions] = None,
369
+ ) -> typing.List[Passage]:
370
+ """
371
+ Retrieve the memories in an agent's archival memory store (paginated query).
372
+
373
+ Parameters
374
+ ----------
375
+ agent_id : str
376
+
377
+ after : typing.Optional[int]
378
+ Unique ID of the memory to start the query range at.
379
+
380
+ before : typing.Optional[int]
381
+ Unique ID of the memory to end the query range at.
382
+
383
+ limit : typing.Optional[int]
384
+ How many results to include in the response.
385
+
386
+ request_options : typing.Optional[RequestOptions]
387
+ Request-specific configuration.
388
+
389
+ Returns
390
+ -------
391
+ typing.List[Passage]
392
+ Successful Response
393
+
394
+ Examples
395
+ --------
396
+ import asyncio
397
+
398
+ from letta import AsyncLetta
399
+
400
+ client = AsyncLetta(
401
+ token="YOUR_TOKEN",
402
+ )
403
+
404
+
405
+ async def main() -> None:
406
+ await client.agents.archival_memory.list(
407
+ agent_id="agent_id",
408
+ )
409
+
410
+
411
+ asyncio.run(main())
412
+ """
413
+ _response = await self._client_wrapper.httpx_client.request(
414
+ f"v1/agents/{jsonable_encoder(agent_id)}/archival",
415
+ method="GET",
416
+ params={
417
+ "after": after,
418
+ "before": before,
419
+ "limit": limit,
420
+ },
421
+ request_options=request_options,
422
+ )
423
+ try:
424
+ if 200 <= _response.status_code < 300:
425
+ return typing.cast(
426
+ typing.List[Passage],
427
+ parse_obj_as(
428
+ type_=typing.List[Passage], # type: ignore
429
+ object_=_response.json(),
430
+ ),
431
+ )
432
+ if _response.status_code == 422:
433
+ raise UnprocessableEntityError(
434
+ typing.cast(
435
+ HttpValidationError,
436
+ parse_obj_as(
437
+ type_=HttpValidationError, # type: ignore
438
+ object_=_response.json(),
439
+ ),
440
+ )
441
+ )
442
+ _response_json = _response.json()
443
+ except JSONDecodeError:
444
+ raise ApiError(status_code=_response.status_code, body=_response.text)
445
+ raise ApiError(status_code=_response.status_code, body=_response_json)
446
+
447
+ async def create(
448
+ self, agent_id: str, *, text: str, request_options: typing.Optional[RequestOptions] = None
449
+ ) -> typing.List[Passage]:
450
+ """
451
+ Insert a memory into an agent's archival memory store.
452
+
453
+ Parameters
454
+ ----------
455
+ agent_id : str
456
+
457
+ text : str
458
+ Text to write to archival memory.
459
+
460
+ request_options : typing.Optional[RequestOptions]
461
+ Request-specific configuration.
462
+
463
+ Returns
464
+ -------
465
+ typing.List[Passage]
466
+ Successful Response
467
+
468
+ Examples
469
+ --------
470
+ import asyncio
471
+
472
+ from letta import AsyncLetta
473
+
474
+ client = AsyncLetta(
475
+ token="YOUR_TOKEN",
476
+ )
477
+
478
+
479
+ async def main() -> None:
480
+ await client.agents.archival_memory.create(
481
+ agent_id="agent_id",
482
+ text="text",
483
+ )
484
+
485
+
486
+ asyncio.run(main())
487
+ """
488
+ _response = await self._client_wrapper.httpx_client.request(
489
+ f"v1/agents/{jsonable_encoder(agent_id)}/archival",
490
+ method="POST",
491
+ json={
492
+ "text": text,
493
+ },
494
+ headers={
495
+ "content-type": "application/json",
496
+ },
497
+ request_options=request_options,
498
+ omit=OMIT,
499
+ )
500
+ try:
501
+ if 200 <= _response.status_code < 300:
502
+ return typing.cast(
503
+ typing.List[Passage],
504
+ parse_obj_as(
505
+ type_=typing.List[Passage], # type: ignore
506
+ object_=_response.json(),
507
+ ),
508
+ )
509
+ if _response.status_code == 422:
510
+ raise UnprocessableEntityError(
511
+ typing.cast(
512
+ HttpValidationError,
513
+ parse_obj_as(
514
+ type_=HttpValidationError, # type: ignore
515
+ object_=_response.json(),
516
+ ),
517
+ )
518
+ )
519
+ _response_json = _response.json()
520
+ except JSONDecodeError:
521
+ raise ApiError(status_code=_response.status_code, body=_response.text)
522
+ raise ApiError(status_code=_response.status_code, body=_response_json)
523
+
524
+ async def delete(
525
+ self, agent_id: str, memory_id: str, *, request_options: typing.Optional[RequestOptions] = None
526
+ ) -> typing.Optional[typing.Any]:
527
+ """
528
+ Delete a memory from an agent's archival memory store.
529
+
530
+ Parameters
531
+ ----------
532
+ agent_id : str
533
+
534
+ memory_id : str
535
+
536
+ request_options : typing.Optional[RequestOptions]
537
+ Request-specific configuration.
538
+
539
+ Returns
540
+ -------
541
+ typing.Optional[typing.Any]
542
+ Successful Response
543
+
544
+ Examples
545
+ --------
546
+ import asyncio
547
+
548
+ from letta import AsyncLetta
549
+
550
+ client = AsyncLetta(
551
+ token="YOUR_TOKEN",
552
+ )
553
+
554
+
555
+ async def main() -> None:
556
+ await client.agents.archival_memory.delete(
557
+ agent_id="agent_id",
558
+ memory_id="memory_id",
559
+ )
560
+
561
+
562
+ asyncio.run(main())
563
+ """
564
+ _response = await self._client_wrapper.httpx_client.request(
565
+ f"v1/agents/{jsonable_encoder(agent_id)}/archival/{jsonable_encoder(memory_id)}",
566
+ method="DELETE",
567
+ request_options=request_options,
568
+ )
569
+ try:
570
+ if 200 <= _response.status_code < 300:
571
+ return typing.cast(
572
+ typing.Optional[typing.Any],
573
+ parse_obj_as(
574
+ type_=typing.Optional[typing.Any], # type: ignore
575
+ object_=_response.json(),
576
+ ),
577
+ )
578
+ if _response.status_code == 422:
579
+ raise UnprocessableEntityError(
580
+ typing.cast(
581
+ HttpValidationError,
582
+ parse_obj_as(
583
+ type_=HttpValidationError, # type: ignore
584
+ object_=_response.json(),
585
+ ),
586
+ )
587
+ )
588
+ _response_json = _response.json()
589
+ except JSONDecodeError:
590
+ raise ApiError(status_code=_response.status_code, body=_response.text)
591
+ raise ApiError(status_code=_response.status_code, body=_response_json)