letta-client 0.1.318__py3-none-any.whl → 0.1.320__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 (211) hide show
  1. letta_client/__init__.py +51 -9
  2. letta_client/agents/__init__.py +6 -2
  3. letta_client/agents/client.py +50 -213
  4. letta_client/agents/files/client.py +51 -6
  5. letta_client/agents/files/raw_client.py +94 -9
  6. letta_client/agents/messages/__init__.py +2 -2
  7. letta_client/agents/messages/client.py +116 -26
  8. letta_client/agents/messages/raw_client.py +121 -19
  9. letta_client/agents/messages/types/__init__.py +2 -2
  10. letta_client/agents/messages/types/{messages_preview_raw_payload_request.py → messages_preview_request.py} +1 -1
  11. letta_client/agents/raw_client.py +50 -253
  12. letta_client/agents/types/__init__.py +4 -0
  13. letta_client/agents/types/agents_list_request_order.py +5 -0
  14. letta_client/agents/types/agents_list_request_order_by.py +5 -0
  15. letta_client/archives/__init__.py +7 -0
  16. letta_client/archives/client.py +362 -0
  17. letta_client/archives/raw_client.py +448 -0
  18. letta_client/archives/types/__init__.py +7 -0
  19. letta_client/archives/types/list_archives_request_order.py +5 -0
  20. letta_client/base_client.py +3 -6
  21. letta_client/batches/__init__.py +5 -0
  22. letta_client/batches/client.py +68 -8
  23. letta_client/batches/messages/__init__.py +7 -0
  24. letta_client/{messages → batches/messages}/client.py +50 -43
  25. letta_client/{messages → batches/messages}/raw_client.py +52 -45
  26. letta_client/batches/messages/types/__init__.py +7 -0
  27. letta_client/batches/messages/types/messages_list_request_order.py +5 -0
  28. letta_client/batches/raw_client.py +71 -6
  29. letta_client/batches/types/__init__.py +7 -0
  30. letta_client/batches/types/batches_list_request_order.py +5 -0
  31. letta_client/blocks/__init__.py +3 -1
  32. letta_client/blocks/agents/__init__.py +3 -0
  33. letta_client/blocks/agents/client.py +57 -2
  34. letta_client/blocks/agents/raw_client.py +51 -0
  35. letta_client/blocks/agents/types/__init__.py +7 -0
  36. letta_client/blocks/agents/types/agents_list_request_order.py +5 -0
  37. letta_client/blocks/client.py +25 -4
  38. letta_client/blocks/raw_client.py +25 -4
  39. letta_client/blocks/types/__init__.py +7 -0
  40. letta_client/blocks/types/blocks_list_request_order.py +5 -0
  41. letta_client/core/client_wrapper.py +2 -2
  42. letta_client/errors/__init__.py +9 -1
  43. letta_client/errors/internal_server_error.py +10 -0
  44. letta_client/folders/__init__.py +14 -2
  45. letta_client/folders/agents/__init__.py +7 -0
  46. letta_client/folders/agents/client.py +176 -0
  47. letta_client/folders/agents/raw_client.py +182 -0
  48. letta_client/folders/agents/types/__init__.py +7 -0
  49. letta_client/folders/agents/types/agents_list_request_order.py +5 -0
  50. letta_client/folders/client.py +96 -86
  51. letta_client/folders/files/__init__.py +3 -0
  52. letta_client/folders/files/client.py +49 -10
  53. letta_client/folders/files/raw_client.py +41 -10
  54. letta_client/folders/files/types/__init__.py +7 -0
  55. letta_client/folders/files/types/files_list_request_order.py +5 -0
  56. letta_client/folders/passages/__init__.py +3 -0
  57. letta_client/folders/passages/client.py +43 -14
  58. letta_client/folders/passages/raw_client.py +35 -14
  59. letta_client/folders/passages/types/__init__.py +7 -0
  60. letta_client/folders/passages/types/passages_list_request_order.py +5 -0
  61. letta_client/folders/raw_client.py +83 -104
  62. letta_client/folders/types/__init__.py +7 -0
  63. letta_client/folders/types/folders_list_request_order.py +5 -0
  64. letta_client/groups/__init__.py +4 -2
  65. letta_client/groups/client.py +27 -6
  66. letta_client/groups/messages/__init__.py +2 -2
  67. letta_client/groups/messages/client.py +39 -18
  68. letta_client/groups/messages/raw_client.py +35 -14
  69. letta_client/groups/messages/types/__init__.py +2 -1
  70. letta_client/groups/messages/types/messages_list_request_order.py +5 -0
  71. letta_client/groups/raw_client.py +27 -6
  72. letta_client/groups/types/__init__.py +2 -1
  73. letta_client/groups/types/groups_list_request_order.py +5 -0
  74. letta_client/identities/__init__.py +12 -2
  75. letta_client/identities/agents/__init__.py +7 -0
  76. letta_client/identities/agents/client.py +177 -0
  77. letta_client/identities/agents/raw_client.py +183 -0
  78. letta_client/identities/agents/types/__init__.py +7 -0
  79. letta_client/identities/agents/types/agents_list_request_order.py +5 -0
  80. letta_client/identities/blocks/__init__.py +7 -0
  81. letta_client/identities/blocks/client.py +177 -0
  82. letta_client/identities/blocks/raw_client.py +183 -0
  83. letta_client/identities/blocks/types/__init__.py +7 -0
  84. letta_client/identities/blocks/types/blocks_list_request_order.py +5 -0
  85. letta_client/identities/client.py +37 -0
  86. letta_client/identities/raw_client.py +27 -0
  87. letta_client/identities/types/__init__.py +7 -0
  88. letta_client/identities/types/identities_list_request_order.py +5 -0
  89. letta_client/jobs/client.py +10 -2
  90. letta_client/jobs/raw_client.py +10 -2
  91. letta_client/models/__init__.py +3 -0
  92. letta_client/models/client.py +3 -0
  93. letta_client/{embedding_models → models/embeddings}/client.py +14 -14
  94. letta_client/{embedding_models → models/embeddings}/raw_client.py +10 -10
  95. letta_client/providers/__init__.py +3 -0
  96. letta_client/providers/client.py +151 -82
  97. letta_client/providers/raw_client.py +165 -72
  98. letta_client/providers/types/__init__.py +7 -0
  99. letta_client/providers/types/providers_list_request_order.py +5 -0
  100. letta_client/runs/__init__.py +2 -1
  101. letta_client/runs/client.py +21 -0
  102. letta_client/runs/messages/__init__.py +3 -0
  103. letta_client/runs/messages/client.py +15 -49
  104. letta_client/runs/messages/raw_client.py +13 -49
  105. letta_client/runs/messages/types/__init__.py +7 -0
  106. letta_client/runs/messages/types/messages_list_request_order.py +5 -0
  107. letta_client/runs/raw_client.py +21 -0
  108. letta_client/steps/__init__.py +13 -3
  109. letta_client/steps/client.py +32 -83
  110. letta_client/steps/feedback/client.py +21 -6
  111. letta_client/steps/feedback/raw_client.py +29 -6
  112. letta_client/steps/messages/__init__.py +7 -0
  113. letta_client/steps/messages/client.py +177 -0
  114. letta_client/steps/messages/raw_client.py +183 -0
  115. letta_client/steps/messages/types/__init__.py +8 -0
  116. letta_client/steps/messages/types/messages_list_request_order.py +5 -0
  117. letta_client/steps/messages/types/messages_list_response_item.py +25 -0
  118. letta_client/steps/metrics/client.py +110 -0
  119. letta_client/steps/metrics/raw_client.py +122 -0
  120. letta_client/steps/raw_client.py +17 -107
  121. letta_client/steps/trace/__init__.py +4 -0
  122. letta_client/steps/trace/client.py +110 -0
  123. letta_client/steps/trace/raw_client.py +122 -0
  124. letta_client/steps/types/__init__.py +2 -1
  125. letta_client/steps/types/steps_list_request_order.py +5 -0
  126. letta_client/tags/__init__.py +3 -0
  127. letta_client/tags/client.py +57 -4
  128. letta_client/tags/raw_client.py +49 -2
  129. letta_client/tags/types/__init__.py +7 -0
  130. letta_client/tags/types/tags_list_request_order.py +5 -0
  131. letta_client/telemetry/client.py +8 -0
  132. letta_client/telemetry/raw_client.py +8 -0
  133. letta_client/templates/__init__.py +64 -0
  134. letta_client/templates/agents/__init__.py +58 -0
  135. letta_client/templates/agents/types/__init__.py +66 -0
  136. letta_client/templates/agents/types/agents_create_response.py +6 -0
  137. letta_client/templates/agents/types/agents_create_response_group.py +52 -0
  138. letta_client/templates/agents/types/agents_create_response_group_base_template_id.py +12 -0
  139. letta_client/templates/agents/types/agents_create_response_group_base_template_id_item.py +5 -0
  140. letta_client/templates/agents/types/agents_create_response_group_deployment_id.py +12 -0
  141. letta_client/templates/agents/types/agents_create_response_group_deployment_id_item.py +5 -0
  142. letta_client/templates/agents/types/agents_create_response_group_hidden.py +12 -0
  143. letta_client/templates/agents/types/agents_create_response_group_hidden_item.py +5 -0
  144. letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id.py +14 -0
  145. letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id_item.py +5 -0
  146. letta_client/templates/agents/types/agents_create_response_group_manager_agent_id.py +12 -0
  147. letta_client/templates/agents/types/agents_create_response_group_manager_agent_id_item.py +5 -0
  148. letta_client/templates/agents/types/agents_create_response_group_manager_type.py +7 -0
  149. letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length.py +14 -0
  150. letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length_item.py +5 -0
  151. letta_client/templates/agents/types/agents_create_response_group_max_turns.py +12 -0
  152. letta_client/templates/agents/types/agents_create_response_group_max_turns_item.py +5 -0
  153. letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length.py +14 -0
  154. letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length_item.py +5 -0
  155. letta_client/templates/agents/types/agents_create_response_group_project_id.py +12 -0
  156. letta_client/templates/agents/types/agents_create_response_group_project_id_item.py +5 -0
  157. letta_client/templates/agents/types/agents_create_response_group_shared_block_ids.py +5 -0
  158. letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency.py +14 -0
  159. letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency_item.py +5 -0
  160. letta_client/templates/agents/types/agents_create_response_group_template_id.py +12 -0
  161. letta_client/templates/agents/types/agents_create_response_group_template_id_item.py +5 -0
  162. letta_client/templates/agents/types/agents_create_response_group_termination_token.py +12 -0
  163. letta_client/templates/agents/types/agents_create_response_group_termination_token_item.py +5 -0
  164. letta_client/templates/agents/types/agents_create_response_group_turns_counter.py +12 -0
  165. letta_client/templates/agents/types/agents_create_response_group_turns_counter_item.py +5 -0
  166. letta_client/templates/client.py +260 -0
  167. letta_client/templates/raw_client.py +395 -0
  168. letta_client/templates/types/__init__.py +8 -0
  169. letta_client/templates/types/templates_get_template_snapshot_response.py +4 -0
  170. letta_client/templates/types/templates_get_template_snapshot_response_blocks_item.py +1 -0
  171. letta_client/templates/types/templates_get_template_snapshot_response_relationships_item.py +23 -0
  172. letta_client/templates/types/templates_migrate_deployment_response.py +21 -0
  173. letta_client/templates/types/templates_set_current_template_from_snapshot_response.py +21 -0
  174. letta_client/tools/__init__.py +2 -0
  175. letta_client/tools/client.py +47 -20
  176. letta_client/tools/raw_client.py +43 -26
  177. letta_client/tools/types/__init__.py +2 -0
  178. letta_client/tools/types/tools_list_request_order.py +5 -0
  179. letta_client/types/__init__.py +10 -2
  180. letta_client/types/agent_state.py +5 -0
  181. letta_client/types/archive.py +77 -0
  182. letta_client/types/batch_job.py +6 -0
  183. letta_client/types/{body_export_agent_serialized.py → body_export_agent.py} +1 -1
  184. letta_client/types/child_tool_rule.py +1 -1
  185. letta_client/types/conditional_tool_rule.py +1 -1
  186. letta_client/types/continue_tool_rule.py +1 -1
  187. letta_client/types/deployment_entity.py +2 -0
  188. letta_client/types/init_tool_rule.py +1 -1
  189. letta_client/types/internal_server_error_body.py +20 -0
  190. letta_client/types/internal_template_agent_create.py +5 -0
  191. letta_client/types/job.py +6 -0
  192. letta_client/types/letta_schemas_agent_file_agent_schema.py +5 -0
  193. letta_client/types/max_count_per_step_tool_rule.py +1 -1
  194. letta_client/types/memory.py +7 -1
  195. letta_client/types/memory_agent_type.py +7 -0
  196. letta_client/types/parent_tool_rule.py +1 -1
  197. letta_client/types/required_before_exit_tool_rule.py +1 -1
  198. letta_client/types/requires_approval_tool_rule.py +1 -1
  199. letta_client/types/run.py +6 -0
  200. letta_client/types/source.py +6 -0
  201. letta_client/types/step.py +1 -1
  202. letta_client/types/stop_reason_type.py +1 -0
  203. letta_client/types/terminal_tool_rule.py +1 -1
  204. letta_client/types/vector_db_provider.py +5 -0
  205. letta_client/voice/client.py +2 -8
  206. letta_client/voice/raw_client.py +0 -8
  207. {letta_client-0.1.318.dist-info → letta_client-0.1.320.dist-info}/METADATA +9 -9
  208. {letta_client-0.1.318.dist-info → letta_client-0.1.320.dist-info}/RECORD +211 -114
  209. /letta_client/{embedding_models → models/embeddings}/__init__.py +0 -0
  210. /letta_client/{messages → steps/metrics}/__init__.py +0 -0
  211. {letta_client-0.1.318.dist-info → letta_client-0.1.320.dist-info}/WHEEL +0 -0
