letta-client 0.1.319__py3-none-any.whl → 0.1.321__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 +104 -24
  8. letta_client/agents/messages/raw_client.py +109 -17
  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 +39 -8
  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 +39 -8
  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 +16 -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 +16 -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 +16 -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.319.dist-info → letta_client-0.1.321.dist-info}/METADATA +9 -9
  208. {letta_client-0.1.319.dist-info → letta_client-0.1.321.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.319.dist-info → letta_client-0.1.321.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
@@ -38,11 +39,14 @@ class RunsClient:
38
39
  def list(
39
40
  self,
40
41
  *,
42
+ agent_id: typing.Optional[str] = None,
41
43
  agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
42
44
  background: typing.Optional[bool] = None,
45
+ stop_reason: typing.Optional[StopReasonType] = None,
43
46
  after: typing.Optional[str] = None,
44
47
  before: typing.Optional[str] = None,
45
48
  limit: typing.Optional[int] = None,
49
+ active: typing.Optional[bool] = None,
46
50
  ascending: typing.Optional[bool] = None,
47
51
  request_options: typing.Optional[RequestOptions] = None,
48
52
  ) -> typing.List[Run]:
@@ -51,12 +55,18 @@ class RunsClient:
51
55
 
52
56
  Parameters
53
57
  ----------
54
- agent_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
58
+ agent_id : typing.Optional[str]
55
59
  The unique identifier of the agent associated with the run.
56
60
 
61
+ agent_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
62
+ (DEPRECATED) The unique identifiers of the agents associated with the run.
63
+
57
64
  background : typing.Optional[bool]
58
65
  If True, filters for runs that were created in background mode.
59
66
 
67
+ stop_reason : typing.Optional[StopReasonType]
68
+ Filter runs by stop reason.
69
+
60
70
  after : typing.Optional[str]
61
71
  Cursor for pagination
62
72
 
@@ -66,6 +76,9 @@ class RunsClient:
66
76
  limit : typing.Optional[int]
67
77
  Maximum number of runs to return
68
78
 
79
+ active : typing.Optional[bool]
80
+ Filter for active runs.
81
+
69
82
  ascending : typing.Optional[bool]
70
83
  Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
71
84
 
@@ -88,11 +101,14 @@ class RunsClient:
88
101
  client.runs.list()
89
102
  """
90
103
  _response = self._raw_client.list(
104
+ agent_id=agent_id,
91
105
  agent_ids=agent_ids,
92
106
  background=background,
107
+ stop_reason=stop_reason,
93
108
  after=after,
94
109
  before=before,
95
110
  limit=limit,
111
+ active=active,
96
112
  ascending=ascending,
97
113
  request_options=request_options,
98
114
  )
@@ -101,7 +117,7 @@ class RunsClient:
101
117
  def list_active(
102
118
  self,
103
119
  *,
104
- agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
120
+ agent_id: typing.Optional[str] = None,
105
121
  background: typing.Optional[bool] = None,
106
122
  request_options: typing.Optional[RequestOptions] = None,
107
123
  ) -> typing.List[Run]:
@@ -110,7 +126,7 @@ class RunsClient:
110
126
 
111
127
  Parameters
112
128
  ----------
113
- agent_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
129
+ agent_id : typing.Optional[str]
114
130
  The unique identifier of the agent associated with the run.
115
131
 
116
132
  background : typing.Optional[bool]
@@ -135,7 +151,7 @@ class RunsClient:
135
151
  client.runs.list_active()
136
152
  """
137
153
  _response = self._raw_client.list_active(
138
- agent_ids=agent_ids, background=background, request_options=request_options
154
+ agent_id=agent_id, background=background, request_options=request_options
139
155
  )
140
156
  return _response.data
141
157
 
@@ -284,11 +300,14 @@ class AsyncRunsClient:
284
300
  async def list(
285
301
  self,
286
302
  *,
303
+ agent_id: typing.Optional[str] = None,
287
304
  agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
288
305
  background: typing.Optional[bool] = None,
306
+ stop_reason: typing.Optional[StopReasonType] = None,
289
307
  after: typing.Optional[str] = None,
290
308
  before: typing.Optional[str] = None,
291
309
  limit: typing.Optional[int] = None,
310
+ active: typing.Optional[bool] = None,
292
311
  ascending: typing.Optional[bool] = None,
293
312
  request_options: typing.Optional[RequestOptions] = None,
294
313
  ) -> typing.List[Run]:
@@ -297,12 +316,18 @@ class AsyncRunsClient:
297
316
 
298
317
  Parameters
299
318
  ----------
300
- agent_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
319
+ agent_id : typing.Optional[str]
301
320
  The unique identifier of the agent associated with the run.
302
321
 
322
+ agent_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
323
+ (DEPRECATED) The unique identifiers of the agents associated with the run.
324
+
303
325
  background : typing.Optional[bool]
304
326
  If True, filters for runs that were created in background mode.
305
327
 
328
+ stop_reason : typing.Optional[StopReasonType]
329
+ Filter runs by stop reason.
330
+
306
331
  after : typing.Optional[str]
307
332
  Cursor for pagination
308
333
 
@@ -312,6 +337,9 @@ class AsyncRunsClient:
312
337
  limit : typing.Optional[int]
313
338
  Maximum number of runs to return
314
339
 
340
+ active : typing.Optional[bool]
341
+ Filter for active runs.
342
+
315
343
  ascending : typing.Optional[bool]
316
344
  Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
317
345
 
@@ -342,11 +370,14 @@ class AsyncRunsClient:
342
370
  asyncio.run(main())
343
371
  """
344
372
  _response = await self._raw_client.list(
373
+ agent_id=agent_id,
345
374
  agent_ids=agent_ids,
346
375
  background=background,
376
+ stop_reason=stop_reason,
347
377
  after=after,
348
378
  before=before,
349
379
  limit=limit,
380
+ active=active,
350
381
  ascending=ascending,
351
382
  request_options=request_options,
352
383
  )
@@ -355,7 +386,7 @@ class AsyncRunsClient:
355
386
  async def list_active(
356
387
  self,
357
388
  *,
358
- agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
389
+ agent_id: typing.Optional[str] = None,
359
390
  background: typing.Optional[bool] = None,
360
391
  request_options: typing.Optional[RequestOptions] = None,
361
392
  ) -> typing.List[Run]:
@@ -364,7 +395,7 @@ class AsyncRunsClient:
364
395
 
365
396
  Parameters
366
397
  ----------
367
- agent_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
398
+ agent_id : typing.Optional[str]
368
399
  The unique identifier of the agent associated with the run.
369
400
 
370
401
  background : typing.Optional[bool]
@@ -397,7 +428,7 @@ class AsyncRunsClient:
397
428
  asyncio.run(main())
398
429
  """
399
430
  _response = await self._raw_client.list_active(
400
- agent_ids=agent_ids, background=background, request_options=request_options
431
+ agent_id=agent_id, background=background, request_options=request_options
401
432
  )
402
433
  return _response.data
403
434
 
@@ -2,3 +2,6 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
+ from .types import MessagesListRequestOrder
6
+
7
+ __all__ = ["MessagesListRequestOrder"]