letta-client 0.1.163__py3-none-any.whl → 0.1.165__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.

letta_client/__init__.py CHANGED
@@ -169,6 +169,7 @@ from .types import (
169
169
  PipRequirement,
170
170
  Provider,
171
171
  ProviderCategory,
172
+ ProviderCheck,
172
173
  ProviderTrace,
173
174
  ProviderType,
174
175
  ReasoningContent,
@@ -286,6 +287,7 @@ from .agents import (
286
287
  AgentsSearchRequestSearchItemOperator,
287
288
  AgentsSearchRequestSearchItemTwo,
288
289
  AgentsSearchRequestSearchItemZero,
290
+ AgentsSearchRequestSortBy,
289
291
  AgentsSearchResponse,
290
292
  CreateAgentRequestResponseFormat,
291
293
  CreateAgentRequestToolRulesItem,
@@ -334,6 +336,7 @@ __all__ = [
334
336
  "AgentsSearchRequestSearchItemOperator",
335
337
  "AgentsSearchRequestSearchItemTwo",
336
338
  "AgentsSearchRequestSearchItemZero",
339
+ "AgentsSearchRequestSortBy",
337
340
  "AgentsSearchResponse",
338
341
  "AppAuthScheme",
339
342
  "AppAuthSchemeAuthMode",
@@ -515,6 +518,7 @@ __all__ = [
515
518
  "ProjectsListResponseProjectsItem",
516
519
  "Provider",
517
520
  "ProviderCategory",
521
+ "ProviderCheck",
518
522
  "ProviderTrace",
519
523
  "ProviderType",
520
524
  "ReasoningContent",
@@ -7,6 +7,7 @@ from .types import (
7
7
  AgentsSearchRequestSearchItemOperator,
8
8
  AgentsSearchRequestSearchItemTwo,
9
9
  AgentsSearchRequestSearchItemZero,
10
+ AgentsSearchRequestSortBy,
10
11
  AgentsSearchResponse,
11
12
  CreateAgentRequestResponseFormat,
12
13
  CreateAgentRequestToolRulesItem,
@@ -25,6 +26,7 @@ __all__ = [
25
26
  "AgentsSearchRequestSearchItemOperator",
26
27
  "AgentsSearchRequestSearchItemTwo",
27
28
  "AgentsSearchRequestSearchItemZero",
29
+ "AgentsSearchRequestSortBy",
28
30
  "AgentsSearchResponse",
29
31
  "CreateAgentRequestResponseFormat",
30
32
  "CreateAgentRequestToolRulesItem",
@@ -31,7 +31,9 @@ from ..core.jsonable_encoder import jsonable_encoder
31
31
  from .. import core
32
32
  from .types.update_agent_tool_rules_item import UpdateAgentToolRulesItem
33
33
  from .types.update_agent_response_format import UpdateAgentResponseFormat
34
+ import datetime as dt
34
35
  from .types.agents_search_request_search_item import AgentsSearchRequestSearchItem
36
+ from .types.agents_search_request_sort_by import AgentsSearchRequestSortBy
35
37
  from .types.agents_search_response import AgentsSearchResponse
36
38
  from ..core.client_wrapper import AsyncClientWrapper
37
39
  from .context.client import AsyncContextClient
@@ -80,6 +82,7 @@ class AgentsClient:
80
82
  identifier_keys: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
81
83
  include_relationships: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
82
84
  ascending: typing.Optional[bool] = None,
85
+ sort_by: typing.Optional[str] = None,
83
86
  request_options: typing.Optional[RequestOptions] = None,
84
87
  ) -> typing.List[AgentState]:
85
88
  """
@@ -132,6 +135,9 @@ class AgentsClient:
132
135
  ascending : typing.Optional[bool]
133
136
  Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
134
137
 
138
+ sort_by : typing.Optional[str]
139
+ Field to sort by. Options: 'created_at' (default), 'last_run_completion'
140
+
135
141
  request_options : typing.Optional[RequestOptions]
136
142
  Request-specific configuration.
137
143
 
@@ -167,6 +173,7 @@ class AgentsClient:
167
173
  "identifier_keys": identifier_keys,
168
174
  "include_relationships": include_relationships,
169
175
  "ascending": ascending,
176
+ "sort_by": sort_by,
170
177
  },
171
178
  request_options=request_options,
172
179
  )
@@ -804,6 +811,8 @@ class AgentsClient:
804
811
  embedding: typing.Optional[str] = OMIT,
805
812
  enable_sleeptime: typing.Optional[bool] = OMIT,
806
813
  response_format: typing.Optional[UpdateAgentResponseFormat] = OMIT,
814
+ last_run_completion: typing.Optional[dt.datetime] = OMIT,
815
+ last_run_duration_ms: typing.Optional[int] = OMIT,
807
816
  request_options: typing.Optional[RequestOptions] = None,
808
817
  ) -> AgentState:
809
818
  """
@@ -879,6 +888,12 @@ class AgentsClient:
879
888
  response_format : typing.Optional[UpdateAgentResponseFormat]
880
889
  The response format for the agent.
881
890
 
891
+ last_run_completion : typing.Optional[dt.datetime]
892
+ The timestamp when the agent last completed a run.
893
+
894
+ last_run_duration_ms : typing.Optional[int]
895
+ The duration in milliseconds of the agent's last run.
896
+
882
897
  request_options : typing.Optional[RequestOptions]
883
898
  Request-specific configuration.
884
899
 
@@ -932,6 +947,8 @@ class AgentsClient:
932
947
  "response_format": convert_and_respect_annotation_metadata(
933
948
  object_=response_format, annotation=UpdateAgentResponseFormat, direction="write"
934
949
  ),
950
+ "last_run_completion": last_run_completion,
951
+ "last_run_duration_ms": last_run_duration_ms,
935
952
  },
936
953
  headers={
937
954
  "content-type": "application/json",
@@ -1039,6 +1056,8 @@ class AgentsClient:
1039
1056
  combinator: typing.Optional[typing.Literal["AND"]] = OMIT,
1040
1057
  limit: typing.Optional[float] = OMIT,
1041
1058
  after: typing.Optional[str] = OMIT,
1059
+ sort_by: typing.Optional[AgentsSearchRequestSortBy] = OMIT,
1060
+ ascending: typing.Optional[bool] = OMIT,
1042
1061
  request_options: typing.Optional[RequestOptions] = None,
1043
1062
  ) -> AgentsSearchResponse:
1044
1063
  """
@@ -1058,6 +1077,10 @@ class AgentsClient:
1058
1077
 
1059
1078
  after : typing.Optional[str]
1060
1079
 
1080
+ sort_by : typing.Optional[AgentsSearchRequestSortBy]
1081
+
1082
+ ascending : typing.Optional[bool]
1083
+
1061
1084
  request_options : typing.Optional[RequestOptions]
1062
1085
  Request-specific configuration.
1063
1086
 
@@ -1086,6 +1109,8 @@ class AgentsClient:
1086
1109
  "combinator": combinator,
1087
1110
  "limit": limit,
1088
1111
  "after": after,
1112
+ "sortBy": sort_by,
1113
+ "ascending": ascending,
1089
1114
  },
1090
1115
  headers={
1091
1116
  "content-type": "application/json",
@@ -1139,6 +1164,7 @@ class AsyncAgentsClient:
1139
1164
  identifier_keys: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1140
1165
  include_relationships: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
1141
1166
  ascending: typing.Optional[bool] = None,
1167
+ sort_by: typing.Optional[str] = None,
1142
1168
  request_options: typing.Optional[RequestOptions] = None,
1143
1169
  ) -> typing.List[AgentState]:
1144
1170
  """
@@ -1191,6 +1217,9 @@ class AsyncAgentsClient:
1191
1217
  ascending : typing.Optional[bool]
1192
1218
  Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
1193
1219
 
1220
+ sort_by : typing.Optional[str]
1221
+ Field to sort by. Options: 'created_at' (default), 'last_run_completion'
1222
+
1194
1223
  request_options : typing.Optional[RequestOptions]
1195
1224
  Request-specific configuration.
1196
1225
 
@@ -1234,6 +1263,7 @@ class AsyncAgentsClient:
1234
1263
  "identifier_keys": identifier_keys,
1235
1264
  "include_relationships": include_relationships,
1236
1265
  "ascending": ascending,
1266
+ "sort_by": sort_by,
1237
1267
  },
1238
1268
  request_options=request_options,
1239
1269
  )
@@ -1919,6 +1949,8 @@ class AsyncAgentsClient:
1919
1949
  embedding: typing.Optional[str] = OMIT,
1920
1950
  enable_sleeptime: typing.Optional[bool] = OMIT,
1921
1951
  response_format: typing.Optional[UpdateAgentResponseFormat] = OMIT,
1952
+ last_run_completion: typing.Optional[dt.datetime] = OMIT,
1953
+ last_run_duration_ms: typing.Optional[int] = OMIT,
1922
1954
  request_options: typing.Optional[RequestOptions] = None,
1923
1955
  ) -> AgentState:
1924
1956
  """
@@ -1994,6 +2026,12 @@ class AsyncAgentsClient:
1994
2026
  response_format : typing.Optional[UpdateAgentResponseFormat]
1995
2027
  The response format for the agent.
1996
2028
 
2029
+ last_run_completion : typing.Optional[dt.datetime]
2030
+ The timestamp when the agent last completed a run.
2031
+
2032
+ last_run_duration_ms : typing.Optional[int]
2033
+ The duration in milliseconds of the agent's last run.
2034
+
1997
2035
  request_options : typing.Optional[RequestOptions]
1998
2036
  Request-specific configuration.
1999
2037
 
@@ -2055,6 +2093,8 @@ class AsyncAgentsClient:
2055
2093
  "response_format": convert_and_respect_annotation_metadata(
2056
2094
  object_=response_format, annotation=UpdateAgentResponseFormat, direction="write"
2057
2095
  ),
2096
+ "last_run_completion": last_run_completion,
2097
+ "last_run_duration_ms": last_run_duration_ms,
2058
2098
  },
2059
2099
  headers={
2060
2100
  "content-type": "application/json",
@@ -2170,6 +2210,8 @@ class AsyncAgentsClient:
2170
2210
  combinator: typing.Optional[typing.Literal["AND"]] = OMIT,
2171
2211
  limit: typing.Optional[float] = OMIT,
2172
2212
  after: typing.Optional[str] = OMIT,
2213
+ sort_by: typing.Optional[AgentsSearchRequestSortBy] = OMIT,
2214
+ ascending: typing.Optional[bool] = OMIT,
2173
2215
  request_options: typing.Optional[RequestOptions] = None,
2174
2216
  ) -> AgentsSearchResponse:
2175
2217
  """
@@ -2189,6 +2231,10 @@ class AsyncAgentsClient:
2189
2231
 
2190
2232
  after : typing.Optional[str]
2191
2233
 
2234
+ sort_by : typing.Optional[AgentsSearchRequestSortBy]
2235
+
2236
+ ascending : typing.Optional[bool]
2237
+
2192
2238
  request_options : typing.Optional[RequestOptions]
2193
2239
  Request-specific configuration.
2194
2240
 
@@ -2225,6 +2271,8 @@ class AsyncAgentsClient:
2225
2271
  "combinator": combinator,
2226
2272
  "limit": limit,
2227
2273
  "after": after,
2274
+ "sortBy": sort_by,
2275
+ "ascending": ascending,
2228
2276
  },