@@ -13,6 +13,7 @@ from ..errors.unprocessable_entity_error import UnprocessableEntityError
13
13
  from ..types.http_validation_error import HttpValidationError
14
14
  from ..types.provider import Provider
15
15
  from ..types.provider_type import ProviderType
16
+ from .types.providers_list_request_order import ProvidersListRequestOrder
16
17
 
17
18
  # this is used as the default value for optional parameters
18
19
  OMIT = typing.cast(typing.Any, ...)
@@ -25,24 +26,40 @@ class RawProvidersClient:
25
26
  def list(
26
27
  self,
27
28
  *,
28
- name: typing.Optional[str] = None,
29
- provider_type: typing.Optional[ProviderType] = None,
29
+ before: typing.Optional[str] = None,
30
30
  after: typing.Optional[str] = None,
31
31
  limit: typing.Optional[int] = None,
32
+ order: typing.Optional[ProvidersListRequestOrder] = None,
33
+ order_by: typing.Optional[typing.Literal["created_at"]] = None,
34
+ name: typing.Optional[str] = None,
35
+ provider_type: typing.Optional[ProviderType] = None,
32
36
  request_options: typing.Optional[RequestOptions] = None,
33
37
  ) -> HttpResponse[typing.List[Provider]]:
34
38
  """
35
- Get a list of all custom providers in the database
39
+ Get a list of all custom providers.
36
40
 
37
41
  Parameters
38
42
  ----------
39
- name : typing.Optional[str]
40
-
41
- provider_type : typing.Optional[ProviderType]
43
+ before : typing.Optional[str]
44
+ Provider ID cursor for pagination. Returns providers that come before this provider ID in the specified sort order
42
45
 
43
46
  after : typing.Optional[str]
47
+ Provider ID cursor for pagination. Returns providers that come after this provider ID in the specified sort order
44
48
 
45
49
  limit : typing.Optional[int]
50
+ Maximum number of providers to return
51
+
52
+ order : typing.Optional[ProvidersListRequestOrder]
53
+ Sort order for providers by creation time. 'asc' for oldest first, 'desc' for newest first
54
+
55
+ order_by : typing.Optional[typing.Literal["created_at"]]
56
+ Field to sort by
57
+
58
+ name : typing.Optional[str]
59
+ Filter providers by name
60
+
61
+ provider_type : typing.Optional[ProviderType]
62
+ Filter providers by type
46
63
 
47
64
  request_options : typing.Optional[RequestOptions]
48
65
  Request-specific configuration.
@@ -56,10 +73,13 @@ class RawProvidersClient:
56
73
  "v1/providers/",
57
74
  method="GET",
58
75
  params={
59
- "name": name,
60
- "provider_type": provider_type,
76
+ "before": before,
61
77
  "after": after,
62
78
  "limit": limit,
79
+ "order": order,
80
+ "order_by": order_by,
81
+ "name": name,
82
+ "provider_type": provider_type,
63
83
  },
64
84
  request_options=request_options,
65
85
  )
@@ -102,7 +122,7 @@ class RawProvidersClient:
102
122
  request_options: typing.Optional[RequestOptions] = None,
103
123
  ) -> HttpResponse[Provider]:
104
124
  """
