letta-client 0.1.114__py3-none-any.whl → 0.1.116__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 +32 -2
- letta_client/base_client.py +8 -0
- letta_client/client_side_access_tokens/__init__.py +19 -0
- letta_client/client_side_access_tokens/client.py +365 -0
- letta_client/client_side_access_tokens/types/__init__.py +29 -0
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_request_policy_item.py +24 -0
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_request_policy_item_access_item.py +7 -0
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response.py +27 -0
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response_policy.py +23 -0
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response_policy_data_item.py +24 -0
- letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response_policy_data_item_access_item.py +7 -0
- letta_client/core/client_wrapper.py +1 -1
- letta_client/errors/__init__.py +2 -1
- letta_client/errors/bad_request_error.py +9 -0
- letta_client/projects/__init__.py +5 -0
- letta_client/projects/client.py +148 -0
- letta_client/projects/types/__init__.py +6 -0
- letta_client/projects/types/projects_list_projects_response.py +23 -0
- letta_client/projects/types/projects_list_projects_response_projects_item.py +21 -0
- letta_client/templates/__init__.py +10 -2
- letta_client/templates/client.py +137 -0
- letta_client/templates/types/__init__.py +7 -1
- letta_client/templates/types/templates_list_templates_response.py +23 -0
- letta_client/templates/types/templates_list_templates_response_templates_item.py +20 -0
- letta_client/types/__init__.py +2 -0
- letta_client/types/bad_request_error_body.py +19 -0
- {letta_client-0.1.114.dist-info → letta_client-0.1.116.dist-info}/METADATA +1 -1
- {letta_client-0.1.114.dist-info → letta_client-0.1.116.dist-info}/RECORD +29 -11
- {letta_client-0.1.114.dist-info → letta_client-0.1.116.dist-info}/WHEEL +0 -0
letta_client/__init__.py
CHANGED
|
@@ -19,6 +19,7 @@ from .types import (
|
|
|
19
19
|
AuthRequest,
|
|
20
20
|
AuthResponse,
|
|
21
21
|
AuthSchemeField,
|
|
22
|
+
BadRequestErrorBody,
|
|
22
23
|
BaseToolRuleSchema,
|
|
23
24
|
Block,
|
|
24
25
|
BlockUpdate,
|
|
@@ -220,15 +221,17 @@ from .types import (
|
|
|
220
221
|
WebSearchOptionsUserLocation,
|
|
221
222
|
WebSearchOptionsUserLocationApproximate,
|
|
222
223
|
)
|
|
223
|
-
from .errors import ConflictError, InternalServerError, NotFoundError, UnprocessableEntityError
|
|
224
|
+
from .errors import BadRequestError, ConflictError, InternalServerError, NotFoundError, UnprocessableEntityError
|
|
224
225
|
from . import (
|
|
225
226
|
agents,
|
|
226
227
|
blocks,
|
|
228
|
+
client_side_access_tokens,
|
|
227
229
|
groups,
|
|
228
230
|
health,
|
|
229
231
|
identities,
|
|
230
232
|
jobs,
|
|
231
233
|
models,
|
|
234
|
+
projects,
|
|
232
235
|
providers,
|
|
233
236
|
runs,
|
|
234
237
|
sources,
|
|
@@ -250,9 +253,22 @@ from .agents import (
|
|
|
250
253
|
UpdateAgentToolRulesItem,
|
|
251
254
|
)
|
|
252
255
|
from .client import AsyncLetta, Letta
|
|
256
|
+
from .client_side_access_tokens import (
|
|
257
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem,
|
|
258
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem,
|
|
259
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse,
|
|
260
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy,
|
|
261
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem,
|
|
262
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem,
|
|
263
|
+
)
|
|
253
264
|
from .environment import LettaEnvironment
|
|
254
265
|
from .groups import GroupCreateManagerConfig, GroupUpdateManagerConfig
|
|
255
|
-
from .
|
|
266
|
+
from .projects import ProjectsListProjectsResponse, ProjectsListProjectsResponseProjectsItem
|
|
267
|
+
from .templates import (
|
|
268
|
+
TemplatesCreateAgentsResponse,
|
|
269
|
+
TemplatesListTemplatesResponse,
|
|
270
|
+
TemplatesListTemplatesResponseTemplatesItem,
|
|
271
|
+
)
|
|
256
272
|
from .tools import (
|
|
257
273
|
AddMcpServerRequest,
|
|
258
274
|
AddMcpServerResponseItem,
|
|
@@ -291,6 +307,8 @@ __all__ = [
|
|
|
291
307
|
"AuthRequest",
|
|
292
308
|
"AuthResponse",
|
|
293
309
|
"AuthSchemeField",
|
|
310
|
+
"BadRequestError",
|
|
311
|
+
"BadRequestErrorBody",
|
|
294
312
|
"BaseToolRuleSchema",
|
|
295
313
|
"Block",
|
|
296
314
|
"BlockUpdate",
|
|
@@ -324,6 +342,12 @@ __all__ = [
|
|
|
324
342
|
"ChatCompletionUserMessageParamContentItem",
|
|
325
343
|
"ChildToolRule",
|
|
326
344
|
"ChildToolRuleSchema",
|
|
345
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem",
|
|
346
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem",
|
|
347
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponse",
|
|
348
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy",
|
|
349
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem",
|
|
350
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem",
|
|
327
351
|
"CompletionCreateParamsNonStreaming",
|
|
328
352
|
"CompletionCreateParamsNonStreamingFunctionCall",
|
|
329
353
|
"CompletionCreateParamsNonStreamingMessagesItem",
|
|
@@ -436,6 +460,8 @@ __all__ = [
|
|
|
436
460
|
"ParentToolRule",
|
|
437
461
|
"Passage",
|
|
438
462
|
"PipRequirement",
|
|
463
|
+
"ProjectsListProjectsResponse",
|
|
464
|
+
"ProjectsListProjectsResponseProjectsItem",
|
|
439
465
|
"Provider",
|
|
440
466
|
"ReasoningContent",
|
|
441
467
|
"ReasoningMessage",
|
|
@@ -467,6 +493,8 @@ __all__ = [
|
|
|
467
493
|
"SystemMessage",
|
|
468
494
|
"TagSchema",
|
|
469
495
|
"TemplatesCreateAgentsResponse",
|
|
496
|
+
"TemplatesListTemplatesResponse",
|
|
497
|
+
"TemplatesListTemplatesResponseTemplatesItem",
|
|
470
498
|
"TerminalToolRule",
|
|
471
499
|
"TextContent",
|
|
472
500
|
"Tool",
|
|
@@ -508,11 +536,13 @@ __all__ = [
|
|
|
508
536
|
"__version__",
|
|
509
537
|
"agents",
|
|
510
538
|
"blocks",
|
|
539
|
+
"client_side_access_tokens",
|
|
511
540
|
"groups",
|
|
512
541
|
"health",
|
|
513
542
|
"identities",
|
|
514
543
|
"jobs",
|
|
515
544
|
"models",
|
|
545
|
+
"projects",
|
|
516
546
|
"providers",
|
|
517
547
|
"runs",
|
|
518
548
|
"sources",
|
letta_client/base_client.py
CHANGED
|
@@ -19,6 +19,8 @@ from .steps.client import StepsClient
|
|
|
19
19
|
from .tag.client import TagClient
|
|
20
20
|
from .voice.client import VoiceClient
|
|
21
21
|
from .templates.client import TemplatesClient
|
|
22
|
+
from .client_side_access_tokens.client import ClientSideAccessTokensClient
|
|
23
|
+
from .projects.client import ProjectsClient
|
|
22
24
|
from .core.client_wrapper import AsyncClientWrapper
|
|
23
25
|
from .tools.client import AsyncToolsClient
|
|
24
26
|
from .sources.client import AsyncSourcesClient
|
|
@@ -35,6 +37,8 @@ from .steps.client import AsyncStepsClient
|
|
|
35
37
|
from .tag.client import AsyncTagClient
|
|
36
38
|
from .voice.client import AsyncVoiceClient
|
|
37
39
|
from .templates.client import AsyncTemplatesClient
|
|
40
|
+
from .client_side_access_tokens.client import AsyncClientSideAccessTokensClient
|
|
41
|
+
from .projects.client import AsyncProjectsClient
|
|
38
42
|
|
|
39
43
|
|
|
40
44
|
class LettaBase:
|
|
@@ -110,6 +114,8 @@ class LettaBase:
|
|
|
110
114
|
self.tag = TagClient(client_wrapper=self._client_wrapper)
|
|
111
115
|
self.voice = VoiceClient(client_wrapper=self._client_wrapper)
|
|
112
116
|
self.templates = TemplatesClient(client_wrapper=self._client_wrapper)
|
|
117
|
+
self.client_side_access_tokens = ClientSideAccessTokensClient(client_wrapper=self._client_wrapper)
|
|
118
|
+
self.projects = ProjectsClient(client_wrapper=self._client_wrapper)
|
|
113
119
|
|
|
114
120
|
|
|
115
121
|
class AsyncLettaBase:
|
|
@@ -185,6 +191,8 @@ class AsyncLettaBase:
|
|
|
185
191
|
self.tag = AsyncTagClient(client_wrapper=self._client_wrapper)
|
|
186
192
|
self.voice = AsyncVoiceClient(client_wrapper=self._client_wrapper)
|
|
187
193
|
self.templates = AsyncTemplatesClient(client_wrapper=self._client_wrapper)
|
|
194
|
+
self.client_side_access_tokens = AsyncClientSideAccessTokensClient(client_wrapper=self._client_wrapper)
|
|
195
|
+
self.projects = AsyncProjectsClient(client_wrapper=self._client_wrapper)
|
|
188
196
|
|
|
189
197
|
|
|
190
198
|
def _get_base_url(*, base_url: typing.Optional[str] = None, environment: LettaEnvironment) -> str:
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from .types import (
|
|
4
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem,
|
|
5
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem,
|
|
6
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse,
|
|
7
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy,
|
|
8
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem,
|
|
9
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem,
|
|
10
|
+
)
|
|
11
|
+
|
|
12
|
+
__all__ = [
|
|
13
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem",
|
|
14
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem",
|
|
15
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponse",
|
|
16
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy",
|
|
17
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem",
|
|
18
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem",
|
|
19
|
+
]
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from ..core.client_wrapper import SyncClientWrapper
|
|
5
|
+
from .types.client_side_access_tokens_create_client_side_access_token_request_policy_item import (
|
|
6
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem,
|
|
7
|
+
)
|
|
8
|
+
from ..core.request_options import RequestOptions
|
|
9
|
+
from .types.client_side_access_tokens_create_client_side_access_token_response import (
|
|
10
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse,
|
|
11
|
+
)
|
|
12
|
+
from ..core.serialization import convert_and_respect_annotation_metadata
|
|
13
|
+
from ..core.unchecked_base_model import construct_type
|
|
14
|
+
from ..errors.bad_request_error import BadRequestError
|
|
15
|
+
from json.decoder import JSONDecodeError
|
|
16
|
+
from ..core.api_error import ApiError
|
|
17
|
+
from ..core.jsonable_encoder import jsonable_encoder
|
|
18
|
+
from ..core.client_wrapper import AsyncClientWrapper
|
|
19
|
+
|
|
20
|
+
# this is used as the default value for optional parameters
|
|
21
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ClientSideAccessTokensClient:
|
|
25
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
26
|
+
self._client_wrapper = client_wrapper
|
|
27
|
+
|
|
28
|
+
def client_side_access_tokens_create_client_side_access_token(
|
|
29
|
+
self,
|
|
30
|
+
*,
|
|
31
|
+
policy: typing.Sequence[ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem],
|
|
32
|
+
hostname: str,
|
|
33
|
+
expires_at: typing.Optional[str] = OMIT,
|
|
34
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
35
|
+
) -> ClientSideAccessTokensCreateClientSideAccessTokenResponse:
|
|
36
|
+
"""
|
|
37
|
+
Create a new client side access token with the specified configuration.
|
|
38
|
+
|
|
39
|
+
Parameters
|
|
40
|
+
----------
|
|
41
|
+
policy : typing.Sequence[ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem]
|
|
42
|
+
|
|
43
|
+
hostname : str
|
|
44
|
+
The hostname of the client side application. Please specify the full URL including the protocol (http or https).
|
|
45
|
+
|
|
46
|
+
expires_at : typing.Optional[str]
|
|
47
|
+
The expiration date of the token. If not provided, the token will expire in 5 minutes
|
|
48
|
+
|
|
49
|
+
request_options : typing.Optional[RequestOptions]
|
|
50
|
+
Request-specific configuration.
|
|
51
|
+
|
|
52
|
+
Returns
|
|
53
|
+
-------
|
|
54
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse
|
|
55
|
+
201
|
|
56
|
+
|
|
57
|
+
Examples
|
|
58
|
+
--------
|
|
59
|
+
from letta_client import Letta
|
|
60
|
+
from letta_client.client_side_access_tokens import (
|
|
61
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem,
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
client = Letta(
|
|
65
|
+
token="YOUR_TOKEN",
|
|
66
|
+
)
|
|
67
|
+
client.client_side_access_tokens.client_side_access_tokens_create_client_side_access_token(
|
|
68
|
+
policy=[
|
|
69
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem(
|
|
70
|
+
id="id",
|
|
71
|
+
access=["read_messages"],
|
|
72
|
+
)
|
|
73
|
+
],
|
|
74
|
+
hostname="hostname",
|
|
75
|
+
)
|
|
76
|
+
"""
|
|
77
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
78
|
+
"v1/client-side-access-tokens",
|
|
79
|
+
method="POST",
|
|
80
|
+
json={
|
|
81
|
+
"policy": convert_and_respect_annotation_metadata(
|
|
82
|
+
object_=policy,
|
|
83
|
+
annotation=typing.Sequence[ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem],
|
|
84
|
+
direction="write",
|
|
85
|
+
),
|
|
86
|
+
"hostname": hostname,
|
|
87
|
+
"expires_at": expires_at,
|
|
88
|
+
},
|
|
89
|
+
headers={
|
|
90
|
+
"content-type": "application/json",
|
|
91
|
+
},
|
|
92
|
+
request_options=request_options,
|
|
93
|
+
omit=OMIT,
|
|
94
|
+
)
|
|
95
|
+
try:
|
|
96
|
+
if 200 <= _response.status_code < 300:
|
|
97
|
+
return typing.cast(
|
|
98
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse,
|
|
99
|
+
construct_type(
|
|
100
|
+
type_=ClientSideAccessTokensCreateClientSideAccessTokenResponse, # type: ignore
|
|
101
|
+
object_=_response.json(),
|
|
102
|
+
),
|
|
103
|
+
)
|
|
104
|
+
if _response.status_code == 400:
|
|
105
|
+
raise BadRequestError(
|
|
106
|
+
typing.cast(
|
|
107
|
+
typing.Optional[typing.Any],
|
|
108
|
+
construct_type(
|
|
109
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
110
|
+
object_=_response.json(),
|
|
111
|
+
),
|
|
112
|
+
)
|
|
113
|
+
)
|
|
114
|
+
_response_json = _response.json()
|
|
115
|
+
except JSONDecodeError:
|
|
116
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
117
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
118
|
+
|
|
119
|
+
def client_side_access_tokens_delete_client_side_access_token(
|
|
120
|
+
self,
|
|
121
|
+
token: str,
|
|
122
|
+
*,
|
|
123
|
+
request: typing.Optional[typing.Any] = None,
|
|
124
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
125
|
+
) -> typing.Optional[typing.Any]:
|
|
126
|
+
"""
|
|
127
|
+
Delete a client side access token.
|
|
128
|
+
|
|
129
|
+
Parameters
|
|
130
|
+
----------
|
|
131
|
+
token : str
|
|
132
|
+
The access token to delete
|
|
133
|
+
|
|
134
|
+
request : typing.Optional[typing.Any]
|
|
135
|
+
|
|
136
|
+
request_options : typing.Optional[RequestOptions]
|
|
137
|
+
Request-specific configuration.
|
|
138
|
+
|
|
139
|
+
Returns
|
|
140
|
+
-------
|
|
141
|
+
typing.Optional[typing.Any]
|
|
142
|
+
204
|
|
143
|
+
|
|
144
|
+
Examples
|
|
145
|
+
--------
|
|
146
|
+
from letta_client import Letta
|
|
147
|
+
|
|
148
|
+
client = Letta(
|
|
149
|
+
token="YOUR_TOKEN",
|
|
150
|
+
)
|
|
151
|
+
client.client_side_access_tokens.client_side_access_tokens_delete_client_side_access_token(
|
|
152
|
+
token="token",
|
|
153
|
+
request={"key": "value"},
|
|
154
|
+
)
|
|
155
|
+
"""
|
|
156
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
157
|
+
f"v1/client-side-access-tokens/{jsonable_encoder(token)}",
|
|
158
|
+
method="DELETE",
|
|
159
|
+
json=request,
|
|
160
|
+
request_options=request_options,
|
|
161
|
+
omit=OMIT,
|
|
162
|
+
)
|
|
163
|
+
try:
|
|
164
|
+
if 200 <= _response.status_code < 300:
|
|
165
|
+
return typing.cast(
|
|
166
|
+
typing.Optional[typing.Any],
|
|
167
|
+
construct_type(
|
|
168
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
169
|
+
object_=_response.json(),
|
|
170
|
+
),
|
|
171
|
+
)
|
|
172
|
+
if _response.status_code == 400:
|
|
173
|
+
raise BadRequestError(
|
|
174
|
+
typing.cast(
|
|
175
|
+
typing.Optional[typing.Any],
|
|
176
|
+
construct_type(
|
|
177
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
178
|
+
object_=_response.json(),
|
|
179
|
+
),
|
|
180
|
+
)
|
|
181
|
+
)
|
|
182
|
+
_response_json = _response.json()
|
|
183
|
+
except JSONDecodeError:
|
|
184
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
185
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
class AsyncClientSideAccessTokensClient:
|
|
189
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
190
|
+
self._client_wrapper = client_wrapper
|
|
191
|
+
|
|
192
|
+
async def client_side_access_tokens_create_client_side_access_token(
|
|
193
|
+
self,
|
|
194
|
+
*,
|
|
195
|
+
policy: typing.Sequence[ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem],
|
|
196
|
+
hostname: str,
|
|
197
|
+
expires_at: typing.Optional[str] = OMIT,
|
|
198
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
199
|
+
) -> ClientSideAccessTokensCreateClientSideAccessTokenResponse:
|
|
200
|
+
"""
|
|
201
|
+
Create a new client side access token with the specified configuration.
|
|
202
|
+
|
|
203
|
+
Parameters
|
|
204
|
+
----------
|
|
205
|
+
policy : typing.Sequence[ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem]
|
|
206
|
+
|
|
207
|
+
hostname : str
|
|
208
|
+
The hostname of the client side application. Please specify the full URL including the protocol (http or https).
|
|
209
|
+
|
|
210
|
+
expires_at : typing.Optional[str]
|
|
211
|
+
The expiration date of the token. If not provided, the token will expire in 5 minutes
|
|
212
|
+
|
|
213
|
+
request_options : typing.Optional[RequestOptions]
|
|
214
|
+
Request-specific configuration.
|
|
215
|
+
|
|
216
|
+
Returns
|
|
217
|
+
-------
|
|
218
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse
|
|
219
|
+
201
|
|
220
|
+
|
|
221
|
+
Examples
|
|
222
|
+
--------
|
|
223
|
+
import asyncio
|
|
224
|
+
|
|
225
|
+
from letta_client import AsyncLetta
|
|
226
|
+
from letta_client.client_side_access_tokens import (
|
|
227
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem,
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
client = AsyncLetta(
|
|
231
|
+
token="YOUR_TOKEN",
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
async def main() -> None:
|
|
236
|
+
await client.client_side_access_tokens.client_side_access_tokens_create_client_side_access_token(
|
|
237
|
+
policy=[
|
|
238
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem(
|
|
239
|
+
id="id",
|
|
240
|
+
access=["read_messages"],
|
|
241
|
+
)
|
|
242
|
+
],
|
|
243
|
+
hostname="hostname",
|
|
244
|
+
)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
asyncio.run(main())
|
|
248
|
+
"""
|
|
249
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
250
|
+
"v1/client-side-access-tokens",
|
|
251
|
+
method="POST",
|
|
252
|
+
json={
|
|
253
|
+
"policy": convert_and_respect_annotation_metadata(
|
|
254
|
+
object_=policy,
|
|
255
|
+
annotation=typing.Sequence[ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem],
|
|
256
|
+
direction="write",
|
|
257
|
+
),
|
|
258
|
+
"hostname": hostname,
|
|
259
|
+
"expires_at": expires_at,
|
|
260
|
+
},
|
|
261
|
+
headers={
|
|
262
|
+
"content-type": "application/json",
|
|
263
|
+
},
|
|
264
|
+
request_options=request_options,
|
|
265
|
+
omit=OMIT,
|
|
266
|
+
)
|
|
267
|
+
try:
|
|
268
|
+
if 200 <= _response.status_code < 300:
|
|
269
|
+
return typing.cast(
|
|
270
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse,
|
|
271
|
+
construct_type(
|
|
272
|
+
type_=ClientSideAccessTokensCreateClientSideAccessTokenResponse, # type: ignore
|
|
273
|
+
object_=_response.json(),
|
|
274
|
+
),
|
|
275
|
+
)
|
|
276
|
+
if _response.status_code == 400:
|
|
277
|
+
raise BadRequestError(
|
|
278
|
+
typing.cast(
|
|
279
|
+
typing.Optional[typing.Any],
|
|
280
|
+
construct_type(
|
|
281
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
282
|
+
object_=_response.json(),
|
|
283
|
+
),
|
|
284
|
+
)
|
|
285
|
+
)
|
|
286
|
+
_response_json = _response.json()
|
|
287
|
+
except JSONDecodeError:
|
|
288
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
289
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
290
|
+
|
|
291
|
+
async def client_side_access_tokens_delete_client_side_access_token(
|
|
292
|
+
self,
|
|
293
|
+
token: str,
|
|
294
|
+
*,
|
|
295
|
+
request: typing.Optional[typing.Any] = None,
|
|
296
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
297
|
+
) -> typing.Optional[typing.Any]:
|
|
298
|
+
"""
|
|
299
|
+
Delete a client side access token.
|
|
300
|
+
|
|
301
|
+
Parameters
|
|
302
|
+
----------
|
|
303
|
+
token : str
|
|
304
|
+
The access token to delete
|
|
305
|
+
|
|
306
|
+
request : typing.Optional[typing.Any]
|
|
307
|
+
|
|
308
|
+
request_options : typing.Optional[RequestOptions]
|
|
309
|
+
Request-specific configuration.
|
|
310
|
+
|
|
311
|
+
Returns
|
|
312
|
+
-------
|
|
313
|
+
typing.Optional[typing.Any]
|
|
314
|
+
204
|
|
315
|
+
|
|
316
|
+
Examples
|
|
317
|
+
--------
|
|
318
|
+
import asyncio
|
|
319
|
+
|
|
320
|
+
from letta_client import AsyncLetta
|
|
321
|
+
|
|
322
|
+
client = AsyncLetta(
|
|
323
|
+
token="YOUR_TOKEN",
|
|
324
|
+
)
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
async def main() -> None:
|
|
328
|
+
await client.client_side_access_tokens.client_side_access_tokens_delete_client_side_access_token(
|
|
329
|
+
token="token",
|
|
330
|
+
request={"key": "value"},
|
|
331
|
+
)
|
|
332
|
+
|
|
333
|
+
|
|
334
|
+
asyncio.run(main())
|
|
335
|
+
"""
|
|
336
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
337
|
+
f"v1/client-side-access-tokens/{jsonable_encoder(token)}",
|
|
338
|
+
method="DELETE",
|
|
339
|
+
json=request,
|
|
340
|
+
request_options=request_options,
|
|
341
|
+
omit=OMIT,
|
|
342
|
+
)
|
|
343
|
+
try:
|
|
344
|
+
if 200 <= _response.status_code < 300:
|
|
345
|
+
return typing.cast(
|
|
346
|
+
typing.Optional[typing.Any],
|
|
347
|
+
construct_type(
|
|
348
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
349
|
+
object_=_response.json(),
|
|
350
|
+
),
|
|
351
|
+
)
|
|
352
|
+
if _response.status_code == 400:
|
|
353
|
+
raise BadRequestError(
|
|
354
|
+
typing.cast(
|
|
355
|
+
typing.Optional[typing.Any],
|
|
356
|
+
construct_type(
|
|
357
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
358
|
+
object_=_response.json(),
|
|
359
|
+
),
|
|
360
|
+
)
|
|
361
|
+
)
|
|
362
|
+
_response_json = _response.json()
|
|
363
|
+
except JSONDecodeError:
|
|
364
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
365
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from .client_side_access_tokens_create_client_side_access_token_request_policy_item import (
|
|
4
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem,
|
|
5
|
+
)
|
|
6
|
+
from .client_side_access_tokens_create_client_side_access_token_request_policy_item_access_item import (
|
|
7
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem,
|
|
8
|
+
)
|
|
9
|
+
from .client_side_access_tokens_create_client_side_access_token_response import (
|
|
10
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponse,
|
|
11
|
+
)
|
|
12
|
+
from .client_side_access_tokens_create_client_side_access_token_response_policy import (
|
|
13
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy,
|
|
14
|
+
)
|
|
15
|
+
from .client_side_access_tokens_create_client_side_access_token_response_policy_data_item import (
|
|
16
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem,
|
|
17
|
+
)
|
|
18
|
+
from .client_side_access_tokens_create_client_side_access_token_response_policy_data_item_access_item import (
|
|
19
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
__all__ = [
|
|
23
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem",
|
|
24
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem",
|
|
25
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponse",
|
|
26
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy",
|
|
27
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem",
|
|
28
|
+
"ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem",
|
|
29
|
+
]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from .client_side_access_tokens_create_client_side_access_token_request_policy_item_access_item import (
|
|
6
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem,
|
|
7
|
+
)
|
|
8
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
|
+
import pydantic
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItem(UncheckedBaseModel):
|
|
13
|
+
type: typing.Literal["agent"] = "agent"
|
|
14
|
+
id: str
|
|
15
|
+
access: typing.List[ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem]
|
|
16
|
+
|
|
17
|
+
if IS_PYDANTIC_V2:
|
|
18
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
19
|
+
else:
|
|
20
|
+
|
|
21
|
+
class Config:
|
|
22
|
+
frozen = True
|
|
23
|
+
smart_union = True
|
|
24
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
ClientSideAccessTokensCreateClientSideAccessTokenRequestPolicyItemAccessItem = typing.Union[
|
|
6
|
+
typing.Literal["read_messages", "write_messages", "read_agent", "write_agent"], typing.Any
|
|
7
|
+
]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
from .client_side_access_tokens_create_client_side_access_token_response_policy import (
|
|
5
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy,
|
|
6
|
+
)
|
|
7
|
+
import typing_extensions
|
|
8
|
+
from ...core.serialization import FieldMetadata
|
|
9
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
10
|
+
import typing
|
|
11
|
+
import pydantic
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class ClientSideAccessTokensCreateClientSideAccessTokenResponse(UncheckedBaseModel):
|
|
15
|
+
policy: ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy
|
|
16
|
+
token: str
|
|
17
|
+
hostname: str
|
|
18
|
+
expires_at: typing_extensions.Annotated[str, FieldMetadata(alias="expiresAt")]
|
|
19
|
+
|
|
20
|
+
if IS_PYDANTIC_V2:
|
|
21
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
22
|
+
else:
|
|
23
|
+
|
|
24
|
+
class Config:
|
|
25
|
+
frozen = True
|
|
26
|
+
smart_union = True
|
|
27
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from .client_side_access_tokens_create_client_side_access_token_response_policy_data_item import (
|
|
6
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem,
|
|
7
|
+
)
|
|
8
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
|
+
import pydantic
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicy(UncheckedBaseModel):
|
|
13
|
+
version: typing.Literal["1"] = "1"
|
|
14
|
+
data: typing.List[ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem]
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from .client_side_access_tokens_create_client_side_access_token_response_policy_data_item_access_item import (
|
|
6
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem,
|
|
7
|
+
)
|
|
8
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
|
+
import pydantic
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItem(UncheckedBaseModel):
|
|
13
|
+
type: typing.Literal["agent"] = "agent"
|
|
14
|
+
id: str
|
|
15
|
+
access: typing.List[ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem]
|
|
16
|
+
|
|
17
|
+
if IS_PYDANTIC_V2:
|
|
18
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
19
|
+
else:
|
|
20
|
+
|
|
21
|
+
class Config:
|
|
22
|
+
frozen = True
|
|
23
|
+
smart_union = True
|
|
24
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
ClientSideAccessTokensCreateClientSideAccessTokenResponsePolicyDataItemAccessItem = typing.Union[
|
|
6
|
+
typing.Literal["read_messages", "write_messages", "read_agent", "write_agent"], typing.Any
|
|
7
|
+
]
|
|
@@ -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.
|
|
19
|
+
"X-Fern-SDK-Version": "0.1.116",
|
|
20
20
|
}
|
|
21
21
|
if self.token is not None:
|
|
22
22
|
headers["Authorization"] = f"Bearer {self.token}"
|
letta_client/errors/__init__.py
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
+
from .bad_request_error import BadRequestError
|
|
3
4
|
from .conflict_error import ConflictError
|
|
4
5
|
from .internal_server_error import InternalServerError
|
|
5
6
|
from .not_found_error import NotFoundError
|
|
6
7
|
from .unprocessable_entity_error import UnprocessableEntityError
|
|
7
8
|
|
|
8
|
-
__all__ = ["ConflictError", "InternalServerError", "NotFoundError", "UnprocessableEntityError"]
|
|
9
|
+
__all__ = ["BadRequestError", "ConflictError", "InternalServerError", "NotFoundError", "UnprocessableEntityError"]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.api_error import ApiError
|
|
4
|
+
import typing
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class BadRequestError(ApiError):
|
|
8
|
+
def __init__(self, body: typing.Optional[typing.Any]):
|
|
9
|
+
super().__init__(status_code=400, body=body)
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.client_wrapper import SyncClientWrapper
|
|
4
|
+
import typing
|
|
5
|
+
from ..core.request_options import RequestOptions
|
|
6
|
+
from .types.projects_list_projects_response import ProjectsListProjectsResponse
|
|
7
|
+
from ..core.unchecked_base_model import construct_type
|
|
8
|
+
from json.decoder import JSONDecodeError
|
|
9
|
+
from ..core.api_error import ApiError
|
|
10
|
+
from ..core.client_wrapper import AsyncClientWrapper
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ProjectsClient:
|
|
14
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
15
|
+
self._client_wrapper = client_wrapper
|
|
16
|
+
|
|
17
|
+
def listprojects(
|
|
18
|
+
self,
|
|
19
|
+
*,
|
|
20
|
+
name: typing.Optional[str] = None,
|
|
21
|
+
offset: typing.Optional[float] = None,
|
|
22
|
+
limit: typing.Optional[float] = None,
|
|
23
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
24
|
+
) -> ProjectsListProjectsResponse:
|
|
25
|
+
"""
|
|
26
|
+
List all projects
|
|
27
|
+
|
|
28
|
+
Parameters
|
|
29
|
+
----------
|
|
30
|
+
name : typing.Optional[str]
|
|
31
|
+
|
|
32
|
+
offset : typing.Optional[float]
|
|
33
|
+
|
|
34
|
+
limit : typing.Optional[float]
|
|
35
|
+
|
|
36
|
+
request_options : typing.Optional[RequestOptions]
|
|
37
|
+
Request-specific configuration.
|
|
38
|
+
|
|
39
|
+
Returns
|
|
40
|
+
-------
|
|
41
|
+
ProjectsListProjectsResponse
|
|
42
|
+
200
|
|
43
|
+
|
|
44
|
+
Examples
|
|
45
|
+
--------
|
|
46
|
+
from letta_client import Letta
|
|
47
|
+
|
|
48
|
+
client = Letta(
|
|
49
|
+
token="YOUR_TOKEN",
|
|
50
|
+
)
|
|
51
|
+
client.projects.listprojects()
|
|
52
|
+
"""
|
|
53
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
54
|
+
"v1/projects",
|
|
55
|
+
method="GET",
|
|
56
|
+
params={
|
|
57
|
+
"name": name,
|
|
58
|
+
"offset": offset,
|
|
59
|
+
"limit": limit,
|
|
60
|
+
},
|
|
61
|
+
request_options=request_options,
|
|
62
|
+
)
|
|
63
|
+
try:
|
|
64
|
+
if 200 <= _response.status_code < 300:
|
|
65
|
+
return typing.cast(
|
|
66
|
+
ProjectsListProjectsResponse,
|
|
67
|
+
construct_type(
|
|
68
|
+
type_=ProjectsListProjectsResponse, # type: ignore
|
|
69
|
+
object_=_response.json(),
|
|
70
|
+
),
|
|
71
|
+
)
|
|
72
|
+
_response_json = _response.json()
|
|
73
|
+
except JSONDecodeError:
|
|
74
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
75
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class AsyncProjectsClient:
|
|
79
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
80
|
+
self._client_wrapper = client_wrapper
|
|
81
|
+
|
|
82
|
+
async def listprojects(
|
|
83
|
+
self,
|
|
84
|
+
*,
|
|
85
|
+
name: typing.Optional[str] = None,
|
|
86
|
+
offset: typing.Optional[float] = None,
|
|
87
|
+
limit: typing.Optional[float] = None,
|
|
88
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
89
|
+
) -> ProjectsListProjectsResponse:
|
|
90
|
+
"""
|
|
91
|
+
List all projects
|
|
92
|
+
|
|
93
|
+
Parameters
|
|
94
|
+
----------
|
|
95
|
+
name : typing.Optional[str]
|
|
96
|
+
|
|
97
|
+
offset : typing.Optional[float]
|
|
98
|
+
|
|
99
|
+
limit : typing.Optional[float]
|
|
100
|
+
|
|
101
|
+
request_options : typing.Optional[RequestOptions]
|
|
102
|
+
Request-specific configuration.
|
|
103
|
+
|
|
104
|
+
Returns
|
|
105
|
+
-------
|
|
106
|
+
ProjectsListProjectsResponse
|
|
107
|
+
200
|
|
108
|
+
|
|
109
|
+
Examples
|
|
110
|
+
--------
|
|
111
|
+
import asyncio
|
|
112
|
+
|
|
113
|
+
from letta_client import AsyncLetta
|
|
114
|
+
|
|
115
|
+
client = AsyncLetta(
|
|
116
|
+
token="YOUR_TOKEN",
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
async def main() -> None:
|
|
121
|
+
await client.projects.listprojects()
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
asyncio.run(main())
|
|
125
|
+
"""
|
|
126
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
127
|
+
"v1/projects",
|
|
128
|
+
method="GET",
|
|
129
|
+
params={
|
|
130
|
+
"name": name,
|
|
131
|
+
"offset": offset,
|
|
132
|
+
"limit": limit,
|
|
133
|
+
},
|
|
134
|
+
request_options=request_options,
|
|
135
|
+
)
|
|
136
|
+
try:
|
|
137
|
+
if 200 <= _response.status_code < 300:
|
|
138
|
+
return typing.cast(
|
|
139
|
+
ProjectsListProjectsResponse,
|
|
140
|
+
construct_type(
|
|
141
|
+
type_=ProjectsListProjectsResponse, # type: ignore
|
|
142
|
+
object_=_response.json(),
|
|
143
|
+
),
|
|
144
|
+
)
|
|
145
|
+
_response_json = _response.json()
|
|
146
|
+
except JSONDecodeError:
|
|
147
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
148
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from .projects_list_projects_response import ProjectsListProjectsResponse
|
|
4
|
+
from .projects_list_projects_response_projects_item import ProjectsListProjectsResponseProjectsItem
|
|
5
|
+
|
|
6
|
+
__all__ = ["ProjectsListProjectsResponse", "ProjectsListProjectsResponseProjectsItem"]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from .projects_list_projects_response_projects_item import ProjectsListProjectsResponseProjectsItem
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ...core.serialization import FieldMetadata
|
|
8
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
|
+
import pydantic
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ProjectsListProjectsResponse(UncheckedBaseModel):
|
|
13
|
+
projects: typing.List[ProjectsListProjectsResponseProjectsItem]
|
|
14
|
+
has_next_page: typing_extensions.Annotated[bool, FieldMetadata(alias="hasNextPage")]
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
5
|
+
import typing
|
|
6
|
+
import pydantic
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class ProjectsListProjectsResponseProjectsItem(UncheckedBaseModel):
|
|
10
|
+
name: str
|
|
11
|
+
slug: str
|
|
12
|
+
id: str
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
|
-
from .types import
|
|
3
|
+
from .types import (
|
|
4
|
+
TemplatesCreateAgentsResponse,
|
|
5
|
+
TemplatesListTemplatesResponse,
|
|
6
|
+
TemplatesListTemplatesResponseTemplatesItem,
|
|
7
|
+
)
|
|
4
8
|
|
|
5
|
-
__all__ = [
|
|
9
|
+
__all__ = [
|
|
10
|
+
"TemplatesCreateAgentsResponse",
|
|
11
|
+
"TemplatesListTemplatesResponse",
|
|
12
|
+
"TemplatesListTemplatesResponseTemplatesItem",
|
|
13
|
+
]
|
letta_client/templates/client.py
CHANGED
|
@@ -8,6 +8,7 @@ from ..core.jsonable_encoder import jsonable_encoder
|
|
|
8
8
|
from ..core.unchecked_base_model import construct_type
|
|
9
9
|
from json.decoder import JSONDecodeError
|
|
10
10
|
from ..core.api_error import ApiError
|
|
11
|
+
from .types.templates_list_templates_response import TemplatesListTemplatesResponse
|
|
11
12
|
from ..core.client_wrapper import AsyncClientWrapper
|
|
12
13
|
|
|
13
14
|
# this is used as the default value for optional parameters
|
|
@@ -106,6 +107,70 @@ class TemplatesClient:
|
|
|
106
107
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
107
108
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
108
109
|
|
|
110
|
+
def listtemplates(
|
|
111
|
+
self,
|
|
112
|
+
*,
|
|
113
|
+
limit: typing.Optional[float] = None,
|
|
114
|
+
offset: typing.Optional[float] = None,
|
|
115
|
+
name: typing.Optional[str] = None,
|
|
116
|
+
project_id: typing.Optional[str] = None,
|
|
117
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
118
|
+
) -> TemplatesListTemplatesResponse:
|
|
119
|
+
"""
|
|
120
|
+
List all templates
|
|
121
|
+
|
|
122
|
+
Parameters
|
|
123
|
+
----------
|
|
124
|
+
limit : typing.Optional[float]
|
|
125
|
+
|
|
126
|
+
offset : typing.Optional[float]
|
|
127
|
+
|
|
128
|
+
name : typing.Optional[str]
|
|
129
|
+
|
|
130
|
+
project_id : typing.Optional[str]
|
|
131
|
+
|
|
132
|
+
request_options : typing.Optional[RequestOptions]
|
|
133
|
+
Request-specific configuration.
|
|
134
|
+
|
|
135
|
+
Returns
|
|
136
|
+
-------
|
|
137
|
+
TemplatesListTemplatesResponse
|
|
138
|
+
200
|
|
139
|
+
|
|
140
|
+
Examples
|
|
141
|
+
--------
|
|
142
|
+
from letta_client import Letta
|
|
143
|
+
|
|
144
|
+
client = Letta(
|
|
145
|
+
token="YOUR_TOKEN",
|
|
146
|
+
)
|
|
147
|
+
client.templates.listtemplates()
|
|
148
|
+
"""
|
|
149
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
150
|
+
"v1/templates",
|
|
151
|
+
method="GET",
|
|
152
|
+
params={
|
|
153
|
+
"limit": limit,
|
|
154
|
+
"offset": offset,
|
|
155
|
+
"name": name,
|
|
156
|
+
"projectId": project_id,
|
|
157
|
+
},
|
|
158
|
+
request_options=request_options,
|
|
159
|
+
)
|
|
160
|
+
try:
|
|
161
|
+
if 200 <= _response.status_code < 300:
|
|
162
|
+
return typing.cast(
|
|
163
|
+
TemplatesListTemplatesResponse,
|
|
164
|
+
construct_type(
|
|
165
|
+
type_=TemplatesListTemplatesResponse, # type: ignore
|
|
166
|
+
object_=_response.json(),
|
|
167
|
+
),
|
|
168
|
+
)
|
|
169
|
+
_response_json = _response.json()
|
|
170
|
+
except JSONDecodeError:
|
|
171
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
172
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
173
|
+
|
|
109
174
|
|
|
110
175
|
class AsyncTemplatesClient:
|
|
111
176
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
@@ -206,3 +271,75 @@ class AsyncTemplatesClient:
|
|
|
206
271
|
except JSONDecodeError:
|
|
207
272
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
208
273
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
274
|
+
|
|
275
|
+
async def listtemplates(
|
|
276
|
+
self,
|
|
277
|
+
*,
|
|
278
|
+
limit: typing.Optional[float] = None,
|
|
279
|
+
offset: typing.Optional[float] = None,
|
|
280
|
+
name: typing.Optional[str] = None,
|
|
281
|
+
project_id: typing.Optional[str] = None,
|
|
282
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
283
|
+
) -> TemplatesListTemplatesResponse:
|
|
284
|
+
"""
|
|
285
|
+
List all templates
|
|
286
|
+
|
|
287
|
+
Parameters
|
|
288
|
+
----------
|
|
289
|
+
limit : typing.Optional[float]
|
|
290
|
+
|
|
291
|
+
offset : typing.Optional[float]
|
|
292
|
+
|
|
293
|
+
name : typing.Optional[str]
|
|
294
|
+
|
|
295
|
+
project_id : typing.Optional[str]
|
|
296
|
+
|
|
297
|
+
request_options : typing.Optional[RequestOptions]
|
|
298
|
+
Request-specific configuration.
|
|
299
|
+
|
|
300
|
+
Returns
|
|
301
|
+
-------
|
|
302
|
+
TemplatesListTemplatesResponse
|
|
303
|
+
200
|
|
304
|
+
|
|
305
|
+
Examples
|
|
306
|
+
--------
|
|
307
|
+
import asyncio
|
|
308
|
+
|
|
309
|
+
from letta_client import AsyncLetta
|
|
310
|
+
|
|
311
|
+
client = AsyncLetta(
|
|
312
|
+
token="YOUR_TOKEN",
|
|
313
|
+
)
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
async def main() -> None:
|
|
317
|
+
await client.templates.listtemplates()
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
asyncio.run(main())
|
|
321
|
+
"""
|
|
322
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
323
|
+
"v1/templates",
|
|
324
|
+
method="GET",
|
|
325
|
+
params={
|
|
326
|
+
"limit": limit,
|
|
327
|
+
"offset": offset,
|
|
328
|
+
"name": name,
|
|
329
|
+
"projectId": project_id,
|
|
330
|
+
},
|
|
331
|
+
request_options=request_options,
|
|
332
|
+
)
|
|
333
|
+
try:
|
|
334
|
+
if 200 <= _response.status_code < 300:
|
|
335
|
+
return typing.cast(
|
|
336
|
+
TemplatesListTemplatesResponse,
|
|
337
|
+
construct_type(
|
|
338
|
+
type_=TemplatesListTemplatesResponse, # type: ignore
|
|
339
|
+
object_=_response.json(),
|
|
340
|
+
),
|
|
341
|
+
)
|
|
342
|
+
_response_json = _response.json()
|
|
343
|
+
except JSONDecodeError:
|
|
344
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
345
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# This file was auto-generated by Fern from our API Definition.
|
|
2
2
|
|
|
3
3
|
from .templates_create_agents_response import TemplatesCreateAgentsResponse
|
|
4
|
+
from .templates_list_templates_response import TemplatesListTemplatesResponse
|
|
5
|
+
from .templates_list_templates_response_templates_item import TemplatesListTemplatesResponseTemplatesItem
|
|
4
6
|
|
|
5
|
-
__all__ = [
|
|
7
|
+
__all__ = [
|
|
8
|
+
"TemplatesCreateAgentsResponse",
|
|
9
|
+
"TemplatesListTemplatesResponse",
|
|
10
|
+
"TemplatesListTemplatesResponseTemplatesItem",
|
|
11
|
+
]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
import typing
|
|
5
|
+
from .templates_list_templates_response_templates_item import TemplatesListTemplatesResponseTemplatesItem
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ...core.serialization import FieldMetadata
|
|
8
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
9
|
+
import pydantic
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TemplatesListTemplatesResponse(UncheckedBaseModel):
|
|
13
|
+
templates: typing.List[TemplatesListTemplatesResponseTemplatesItem]
|
|
14
|
+
has_next_page: typing_extensions.Annotated[bool, FieldMetadata(alias="hasNextPage")]
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
5
|
+
import typing
|
|
6
|
+
import pydantic
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class TemplatesListTemplatesResponseTemplatesItem(UncheckedBaseModel):
|
|
10
|
+
name: str
|
|
11
|
+
id: str
|
|
12
|
+
|
|
13
|
+
if IS_PYDANTIC_V2:
|
|
14
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
15
|
+
else:
|
|
16
|
+
|
|
17
|
+
class Config:
|
|
18
|
+
frozen = True
|
|
19
|
+
smart_union = True
|
|
20
|
+
extra = pydantic.Extra.allow
|
letta_client/types/__init__.py
CHANGED
|
@@ -18,6 +18,7 @@ from .audio import Audio
|
|
|
18
18
|
from .auth_request import AuthRequest
|
|
19
19
|
from .auth_response import AuthResponse
|
|
20
20
|
from .auth_scheme_field import AuthSchemeField
|
|
21
|
+
from .bad_request_error_body import BadRequestErrorBody
|
|
21
22
|
from .base_tool_rule_schema import BaseToolRuleSchema
|
|
22
23
|
from .block import Block
|
|
23
24
|
from .block_update import BlockUpdate
|
|
@@ -242,6 +243,7 @@ __all__ = [
|
|
|
242
243
|
"AuthRequest",
|
|
243
244
|
"AuthResponse",
|
|
244
245
|
"AuthSchemeField",
|
|
246
|
+
"BadRequestErrorBody",
|
|
245
247
|
"BaseToolRuleSchema",
|
|
246
248
|
"Block",
|
|
247
249
|
"BlockUpdate",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
4
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
5
|
+
import typing
|
|
6
|
+
import pydantic
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class BadRequestErrorBody(UncheckedBaseModel):
|
|
10
|
+
message: str
|
|
11
|
+
|
|
12
|
+
if IS_PYDANTIC_V2:
|
|
13
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
14
|
+
else:
|
|
15
|
+
|
|
16
|
+
class Config:
|
|
17
|
+
frozen = True
|
|
18
|
+
smart_union = True
|
|
19
|
+
extra = pydantic.Extra.allow
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
letta_client/__init__.py,sha256=
|
|
1
|
+
letta_client/__init__.py,sha256=8odG3X3w-YCoHYdIinxLvVvTRJh6e2vrmeTjerbSnXk,16164
|
|
2
2
|
letta_client/agents/__init__.py,sha256=CveigJGrnkw3yZ8S9yZ2DpK1HV0v1fU-khsiLJJ0uaU,1452
|
|
3
3
|
letta_client/agents/blocks/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
4
4
|
letta_client/agents/blocks/client.py,sha256=u5zvutxoH_DqfSLWhRtNSRBC9_ezQDx682cxkxDz3JA,23822
|
|
@@ -38,13 +38,22 @@ letta_client/agents/types/agents_search_request_search_item_zero.py,sha256=tGjwn
|
|
|
38
38
|
letta_client/agents/types/agents_search_response.py,sha256=AQJVKps-bjCx2ujqESzW1Iy9ZYFS17hH_UFIeBeK4S8,815
|
|
39
39
|
letta_client/agents/types/create_agent_request_tool_rules_item.py,sha256=L3FNsFTG9kVmuPbQhbCKNg3H2E5bB2Rgp92gWmGd-LM,689
|
|
40
40
|
letta_client/agents/types/update_agent_tool_rules_item.py,sha256=k9MmcVPsK-EGl8XlT3JQwdlBNLgpGw528jmi8fCFS7g,682
|
|
41
|
-
letta_client/base_client.py,sha256=
|
|
41
|
+
letta_client/base_client.py,sha256=G8Ag35gITyN71r_CDrb_hsmJ3PlHPgIK6cCEMU2fVw0,9253
|
|
42
42
|
letta_client/blocks/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
43
43
|
letta_client/blocks/client.py,sha256=LE9dsHaBxFLC3G035f0VpNDG7XKWRK8y9OXpeFCMvUw,30082
|
|
44
44
|
letta_client/client.py,sha256=k2mZqqEWciVmEQHgipjCK4kQILk74hpSqzcdNwdql9A,21212
|
|
45
|
+
letta_client/client_side_access_tokens/__init__.py,sha256=ivKMiZVIc5IjBZvinNK_aVy1RpvD9lWstT1XJzXc_ak,1015
|
|
46
|
+
letta_client/client_side_access_tokens/client.py,sha256=69zUzYSphr_r8HpnPpidXotKIDdFCS9YSK8haU8BiVM,13168
|
|
47
|
+
letta_client/client_side_access_tokens/types/__init__.py,sha256=Cjp8P6wW6EJKf4yiv1U1FzDiVI21dOv1IG_fn4Xzazc,1583
|
|
48
|
+
letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_request_policy_item.py,sha256=blQBjrrqrV6eqCqi2iP4KHkg_83bqkcs3F4kKvjH_gc,946
|
|
49
|
+
letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_request_policy_item_access_item.py,sha256=gFROGOsd-Gkj2JgVLBr_qgowdjywr5W__Z0Prj1osfE,270
|
|
50
|
+
letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response.py,sha256=WK7Ekd6i-NiBvmD4dyvSiBCHtadXAOV3gl_-W8-e_0Q,1015
|
|
51
|
+
letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response_policy.py,sha256=JusvFIWRKx9rOAw-qB7XrG7zQ4AkpNm_Qwm5hF-HudA,908
|
|
52
|
+
letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response_policy_data_item.py,sha256=ou-3g9-saP3FftVHkWH9I3cGTk8ez4p8aZ_mChEgfH0,967
|
|
53
|
+
letta_client/client_side_access_tokens/types/client_side_access_tokens_create_client_side_access_token_response_policy_data_item_access_item.py,sha256=vefuUVB3pLCbCNBJACXMsEKZuwhMAGvLwSU3TU3Q4l4,275
|
|
45
54
|
letta_client/core/__init__.py,sha256=OKbX2aCZXgHCDUsCouqv-OiX32xA6eFFCKIUH9M5Vzk,1591
|
|
46
55
|
letta_client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
|
47
|
-
letta_client/core/client_wrapper.py,sha256=
|
|
56
|
+
letta_client/core/client_wrapper.py,sha256=60C6g_Z9X2ZqS7osrPIqdXkJqLaAQOwLKTN3nmztSM0,1998
|
|
48
57
|
letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
|
49
58
|
letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
|
|
50
59
|
letta_client/core/http_client.py,sha256=Z77OIxIbL4OAB2IDqjRq_sYa5yNYAWfmdhdCSSvh6Y4,19552
|
|
@@ -56,7 +65,8 @@ letta_client/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHg
|
|
|
56
65
|
letta_client/core/serialization.py,sha256=D9h_t-RQON3-CHWs1C4ESY9B-Yd5d-l5lnTLb_X896g,9601
|
|
57
66
|
letta_client/core/unchecked_base_model.py,sha256=zliEPgLnK9yQ1dZ0mHP6agQ7H0bTZk8AvX6VC1r9oPQ,10754
|
|
58
67
|
letta_client/environment.py,sha256=91gYLF9bT4-hTPQ9dcPfmub4LgEl-T4a5kW7NXzRIJU,198
|
|
59
|
-
letta_client/errors/__init__.py,sha256=
|
|
68
|
+
letta_client/errors/__init__.py,sha256=sf5qYBpvBUchcwEIvulM7AYVGJkiVxknC9OX6TOpOdo,433
|
|
69
|
+
letta_client/errors/bad_request_error.py,sha256=_EbO8mWqN9kFZPvIap8qa1lL_EWkRcsZe1HKV9GDWJY,264
|
|
60
70
|
letta_client/errors/conflict_error.py,sha256=INHRMcX6i0ywcbZfw-vn3aBoVi06bDjev3p_O8U8IA4,296
|
|
61
71
|
letta_client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNXvrd_aq7Gfcu1vlOI,268
|
|
62
72
|
letta_client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
|
|
@@ -80,6 +90,11 @@ letta_client/jobs/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw
|
|
|
80
90
|
letta_client/jobs/client.py,sha256=z1Zq6dGs2xbf3EAFuD3-m-qbpbUeqpCBYqtIFKkGoMk,15622
|
|
81
91
|
letta_client/models/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
82
92
|
letta_client/models/client.py,sha256=Rd9IHjSdXRzzZyabpq8pDTc9XDnwLPnmm5by335g1D0,6306
|
|
93
|
+
letta_client/projects/__init__.py,sha256=CccxELBuPLqC6SfAJMNP3I4tEzYBNNA9CUrhuPk-TVI,243
|
|
94
|
+
letta_client/projects/client.py,sha256=xq3LosG_w5Yk1AjajIOvkthJNffsSGkBu8RQwfvYGZA,4358
|
|
95
|
+
letta_client/projects/types/__init__.py,sha256=SXy0WSkK5BUuFYis1LNUUWGuY9B8n6c6e_3OtrrSfWo,327
|
|
96
|
+
letta_client/projects/types/projects_list_projects_response.py,sha256=NfKqXLGBdi1b5qX1EgEeGhw1w8a1rVUHaFJeMdLHctk,891
|
|
97
|
+
letta_client/projects/types/projects_list_projects_response_projects_item.py,sha256=-pAUwD9lMESWnRM0XlwWKHBk4Yc3Qjpm1CKCZR__hBk,613
|
|
83
98
|
letta_client/providers/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
84
99
|
letta_client/providers/client.py,sha256=RLpTHd9iQ5wlZqYEG4cF8YsDCdaQZ0odCFprukauCuc,18228
|
|
85
100
|
letta_client/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -95,10 +110,12 @@ letta_client/steps/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_p
|
|
|
95
110
|
letta_client/steps/client.py,sha256=g4XUUtdKzkSiRkxJW6ACrYe8ySvJ_tUMGK4ag6QRZT4,11284
|
|
96
111
|
letta_client/tag/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
97
112
|
letta_client/tag/client.py,sha256=TBAotdb0e2_x2pANF4dOE1qmWY3GIgb7nOhvN7iZ3_4,5183
|
|
98
|
-
letta_client/templates/__init__.py,sha256=
|
|
99
|
-
letta_client/templates/client.py,sha256=
|
|
100
|
-
letta_client/templates/types/__init__.py,sha256=
|
|
113
|
+
letta_client/templates/__init__.py,sha256=Vm6KTxJSLP2ORjXRYqv0f-LNPhnvja0MML0n2AvV_0o,349
|
|
114
|
+
letta_client/templates/client.py,sha256=V-4OBGO-SQrUFSAZBNhHn5yhtDCYFgTTldsN4E71Qx0,11204
|
|
115
|
+
letta_client/templates/types/__init__.py,sha256=EK2nGJWTbYTT4PFO9BcnMdw3kd5cKyxARZlleAxpw_I,466
|
|
101
116
|
letta_client/templates/types/templates_create_agents_response.py,sha256=MNyR1Qr0d14_bj_xkQVEBXkDr2xvEsqMy1pzvn7nr4M,642
|
|
117
|
+
letta_client/templates/types/templates_list_templates_response.py,sha256=1aXGfSWPlGm-ZoT4XvRtXiy3zUSHARHAbcppNZT9KSA,903
|
|
118
|
+
letta_client/templates/types/templates_list_templates_response_templates_item.py,sha256=73PdtnZYkCOk9zdU0nRONQldO_0CeZVUysd4F1U9to8,602
|
|
102
119
|
letta_client/tools/__init__.py,sha256=XsuAkxHDA-Z98gLNNW_fiEwFP3fP4XQipflrK2bHl8k,353
|
|
103
120
|
letta_client/tools/client.py,sha256=aJqW1sNecrsjBAs6eFubMo2Up0u3lJxpafo1mkj2fnQ,78344
|
|
104
121
|
letta_client/tools/types/__init__.py,sha256=R11LYBi6lxkud_DRyaHFUHtlnbfnEI93-SEo7FL4tzs,478
|
|
@@ -106,7 +123,7 @@ letta_client/tools/types/add_mcp_server_request.py,sha256=EieZjfOT95sjkpxXdqy7gl
|
|
|
106
123
|
letta_client/tools/types/add_mcp_server_response_item.py,sha256=TWdsKqGb1INhYtpGnAckz0Pw4nZShumSp4pfocRfxCA,270
|
|
107
124
|
letta_client/tools/types/delete_mcp_server_response_item.py,sha256=MeZObU-7tMSCd-S5yuUjNDse6A1hUz1LLjbko0pXaro,273
|
|
108
125
|
letta_client/tools/types/list_mcp_servers_response_value.py,sha256=AIoXu4bO8QNSU7zjL1jj0Rg4313wVtPaTt13W0aevLQ,273
|
|
109
|
-
letta_client/types/__init__.py,sha256=
|
|
126
|
+
letta_client/types/__init__.py,sha256=WL1kUXfr7I6CDtXjtiw05YOpJ-7DYHFKslCKkoQgw8I,19858
|
|
110
127
|
letta_client/types/action_model.py,sha256=y1e2XMv3skFaNJIBdYoBKgiORzGh05aOVvu-qVR9uHg,1240
|
|
111
128
|
letta_client/types/action_parameters_model.py,sha256=LgKf5aPZG3-OHGxFdXiSokIDgce8c02xPYIAY05VgW8,828
|
|
112
129
|
letta_client/types/action_response_model.py,sha256=yq2Fd9UU8j7vvtE3VqXUoRRvDzWcfJPj_95ynGdeHCs,824
|
|
@@ -125,6 +142,7 @@ letta_client/types/audio.py,sha256=aCgzL9SmkmM4yU7hy2IWwPrC-wtllplo3dQF9mjk7Fg,5
|
|
|
125
142
|
letta_client/types/auth_request.py,sha256=q63VMj39aCmljDuzUeAClXEqyaoa_HKv5IraSv8ry9M,683
|
|
126
143
|
letta_client/types/auth_response.py,sha256=jtG9Nn0voJcOWkBtvnuGGwhpUhYz9A8O7soOJZo_E_E,861
|
|
127
144
|
letta_client/types/auth_scheme_field.py,sha256=W4-qgKtKUSpBHaSvjLyzLybOIsGo7Ggk4VECpsoPnqQ,881
|
|
145
|
+
letta_client/types/bad_request_error_body.py,sha256=E4_eWEc9xeW9BkXGViBDrevV8Jf6PjgEweeGS3vJLD4,567
|
|
128
146
|
letta_client/types/base_tool_rule_schema.py,sha256=FbnJy6gb8wY_DPiU3Gs-u1Ol_l4K7-nAmPTc1oR3kOo,582
|
|
129
147
|
letta_client/types/block.py,sha256=J8McqSpellhd-KsPYontU8DYg3YV41_fQW5rR-85qMk,2900
|
|
130
148
|
letta_client/types/block_update.py,sha256=oIgxvSnav5vxztBdslRMiWOgRaAp3dh43pinZpoLzxk,1496
|
|
@@ -330,6 +348,6 @@ letta_client/voice/__init__.py,sha256=7hX85553PiRMtIMM12a0DSoFzsglNiUziYR2ekS84Q
|
|
|
330
348
|
letta_client/voice/client.py,sha256=STjswa5oOLoP59QwTJvQwi73kgn0UzKOaXc2CsTRI4k,6912
|
|
331
349
|
letta_client/voice/types/__init__.py,sha256=FRc3iKRTONE4N8Lf1IqvnqWZ2kXdrFFvkL7PxVcR8Ew,212
|
|
332
350
|
letta_client/voice/types/create_voice_chat_completions_request_body.py,sha256=ZLfKgNK1T6IAwLEvaBVFfy7jEAoPUXP28n-nfmHkklc,391
|
|
333
|
-
letta_client-0.1.
|
|
334
|
-
letta_client-0.1.
|
|
335
|
-
letta_client-0.1.
|
|
351
|
+
letta_client-0.1.116.dist-info/METADATA,sha256=gzBG41gPHxqDKIDINM2rLVUrGZdzl37tSYjutqsVhL4,5042
|
|
352
|
+
letta_client-0.1.116.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
|
353
|
+
letta_client-0.1.116.dist-info/RECORD,,
|
|
File without changes
|