2229
2277
  headers={
2230
2278
  "content-type": "application/json",
@@ -6,6 +6,7 @@ from .agents_search_request_search_item_one_operator import AgentsSearchRequestS
6
6
  from .agents_search_request_search_item_operator import AgentsSearchRequestSearchItemOperator
7
7
  from .agents_search_request_search_item_two import AgentsSearchRequestSearchItemTwo
8
8
  from .agents_search_request_search_item_zero import AgentsSearchRequestSearchItemZero
9
+ from .agents_search_request_sort_by import AgentsSearchRequestSortBy
9
10
  from .agents_search_response import AgentsSearchResponse
10
11
  from .create_agent_request_response_format import CreateAgentRequestResponseFormat
11
12
  from .create_agent_request_tool_rules_item import CreateAgentRequestToolRulesItem
@@ -19,6 +20,7 @@ __all__ = [
19
20
  "AgentsSearchRequestSearchItemOperator",
20
21
  "AgentsSearchRequestSearchItemTwo",
21
22
  "AgentsSearchRequestSearchItemZero",
23
+ "AgentsSearchRequestSortBy",
22
24
  "AgentsSearchResponse",
23
25
  "CreateAgentRequestResponseFormat",
24
26
  "CreateAgentRequestToolRulesItem",
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ AgentsSearchRequestSortBy = typing.Union[typing.Literal["created_at", "last_run_completion"], typing.Any]
@@ -16,7 +16,7 @@ class BaseClientWrapper:
16
16
  headers: typing.Dict[str, str] = {
17
17
  "X-Fern-Language": "Python",
18
18
  "X-Fern-SDK-Name": "letta-client",
19
- "X-Fern-SDK-Version": "0.1.163",
19
+ "X-Fern-SDK-Version": "0.1.165",
20
20
  }
21
21
  if self.token is not None:
22
22
  headers["Authorization"] = f"Bearer {self.token}"
@@ -101,6 +101,8 @@ class ProvidersClient:
101
101
  name: str,
102
102
  provider_type: ProviderType,
103
103
  api_key: str,
104
+ access_key: typing.Optional[str] = OMIT,
105
+ region: typing.Optional[str] = OMIT,
104
106
  request_options: typing.Optional[RequestOptions] = None,
105
107
  ) -> Provider:
106
108
  """
@@ -115,7 +117,13 @@ class ProvidersClient:
115
117
  The type of the provider.
116
118
 
117
119
  api_key : str
118
- API key used for requests to the provider.
120
+ API key or secret key used for requests to the provider.
121
+
122
+ access_key : typing.Optional[str]
123
+ Access key used for requests to the provider.
124
+
125
+ region : typing.Optional[str]
126
+ Region used for requests to the provider.
119
127
 
120
128
  request_options : typing.Optional[RequestOptions]
121
129
  Request-specific configuration.
@@ -145,6 +153,8 @@ class ProvidersClient:
145
153
  "name": name,
146
154
  "provider_type": provider_type,
147
155
  "api_key": api_key,
156
+ "access_key": access_key,
157
+ "region": region,
148
158
  },
149
159
  headers={
150
160
  "content-type": "application/json",
@@ -235,7 +245,13 @@ class ProvidersClient:
235
245
  raise ApiError(status_code=_response.status_code, body=_response_json)
236
246
 
237
247
  def modify(
238
- self, provider_id: str, *, api_key: str, request_options: typing.Optional[RequestOptions] = None
248
+ self,
249
+ provider_id: str,
250
+ *,
251
+ api_key: str,
252
+ access_key: typing.Optional[str] = OMIT,
253
+ region: typing.Optional[str] = OMIT,
254
+ request_options: typing.Optional[RequestOptions] = None,
239
255
  ) -> Provider:
240
256
  """
241
257
  Update an existing custom provider
@@ -245,7 +261,13 @@ class ProvidersClient:
245
261
  provider_id : str
246
262
 
247
263
  api_key : str
248
- API key used for requests to the provider.
264
+ API key or secret key used for requests to the provider.
265
+
266
+ access_key : typing.Optional[str]
267
+ Access key used for requests to the provider.
268
+
269
+ region : typing.Optional[str]
270
+ Region used for requests to the provider.
249
271
 
250
272
  request_options : typing.Optional[RequestOptions]
251
273
  Request-specific configuration.
@@ -272,6 +294,8 @@ class ProvidersClient:
272
294
  method="PATCH",
273
295
  json={
274
296
  "api_key": api_key,
297
+ "access_key": access_key,
298
+ "region": region,
275
299
  },
276
300
  headers={
277
301
  "content-type": "application/json",
@@ -303,16 +327,10 @@ class ProvidersClient:
303
327
  raise ApiError(status_code=_response.status_code, body=_response.text)
304
328
  raise ApiError(status_code=_response.status_code, body=_response_json)
305
329
 
306
- def check(
307
- self, *, provider_type: ProviderType, api_key: str, request_options: typing.Optional[RequestOptions] = None
308
- ) -> typing.Optional[typing.Any]:
330
+ def check(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.Optional[typing.Any]:
309
331
  """
310
332
  Parameters
311
333
  ----------
312
- provider_type : ProviderType
313
-
314
- api_key : str
315
-
316
334
  request_options : typing.Optional[RequestOptions]
317
335
  Request-specific configuration.
318
336
 
@@ -328,20 +346,11 @@ class ProvidersClient:
328
346
  client = Letta(
329
347
  token="YOUR_TOKEN",
330
348
  )
331
- client.providers.check(
332
- api_key="x-api-key",
333
- provider_type="anthropic",
334
- )
349
+ client.providers.check()
335
350
  """
336
351
  _response = self._client_wrapper.httpx_client.request(
337
352
  "v1/providers/check",
338
353
  method="GET",
339
- params={
340
- "provider_type": provider_type,
341
- },
342
- headers={
343
- "x-api-key": str(api_key) if api_key is not None else None,
344
- },
345
354
  request_options=request_options,
346
355
  )
347
356
  try:
@@ -461,6 +470,8 @@ class AsyncProvidersClient:
461
470
  name: str,
462
471
  provider_type: ProviderType,
463
472
  api_key: str,
473
+ access_key: typing.Optional[str] = OMIT,
474
+ region: typing.Optional[str] = OMIT,
464
475
  request_options: typing.Optional[RequestOptions] = None,
465
476
  ) -> Provider:
466
477
  """
@@ -475,7 +486,13 @@ class AsyncProvidersClient:
475
486
  The type of the provider.
476
487
 
477
488
  api_key : str
478
- API key used for requests to the provider.
489
+ API key or secret key used for requests to the provider.
490
+
491
+ access_key : typing.Optional[str]
492
+ Access key used for requests to the provider.
493
+
494
+ region : typing.Optional[str]
495
+ Region used for requests to the provider.
479
496
 
480
497
  request_options : typing.Optional[RequestOptions]
481
498
  Request-specific configuration.
@@ -513,6 +530,8 @@ class AsyncProvidersClient:
513
530
  "name": name,
514
531
  "provider_type": provider_type,
515
532
  "api_key": api_key,
533
+ "access_key": access_key,
534
+ "region": region,
516
535
  },
517
536
  headers={
518
537
  "content-type": "application/json",
@@ -611,7 +630,13 @@ class AsyncProvidersClient:
611
630
  raise ApiError(status_code=_response.status_code, body=_response_json)
612
631
 
613
632
  async def modify(
614
- self, provider_id: str, *, api_key: str, request_options: typing.Optional[RequestOptions] = None
633
+ self,
634
+ provider_id: str,
635
+ *,
636
+ api_key: str,
637
+ access_key: typing.Optional[str] = OMIT,
638
+ region: typing.Optional[str] = OMIT,
639
+ request_options: typing.Optional[RequestOptions] = None,
615
640
  ) -> Provider:
616
641
  """
617
642
  Update an existing custom provider
@@ -621,7 +646,13 @@ class AsyncProvidersClient:
621
646
  provider_id : str
622
647
 
623
648
  api_key : str
624
- API key used for requests to the provider.
649
+ API key or secret key used for requests to the provider.
650
+
651
+ access_key : typing.Optional[str]
652
+ Access key used for requests to the provider.
653
+
654
+ region : typing.Optional[str]
655
+ Region used for requests to the provider.
625
656
 
626
657
  request_options : typing.Optional[RequestOptions]
627
658
  Request-specific configuration.
@@ -656,6 +687,8 @@ class AsyncProvidersClient:
656
687
  method="PATCH",
657
688
  json={
658
689
  "api_key": api_key,
690
+ "access_key": access_key,
691
+ "region": region,
659
692
  },
660
693
  headers={
661
694
  "content-type": "application/json",
@@ -687,16 +720,10 @@ class AsyncProvidersClient:
687
720
  raise ApiError(status_code=_response.status_code, body=_response.text)
688
721
  raise ApiError(status_code=_response.status_code, body=_response_json)
689
722
 
690
- async def check(
691
- self, *, provider_type: ProviderType, api_key: str, request_options: typing.Optional[RequestOptions] = None
692
- ) -> typing.Optional[typing.Any]:
723
+ async def check(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.Optional[typing.Any]:
693
724
  """
694
725
  Parameters
695
726
  ----------
696
- provider_type : ProviderType
697
-
698
- api_key : str
699
-
700
727
  request_options : typing.Optional[RequestOptions]
701
728
  Request-specific configuration.
702
729
 
@@ -717,10 +744,7 @@ class AsyncProvidersClient:
717
744
 
718
745
 
719
746
  async def main() -> None:
720
- await client.providers.check(
721
- api_key="x-api-key",
722
- provider_type="anthropic",
723
- )
747
+ await client.providers.check()
724
748
 
725
749
 
726
750
  asyncio.run(main())
@@ -728,12 +752,6 @@ class AsyncProvidersClient:
728
752
  _response = await self._client_wrapper.httpx_client.request(
729
753
  "v1/providers/check",
730
754
  method="GET",
731
- params={
732
- "provider_type": provider_type,
733
- },
734
- headers={
735
- "x-api-key": str(api_key) if api_key is not None else None,
736
- },
737
755
  request_options=request_options,
738
756
  )
739
757
  try:
@@ -172,6 +172,7 @@ from .payment_required_error_body import PaymentRequiredErrorBody
172
172
  from .pip_requirement import PipRequirement
173
173
  from .provider import Provider
174
174
  from .provider_category import ProviderCategory
175
+ from .provider_check import ProviderCheck
175
176
  from .provider_trace import ProviderTrace
176
177
  from .provider_type import ProviderType
177
178
  from .reasoning_content import ReasoningContent
@@ -420,6 +421,7 @@ __all__ = [
420
421
  "PipRequirement",
421
422
  "Provider",
422
423
  "ProviderCategory",
424
+ "ProviderCheck",
423
425
  "ProviderTrace",
424
426
  "ProviderType",
425
427
  "ReasoningContent",
@@ -170,6 +170,16 @@ class AgentState(UncheckedBaseModel):
170
170
  The multi-agent group that this agent manages
171
171
  """
172
172
 
173
+ last_run_completion: typing.Optional[dt.datetime] = pydantic.Field(default=None)
174
+ """
175
+ The timestamp when the agent last completed a run.
176
+ """
177
+
178
+ last_run_duration_ms: typing.Optional[int] = pydantic.Field(default=None)
179
+ """
180
+ The duration in milliseconds of the agent's last run.
181
+ """
182
+
173
183
  if IS_PYDANTIC_V2:
174
184
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
175
185
  else:
@@ -32,7 +32,7 @@ class Provider(UncheckedBaseModel):
32
32
 
33
33
  api_key: typing.Optional[str] = pydantic.Field(default=None)
34
34
  """
35
- API key used for requests to the provider.
35
+ API key or secret key used for requests to the provider.
36
36
  """
37
37
 
38
38
  base_url: typing.Optional[str] = pydantic.Field(default=None)
@@ -40,6 +40,16 @@ class Provider(UncheckedBaseModel):
40
40
  Base URL for the provider.
41
41
  """
42
42
 
43
+ access_key: typing.Optional[str] = pydantic.Field(default=None)
44
+ """
45
+ Access key used for requests to the provider.
46
+ """
47
+
48
+ region: typing.Optional[str] = pydantic.Field(default=None)
49
+ """
50
+ Region used for requests to the provider.
51
+ """
52
+
43
53
  updated_at: typing.Optional[dt.datetime] = pydantic.Field(default=None)
44
54
  """
45
55
  The last update timestamp of the provider.
@@ -0,0 +1,38 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ from .provider_type import ProviderType
5
+ import pydantic
6
+ import typing
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+
9
+
10
+ class ProviderCheck(UncheckedBaseModel):
11
+ provider_type: ProviderType = pydantic.Field()
12
+ """
13
+ The type of the provider.
14
+ """
15
+
16
+ api_key: str = pydantic.Field()
17
+ """
18
+ API key or secret key used for requests to the provider.
19
+ """
20
+
21
+ access_key: typing.Optional[str] = pydantic.Field(default=None)
22
+ """
23
+ Access key used for requests to the provider.
24
+ """
25
+
26
+ region: typing.Optional[str] = pydantic.Field(default=None)
27
+ """
28
+ Region used for requests to the provider.
29
+ """
30
+
31
+ if IS_PYDANTIC_V2:
32
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
33
+ else:
34
+
35
+ class Config:
36
+ frozen = True
37
+ smart_union = True
38
+ extra = pydantic.Extra.allow
@@ -5,7 +5,6 @@ import typing
5
5
  ProviderType = typing.Union[
6
6
  typing.Literal[
7
7
  "anthropic",
8
- "bedrock",
9
8
  "google_ai",
10
9
  "google_vertex",
11
10
  "openai",
@@ -19,6 +18,7 @@ ProviderType = typing.Union[
19
18
  "together",
20
19
  "azure",
21
20
  "vllm",
21
+ "bedrock",
22
22
  ],
23
23
  typing.Any,
24
24
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-client
3
- Version: 0.1.163
3
+ Version: 0.1.165
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -1,8 +1,8 @@
1
- letta_client/__init__.py,sha256=QJx2mnGoYZPoDTmVMGLp02lSF9uBAgOf1R-mDcmtHrs,17544
2
- letta_client/agents/__init__.py,sha256=3oFWVxaaxkphkjGJVk31Llb9ll9dKoCGx3B_r3qqtes,1716
1
+ letta_client/__init__.py,sha256=Dlv6NmNpxz9fGrD0dBUyZI7NS4IRMN5kESVb4UHT8Vo,17648
2
+ letta_client/agents/__init__.py,sha256=c_9OiE6ofyiPcq9BP37qvo7h0SKmw34PKN3KMxuRja0,1780
3
3
  letta_client/agents/blocks/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
4
4
  letta_client/agents/blocks/client.py,sha256=ecE03lE5tP1AtCMFLT9FzdYyQMx_D7NI5m42b41pV40,24684
5
- letta_client/agents/client.py,sha256=pUm0I57mZZgyd-w5ZZSOemNXpcz9TnIK3Pr7EtX6z60,85828
5
+ letta_client/agents/client.py,sha256=baQrl1WhyBWCLe5Ve4TIIQRm8_EBk3K8YxH6TetJCaU,87911
6
6
  letta_client/agents/context/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
7
7
  letta_client/agents/context/client.py,sha256=GKKvoG4N_K8Biz9yDjeIHpFG0C8Cwc7tHmEX3pTL_9U,4815
8
8
  letta_client/agents/core_memory/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
@@ -31,13 +31,14 @@ letta_client/agents/templates/types/templates_create_version_request_return_agen
31
31
  letta_client/agents/templates/types/templates_migrate_response.py,sha256=7N4JtAaiao-LrNdi72K7XB01uXJVkczaKYIJIMf0QYs,577
32
32
  letta_client/agents/tools/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
33
33
  letta_client/agents/tools/client.py,sha256=xZMRZhG8mI_h8_QqgI4lXh3FieRCLeoPwdtB56GB-XU,12685
34
- letta_client/agents/types/__init__.py,sha256=vvqKyhe98ZbR5QoK7VWHSVrjLYPuUo-Xlky1aAAv8Ek,1386
34
+ letta_client/agents/types/__init__.py,sha256=wh0A9KuavtD9a4NHJcjTG0Ok5xSsYipw1MVG-O_rR8E,1488
35
35
  letta_client/agents/types/agents_search_request_search_item.py,sha256=oIWRth_5r-3Fd_rROsEsc7XIvC0yRYv4BxdPKuUl6CI,634
36
36
  letta_client/agents/types/agents_search_request_search_item_one.py,sha256=ECWv-hDZen6AomM01zmRsOz0PlXVEwIwLHjid9yko9o,779
37
37
  letta_client/agents/types/agents_search_request_search_item_one_operator.py,sha256=S1qYdfdUqUgZ0DzQ53x7GN_qa_4NypO7-qNkkxgsbQc,182
38
38
  letta_client/agents/types/agents_search_request_search_item_operator.py,sha256=q9wNF1ubm5zw8_tykL4JWPEOH7SFLYLeTikjAszpZq8,678
39
39
  letta_client/agents/types/agents_search_request_search_item_two.py,sha256=YBC-rhz_ToN948VyRy5VB1yT4JqtYcLD_V9hNrkgnfQ,690
40
40
  letta_client/agents/types/agents_search_request_search_item_zero.py,sha256=tGjwnFqSofFMBSAogmPLEflDQZ2rMqoMfFUtaIpND18,630
41
+ letta_client/agents/types/agents_search_request_sort_by.py,sha256=svlezWF0A2JQlEnjjIXTMJnkrCjRot1r7ITCP1nQ4iQ,186
41
42
  letta_client/agents/types/agents_search_response.py,sha256=AQJVKps-bjCx2ujqESzW1Iy9ZYFS17hH_UFIeBeK4S8,815
42
43
  letta_client/agents/types/create_agent_request_response_format.py,sha256=1GUV3rFMj46bYpRHOB_H_WMNrQ5FkKIidKg60u8szHM,409
43
44
  letta_client/agents/types/create_agent_request_tool_rules_item.py,sha256=L3FNsFTG9kVmuPbQhbCKNg3H2E5bB2Rgp92gWmGd-LM,689
@@ -62,7 +63,7 @@ letta_client/client_side_access_tokens/types/client_side_access_tokens_create_re
62
63
  letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item_access_item.py,sha256=R-H25IpNp9feSrW8Yj3h9O3UTMVvFniQJElogKxLuoE,254
63
64
  letta_client/core/__init__.py,sha256=OKbX2aCZXgHCDUsCouqv-OiX32xA6eFFCKIUH9M5Vzk,1591
64
65
  letta_client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
65
- letta_client/core/client_wrapper.py,sha256=muY391xMrKlrGQ5aWW-WLWoubaTmRZvqDsirBzmmWFA,1998
66
+ letta_client/core/client_wrapper.py,sha256=dSomxhm2N6ZppvWcTyP1WFdUcaKze16CLsu_9Tjp6eM,1998
66
67
  letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
67
68
  letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
68
69
  letta_client/core/http_client.py,sha256=Z77OIxIbL4OAB2IDqjRq_sYa5yNYAWfmdhdCSSvh6Y4,19552
@@ -112,7 +113,7 @@ letta_client/projects/types/__init__.py,sha256=1nE8QFsR2GukiQxkaRFQfBuk1u_yuO-em
112
113
  letta_client/projects/types/projects_list_response.py,sha256=LdWVSnP8fqrVTcRfkd73N4wIa5_VkxrAUS-GFftkqHo,858
113
114
  letta_client/projects/types/projects_list_response_projects_item.py,sha256=7mFQdVQCNqvl2zBzVWzClENfF9N35T1Wpv3lgYbbAz0,605
114
115
  letta_client/providers/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
115
- letta_client/providers/client.py,sha256=7XhAT3bEIYFL5TPauaYyGqZWazVsW0zwVod8bP2jYYY,23374
116
+ letta_client/providers/client.py,sha256=EQNroh4IEMYdLS0qAnhy9f1cdt9AiBE_GPx3zKh5y1U,24148
116
117
  letta_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
117
118
  letta_client/runs/__init__.py,sha256=0Mn3wMqzm7ppXeiwu9zfY_KlyzBbWSM1wt_rsx0NmM0,144
118
119
  letta_client/runs/client.py,sha256=6A0i8-fWzRgK1U5P4jeKKav-cRSjaaN5ttMh66ihwe8,17234
@@ -152,14 +153,14 @@ letta_client/tools/types/delete_mcp_server_response_item.py,sha256=YLIBE7OD535NJ
152
153
  letta_client/tools/types/list_mcp_servers_response_value.py,sha256=Eyji5qB7FhowiogsAbpcU_aMyH9zClv9lUMmHOmNPYk,379
153
154
  letta_client/tools/types/update_mcp_server_request.py,sha256=SEMNYHB_mwJNSMHKO7keU0C_CMBktV7lfZUnACPe_fU,314
154
155
  letta_client/tools/types/update_mcp_server_response.py,sha256=muwHagaQBMwQI0of9EBCBtG9lD-jELFAevgTB2MjpFQ,375
155
- letta_client/types/__init__.py,sha256=qaiwv7zszTE0ETdE0zEsEB1e4C1JMAIW-pFns6wV8i4,22085
156
+ letta_client/types/__init__.py,sha256=bREWZobWowUZq4TcXFHFR2SWItxO22fKQ_umQCgaTxw,22148
156
157
  letta_client/types/action_model.py,sha256=y1e2XMv3skFaNJIBdYoBKgiORzGh05aOVvu-qVR9uHg,1240
157
158
  letta_client/types/action_parameters_model.py,sha256=LgKf5aPZG3-OHGxFdXiSokIDgce8c02xPYIAY05VgW8,828
158
159
  letta_client/types/action_response_model.py,sha256=yq2Fd9UU8j7vvtE3VqXUoRRvDzWcfJPj_95ynGdeHCs,824
159
160
  letta_client/types/agent_environment_variable.py,sha256=vutZLcR0yETltgOZ7E_o9kR4vOdBxybVL9lzXSux75w,1698
160
161
  letta_client/types/agent_schema.py,sha256=uTSjFAsnEYdOX-PRD2vHbn69JBe8GKbctvlDOP85k_U,1784
161
162
  letta_client/types/agent_schema_tool_rules_item.py,sha256=TTP7uKYPSe-EAl4p03j0Kd-W9tG5T6gfaWIUBAOVv9U,482
162
- letta_client/types/agent_state.py,sha256=oLgHlraP7C5FnSGzzDBqKsXwKHJz-OYFbToAqFUQ8iI,5621
163
+ letta_client/types/agent_state.py,sha256=A_ehJ1jirLIBDfYbr8hyWmga3C9f8SmmNHf60j_q4_g,5931
163
164
  letta_client/types/agent_state_response_format.py,sha256=HISBgCumQxw6nQeDUMBu-IlghaLeWRb7BHHNaz_e8Hc,377
164
165
  letta_client/types/agent_state_tool_rules_item.py,sha256=WB-N4uyDTfhYBjQYDcLZDxDj73Xu1mQasBkdofUM-XU,625
165
166
  letta_client/types/agent_type.py,sha256=C7krJfPZvZDZrEqizp5UdUF4T6omXIu8m1XgVgg7JKc,321
@@ -319,10 +320,11 @@ letta_client/types/parent_tool_rule.py,sha256=YPWpQDp54vdLxLKp4sOgdcUBbU1oEVYqU6
319
320
  letta_client/types/passage.py,sha256=k2EGG94WMFA3wsoL6Vd9ax18S2Nk7i_HlXvV5Dw5S4Y,3171
320
321
  letta_client/types/payment_required_error_body.py,sha256=CXPzl1jrozG5PAiJakOK29qmgo5az8FQu_MVmEBxsK4,589
321
322
  letta_client/types/pip_requirement.py,sha256=Hmh7VpJhdSfFkafh6QwAehCp0MQUBXv1YAoYP-2wV2M,773
322
- letta_client/types/provider.py,sha256=9xl9T3TjkjpGX0mfH04CtCF0lcdoTmsGT_K16xR3n7M,1476
323
+ letta_client/types/provider.py,sha256=YjljtsMsEfF-dhVP5zOIIX3rl34n4CpuNiojD3kq30Y,1752
323
324
  letta_client/types/provider_category.py,sha256=St4tSc_Wc5huF79kb088-L-tRz9Cj2_b5DqEoU4eDIs,156
325
+ letta_client/types/provider_check.py,sha256=F_DrCohBhBtGTBRthRX72X6-6c5ftJo568D62dc2cig,1057
324
326
  letta_client/types/provider_trace.py,sha256=sLDiO-N9KbgA9ppwMRSw8Qlf52PApocjeXgbBans-94,2200
325
- letta_client/types/provider_type.py,sha256=ks7hOrwFjZXJdQDWQMtFPZI0LHZKaDm-YZ1fYry11ZY,443
327
+ letta_client/types/provider_type.py,sha256=uEUNL2qcGizQfQp5kr9-egi6uBY-JJ4ASJA5J33utXw,443
326
328
  letta_client/types/reasoning_content.py,sha256=aId-87QjQ4sm_fuCmzIdZZghr-9DFeVV-Lv9x5iVw3I,995
327
329
  letta_client/types/reasoning_message.py,sha256=YzZMr_orwDVcrbiSED_kN3004MA579xGe-iRW9hLngg,1606
328
330
  letta_client/types/reasoning_message_source.py,sha256=GYOWGm2mje1yYbR8E2kbAeQS--VDrGlpsobEBQHE2cU,186
@@ -402,6 +404,6 @@ letta_client/types/web_search_options_user_location_approximate.py,sha256=Ywk01J
402
404
  letta_client/version.py,sha256=bttKLbIhO3UonCYQlqs600zzbQgfhCCMjeXR9WRzid4,79
403
405
  letta_client/voice/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
404
406
  letta_client/voice/client.py,sha256=EX79F2D5bieXNP8g1ZPw8xwAzqE1A3hshCHUSlTV1kw,5739
405
- letta_client-0.1.163.dist-info/METADATA,sha256=LoWeT9PU1gGOBnnhkXFFd63he1mvFeAvnRsxO3YYs10,5093
406
- letta_client-0.1.163.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
407
- letta_client-0.1.163.dist-info/RECORD,,
407
+ letta_client-0.1.165.dist-info/METADATA,sha256=3a_wwcOwnbwLhFoUkiH1tKgWl1AuZ0zjjzkOzFiv-_k,5093
408
+ letta_client-0.1.165.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
409
+ letta_client-0.1.165.dist-info/RECORD,,