105
- Create a new custom provider
125
+ Create a new custom provider.
106
126
 
107
127
  Parameters
108
128
  ----------
@@ -179,11 +199,60 @@ class RawProvidersClient:
179
199
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
180
200
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
181
201
 
202
+ def retrieve_provider(
203
+ self, provider_id: str, *, request_options: typing.Optional[RequestOptions] = None
204
+ ) -> HttpResponse[Provider]:
205
+ """
206
+ Get a provider by ID.
207
+
208
+ Parameters
209
+ ----------
210
+ provider_id : str
211
+
212
+ request_options : typing.Optional[RequestOptions]
213
+ Request-specific configuration.
214
+
215
+ Returns
216
+ -------
217
+ HttpResponse[Provider]
218
+ Successful Response
219
+ """
220
+ _response = self._client_wrapper.httpx_client.request(
221
+ f"v1/providers/{jsonable_encoder(provider_id)}",
222
+ method="GET",
223
+ request_options=request_options,
224
+ )
225
+ try:
226
+ if 200 <= _response.status_code < 300:
227
+ _data = typing.cast(
228
+ Provider,
229
+ construct_type(
230
+ type_=Provider, # type: ignore
231
+ object_=_response.json(),
232
+ ),
233
+ )
234
+ return HttpResponse(response=_response, data=_data)
235
+ if _response.status_code == 422:
236
+ raise UnprocessableEntityError(
237
+ headers=dict(_response.headers),
238
+ body=typing.cast(
239
+ HttpValidationError,
240
+ construct_type(
241
+ type_=HttpValidationError, # type: ignore
242
+ object_=_response.json(),
243
+ ),
244
+ ),
245
+ )
246
+ _response_json = _response.json()
247
+ except JSONDecodeError:
248
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
249
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
250
+
182
251
  def delete(
183
252
  self, provider_id: str, *, request_options: typing.Optional[RequestOptions] = None
184
253
  ) -> HttpResponse[typing.Optional[typing.Any]]:
185
254
  """
186
- Delete an existing custom provider
255
+ Delete an existing custom provider.
187
256
 
188
257
  Parameters
189
258
  ----------
@@ -242,7 +311,7 @@ class RawProvidersClient:
242
311
  request_options: typing.Optional[RequestOptions] = None,
243
312
  ) -> HttpResponse[Provider]:
244
313
  """
245
- Update an existing custom provider
314
+ Update an existing custom provider.
246
315
 
247
316
  Parameters
248
317
  ----------
@@ -313,31 +382,7 @@ class RawProvidersClient:
313
382
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
314
383
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
315
384
 
316
- def check(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
317
- """
318
- Parameters
319
- ----------
320
- request_options : typing.Optional[RequestOptions]
321
- Request-specific configuration.
322
-
323
- Returns
324
- -------
325
- HttpResponse[None]
326
- """
327
- _response = self._client_wrapper.httpx_client.request(
328
- "v1/providers/check",
329
- method="GET",
330
- request_options=request_options,
331
- )
332
- try:
333
- if 200 <= _response.status_code < 300:
334
- return HttpResponse(response=_response, data=None)
335
- _response_json = _response.json()
336
- except JSONDecodeError:
337
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
338
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
339
-
340
- def check_provider(
385
+ def check(
341
386
  self,
342
387
  *,
343
388
  provider_type: ProviderType,
@@ -349,6 +394,8 @@ class RawProvidersClient:
349
394
  request_options: typing.Optional[RequestOptions] = None,
350
395
  ) -> HttpResponse[typing.Optional[typing.Any]]:
351
396
  """
397
+ Verify the API key and additional parameters for a provider.
398
+
352
399
  Parameters
353
400
  ----------
354
401
  provider_type : ProviderType
@@ -430,24 +477,40 @@ class AsyncRawProvidersClient:
430
477
  async def list(
431
478
  self,
432
479
  *,
433
- name: typing.Optional[str] = None,
434
- provider_type: typing.Optional[ProviderType] = None,
480
+ before: typing.Optional[str] = None,
435
481
  after: typing.Optional[str] = None,
436
482
  limit: typing.Optional[int] = None,
483
+ order: typing.Optional[ProvidersListRequestOrder] = None,
484
+ order_by: typing.Optional[typing.Literal["created_at"]] = None,
485
+ name: typing.Optional[str] = None,
486
+ provider_type: typing.Optional[ProviderType] = None,
437
487
  request_options: typing.Optional[RequestOptions] = None,
438
488
  ) -> AsyncHttpResponse[typing.List[Provider]]:
439
489
  """
440
- Get a list of all custom providers in the database
490
+ Get a list of all custom providers.
441
491
 
442
492
  Parameters
443
493
  ----------
444
- name : typing.Optional[str]
445
-
446
- provider_type : typing.Optional[ProviderType]
494
+ before : typing.Optional[str]
495
+ Provider ID cursor for pagination. Returns providers that come before this provider ID in the specified sort order
447
496
 
448
497
  after : typing.Optional[str]
498
+ Provider ID cursor for pagination. Returns providers that come after this provider ID in the specified sort order
449
499
 
450
500
  limit : typing.Optional[int]
501
+ Maximum number of providers to return
502
+
503
+ order : typing.Optional[ProvidersListRequestOrder]
504
+ Sort order for providers by creation time. 'asc' for oldest first, 'desc' for newest first
505
+
506
+ order_by : typing.Optional[typing.Literal["created_at"]]
507
+ Field to sort by
508
+
509
+ name : typing.Optional[str]
510
+ Filter providers by name
511
+
512
+ provider_type : typing.Optional[ProviderType]
513
+ Filter providers by type
451
514
 
452
515
  request_options : typing.Optional[RequestOptions]
453
516
  Request-specific configuration.
@@ -461,10 +524,13 @@ class AsyncRawProvidersClient:
461
524
  "v1/providers/",
462
525
  method="GET",
463
526
  params={
464
- "name": name,
465
- "provider_type": provider_type,
527
+ "before": before,
466
528
  "after": after,
467
529
  "limit": limit,
530
+ "order": order,
531
+ "order_by": order_by,
532
+ "name": name,
533
+ "provider_type": provider_type,
468
534
  },
469
535
  request_options=request_options,
470
536
  )
@@ -507,7 +573,7 @@ class AsyncRawProvidersClient:
507
573
  request_options: typing.Optional[RequestOptions] = None,
508
574
  ) -> AsyncHttpResponse[Provider]:
509
575
  """
510
- Create a new custom provider
576
+ Create a new custom provider.
511
577
 
512
578
  Parameters
513
579
  ----------
@@ -584,11 +650,60 @@ class AsyncRawProvidersClient:
584
650
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
585
651
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
586
652
 
653
+ async def retrieve_provider(
654
+ self, provider_id: str, *, request_options: typing.Optional[RequestOptions] = None
655
+ ) -> AsyncHttpResponse[Provider]:
656
+ """
657
+ Get a provider by ID.
658
+
659
+ Parameters
660
+ ----------
661
+ provider_id : str
662
+
663
+ request_options : typing.Optional[RequestOptions]
664
+ Request-specific configuration.
665
+
666
+ Returns
667
+ -------
668
+ AsyncHttpResponse[Provider]
669
+ Successful Response
670
+ """
671
+ _response = await self._client_wrapper.httpx_client.request(
672
+ f"v1/providers/{jsonable_encoder(provider_id)}",
673
+ method="GET",
674
+ request_options=request_options,
675
+ )
676
+ try:
677
+ if 200 <= _response.status_code < 300:
678
+ _data = typing.cast(
679
+ Provider,
680
+ construct_type(
681
+ type_=Provider, # type: ignore
682
+ object_=_response.json(),
683
+ ),
684
+ )
685
+ return AsyncHttpResponse(response=_response, data=_data)
686
+ if _response.status_code == 422:
687
+ raise UnprocessableEntityError(
688
+ headers=dict(_response.headers),
689
+ body=typing.cast(
690
+ HttpValidationError,
691
+ construct_type(
692
+ type_=HttpValidationError, # type: ignore
693
+ object_=_response.json(),
694
+ ),
695
+ ),
696
+ )
697
+ _response_json = _response.json()
698
+ except JSONDecodeError:
699
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
700
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
701
+
587
702
  async def delete(
588
703
  self, provider_id: str, *, request_options: typing.Optional[RequestOptions] = None
589
704
  ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
590
705
  """
