letta-client 0.1.6__py3-none-any.whl → 0.1.10__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 (216) hide show
  1. {letta → letta_client}/__init__.py +33 -27
  2. {letta → letta_client}/agents/__init__.py +40 -29
  3. {letta → letta_client}/agents/archival_memory/client.py +25 -25
  4. letta_client/agents/client.py +1328 -0
  5. {letta → letta_client}/agents/context/client.py +7 -7
  6. letta_client/agents/core_memory/client.py +1080 -0
  7. letta_client/agents/memory_variables/__init__.py +5 -0
  8. {letta/agents/memory → letta_client/agents/memory_variables}/client.py +43 -42
  9. letta_client/agents/memory_variables/types/__init__.py +5 -0
  10. letta/agents/types/agents_get_agent_variables_response.py → letta_client/agents/memory_variables/types/memory_variables_get_response.py +3 -3
  11. {letta → letta_client}/agents/messages/client.py +240 -25
  12. {letta → letta_client}/agents/messages/types/letta_streaming_response.py +21 -16
  13. {letta → letta_client}/agents/messages/types/messages_list_response_item.py +19 -14
  14. {letta → letta_client}/agents/recall_memory/client.py +7 -7
  15. {letta → letta_client}/agents/sources/client.py +7 -7
  16. letta_client/agents/templates/__init__.py +5 -0
  17. letta_client/agents/templates/client.py +578 -0
  18. letta_client/agents/templates/types/__init__.py +5 -0
  19. letta/agents/types/agents_migrate_response.py → letta_client/agents/templates/types/templates_migrate_response.py +3 -3
  20. {letta → letta_client}/agents/tools/client.py +19 -19
  21. letta_client/agents/types/__init__.py +33 -0
  22. letta_client/agents/types/agents_search_request_combinator.py +5 -0
  23. letta/agents/types/agents_search_deployed_agents_request_search_item.py → letta_client/agents/types/agents_search_request_search_item.py +17 -20
  24. letta/agents/types/agents_search_deployed_agents_request_search_item_name.py → letta_client/agents/types/agents_search_request_search_item_name.py +4 -6
  25. letta_client/agents/types/agents_search_request_search_item_name_operator.py +5 -0
  26. letta_client/agents/types/agents_search_request_search_item_order_by.py +22 -0
  27. letta_client/agents/types/agents_search_request_search_item_order_by_direction.py +5 -0
  28. letta_client/agents/types/agents_search_request_search_item_order_by_value.py +5 -0
  29. letta/agents/types/agents_search_deployed_agents_request_search_item_version.py → letta_client/agents/types/agents_search_request_search_item_version.py +2 -2
  30. {letta → letta_client}/blocks/client.py +39 -39
  31. {letta → letta_client}/client.py +10 -2
  32. {letta → letta_client}/core/__init__.py +4 -0
  33. {letta → letta_client}/core/client_wrapper.py +1 -1
  34. letta_client/core/unchecked_base_model.py +305 -0
  35. {letta → letta_client}/health/client.py +5 -5
  36. {letta → letta_client}/jobs/client.py +25 -25
  37. {letta → letta_client}/models/client.py +9 -9
  38. letta_client/providers/client.py +597 -0
  39. letta_client/runs/client.py +876 -0
  40. {letta → letta_client}/sources/client.py +49 -49
  41. {letta → letta_client}/sources/files/client.py +17 -17
  42. {letta → letta_client}/sources/passages/client.py +7 -7
  43. letta_client/tools/__init__.py +2 -0
  44. {letta → letta_client}/tools/client.py +101 -81
  45. {letta → letta_client}/types/__init__.py +8 -0
  46. {letta → letta_client}/types/action_model.py +2 -2
  47. {letta → letta_client}/types/action_parameters_model.py +2 -2
  48. {letta → letta_client}/types/action_response_model.py +2 -2
  49. {letta → letta_client}/types/agent_environment_variable.py +2 -7
  50. {letta → letta_client}/types/agent_state.py +5 -8
  51. letta_client/types/agent_type.py +7 -0
  52. {letta → letta_client}/types/app_auth_scheme.py +2 -2
  53. {letta → letta_client}/types/app_model.py +2 -2
  54. {letta → letta_client}/types/archival_memory_summary.py +2 -2
  55. {letta → letta_client}/types/assistant_file.py +2 -2
  56. {letta → letta_client}/types/assistant_message_input.py +2 -2
  57. {letta → letta_client}/types/assistant_message_output.py +2 -2
  58. {letta → letta_client}/types/auth_request.py +2 -2
  59. {letta → letta_client}/types/auth_response.py +2 -2
  60. {letta → letta_client}/types/auth_scheme_field.py +2 -2
  61. {letta → letta_client}/types/block.py +2 -7
  62. {letta → letta_client}/types/block_update.py +2 -2
  63. {letta → letta_client}/types/chat_completion_request.py +2 -2
  64. {letta → letta_client}/types/chat_completion_response.py +2 -2
  65. {letta → letta_client}/types/child_tool_rule.py +2 -2
  66. {letta → letta_client}/types/choice.py +2 -2
  67. {letta → letta_client}/types/conditional_tool_rule.py +2 -2
  68. {letta → letta_client}/types/conflict_error_body.py +2 -2
  69. {letta → letta_client}/types/context_window_overview.py +2 -2
  70. {letta → letta_client}/types/create_assistant_file_request.py +2 -2
  71. {letta → letta_client}/types/create_assistant_request.py +2 -2
  72. {letta → letta_client}/types/create_block.py +2 -2
  73. {letta → letta_client}/types/delete_assistant_file_response.py +2 -2
  74. {letta → letta_client}/types/delete_assistant_response.py +2 -2
  75. {letta → letta_client}/types/e_2_b_sandbox_config.py +2 -2
  76. {letta → letta_client}/types/embedding_config.py +2 -2
  77. {letta → letta_client}/types/file_metadata.py +2 -7
  78. {letta → letta_client}/types/function_call_input.py +2 -2
  79. {letta → letta_client}/types/function_call_output.py +2 -2
  80. {letta → letta_client}/types/function_schema.py +2 -2
  81. {letta → letta_client}/types/health.py +2 -2
  82. {letta → letta_client}/types/http_validation_error.py +2 -2
  83. {letta → letta_client}/types/init_tool_rule.py +2 -2
  84. {letta → letta_client}/types/internal_server_error_body.py +2 -2
  85. {letta → letta_client}/types/job.py +7 -6
  86. letta_client/types/job_type.py +5 -0
  87. {letta → letta_client}/types/letta_request.py +7 -2
  88. {letta → letta_client}/types/letta_response.py +2 -2
  89. {letta → letta_client}/types/letta_response_messages_item.py +19 -14
  90. {letta → letta_client}/types/letta_schemas_letta_message_tool_call.py +2 -2
  91. {letta → letta_client}/types/letta_schemas_message_message.py +2 -7
  92. {letta → letta_client}/types/letta_schemas_openai_chat_completion_request_tool.py +2 -2
  93. {letta → letta_client}/types/letta_schemas_openai_chat_completion_request_tool_call.py +2 -2
  94. {letta → letta_client}/types/letta_schemas_openai_chat_completion_request_tool_call_function.py +2 -2
  95. {letta → letta_client}/types/letta_schemas_openai_chat_completion_response_message.py +2 -2
  96. {letta → letta_client}/types/letta_schemas_openai_chat_completion_response_tool_call.py +2 -2
  97. {letta → letta_client}/types/letta_schemas_openai_chat_completions_tool_call_function.py +2 -2
  98. {letta → letta_client}/types/letta_schemas_openai_chat_completions_tool_call_input.py +2 -2
  99. {letta → letta_client}/types/letta_schemas_openai_chat_completions_tool_call_output.py +2 -2
  100. {letta → letta_client}/types/letta_schemas_tool_tool.py +9 -8
  101. {letta → letta_client}/types/letta_usage_statistics.py +2 -2
  102. {letta → letta_client}/types/llm_config.py +2 -2
  103. {letta → letta_client}/types/local_sandbox_config.py +2 -2
  104. {letta → letta_client}/types/log_prob_token.py +2 -2
  105. {letta → letta_client}/types/memory.py +2 -2
  106. {letta → letta_client}/types/message_content_log_prob.py +2 -2
  107. {letta → letta_client}/types/message_create.py +2 -2
  108. {letta → letta_client}/types/not_found_error_body.py +2 -2
  109. {letta → letta_client}/types/open_ai_assistant.py +2 -2
  110. {letta → letta_client}/types/organization.py +2 -2
  111. {letta → letta_client}/types/organization_create.py +2 -2
  112. {letta → letta_client}/types/passage.py +2 -7
  113. letta_client/types/provider.py +38 -0
  114. {letta → letta_client}/types/reasoning_message.py +2 -2
  115. {letta → letta_client}/types/recall_memory_summary.py +2 -2
  116. {letta → letta_client}/types/response_format.py +2 -2
  117. letta_client/types/run.py +77 -0
  118. {letta → letta_client}/types/sandbox_config.py +2 -7
  119. {letta → letta_client}/types/sandbox_config_create.py +2 -2
  120. {letta → letta_client}/types/sandbox_config_update.py +2 -2
  121. {letta → letta_client}/types/sandbox_environment_variable.py +2 -7
  122. {letta → letta_client}/types/sandbox_environment_variable_create.py +2 -2
  123. {letta → letta_client}/types/sandbox_environment_variable_update.py +2 -2
  124. {letta → letta_client}/types/source.py +2 -7
  125. {letta → letta_client}/types/system_message_input.py +2 -2
  126. {letta → letta_client}/types/system_message_output.py +2 -2
  127. {letta → letta_client}/types/terminal_tool_rule.py +2 -2
  128. {letta → letta_client}/types/tool_call_delta.py +2 -2
  129. {letta → letta_client}/types/tool_call_function_output.py +2 -2
  130. {letta → letta_client}/types/tool_call_message.py +2 -2
  131. {letta → letta_client}/types/tool_create.py +2 -2
  132. {letta → letta_client}/types/tool_function_choice.py +2 -2
  133. {letta → letta_client}/types/tool_input.py +2 -2
  134. {letta → letta_client}/types/tool_message.py +2 -2
  135. {letta → letta_client}/types/tool_return_message.py +2 -2
  136. letta_client/types/tool_type.py +5 -0
  137. {letta → letta_client}/types/usage_statistics.py +2 -2
  138. {letta → letta_client}/types/user.py +2 -7
  139. {letta → letta_client}/types/user_create.py +2 -7
  140. {letta → letta_client}/types/user_message_input.py +2 -2
  141. {letta → letta_client}/types/user_message_output.py +2 -2
  142. {letta → letta_client}/types/user_update.py +2 -7
  143. {letta → letta_client}/types/validation_error.py +2 -2
  144. {letta_client-0.1.6.dist-info → letta_client-0.1.10.dist-info}/METADATA +7 -7
  145. letta_client-0.1.10.dist-info/RECORD +204 -0
  146. letta/agents/client.py +0 -2644
  147. letta/agents/memory/__init__.py +0 -5
  148. letta/agents/memory/messages/client.py +0 -147
  149. letta/agents/memory_blocks/client.py +0 -364
  150. letta/agents/types/__init__.py +0 -47
  151. letta/agents/types/agents_search_deployed_agents_request_combinator.py +0 -5
  152. letta/agents/types/agents_search_deployed_agents_request_search_item_name_operator.py +0 -7
  153. letta/agents/types/agents_search_deployed_agents_request_search_item_order_by.py +0 -26
  154. letta/agents/types/agents_search_deployed_agents_request_search_item_order_by_direction.py +0 -5
  155. letta/agents/types/agents_search_deployed_agents_request_search_item_order_by_value.py +0 -7
  156. letta/types/agent_type.py +0 -8
  157. letta_client-0.1.6.dist-info/RECORD +0 -193
  158. {letta → letta_client}/agents/archival_memory/__init__.py +0 -0
  159. {letta → letta_client}/agents/context/__init__.py +0 -0
  160. {letta/agents/memory/messages → letta_client/agents/core_memory}/__init__.py +0 -0
  161. {letta → letta_client}/agents/messages/__init__.py +0 -0
  162. {letta → letta_client}/agents/messages/types/__init__.py +0 -0
  163. {letta → letta_client}/agents/messages/types/messages_list_response.py +0 -0
  164. {letta/agents/memory_blocks → letta_client/agents/recall_memory}/__init__.py +0 -0
  165. {letta/agents/recall_memory → letta_client/agents/sources}/__init__.py +0 -0
  166. {letta/agents/sources → letta_client/agents/tools}/__init__.py +0 -0
  167. {letta → letta_client}/agents/types/create_agent_request_tool_rules_item.py +0 -0
  168. {letta → letta_client}/agents/types/update_agent_tool_rules_item.py +0 -0
  169. {letta/agents/tools → letta_client/blocks}/__init__.py +0 -0
  170. {letta → letta_client}/core/api_error.py +0 -0
  171. {letta → letta_client}/core/datetime_utils.py +0 -0
  172. {letta → letta_client}/core/file.py +0 -0
  173. {letta → letta_client}/core/http_client.py +0 -0
  174. {letta → letta_client}/core/jsonable_encoder.py +0 -0
  175. {letta → letta_client}/core/pydantic_utilities.py +0 -0
  176. {letta → letta_client}/core/query_encoder.py +0 -0
  177. {letta → letta_client}/core/remove_none_from_dict.py +0 -0
  178. {letta → letta_client}/core/request_options.py +0 -0
  179. {letta → letta_client}/core/serialization.py +0 -0
  180. {letta → letta_client}/environment.py +0 -0
  181. {letta → letta_client}/errors/__init__.py +0 -0
  182. {letta → letta_client}/errors/conflict_error.py +0 -0
  183. {letta → letta_client}/errors/internal_server_error.py +0 -0
  184. {letta → letta_client}/errors/not_found_error.py +0 -0
  185. {letta → letta_client}/errors/unprocessable_entity_error.py +0 -0
  186. {letta/blocks → letta_client/health}/__init__.py +0 -0
  187. {letta/health → letta_client/jobs}/__init__.py +0 -0
  188. {letta/jobs → letta_client/models}/__init__.py +0 -0
  189. {letta/models → letta_client/providers}/__init__.py +0 -0
  190. {letta → letta_client}/py.typed +0 -0
  191. {letta/sources/files → letta_client/runs}/__init__.py +0 -0
  192. {letta → letta_client}/sources/__init__.py +0 -0
  193. {letta/sources/passages → letta_client/sources/files}/__init__.py +0 -0
  194. {letta/tools → letta_client/sources/passages}/__init__.py +0 -0
  195. {letta → letta_client}/types/agent_state_tool_rules_item.py +0 -0
  196. {letta → letta_client}/types/app_auth_scheme_auth_mode.py +0 -0
  197. {letta → letta_client}/types/chat_completion_request_function_call.py +0 -0
  198. {letta → letta_client}/types/chat_completion_request_messages_item.py +0 -0
  199. {letta → letta_client}/types/chat_completion_request_stop.py +0 -0
  200. {letta → letta_client}/types/chat_completion_request_tool_choice.py +0 -0
  201. {letta → letta_client}/types/embedding_config_embedding_endpoint_type.py +0 -0
  202. {letta → letta_client}/types/job_status.py +0 -0
  203. {letta → letta_client}/types/llm_config_model_endpoint_type.py +0 -0
  204. {letta → letta_client}/types/message_create_role.py +0 -0
  205. {letta → letta_client}/types/message_role.py +0 -0
  206. {letta → letta_client}/types/not_found_error_body_message.py +0 -0
  207. {letta → letta_client}/types/sandbox_config_create_config.py +0 -0
  208. {letta → letta_client}/types/sandbox_config_update_config.py +0 -0
  209. {letta → letta_client}/types/sandbox_type.py +0 -0
  210. {letta → letta_client}/types/tool_call_message_tool_call.py +0 -0
  211. {letta → letta_client}/types/tool_return_message_status.py +0 -0
  212. {letta → letta_client}/types/tool_rule_type.py +0 -0
  213. {letta → letta_client}/types/user_message_input_content.py +0 -0
  214. {letta → letta_client}/types/validation_error_loc_item.py +0 -0
  215. {letta → letta_client}/version.py +0 -0
  216. {letta_client-0.1.6.dist-info → letta_client-0.1.10.dist-info}/WHEEL +0 -0