591
- Delete an existing custom provider
706
+ Delete an existing custom provider.
592
707
 
593
708
  Parameters
594
709
  ----------
@@ -647,7 +762,7 @@ class AsyncRawProvidersClient:
647
762
  request_options: typing.Optional[RequestOptions] = None,
648
763
  ) -> AsyncHttpResponse[Provider]:
649
764
  """
650
- Update an existing custom provider
765
+ Update an existing custom provider.
651
766
 
652
767
  Parameters
653
768
  ----------
@@ -718,31 +833,7 @@ class AsyncRawProvidersClient:
718
833
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
719
834
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
720
835
 
721
- async def check(self, *, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[None]:
722
- """
723
- Parameters
724
- ----------
725
- request_options : typing.Optional[RequestOptions]
726
- Request-specific configuration.
727
-
728
- Returns
729
- -------
730
- AsyncHttpResponse[None]
731
- """
732
- _response = await self._client_wrapper.httpx_client.request(
733
- "v1/providers/check",
734
- method="GET",
735
- request_options=request_options,
736
- )
737
- try:
738
- if 200 <= _response.status_code < 300:
739
- return AsyncHttpResponse(response=_response, data=None)
740
- _response_json = _response.json()
741
- except JSONDecodeError:
742
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
743
- raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
744
-
745
- async def check_provider(
836
+ async def check(
746
837
  self,
747
838
  *,
748
839
  provider_type: ProviderType,
@@ -754,6 +845,8 @@ class AsyncRawProvidersClient:
754
845
  request_options: typing.Optional[RequestOptions] = None,
755
846
  ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
756
847
  """
848
+ Verify the API key and additional parameters for a provider.
849
+
757
850
  Parameters
758
851
  ----------
759
852
  provider_type : ProviderType
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .providers_list_request_order import ProvidersListRequestOrder
6
+
7
+ __all__ = ["ProvidersListRequestOrder"]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ ProvidersListRequestOrder = typing.Union[typing.Literal["asc", "desc"], typing.Any]
@@ -4,5 +4,6 @@
4
4
 
5
5
  from .types import LettaStreamingResponse
6
6
  from . import messages, steps, usage
7
+ from .messages import MessagesListRequestOrder
7
8
 
8
- __all__ = ["LettaStreamingResponse", "messages", "steps", "usage"]
9
+ __all__ = ["LettaStreamingResponse", "MessagesListRequestOrder", "messages", "steps", "usage"]
@@ -5,6 +5,7 @@ import typing
5
5
  from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
6
  from ..core.request_options import RequestOptions
7
7
  from ..types.run import Run
8
+ from ..types.stop_reason_type import StopReasonType
8
9
  from .messages.client import AsyncMessagesClient, MessagesClient
9
10
  from .raw_client import AsyncRawRunsClient, RawRunsClient
10
11
  from .steps.client import AsyncStepsClient, StepsClient
@@ -40,9 +41,11 @@ class RunsClient:
40
41
  *,
41
42
  agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
42
43
  background: typing.Optional[bool] = None,
44
+ stop_reason: typing.Optional[StopReasonType] = None,
43
45
  after: typing.Optional[str] = None,
44
46
  before: typing.Optional[str] = None,
45
47
  limit: typing.Optional[int] = None,
48
+ active: typing.Optional[bool] = None,
46
49
  ascending: typing.Optional[bool] = None,
47
50
  request_options: typing.Optional[RequestOptions] = None,
48
51
  ) -> typing.List[Run]:
@@ -57,6 +60,9 @@ class RunsClient:
57
60
  background : typing.Optional[bool]
58
61
  If True, filters for runs that were created in background mode.
59
62
 
63
+ stop_reason : typing.Optional[StopReasonType]
64
+ Filter runs by stop reason.
65
+
60
66
  after : typing.Optional[str]
61
67
  Cursor for pagination
62
68
 
@@ -66,6 +72,9 @@ class RunsClient:
66
72
  limit : typing.Optional[int]
67
73
  Maximum number of runs to return
68
74
 
75
+ active : typing.Optional[bool]
76
+ Filter for active runs.
77
+
69
78
  ascending : typing.Optional[bool]
70
79
  Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
71
80
 
@@ -90,9 +99,11 @@ class RunsClient:
90
99
  _response = self._raw_client.list(
91
100
  agent_ids=agent_ids,
92
101
  background=background,
102
+ stop_reason=stop_reason,
93
103
  after=after,
94
104
  before=before,
95
105
  limit=limit,
106
+ active=active,
96
107
  ascending=ascending,
97
108
  request_options=request_options,
98
109
  )
@@ -286,9 +297,11 @@ class AsyncRunsClient:
286
297
  *,
287
298
  agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
288
299
  background: typing.Optional[bool] = None,
300
+ stop_reason: typing.Optional[StopReasonType] = None,
289
301
  after: typing.Optional[str] = None,
290
302
  before: typing.Optional[str] = None,
291
303
  limit: typing.Optional[int] = None,
304
+ active: typing.Optional[bool] = None,
292
305
  ascending: typing.Optional[bool] = None,
293
306
  request_options: typing.Optional[RequestOptions] = None,
294
307
  ) -> typing.List[Run]:
@@ -303,6 +316,9 @@ class AsyncRunsClient:
303
316
  background : typing.Optional[bool]
304
317
  If True, filters for runs that were created in background mode.
305
318
 
319
+ stop_reason : typing.Optional[StopReasonType]
320
+ Filter runs by stop reason.
321
+
306
322
  after : typing.Optional[str]
307
323
  Cursor for pagination
308
324
 
@@ -312,6 +328,9 @@ class AsyncRunsClient:
312
328
  limit : typing.Optional[int]
313
329
  Maximum number of runs to return
314
330
 
331
+ active : typing.Optional[bool]
332
+ Filter for active runs.
333
+
315
334
  ascending : typing.Optional[bool]
316
335
  Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
317
336
 
@@ -344,9 +363,11 @@ class AsyncRunsClient:
344
363
  _response = await self._raw_client.list(
345
364
  agent_ids=agent_ids,
346
365
  background=background,
366
+ stop_reason=stop_reason,
347
367
  after=after,
348
368
  before=before,
349
369
  limit=limit,
370
+ active=active,
350
371
  ascending=ascending,
351
372
  request_options=request_options,
352
373
  )
@@ -2,3 +2,6 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
+ from .types import MessagesListRequestOrder
6
+
7
+ __all__ = ["MessagesListRequestOrder"]
@@ -5,8 +5,8 @@ import typing
5
5
  from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
6
  from ...core.request_options import RequestOptions