@@ -5,7 +5,7 @@ from ...core.client_wrapper import SyncClientWrapper
5
5
  from ...core.request_options import RequestOptions
6
6
  from .types.messages_list_response import MessagesListResponse
7
7
  from ...core.jsonable_encoder import jsonable_encoder
8
- from ...core.pydantic_utilities import parse_obj_as
8
+ from ...core.unchecked_base_model import construct_type
9
9
  from ...errors.unprocessable_entity_error import UnprocessableEntityError
10
10
  from ...types.http_validation_error import HttpValidationError
11
11
  from json.decoder import JSONDecodeError
@@ -21,6 +21,7 @@ from ...types.letta_schemas_message_message import LettaSchemasMessageMessage
21
21
  from .types.letta_streaming_response import LettaStreamingResponse
22
22
  import httpx_sse
23
23
  import json
24
+ from ...types.run import Run
24
25
  from ...core.client_wrapper import AsyncClientWrapper
25
26
 
26
27
  # this is used as the default value for optional parameters
@@ -74,7 +75,7 @@ class MessagesClient:
74
75
 
75
76
  Examples
76
77
  --------
77
- from letta import Letta
78
+ from letta_client import Letta
78
79
 
79
80
  client = Letta(
80
81
  token="YOUR_TOKEN",
@@ -99,7 +100,7 @@ class MessagesClient:
99
100
  if 200 <= _response.status_code < 300:
100
101
  return typing.cast(
101
102
  MessagesListResponse,
102
- parse_obj_as(
103
+ construct_type(
103
104
  type_=MessagesListResponse, # type: ignore
104
105
  object_=_response.json(),
105
106
  ),
@@ -108,7 +109,7 @@ class MessagesClient:
108
109
  raise UnprocessableEntityError(
109
110
  typing.cast(
110
111
  HttpValidationError,
111
- parse_obj_as(
112
+ construct_type(
112
113
  type_=HttpValidationError, # type: ignore
113
114
  object_=_response.json(),
114
115
  ),
@@ -124,6 +125,7 @@ class MessagesClient:
124
125
  agent_id: str,
125
126
  *,
126
127
  messages: typing.Sequence[MessageCreate],
128
+ use_assistant_message: typing.Optional[bool] = OMIT,
127
129
  assistant_message_tool_name: typing.Optional[str] = OMIT,
128
130
  assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
129
131
  request_options: typing.Optional[RequestOptions] = None,
@@ -139,6 +141,9 @@ class MessagesClient:
139
141
  messages : typing.Sequence[MessageCreate]
140
142
  The messages to be sent to the agent.
141
143
 
144
+ use_assistant_message : typing.Optional[bool]
145
+ Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
146
+
142
147
  assistant_message_tool_name : typing.Optional[str]
143
148
  The name of the designated message tool.
144
149
 
@@ -155,7 +160,7 @@ class MessagesClient:
155
160
 
156
161
  Examples
157
162
  --------
158
- from letta import Letta, MessageCreate
163
+ from letta_client import Letta, MessageCreate
159
164
 
160
165
  client = Letta(
161
166
  token="YOUR_TOKEN",
@@ -177,6 +182,7 @@ class MessagesClient:
177
182
  "messages": convert_and_respect_annotation_metadata(
178
183
  object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
179
184
  ),
185
+ "use_assistant_message": use_assistant_message,
180
186
  "assistant_message_tool_name": assistant_message_tool_name,
181
187
  "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
182
188
  },
@@ -187,7 +193,7 @@ class MessagesClient:
187
193
  if 200 <= _response.status_code < 300:
188
194
  return typing.cast(
189
195
  LettaResponse,
190
- parse_obj_as(
196
+ construct_type(
191
197
  type_=LettaResponse, # type: ignore
192
198
  object_=_response.json(),
193
199
  ),
@@ -196,7 +202,7 @@ class MessagesClient:
196
202
  raise UnprocessableEntityError(
197
203
  typing.cast(
198
204
  HttpValidationError,
199
- parse_obj_as(
205
+ construct_type(
200
206
  type_=HttpValidationError, # type: ignore
201
207
  object_=_response.json(),
202
208
  ),
@@ -253,7 +259,7 @@ class MessagesClient:
253
259
 
254
260
  Examples
255
261
  --------
256
- from letta import Letta
262
+ from letta_client import Letta
257
263
 
258
264
  client = Letta(
259
265
  token="YOUR_TOKEN",
@@ -287,7 +293,7 @@ class MessagesClient:
287
293
  if 200 <= _response.status_code < 300:
288
294
  return typing.cast(
289
295
  LettaSchemasMessageMessage,
290
- parse_obj_as(
296
+ construct_type(
291
297
  type_=LettaSchemasMessageMessage, # type: ignore
292
298
  object_=_response.json(),
293
299
  ),
@@ -296,7 +302,7 @@ class MessagesClient:
296
302
  raise UnprocessableEntityError(
297
303
  typing.cast(
298
304
  HttpValidationError,
299
- parse_obj_as(
305
+ construct_type(
300
306
  type_=HttpValidationError, # type: ignore
301
307
  object_=_response.json(),
302
308
  ),
@@ -312,6 +318,7 @@ class MessagesClient:
312
318
  agent_id: str,
313
319
  *,
314
320
  messages: typing.Sequence[MessageCreate],
321
+ use_assistant_message: typing.Optional[bool] = OMIT,
315
322
  assistant_message_tool_name: typing.Optional[str] = OMIT,
316
323
  assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
317
324
  stream_tokens: typing.Optional[bool] = OMIT,
@@ -329,6 +336,9 @@ class MessagesClient:
329
336
  messages : typing.Sequence[MessageCreate]
330
337
  The messages to be sent to the agent.
331
338
 
339
+ use_assistant_message : typing.Optional[bool]
340
+ Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
341
+
332
342
  assistant_message_tool_name : typing.Optional[str]
333
343
  The name of the designated message tool.
334
344
 
@@ -348,7 +358,7 @@ class MessagesClient:
348
358
 
349
359
  Examples
350
360
  --------
351
- from letta import Letta, MessageCreate
361
+ from letta_client import Letta, MessageCreate
352
362
 
353
363
  client = Letta(
354
364
  token="YOUR_TOKEN",
@@ -372,6 +382,7 @@ class MessagesClient:
372
382
  "messages": convert_and_respect_annotation_metadata(
373
383
  object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
374
384
  ),
385
+ "use_assistant_message": use_assistant_message,
375
386
  "assistant_message_tool_name": assistant_message_tool_name,
376
387
  "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
377
388
  "stream_tokens": stream_tokens,
@@ -389,7 +400,7 @@ class MessagesClient:
389
400
  try:
390
401
  yield typing.cast(
391
402
  LettaStreamingResponse,
392
- parse_obj_as(
403
+ construct_type(
393
404
  type_=LettaStreamingResponse, # type: ignore
394
405
  object_=json.loads(_sse.data),
395
406
  ),
@@ -402,7 +413,7 @@ class MessagesClient:
402
413
  raise UnprocessableEntityError(
403
414
  typing.cast(
404
415
  HttpValidationError,
405
- parse_obj_as(
416
+ construct_type(
406
417
  type_=HttpValidationError, # type: ignore
407
418
  object_=_response.json(),
408
419
  ),
@@ -413,6 +424,99 @@ class MessagesClient:
413
424
  raise ApiError(status_code=_response.status_code, body=_response.text)
414
425
  raise ApiError(status_code=_response.status_code, body=_response_json)
415
426
 
427
+ def create_async(
428
+ self,
429
+ agent_id: str,
430
+ *,
431
+ messages: typing.Sequence[MessageCreate],
432
+ use_assistant_message: typing.Optional[bool] = OMIT,
433
+ assistant_message_tool_name: typing.Optional[str] = OMIT,
434
+ assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
435
+ request_options: typing.Optional[RequestOptions] = None,
436
+ ) -> Run:
437
+ """
438
+ Asynchronously process a user message and return a job ID.
439
+ The actual processing happens in the background, and the status can be checked using the job ID.
440
+
441
+ Parameters
442
+ ----------
443
+ agent_id : str
444
+
445
+ messages : typing.Sequence[MessageCreate]
446
+ The messages to be sent to the agent.
447
+
448
+ use_assistant_message : typing.Optional[bool]
449
+ Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
450
+
451
+ assistant_message_tool_name : typing.Optional[str]
452
+ The name of the designated message tool.
453
+
454
+ assistant_message_tool_kwarg : typing.Optional[str]
455
+ The name of the message argument in the designated message tool.
456
+
457
+ request_options : typing.Optional[RequestOptions]
458
+ Request-specific configuration.
459
+
460
+ Returns
461
+ -------
462
+ Run
463
+ Successful Response
464
+
465
+ Examples
466
+ --------
467
+ from letta_client import Letta, MessageCreate
468
+
469
+ client = Letta(
470
+ token="YOUR_TOKEN",
471
+ )
472
+ client.agents.messages.create_async(
473
+ agent_id="agent_id",
474
+ messages=[
475
+ MessageCreate(
476
+ role="user",
477
+ text="text",
478
+ )
479
+ ],
480
+ )
481
+ """
482
+ _response = self._client_wrapper.httpx_client.request(
483
+ f"v1/agents/{jsonable_encoder(agent_id)}/messages/async",
484
+ method="POST",
485
+ json={
486
+ "messages": convert_and_respect_annotation_metadata(
487
+ object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
488
+ ),
489
+ "use_assistant_message": use_assistant_message,
490
+ "assistant_message_tool_name": assistant_message_tool_name,
491
+ "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
492
+ },
493
+ request_options=request_options,
494
+ omit=OMIT,
495
+ )
496
+ try:
497
+ if 200 <= _response.status_code < 300:
498
+ return typing.cast(
499
+ Run,
500
+ construct_type(
501
+ type_=Run, # type: ignore
502
+ object_=_response.json(),
503
+ ),
504
+ )
505
+ if _response.status_code == 422:
506
+ raise UnprocessableEntityError(
507
+ typing.cast(
508
+ HttpValidationError,
509
+ construct_type(
510
+ type_=HttpValidationError, # type: ignore
511
+ object_=_response.json(),
512
+ ),
513
+ )
514
+ )
515
+ _response_json = _response.json()
516
+ except JSONDecodeError:
517
+ raise ApiError(status_code=_response.status_code, body=_response.text)
518
+ raise ApiError(status_code=_response.status_code, body=_response_json)
519
+
416
520
 
417
521
  class AsyncMessagesClient:
418
522
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -463,7 +567,7 @@ class AsyncMessagesClient:
463
567
  --------
464
568
  import asyncio
465
569
 
466
- from letta import AsyncLetta
570
+ from letta_client import AsyncLetta
467
571
 
468
572
  client = AsyncLetta(
469
573
  token="YOUR_TOKEN",
@@ -494,7 +598,7 @@ class AsyncMessagesClient:
494
598
  if 200 <= _response.status_code < 300:
495
599
  return typing.cast(
496
600
  MessagesListResponse,
497
- parse_obj_as(
601
+ construct_type(
498
602
  type_=MessagesListResponse, # type: ignore
499
603
  object_=_response.json(),
500
604
  ),
@@ -503,7 +607,7 @@ class AsyncMessagesClient:
503
607
  raise UnprocessableEntityError(
504
608
  typing.cast(
505
609
  HttpValidationError,
506
- parse_obj_as(
610
+ construct_type(
507
611
  type_=HttpValidationError, # type: ignore
508
612
  object_=_response.json(),
509
613
  ),
@@ -519,6 +623,7 @@ class AsyncMessagesClient:
519
623
  agent_id: str,
520
624
  *,
521
625
  messages: typing.Sequence[MessageCreate],
626
+ use_assistant_message: typing.Optional[bool] = OMIT,
522
627
  assistant_message_tool_name: typing.Optional[str] = OMIT,
523
628
  assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
524
629
  request_options: typing.Optional[RequestOptions] = None,
@@ -534,6 +639,9 @@ class AsyncMessagesClient:
534
639
  messages : typing.Sequence[MessageCreate]
535
640
  The messages to be sent to the agent.
536
641
 
642
+ use_assistant_message : typing.Optional[bool]
643
+ Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
644
+
537
645
  assistant_message_tool_name : typing.Optional[str]
538
646
  The name of the designated message tool.
539
647
 
@@ -552,7 +660,7 @@ class AsyncMessagesClient:
552
660
  --------
553
661
  import asyncio
554
662
 
555
- from letta import AsyncLetta, MessageCreate
663
+ from letta_client import AsyncLetta, MessageCreate
556
664
 
557
665
  client = AsyncLetta(
558
666
  token="YOUR_TOKEN",
@@ -580,6 +688,7 @@ class AsyncMessagesClient:
580
688
  "messages": convert_and_respect_annotation_metadata(
581
689
  object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
582
690
  ),
691
+ "use_assistant_message": use_assistant_message,
583
692
  "assistant_message_tool_name": assistant_message_tool_name,
584
693
  "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
585
694
  },
@@ -590,7 +699,7 @@ class AsyncMessagesClient:
590
699
  if 200 <= _response.status_code < 300:
591
700
  return typing.cast(
592
701
  LettaResponse,
593
- parse_obj_as(
702
+ construct_type(
594
703
  type_=LettaResponse, # type: ignore
595
704
  object_=_response.json(),
596
705
  ),
@@ -599,7 +708,7 @@ class AsyncMessagesClient:
599
708
  raise UnprocessableEntityError(
600
709
  typing.cast(
601
710
  HttpValidationError,
602
- parse_obj_as(
711
+ construct_type(
603
712
  type_=HttpValidationError, # type: ignore
604
713
  object_=_response.json(),
605
714
  ),
@@ -658,7 +767,7 @@ class AsyncMessagesClient:
658
767
  --------
659
768
  import asyncio
660
769
 
661
- from letta import AsyncLetta
770
+ from letta_client import AsyncLetta
662
771
 
663
772
  client = AsyncLetta(
664
773
  token="YOUR_TOKEN",
@@ -698,7 +807,7 @@ class AsyncMessagesClient:
698
807
  if 200 <= _response.status_code < 300:
699
808
  return typing.cast(
700
809
  LettaSchemasMessageMessage,
701
- parse_obj_as(
810
+ construct_type(
702
811
  type_=LettaSchemasMessageMessage, # type: ignore
703
812
  object_=_response.json(),
704
813
  ),
@@ -707,7 +816,7 @@ class AsyncMessagesClient:
707
816
  raise UnprocessableEntityError(
708
817
  typing.cast(
709
818
  HttpValidationError,
710
- parse_obj_as(
819
+ construct_type(
711
820
  type_=HttpValidationError, # type: ignore
712
821
  object_=_response.json(),
713
822
  ),
@@ -723,6 +832,7 @@ class AsyncMessagesClient:
723
832
  agent_id: str,
724
833
  *,
725
834
  messages: typing.Sequence[MessageCreate],
835
+ use_assistant_message: typing.Optional[bool] = OMIT,
726
836
  assistant_message_tool_name: typing.Optional[str] = OMIT,
727
837
  assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
728
838
  stream_tokens: typing.Optional[bool] = OMIT,
@@ -740,6 +850,9 @@ class AsyncMessagesClient:
740
850
  messages : typing.Sequence[MessageCreate]
741
851
  The messages to be sent to the agent.
742
852
 
853
+ use_assistant_message : typing.Optional[bool]
854
+ Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
855
+
743
856
  assistant_message_tool_name : typing.Optional[str]
744
857
  The name of the designated message tool.
745
858
 
@@ -761,7 +874,7 @@ class AsyncMessagesClient:
761
874
  --------
762
875
  import asyncio
763
876
 
764
- from letta import AsyncLetta, MessageCreate
877
+ from letta_client import AsyncLetta, MessageCreate
765
878
 
766
879
  client = AsyncLetta(
767
880
  token="YOUR_TOKEN",
@@ -791,6 +904,7 @@ class AsyncMessagesClient:
791
904
  "messages": convert_and_respect_annotation_metadata(
792
905
  object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
793
906
  ),
907
+ "use_assistant_message": use_assistant_message,
794
908
  "assistant_message_tool_name": assistant_message_tool_name,
795
909
  "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
796
910
  "stream_tokens": stream_tokens,
@@ -808,7 +922,7 @@ class AsyncMessagesClient:
808
922
  try:
809
923
  yield typing.cast(
810
924
  LettaStreamingResponse,
811
- parse_obj_as(
925
+ construct_type(
812
926
  type_=LettaStreamingResponse, # type: ignore
813
927
  object_=json.loads(_sse.data),
814
928
  ),
@@ -821,7 +935,7 @@ class AsyncMessagesClient:
821
935
  raise UnprocessableEntityError(
822
936
  typing.cast(
823
937
  HttpValidationError,
824
- parse_obj_as(
938
+ construct_type(
825
939
  type_=HttpValidationError, # type: ignore
826
940
  object_=_response.json(),
827
941
  ),
@@ -831,3 +945,104 @@ class AsyncMessagesClient:
831
945
  except JSONDecodeError:
832
946
  raise ApiError(status_code=_response.status_code, body=_response.text)
833
947
  raise ApiError(status_code=_response.status_code, body=_response_json)
948
+
949
+ async def create_async(
950
+ self,
951
+ agent_id: str,
952
+ *,
953
+ messages: typing.Sequence[MessageCreate],
954
+ use_assistant_message: typing.Optional[bool] = OMIT,
955
+ assistant_message_tool_name: typing.Optional[str] = OMIT,
956
+ assistant_message_tool_kwarg: typing.Optional[str] = OMIT,
957
+ request_options: typing.Optional[RequestOptions] = None,
958
+ ) -> Run:
959
+ """
960
+ Asynchronously process a user message and return a job ID.
961
+ The actual processing happens in the background, and the status can be checked using the job ID.
962
+
963
+ Parameters
964
+ ----------
965
+ agent_id : str
966
+
967
+ messages : typing.Sequence[MessageCreate]
968
+ The messages to be sent to the agent.
969
+
970
+ use_assistant_message : typing.Optional[bool]
971
+ Whether the server should parse specific tool call arguments (default `send_message`) as `AssistantMessage` objects.
972
+
973
+ assistant_message_tool_name : typing.Optional[str]
974
+ The name of the designated message tool.
975
+
976
+ assistant_message_tool_kwarg : typing.Optional[str]
977
+ The name of the message argument in the designated message tool.
978
+
979
+ request_options : typing.Optional[RequestOptions]
980
+ Request-specific configuration.
981
+
982
+ Returns
983
+ -------
984
+ Run
985
+ Successful Response
986
+
987
+ Examples
988
+ --------
989
+ import asyncio
990
+
991
+ from letta_client import AsyncLetta, MessageCreate
992
+
993
+ client = AsyncLetta(
994
+ token="YOUR_TOKEN",
995
+ )
996
+
997
+
998
+ async def main() -> None:
999
+ await client.agents.messages.create_async(
1000
+ agent_id="agent_id",
1001
+ messages=[
1002
+ MessageCreate(
1003
+ role="user",
1004
+ text="text",
1005
+ )
1006
+ ],
1007
+ )
1008
+
1009
+
1010
+ asyncio.run(main())
1011
+ """
1012
+ _response = await self._client_wrapper.httpx_client.request(
1013
+ f"v1/agents/{jsonable_encoder(agent_id)}/messages/async",
1014
+ method="POST",
1015
+ json={
1016
+ "messages": convert_and_respect_annotation_metadata(
1017
+ object_=messages, annotation=typing.Sequence[MessageCreate], direction="write"
1018
+ ),
1019
+ "use_assistant_message": use_assistant_message,
1020
+ "assistant_message_tool_name": assistant_message_tool_name,
1021
+ "assistant_message_tool_kwarg": assistant_message_tool_kwarg,
1022
+ },
1023
+ request_options=request_options,
1024
+ omit=OMIT,
1025
+ )
1026
+ try:
1027
+ if 200 <= _response.status_code < 300:
1028
+ return typing.cast(
1029
+ Run,
1030
+ construct_type(
1031
+ type_=Run, # type: ignore
1032
+ object_=_response.json(),
1033
+ ),
1034
+ )
1035
+ if _response.status_code == 422:
1036
+ raise UnprocessableEntityError(
1037
+ typing.cast(
1038
+ HttpValidationError,
1039
+ construct_type(
1040
+ type_=HttpValidationError, # type: ignore
1041
+ object_=_response.json(),
1042
+ ),
1043
+ )
1044
+ )
1045
+ _response_json = _response.json()
1046
+ except JSONDecodeError:
1047
+ raise ApiError(status_code=_response.status_code, body=_response.text)
1048
+ raise ApiError(status_code=_response.status_code, body=_response_json)
@@ -1,16 +1,18 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  from __future__ import annotations
4
- from ....core.pydantic_utilities import UniversalBaseModel
4
+ from ....core.unchecked_base_model import UncheckedBaseModel
5
5
  import typing
6
6
  import datetime as dt
7
7
  from ....core.pydantic_utilities import IS_PYDANTIC_V2
8
8
  import pydantic
9
9
  from ....types.tool_call_message_tool_call import ToolCallMessageToolCall
10
10
  from ....types.tool_return_message_status import ToolReturnMessageStatus
11
+ import typing_extensions
12
+ from ....core.unchecked_base_model import UnionMetadata
11
13
 
12
14
 
13
- class LettaStreamingResponse_SystemMessage(UniversalBaseModel):
15
+ class LettaStreamingResponse_SystemMessage(UncheckedBaseModel):
14
16
  message_type: typing.Literal["system_message"] = "system_message"
15
17
  id: str
16
18
  date: dt.datetime
@@ -26,7 +28,7 @@ class LettaStreamingResponse_SystemMessage(UniversalBaseModel):
26
28
  extra = pydantic.Extra.allow
27
29
 
28
30
 
29
- class LettaStreamingResponse_UserMessage(UniversalBaseModel):
31
+ class LettaStreamingResponse_UserMessage(UncheckedBaseModel):
30
32
  message_type: typing.Literal["user_message"] = "user_message"
31
33
  id: str
32
34
  date: dt.datetime
@@ -42,7 +44,7 @@ class LettaStreamingResponse_UserMessage(UniversalBaseModel):
42
44
  extra = pydantic.Extra.allow
43
45
 
44
46
 
45
- class LettaStreamingResponse_ReasoningMessage(UniversalBaseModel):
47
+ class LettaStreamingResponse_ReasoningMessage(UncheckedBaseModel):
46
48
  message_type: typing.Literal["reasoning_message"] = "reasoning_message"
47
49
  id: str
48
50
  date: dt.datetime
@@ -58,7 +60,7 @@ class LettaStreamingResponse_ReasoningMessage(UniversalBaseModel):
58
60
  extra = pydantic.Extra.allow
59
61
 
60
62
 
61
- class LettaStreamingResponse_ToolCallMessage(UniversalBaseModel):
63
+ class LettaStreamingResponse_ToolCallMessage(UncheckedBaseModel):
62
64
  message_type: typing.Literal["tool_call_message"] = "tool_call_message"
63
65
  id: str
64
66
  date: dt.datetime
@@ -74,7 +76,7 @@ class LettaStreamingResponse_ToolCallMessage(UniversalBaseModel):
74
76
  extra = pydantic.Extra.allow
75
77
 
76
78
 
77
- class LettaStreamingResponse_ToolReturnMessage(UniversalBaseModel):
79
+ class LettaStreamingResponse_ToolReturnMessage(UncheckedBaseModel):
78
80
  message_type: typing.Literal["tool_return_message"] = "tool_return_message"
79
81
  id: str
80
82
  date: dt.datetime
@@ -94,7 +96,7 @@ class LettaStreamingResponse_ToolReturnMessage(UniversalBaseModel):
94
96
  extra = pydantic.Extra.allow
95
97
 
96
98
 
97
- class LettaStreamingResponse_AssistantMessage(UniversalBaseModel):
99
+ class LettaStreamingResponse_AssistantMessage(UncheckedBaseModel):
98
100
  message_type: typing.Literal["assistant_message"] = "assistant_message"
99
101
  id: str
100
102
  date: dt.datetime
@@ -110,7 +112,7 @@ class LettaStreamingResponse_AssistantMessage(UniversalBaseModel):
110
112
  extra = pydantic.Extra.allow
111
113
 
112
114
 
113
- class LettaStreamingResponse_UsageStatistics(UniversalBaseModel):
115
+ class LettaStreamingResponse_UsageStatistics(UncheckedBaseModel):
114
116
  message_type: typing.Literal["usage_statistics"] = "usage_statistics"
115
117
  completion_tokens: typing.Optional[int] = None
116
118
  prompt_tokens: typing.Optional[int] = None
@@ -127,12 +129,15 @@ class LettaStreamingResponse_UsageStatistics(UniversalBaseModel):
127
129
  extra = pydantic.Extra.allow
128
130
 
129
131
 
130
- LettaStreamingResponse = typing.Union[
131
- LettaStreamingResponse_SystemMessage,
132
- LettaStreamingResponse_UserMessage,
133
- LettaStreamingResponse_ReasoningMessage,
134
- LettaStreamingResponse_ToolCallMessage,
135
- LettaStreamingResponse_ToolReturnMessage,
136
- LettaStreamingResponse_AssistantMessage,
137
- LettaStreamingResponse_UsageStatistics,
132
+ LettaStreamingResponse = typing_extensions.Annotated[
133
+ typing.Union[
134
+ LettaStreamingResponse_SystemMessage,
135
+ LettaStreamingResponse_UserMessage,
136
+ LettaStreamingResponse_ReasoningMessage,
137
+ LettaStreamingResponse_ToolCallMessage,
138
+ LettaStreamingResponse_ToolReturnMessage,
139
+ LettaStreamingResponse_AssistantMessage,
140
+ LettaStreamingResponse_UsageStatistics,
141
+ ],
142
+ UnionMetadata(discriminant="message_type"),
138
143
  ]