7
7
  from ...types.letta_message_union import LettaMessageUnion
8
- from ...types.message_role import MessageRole
9
8
  from .raw_client import AsyncRawMessagesClient, RawMessagesClient
9
+ from .types.messages_list_request_order import MessagesListRequestOrder
10
10
 
11
11
 
12
12
  class MessagesClient:
@@ -31,44 +31,27 @@ class MessagesClient:
31
31
  before: typing.Optional[str] = None,
32
32
  after: typing.Optional[str] = None,
33
33
  limit: typing.Optional[int] = None,
34
- order: typing.Optional[str] = None,
35
- role: typing.Optional[MessageRole] = None,
34
+ order: typing.Optional[MessagesListRequestOrder] = None,
36
35
  request_options: typing.Optional[RequestOptions] = None,
37
36
  ) -> typing.List[LettaMessageUnion]:
38
37
  """
39
- Get messages associated with a run with filtering options.
40
-
41
- Args:
42
- run_id: ID of the run
43
- before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.
44
- after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.
45
- limit: Maximum number of messages to return
46
- order: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.
47
- role: Filter by role (user/assistant/system/tool)
48
- return_message_object: Whether to return Message objects or LettaMessage objects
49
- user_id: ID of the user making the request
50
-
51
- Returns:
52
- A list of messages associated with the run. Default is List[LettaMessage].
38
+ Get response messages associated with a run.
53
39
 
54
40
  Parameters
55
41
  ----------
56
42
  run_id : str
57
43
 
58
44
  before : typing.Optional[str]
59
- Cursor for pagination
45
+ Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
60
46
 
61
47
  after : typing.Optional[str]
62
- Cursor for pagination
48
+ Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
63
49
 
64
50
  limit : typing.Optional[int]
65
51
  Maximum number of messages to return
66
52
 
67
- order : typing.Optional[str]
68
- Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.
69
-
70
- role : typing.Optional[MessageRole]
71
- Filter by role
53
+ order : typing.Optional[MessagesListRequestOrder]
54
+ Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
72
55
 
73
56
  request_options : typing.Optional[RequestOptions]
74
57
  Request-specific configuration.
@@ -91,7 +74,7 @@ class MessagesClient:
91
74
  )
92
75
  """
93
76
  _response = self._raw_client.list(
94
- run_id, before=before, after=after, limit=limit, order=order, role=role, request_options=request_options
77
+ run_id, before=before, after=after, limit=limit, order=order, request_options=request_options
95
78
  )
96
79
  return _response.data
97
80
 
@@ -118,44 +101,27 @@ class AsyncMessagesClient:
118
101
  before: typing.Optional[str] = None,
119
102
  after: typing.Optional[str] = None,
120
103
  limit: typing.Optional[int] = None,
121
- order: typing.Optional[str] = None,
122
- role: typing.Optional[MessageRole] = None,
104
+ order: typing.Optional[MessagesListRequestOrder] = None,
123
105
  request_options: typing.Optional[RequestOptions] = None,
124
106
  ) -> typing.List[LettaMessageUnion]:
125
107
  """
126
- Get messages associated with a run with filtering options.
127
-
128
- Args:
129
- run_id: ID of the run
130
- before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.
131
- after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.
132
- limit: Maximum number of messages to return
133
- order: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.
134
- role: Filter by role (user/assistant/system/tool)
135
- return_message_object: Whether to return Message objects or LettaMessage objects
136
- user_id: ID of the user making the request
137
-
138
- Returns:
139
- A list of messages associated with the run. Default is List[LettaMessage].
108
+ Get response messages associated with a run.
140
109
 
141
110
  Parameters
142
111
  ----------
143
112
  run_id : str
144
113
 
145
114
  before : typing.Optional[str]
146
- Cursor for pagination
115
+ Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
147
116
 
148
117
  after : typing.Optional[str]
149
- Cursor for pagination
118
+ Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
150
119
 
151
120
  limit : typing.Optional[int]
152
121
  Maximum number of messages to return
153
122
 
154
- order : typing.Optional[str]
155
- Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.
156
-
157
- role : typing.Optional[MessageRole]
158
- Filter by role
123
+ order : typing.Optional[MessagesListRequestOrder]
124
+ Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
159
125
 
160
126
  request_options : typing.Optional[RequestOptions]
161
127
  Request-specific configuration.
@@ -186,6 +152,6 @@ class AsyncMessagesClient:
186
152
  asyncio.run(main())
187
153
  """
188
154
  _response = await self._raw_client.list(
189
- run_id, before=before, after=after, limit=limit, order=order, role=role, request_options=request_options
155
+ run_id, before=before, after=after, limit=limit, order=order, request_options=request_options
190
156
  )
191
157
  return _response.data