letta-client 0.1.127__py3-none-any.whl → 0.1.129__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 +2 -0
- letta_client/base_client.py +8 -4
- letta_client/core/client_wrapper.py +1 -1
- letta_client/embedding_models/__init__.py +2 -0
- letta_client/embedding_models/client.py +108 -0
- letta_client/embeddings/client.py +10 -26
- letta_client/sources/client.py +74 -74
- letta_client/tools/client.py +134 -112
- letta_client/types/local_sandbox_config.py +2 -2
- {letta_client-0.1.127.dist-info → letta_client-0.1.129.dist-info}/METADATA +1 -1
- {letta_client-0.1.127.dist-info → letta_client-0.1.129.dist-info}/RECORD +12 -10
- {letta_client-0.1.127.dist-info → letta_client-0.1.129.dist-info}/WHEEL +0 -0
letta_client/__init__.py
CHANGED
|
@@ -233,6 +233,7 @@ from . import (
|
|
|
233
233
|
batches,
|
|
234
234
|
blocks,
|
|
235
235
|
client_side_access_tokens,
|
|
236
|
+
embedding_models,
|
|
236
237
|
embeddings,
|
|
237
238
|
groups,
|
|
238
239
|
health,
|
|
@@ -551,6 +552,7 @@ __all__ = [
|
|
|
551
552
|
"batches",
|
|
552
553
|
"blocks",
|
|
553
554
|
"client_side_access_tokens",
|
|
555
|
+
"embedding_models",
|
|
554
556
|
"embeddings",
|
|
555
557
|
"groups",
|
|
556
558
|
"health",
|
letta_client/base_client.py
CHANGED
|
@@ -10,7 +10,7 @@ from .agents.client import AgentsClient
|
|
|
10
10
|
from .groups.client import GroupsClient
|
|
11
11
|
from .identities.client import IdentitiesClient
|
|
12
12
|
from .models.client import ModelsClient
|
|
13
|
-
from .
|
|
13
|
+
from .embedding_models.client import EmbeddingModelsClient
|
|
14
14
|
from .blocks.client import BlocksClient
|
|
15
15
|
from .jobs.client import JobsClient
|
|
16
16
|
from .health.client import HealthClient
|
|
@@ -20,6 +20,7 @@ from .steps.client import StepsClient
|
|
|
20
20
|
from .tags.client import TagsClient
|
|
21
21
|
from .batches.client import BatchesClient
|
|
22
22
|
from .voice.client import VoiceClient
|
|
23
|
+
from .embeddings.client import EmbeddingsClient
|
|
23
24
|
from .templates.client import TemplatesClient
|
|
24
25
|
from .client_side_access_tokens.client import ClientSideAccessTokensClient
|
|
25
26
|
from .projects.client import ProjectsClient
|
|
@@ -30,7 +31,7 @@ from .agents.client import AsyncAgentsClient
|
|
|
30
31
|
from .groups.client import AsyncGroupsClient
|
|
31
32
|
from .identities.client import AsyncIdentitiesClient
|
|
32
33
|
from .models.client import AsyncModelsClient
|
|
33
|
-
from .
|
|
34
|
+
from .embedding_models.client import AsyncEmbeddingModelsClient
|
|
34
35
|
from .blocks.client import AsyncBlocksClient
|
|
35
36
|
from .jobs.client import AsyncJobsClient
|
|
36
37
|
from .health.client import AsyncHealthClient
|
|
@@ -40,6 +41,7 @@ from .steps.client import AsyncStepsClient
|
|
|
40
41
|
from .tags.client import AsyncTagsClient
|
|
41
42
|
from .batches.client import AsyncBatchesClient
|
|
42
43
|
from .voice.client import AsyncVoiceClient
|
|
44
|
+
from .embeddings.client import AsyncEmbeddingsClient
|
|
43
45
|
from .templates.client import AsyncTemplatesClient
|
|
44
46
|
from .client_side_access_tokens.client import AsyncClientSideAccessTokensClient
|
|
45
47
|
from .projects.client import AsyncProjectsClient
|
|
@@ -109,7 +111,7 @@ class LettaBase:
|
|
|
109
111
|
self.groups = GroupsClient(client_wrapper=self._client_wrapper)
|
|
110
112
|
self.identities = IdentitiesClient(client_wrapper=self._client_wrapper)
|
|
111
113
|
self.models = ModelsClient(client_wrapper=self._client_wrapper)
|
|
112
|
-
self.
|
|
114
|
+
self.embedding_models = EmbeddingModelsClient(client_wrapper=self._client_wrapper)
|
|
113
115
|
self.blocks = BlocksClient(client_wrapper=self._client_wrapper)
|
|
114
116
|
self.jobs = JobsClient(client_wrapper=self._client_wrapper)
|
|
115
117
|
self.health = HealthClient(client_wrapper=self._client_wrapper)
|
|
@@ -119,6 +121,7 @@ class LettaBase:
|
|
|
119
121
|
self.tags = TagsClient(client_wrapper=self._client_wrapper)
|
|
120
122
|
self.batches = BatchesClient(client_wrapper=self._client_wrapper)
|
|
121
123
|
self.voice = VoiceClient(client_wrapper=self._client_wrapper)
|
|
124
|
+
self.embeddings = EmbeddingsClient(client_wrapper=self._client_wrapper)
|
|
122
125
|
self.templates = TemplatesClient(client_wrapper=self._client_wrapper)
|
|
123
126
|
self.client_side_access_tokens = ClientSideAccessTokensClient(client_wrapper=self._client_wrapper)
|
|
124
127
|
self.projects = ProjectsClient(client_wrapper=self._client_wrapper)
|
|
@@ -188,7 +191,7 @@ class AsyncLettaBase:
|
|
|
188
191
|
self.groups = AsyncGroupsClient(client_wrapper=self._client_wrapper)
|
|
189
192
|
self.identities = AsyncIdentitiesClient(client_wrapper=self._client_wrapper)
|
|
190
193
|
self.models = AsyncModelsClient(client_wrapper=self._client_wrapper)
|
|
191
|
-
self.
|
|
194
|
+
self.embedding_models = AsyncEmbeddingModelsClient(client_wrapper=self._client_wrapper)
|
|
192
195
|
self.blocks = AsyncBlocksClient(client_wrapper=self._client_wrapper)
|
|
193
196
|
self.jobs = AsyncJobsClient(client_wrapper=self._client_wrapper)
|
|
194
197
|
self.health = AsyncHealthClient(client_wrapper=self._client_wrapper)
|
|
@@ -198,6 +201,7 @@ class AsyncLettaBase:
|
|
|
198
201
|
self.tags = AsyncTagsClient(client_wrapper=self._client_wrapper)
|
|
199
202
|
self.batches = AsyncBatchesClient(client_wrapper=self._client_wrapper)
|
|
200
203
|
self.voice = AsyncVoiceClient(client_wrapper=self._client_wrapper)
|
|
204
|
+
self.embeddings = AsyncEmbeddingsClient(client_wrapper=self._client_wrapper)
|
|
201
205
|
self.templates = AsyncTemplatesClient(client_wrapper=self._client_wrapper)
|
|
202
206
|
self.client_side_access_tokens = AsyncClientSideAccessTokensClient(client_wrapper=self._client_wrapper)
|
|
203
207
|
self.projects = AsyncProjectsClient(client_wrapper=self._client_wrapper)
|
|
@@ -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.129",
|
|
20
20
|
}
|
|
21
21
|
if self.token is not None:
|
|
22
22
|
headers["Authorization"] = f"Bearer {self.token}"
|
|
@@ -0,0 +1,108 @@
|
|
|
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.embedding_config import EmbeddingConfig
|
|
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 EmbeddingModelsClient:
|
|
14
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
15
|
+
self._client_wrapper = client_wrapper
|
|
16
|
+
|
|
17
|
+
def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[EmbeddingConfig]:
|
|
18
|
+
"""
|
|
19
|
+
Parameters
|
|
20
|
+
----------
|
|
21
|
+
request_options : typing.Optional[RequestOptions]
|
|
22
|
+
Request-specific configuration.
|
|
23
|
+
|
|
24
|
+
Returns
|
|
25
|
+
-------
|
|
26
|
+
typing.List[EmbeddingConfig]
|
|
27
|
+
Successful Response
|
|
28
|
+
|
|
29
|
+
Examples
|
|
30
|
+
--------
|
|
31
|
+
from letta_client import Letta
|
|
32
|
+
|
|
33
|
+
client = Letta(
|
|
34
|
+
token="YOUR_TOKEN",
|
|
35
|
+
)
|
|
36
|
+
client.embedding_models.list()
|
|
37
|
+
"""
|
|
38
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
39
|
+
"v1/models/embedding",
|
|
40
|
+
method="GET",
|
|
41
|
+
request_options=request_options,
|
|
42
|
+
)
|
|
43
|
+
try:
|
|
44
|
+
if 200 <= _response.status_code < 300:
|
|
45
|
+
return typing.cast(
|
|
46
|
+
typing.List[EmbeddingConfig],
|
|
47
|
+
construct_type(
|
|
48
|
+
type_=typing.List[EmbeddingConfig], # type: ignore
|
|
49
|
+
object_=_response.json(),
|
|
50
|
+
),
|
|
51
|
+
)
|
|
52
|
+
_response_json = _response.json()
|
|
53
|
+
except JSONDecodeError:
|
|
54
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
55
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class AsyncEmbeddingModelsClient:
|
|
59
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
60
|
+
self._client_wrapper = client_wrapper
|
|
61
|
+
|
|
62
|
+
async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[EmbeddingConfig]:
|
|
63
|
+
"""
|
|
64
|
+
Parameters
|
|
65
|
+
----------
|
|
66
|
+
request_options : typing.Optional[RequestOptions]
|
|
67
|
+
Request-specific configuration.
|
|
68
|
+
|
|
69
|
+
Returns
|
|
70
|
+
-------
|
|
71
|
+
typing.List[EmbeddingConfig]
|
|
72
|
+
Successful Response
|
|
73
|
+
|
|
74
|
+
Examples
|
|
75
|
+
--------
|
|
76
|
+
import asyncio
|
|
77
|
+
|
|
78
|
+
from letta_client import AsyncLetta
|
|
79
|
+
|
|
80
|
+
client = AsyncLetta(
|
|
81
|
+
token="YOUR_TOKEN",
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
async def main() -> None:
|
|
86
|
+
await client.embedding_models.list()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
asyncio.run(main())
|
|
90
|
+
"""
|
|
91
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
92
|
+
"v1/models/embedding",
|
|
93
|
+
method="GET",
|
|
94
|
+
request_options=request_options,
|
|
95
|
+
)
|
|
96
|
+
try:
|
|
97
|
+
if 200 <= _response.status_code < 300:
|
|
98
|
+
return typing.cast(
|
|
99
|
+
typing.List[EmbeddingConfig],
|
|
100
|
+
construct_type(
|
|
101
|
+
type_=typing.List[EmbeddingConfig], # type: ignore
|
|
102
|
+
object_=_response.json(),
|
|
103
|
+
),
|
|
104
|
+
)
|
|
105
|
+
_response_json = _response.json()
|
|
106
|
+
except JSONDecodeError:
|
|
107
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
108
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
from ..core.client_wrapper import SyncClientWrapper
|
|
4
4
|
import typing
|
|
5
5
|
from ..core.request_options import RequestOptions
|
|
6
|
-
from ..types.embedding_config import EmbeddingConfig
|
|
7
|
-
from ..core.unchecked_base_model import construct_type
|
|
8
6
|
from json.decoder import JSONDecodeError
|
|
9
7
|
from ..core.api_error import ApiError
|
|
10
8
|
from ..core.client_wrapper import AsyncClientWrapper
|
|
@@ -14,7 +12,7 @@ class EmbeddingsClient:
|
|
|
14
12
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
15
13
|
self._client_wrapper = client_wrapper
|
|
16
14
|
|
|
17
|
-
def
|
|
15
|
+
def get_total_storage_size(self, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
|
18
16
|
"""
|
|
19
17
|
Parameters
|
|
20
18
|
----------
|
|
@@ -23,8 +21,7 @@ class EmbeddingsClient:
|
|
|
23
21
|
|
|
24
22
|
Returns
|
|
25
23
|
-------
|
|
26
|
-
|
|
27
|
-
Successful Response
|
|
24
|
+
None
|
|
28
25
|
|
|
29
26
|
Examples
|
|
30
27
|
--------
|
|
@@ -33,22 +30,16 @@ class EmbeddingsClient:
|
|
|
33
30
|
client = Letta(
|
|
34
31
|
token="YOUR_TOKEN",
|
|
35
32
|
)
|
|
36
|
-
client.embeddings.
|
|
33
|
+
client.embeddings.get_total_storage_size()
|
|
37
34
|
"""
|
|
38
35
|
_response = self._client_wrapper.httpx_client.request(
|
|
39
|
-
"v1/
|
|
36
|
+
"v1/embeddings/get_total_storage_size",
|
|
40
37
|
method="GET",
|
|
41
38
|
request_options=request_options,
|
|
42
39
|
)
|
|
43
40
|
try:
|
|
44
41
|
if 200 <= _response.status_code < 300:
|
|
45
|
-
return
|
|
46
|
-
typing.List[EmbeddingConfig],
|
|
47
|
-
construct_type(
|
|
48
|
-
type_=typing.List[EmbeddingConfig], # type: ignore
|
|
49
|
-
object_=_response.json(),
|
|
50
|
-
),
|
|
51
|
-
)
|
|
42
|
+
return
|
|
52
43
|
_response_json = _response.json()
|
|
53
44
|
except JSONDecodeError:
|
|
54
45
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
@@ -59,7 +50,7 @@ class AsyncEmbeddingsClient:
|
|
|
59
50
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
60
51
|
self._client_wrapper = client_wrapper
|
|
61
52
|
|
|
62
|
-
async def
|
|
53
|
+
async def get_total_storage_size(self, *, request_options: typing.Optional[RequestOptions] = None) -> None:
|
|
63
54
|
"""
|
|
64
55
|
Parameters
|
|
65
56
|
----------
|
|
@@ -68,8 +59,7 @@ class AsyncEmbeddingsClient:
|
|
|
68
59
|
|
|
69
60
|
Returns
|
|
70
61
|
-------
|
|
71
|
-
|
|
72
|
-
Successful Response
|
|
62
|
+
None
|
|
73
63
|
|
|
74
64
|
Examples
|
|
75
65
|
--------
|
|
@@ -83,25 +73,19 @@ class AsyncEmbeddingsClient:
|
|
|
83
73
|
|
|
84
74
|
|
|
85
75
|
async def main() -> None:
|
|
86
|
-
await client.embeddings.
|
|
76
|
+
await client.embeddings.get_total_storage_size()
|
|
87
77
|
|
|
88
78
|
|
|
89
79
|
asyncio.run(main())
|
|
90
80
|
"""
|
|
91
81
|
_response = await self._client_wrapper.httpx_client.request(
|
|
92
|
-
"v1/
|
|
82
|
+
"v1/embeddings/get_total_storage_size",
|
|
93
83
|
method="GET",
|
|
94
84
|
request_options=request_options,
|
|
95
85
|
)
|
|
96
86
|
try:
|
|
97
87
|
if 200 <= _response.status_code < 300:
|
|
98
|
-
return
|
|
99
|
-
typing.List[EmbeddingConfig],
|
|
100
|
-
construct_type(
|
|
101
|
-
type_=typing.List[EmbeddingConfig], # type: ignore
|
|
102
|
-
object_=_response.json(),
|
|
103
|
-
),
|
|
104
|
-
)
|
|
88
|
+
return
|
|
105
89
|
_response_json = _response.json()
|
|
106
90
|
except JSONDecodeError:
|
|
107
91
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
letta_client/sources/client.py
CHANGED
|
@@ -5,13 +5,13 @@ from ..core.client_wrapper import SyncClientWrapper
|
|
|
5
5
|
from .files.client import FilesClient
|
|
6
6
|
from .passages.client import PassagesClient
|
|
7
7
|
from ..core.request_options import RequestOptions
|
|
8
|
-
from ..types.source import Source
|
|
9
|
-
from ..core.jsonable_encoder import jsonable_encoder
|
|
10
8
|
from ..core.unchecked_base_model import construct_type
|
|
11
9
|
from ..errors.unprocessable_entity_error import UnprocessableEntityError
|
|
12
10
|
from ..types.http_validation_error import HttpValidationError
|
|
13
11
|
from json.decoder import JSONDecodeError
|
|
14
12
|
from ..core.api_error import ApiError
|
|
13
|
+
from ..types.source import Source
|
|
14
|
+
from ..core.jsonable_encoder import jsonable_encoder
|
|
15
15
|
from ..types.embedding_config import EmbeddingConfig
|
|
16
16
|
from ..core.serialization import convert_and_respect_annotation_metadata
|
|
17
17
|
from ..core.client_wrapper import AsyncClientWrapper
|
|
@@ -28,6 +28,58 @@ class SourcesClient:
|
|
|
28
28
|
self.files = FilesClient(client_wrapper=self._client_wrapper)
|
|
29
29
|
self.passages = PassagesClient(client_wrapper=self._client_wrapper)
|
|
30
30
|
|
|
31
|
+
def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
|
|
32
|
+
"""
|
|
33
|
+
Count all data sources created by a user.
|
|
34
|
+
|
|
35
|
+
Parameters
|
|
36
|
+
----------
|
|
37
|
+
request_options : typing.Optional[RequestOptions]
|
|
38
|
+
Request-specific configuration.
|
|
39
|
+
|
|
40
|
+
Returns
|
|
41
|
+
-------
|
|
42
|
+
int
|
|
43
|
+
Successful Response
|
|
44
|
+
|
|
45
|
+
Examples
|
|
46
|
+
--------
|
|
47
|
+
from letta_client import Letta
|
|
48
|
+
|
|
49
|
+
client = Letta(
|
|
50
|
+
token="YOUR_TOKEN",
|
|
51
|
+
)
|
|
52
|
+
client.sources.count()
|
|
53
|
+
"""
|
|
54
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
55
|
+
"v1/sources/count",
|
|
56
|
+
method="GET",
|
|
57
|
+
request_options=request_options,
|
|
58
|
+
)
|
|
59
|
+
try:
|
|
60
|
+
if 200 <= _response.status_code < 300:
|
|
61
|
+
return typing.cast(
|
|
62
|
+
int,
|
|
63
|
+
construct_type(
|
|
64
|
+
type_=int, # type: ignore
|
|
65
|
+
object_=_response.json(),
|
|
66
|
+
),
|
|
67
|
+
)
|
|
68
|
+
if _response.status_code == 422:
|
|
69
|
+
raise UnprocessableEntityError(
|
|
70
|
+
typing.cast(
|
|
71
|
+
HttpValidationError,
|
|
72
|
+
construct_type(
|
|
73
|
+
type_=HttpValidationError, # type: ignore
|
|
74
|
+
object_=_response.json(),
|
|
75
|
+
),
|
|
76
|
+
)
|
|
77
|
+
)
|
|
78
|
+
_response_json = _response.json()
|
|
79
|
+
except JSONDecodeError:
|
|
80
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
81
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
82
|
+
|
|
31
83
|
def retrieve(self, source_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Source:
|
|
32
84
|
"""
|
|
33
85
|
Get all sources
|
|
@@ -435,7 +487,14 @@ class SourcesClient:
|
|
|
435
487
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
436
488
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
437
489
|
|
|
438
|
-
|
|
490
|
+
|
|
491
|
+
class AsyncSourcesClient:
|
|
492
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
493
|
+
self._client_wrapper = client_wrapper
|
|
494
|
+
self.files = AsyncFilesClient(client_wrapper=self._client_wrapper)
|
|
495
|
+
self.passages = AsyncPassagesClient(client_wrapper=self._client_wrapper)
|
|
496
|
+
|
|
497
|
+
async def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
|
|
439
498
|
"""
|
|
440
499
|
Count all data sources created by a user.
|
|
441
500
|
|
|
@@ -451,14 +510,22 @@ class SourcesClient:
|
|
|
451
510
|
|
|
452
511
|
Examples
|
|
453
512
|
--------
|
|
454
|
-
|
|
513
|
+
import asyncio
|
|
455
514
|
|
|
456
|
-
|
|
515
|
+
from letta_client import AsyncLetta
|
|
516
|
+
|
|
517
|
+
client = AsyncLetta(
|
|
457
518
|
token="YOUR_TOKEN",
|
|
458
519
|
)
|
|
459
|
-
|
|
520
|
+
|
|
521
|
+
|
|
522
|
+
async def main() -> None:
|
|
523
|
+
await client.sources.count()
|
|
524
|
+
|
|
525
|
+
|
|
526
|
+
asyncio.run(main())
|
|
460
527
|
"""
|
|
461
|
-
_response = self._client_wrapper.httpx_client.request(
|
|
528
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
462
529
|
"v1/sources/count",
|
|
463
530
|
method="GET",
|
|
464
531
|
request_options=request_options,
|
|
@@ -487,13 +554,6 @@ class SourcesClient:
|
|
|
487
554
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
488
555
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
489
556
|
|
|
490
|
-
|
|
491
|
-
class AsyncSourcesClient:
|
|
492
|
-
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
493
|
-
self._client_wrapper = client_wrapper
|
|
494
|
-
self.files = AsyncFilesClient(client_wrapper=self._client_wrapper)
|
|
495
|
-
self.passages = AsyncPassagesClient(client_wrapper=self._client_wrapper)
|
|
496
|
-
|
|
497
557
|
async def retrieve(self, source_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Source:
|
|
498
558
|
"""
|
|
499
559
|
Get all sources
|
|
@@ -950,63 +1010,3 @@ class AsyncSourcesClient:
|
|
|
950
1010
|
except JSONDecodeError:
|
|
951
1011
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
952
1012
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
953
|
-
|
|
954
|
-
async def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
|
|
955
|
-
"""
|
|
956
|
-
Count all data sources created by a user.
|
|
957
|
-
|
|
958
|
-
Parameters
|
|
959
|
-
----------
|
|
960
|
-
request_options : typing.Optional[RequestOptions]
|
|
961
|
-
Request-specific configuration.
|
|
962
|
-
|
|
963
|
-
Returns
|
|
964
|
-
-------
|
|
965
|
-
int
|
|
966
|
-
Successful Response
|
|
967
|
-
|
|
968
|
-
Examples
|
|
969
|
-
--------
|
|
970
|
-
import asyncio
|
|
971
|
-
|
|
972
|
-
from letta_client import AsyncLetta
|
|
973
|
-
|
|
974
|
-
client = AsyncLetta(
|
|
975
|
-
token="YOUR_TOKEN",
|
|
976
|
-
)
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
async def main() -> None:
|
|
980
|
-
await client.sources.count()
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
asyncio.run(main())
|
|
984
|
-
"""
|
|
985
|
-
_response = await self._client_wrapper.httpx_client.request(
|
|
986
|
-
"v1/sources/count",
|
|
987
|
-
method="GET",
|
|
988
|
-
request_options=request_options,
|
|
989
|
-
)
|
|
990
|
-
try:
|
|
991
|
-
if 200 <= _response.status_code < 300:
|
|
992
|
-
return typing.cast(
|
|
993
|
-
int,
|
|
994
|
-
construct_type(
|
|
995
|
-
type_=int, # type: ignore
|
|
996
|
-
object_=_response.json(),
|
|
997
|
-
),
|
|
998
|
-
)
|
|
999
|
-
if _response.status_code == 422:
|
|
1000
|
-
raise UnprocessableEntityError(
|
|
1001
|
-
typing.cast(
|
|
1002
|
-
HttpValidationError,
|
|
1003
|
-
construct_type(
|
|
1004
|
-
type_=HttpValidationError, # type: ignore
|
|
1005
|
-
object_=_response.json(),
|
|
1006
|
-
),
|
|
1007
|
-
)
|
|
1008
|
-
)
|
|
1009
|
-
_response_json = _response.json()
|
|
1010
|
-
except JSONDecodeError:
|
|
1011
|
-
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1012
|
-
raise ApiError(status_code=_response.status_code, body=_response_json)
|
letta_client/tools/client.py
CHANGED
|
@@ -245,6 +245,69 @@ class ToolsClient:
|
|
|
245
245
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
246
246
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
247
247
|
|
|
248
|
+
def count(
|
|
249
|
+
self,
|
|
250
|
+
*,
|
|
251
|
+
include_base_tools: typing.Optional[bool] = None,
|
|
252
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
253
|
+
) -> int:
|
|
254
|
+
"""
|
|
255
|
+
Get a count of all tools available to agents belonging to the org of the user.
|
|
256
|
+
|
|
257
|
+
Parameters
|
|
258
|
+
----------
|
|
259
|
+
include_base_tools : typing.Optional[bool]
|
|
260
|
+
Include built-in Letta tools in the count
|
|
261
|
+
|
|
262
|
+
request_options : typing.Optional[RequestOptions]
|
|
263
|
+
Request-specific configuration.
|
|
264
|
+
|
|
265
|
+
Returns
|
|
266
|
+
-------
|
|
267
|
+
int
|
|
268
|
+
Successful Response
|
|
269
|
+
|
|
270
|
+
Examples
|
|
271
|
+
--------
|
|
272
|
+
from letta_client import Letta
|
|
273
|
+
|
|
274
|
+
client = Letta(
|
|
275
|
+
token="YOUR_TOKEN",
|
|
276
|
+
)
|
|
277
|
+
client.tools.count()
|
|
278
|
+
"""
|
|
279
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
280
|
+
"v1/tools/count",
|
|
281
|
+
method="GET",
|
|
282
|
+
params={
|
|
283
|
+
"include_base_tools": include_base_tools,
|
|
284
|
+
},
|
|
285
|
+
request_options=request_options,
|
|
286
|
+
)
|
|
287
|
+
try:
|
|
288
|
+
if 200 <= _response.status_code < 300:
|
|
289
|
+
return typing.cast(
|
|
290
|
+
int,
|
|
291
|
+
construct_type(
|
|
292
|
+
type_=int, # type: ignore
|
|
293
|
+
object_=_response.json(),
|
|
294
|
+
),
|
|
295
|
+
)
|
|
296
|
+
if _response.status_code == 422:
|
|
297
|
+
raise UnprocessableEntityError(
|
|
298
|
+
typing.cast(
|
|
299
|
+
HttpValidationError,
|
|
300
|
+
construct_type(
|
|
301
|
+
type_=HttpValidationError, # type: ignore
|
|
302
|
+
object_=_response.json(),
|
|
303
|
+
),
|
|
304
|
+
)
|
|
305
|
+
)
|
|
306
|
+
_response_json = _response.json()
|
|
307
|
+
except JSONDecodeError:
|
|
308
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
309
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
310
|
+
|
|
248
311
|
def list(
|
|
249
312
|
self,
|
|
250
313
|
*,
|
|
@@ -507,58 +570,6 @@ class ToolsClient:
|
|
|
507
570
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
508
571
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
509
572
|
|
|
510
|
-
def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
|
|
511
|
-
"""
|
|
512
|
-
Get a count of all tools available to agents belonging to the org of the user
|
|
513
|
-
|
|
514
|
-
Parameters
|
|
515
|
-
----------
|
|
516
|
-
request_options : typing.Optional[RequestOptions]
|
|
517
|
-
Request-specific configuration.
|
|
518
|
-
|
|
519
|
-
Returns
|
|
520
|
-
-------
|
|
521
|
-
int
|
|
522
|
-
Successful Response
|
|
523
|
-
|
|
524
|
-
Examples
|
|
525
|
-
--------
|
|
526
|
-
from letta_client import Letta
|
|
527
|
-
|
|
528
|
-
client = Letta(
|
|
529
|
-
token="YOUR_TOKEN",
|
|
530
|
-
)
|
|
531
|
-
client.tools.count()
|
|
532
|
-
"""
|
|
533
|
-
_response = self._client_wrapper.httpx_client.request(
|
|
534
|
-
"v1/tools/count",
|
|
535
|
-
method="GET",
|
|
536
|
-
request_options=request_options,
|
|
537
|
-
)
|
|
538
|
-
try:
|
|
539
|
-
if 200 <= _response.status_code < 300:
|
|
540
|
-
return typing.cast(
|
|
541
|
-
int,
|
|
542
|
-
construct_type(
|
|
543
|
-
type_=int, # type: ignore
|
|
544
|
-
object_=_response.json(),
|
|
545
|
-
),
|
|
546
|
-
)
|
|
547
|
-
if _response.status_code == 422:
|
|
548
|
-
raise UnprocessableEntityError(
|
|
549
|
-
typing.cast(
|
|
550
|
-
HttpValidationError,
|
|
551
|
-
construct_type(
|
|
552
|
-
type_=HttpValidationError, # type: ignore
|
|
553
|
-
object_=_response.json(),
|
|
554
|
-
),
|
|
555
|
-
)
|
|
556
|
-
)
|
|
557
|
-
_response_json = _response.json()
|
|
558
|
-
except JSONDecodeError:
|
|
559
|
-
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
560
|
-
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
561
|
-
|
|
562
573
|
def upsert_base_tools(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[Tool]:
|
|
563
574
|
"""
|
|
564
575
|
Upsert base tools
|
|
@@ -1433,6 +1444,77 @@ class AsyncToolsClient:
|
|
|
1433
1444
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1434
1445
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
1435
1446
|
|
|
1447
|
+
async def count(
|
|
1448
|
+
self,
|
|
1449
|
+
*,
|
|
1450
|
+
include_base_tools: typing.Optional[bool] = None,
|
|
1451
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1452
|
+
) -> int:
|
|
1453
|
+
"""
|
|
1454
|
+
Get a count of all tools available to agents belonging to the org of the user.
|
|
1455
|
+
|
|
1456
|
+
Parameters
|
|
1457
|
+
----------
|
|
1458
|
+
include_base_tools : typing.Optional[bool]
|
|
1459
|
+
Include built-in Letta tools in the count
|
|
1460
|
+
|
|
1461
|
+
request_options : typing.Optional[RequestOptions]
|
|
1462
|
+
Request-specific configuration.
|
|
1463
|
+
|
|
1464
|
+
Returns
|
|
1465
|
+
-------
|
|
1466
|
+
int
|
|
1467
|
+
Successful Response
|
|
1468
|
+
|
|
1469
|
+
Examples
|
|
1470
|
+
--------
|
|
1471
|
+
import asyncio
|
|
1472
|
+
|
|
1473
|
+
from letta_client import AsyncLetta
|
|
1474
|
+
|
|
1475
|
+
client = AsyncLetta(
|
|
1476
|
+
token="YOUR_TOKEN",
|
|
1477
|
+
)
|
|
1478
|
+
|
|
1479
|
+
|
|
1480
|
+
async def main() -> None:
|
|
1481
|
+
await client.tools.count()
|
|
1482
|
+
|
|
1483
|
+
|
|
1484
|
+
asyncio.run(main())
|
|
1485
|
+
"""
|
|
1486
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1487
|
+
"v1/tools/count",
|
|
1488
|
+
method="GET",
|
|
1489
|
+
params={
|
|
1490
|
+
"include_base_tools": include_base_tools,
|
|
1491
|
+
},
|
|
1492
|
+
request_options=request_options,
|
|
1493
|
+
)
|
|
1494
|
+
try:
|
|
1495
|
+
if 200 <= _response.status_code < 300:
|
|
1496
|
+
return typing.cast(
|
|
1497
|
+
int,
|
|
1498
|
+
construct_type(
|
|
1499
|
+
type_=int, # type: ignore
|
|
1500
|
+
object_=_response.json(),
|
|
1501
|
+
),
|
|
1502
|
+
)
|
|
1503
|
+
if _response.status_code == 422:
|
|
1504
|
+
raise UnprocessableEntityError(
|
|
1505
|
+
typing.cast(
|
|
1506
|
+
HttpValidationError,
|
|
1507
|
+
construct_type(
|
|
1508
|
+
type_=HttpValidationError, # type: ignore
|
|
1509
|
+
object_=_response.json(),
|
|
1510
|
+
),
|
|
1511
|
+
)
|
|
1512
|
+
)
|
|
1513
|
+
_response_json = _response.json()
|
|
1514
|
+
except JSONDecodeError:
|
|
1515
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1516
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
1517
|
+
|
|
1436
1518
|
async def list(
|
|
1437
1519
|
self,
|
|
1438
1520
|
*,
|
|
@@ -1719,66 +1801,6 @@ class AsyncToolsClient:
|
|
|
1719
1801
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1720
1802
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
1721
1803
|
|
|
1722
|
-
async def count(self, *, request_options: typing.Optional[RequestOptions] = None) -> int:
|
|
1723
|
-
"""
|
|
1724
|
-
Get a count of all tools available to agents belonging to the org of the user
|
|
1725
|
-
|
|
1726
|
-
Parameters
|
|
1727
|
-
----------
|
|
1728
|
-
request_options : typing.Optional[RequestOptions]
|
|
1729
|
-
Request-specific configuration.
|
|
1730
|
-
|
|
1731
|
-
Returns
|
|
1732
|
-
-------
|
|
1733
|
-
int
|
|
1734
|
-
Successful Response
|
|
1735
|
-
|
|
1736
|
-
Examples
|
|
1737
|
-
--------
|
|
1738
|
-
import asyncio
|
|
1739
|
-
|
|
1740
|
-
from letta_client import AsyncLetta
|
|
1741
|
-
|
|
1742
|
-
client = AsyncLetta(
|
|
1743
|
-
token="YOUR_TOKEN",
|
|
1744
|
-
)
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
async def main() -> None:
|
|
1748
|
-
await client.tools.count()
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
asyncio.run(main())
|
|
1752
|
-
"""
|
|
1753
|
-
_response = await self._client_wrapper.httpx_client.request(
|
|
1754
|
-
"v1/tools/count",
|
|
1755
|
-
method="GET",
|
|
1756
|
-
request_options=request_options,
|
|
1757
|
-
)
|
|
1758
|
-
try:
|
|
1759
|
-
if 200 <= _response.status_code < 300:
|
|
1760
|
-
return typing.cast(
|
|
1761
|
-
int,
|
|
1762
|
-
construct_type(
|
|
1763
|
-
type_=int, # type: ignore
|
|
1764
|
-
object_=_response.json(),
|
|
1765
|
-
),
|
|
1766
|
-
)
|
|
1767
|
-
if _response.status_code == 422:
|
|
1768
|
-
raise UnprocessableEntityError(
|
|
1769
|
-
typing.cast(
|
|
1770
|
-
HttpValidationError,
|
|
1771
|
-
construct_type(
|
|
1772
|
-
type_=HttpValidationError, # type: ignore
|
|
1773
|
-
object_=_response.json(),
|
|
1774
|
-
),
|
|
1775
|
-
)
|
|
1776
|
-
)
|
|
1777
|
-
_response_json = _response.json()
|
|
1778
|
-
except JSONDecodeError:
|
|
1779
|
-
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1780
|
-
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
1781
|
-
|
|
1782
1804
|
async def upsert_base_tools(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[Tool]:
|
|
1783
1805
|
"""
|
|
1784
1806
|
Upsert base tools
|
|
@@ -13,7 +13,7 @@ class LocalSandboxConfig(UncheckedBaseModel):
|
|
|
13
13
|
Directory for the sandbox environment.
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
force_create_venv: typing.Optional[bool] = pydantic.Field(default=None)
|
|
17
17
|
"""
|
|
18
18
|
Whether or not to use the venv, or run directly in the same run loop.
|
|
19
19
|
"""
|
|
@@ -25,7 +25,7 @@ class LocalSandboxConfig(UncheckedBaseModel):
|
|
|
25
25
|
|
|
26
26
|
pip_requirements: typing.Optional[typing.List[PipRequirement]] = pydantic.Field(default=None)
|
|
27
27
|
"""
|
|
28
|
-
List of pip packages to install with mandatory name and optional version following semantic versioning. This only is considered when
|
|
28
|
+
List of pip packages to install with mandatory name and optional version following semantic versioning. This only is considered when force_create_venv is True.
|
|
29
29
|
"""
|
|
30
30
|
|
|
31
31
|
if IS_PYDANTIC_V2:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
letta_client/__init__.py,sha256=
|
|
1
|
+
letta_client/__init__.py,sha256=rsGorrng28XqthYUiWILPS8dqaER3cXAfoHG0bygjYw,16395
|
|
2
2
|
letta_client/agents/__init__.py,sha256=C46uidjw-_nowv5mqI7lsXUKvoW49utJHL_k-F7HIyY,1616
|
|
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
|
|
@@ -42,7 +42,7 @@ letta_client/agents/types/create_agent_request_response_format.py,sha256=1GUV3rF
|
|
|
42
42
|
letta_client/agents/types/create_agent_request_tool_rules_item.py,sha256=L3FNsFTG9kVmuPbQhbCKNg3H2E5bB2Rgp92gWmGd-LM,689
|
|
43
43
|
letta_client/agents/types/update_agent_response_format.py,sha256=oCoGofTKP7no6gNbDV6nJOpF8IlIplr1iPn5_7BA0cU,402
|
|
44
44
|
letta_client/agents/types/update_agent_tool_rules_item.py,sha256=k9MmcVPsK-EGl8XlT3JQwdlBNLgpGw528jmi8fCFS7g,682
|
|
45
|
-
letta_client/base_client.py,sha256=
|
|
45
|
+
letta_client/base_client.py,sha256=nJ03_MNI8K9S356AgqrTMSsm6cqii7FxJyOkHdQ09JA,10079
|
|
46
46
|
letta_client/batches/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
47
47
|
letta_client/batches/client.py,sha256=AyfQpG9d856XS9BYHjxCIwu08ye03KQjuwA-jd-9kWQ,18774
|
|
48
48
|
letta_client/blocks/__init__.py,sha256=c6SGOs9_YGdydYAzhe5TUiaXq52rpWT1mNMcke8qGTQ,108
|
|
@@ -61,7 +61,7 @@ letta_client/client_side_access_tokens/types/client_side_access_tokens_create_re
|
|
|
61
61
|
letta_client/client_side_access_tokens/types/client_side_access_tokens_create_response_policy_data_item_access_item.py,sha256=R-H25IpNp9feSrW8Yj3h9O3UTMVvFniQJElogKxLuoE,254
|
|
62
62
|
letta_client/core/__init__.py,sha256=OKbX2aCZXgHCDUsCouqv-OiX32xA6eFFCKIUH9M5Vzk,1591
|
|
63
63
|
letta_client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
|
64
|
-
letta_client/core/client_wrapper.py,sha256=
|
|
64
|
+
letta_client/core/client_wrapper.py,sha256=KGzHEuOuf1jvkHQycDJkO5UpOkN_l07clX2E3chPCjY,1998
|
|
65
65
|
letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
|
66
66
|
letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
|
|
67
67
|
letta_client/core/http_client.py,sha256=Z77OIxIbL4OAB2IDqjRq_sYa5yNYAWfmdhdCSSvh6Y4,19552
|
|
@@ -72,8 +72,10 @@ letta_client/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3V
|
|
|
72
72
|
letta_client/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHgmzaxpcg,1681
|
|
73
73
|
letta_client/core/serialization.py,sha256=D9h_t-RQON3-CHWs1C4ESY9B-Yd5d-l5lnTLb_X896g,9601
|
|
74
74
|
letta_client/core/unchecked_base_model.py,sha256=zliEPgLnK9yQ1dZ0mHP6agQ7H0bTZk8AvX6VC1r9oPQ,10754
|
|
75
|
+
letta_client/embedding_models/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
76
|
+
letta_client/embedding_models/client.py,sha256=3D_iX5yokSmW6QkHzHT0SRuZtv2ZVQ9s0hdlKrFbk9k,3489
|
|
75
77
|
letta_client/embeddings/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
76
|
-
letta_client/embeddings/client.py,sha256
|
|
78
|
+
letta_client/embeddings/client.py,sha256=II4xZQMLifdmBDypCYwrulsLJLKnkY_uCCcdHkMhCbk,2773
|
|
77
79
|
letta_client/environment.py,sha256=91gYLF9bT4-hTPQ9dcPfmub4LgEl-T4a5kW7NXzRIJU,198
|
|
78
80
|
letta_client/errors/__init__.py,sha256=sf5qYBpvBUchcwEIvulM7AYVGJkiVxknC9OX6TOpOdo,433
|
|
79
81
|
letta_client/errors/bad_request_error.py,sha256=_EbO8mWqN9kFZPvIap8qa1lL_EWkRcsZe1HKV9GDWJY,264
|
|
@@ -119,7 +121,7 @@ letta_client/runs/steps/client.py,sha256=f916x0x6FH7_WzBSl6uw03l-j-QMzr7HzOMNsvC
|
|
|
119
121
|
letta_client/runs/usage/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
120
122
|
letta_client/runs/usage/client.py,sha256=ea7e0R-Lv3VtbkJ-JC4RgYSr4TI2OjD31XeNLiDmUUg,4666
|
|
121
123
|
letta_client/sources/__init__.py,sha256=kswgCv4UdkSVk1Y4tsMM1HadOwvhh_Fr96VTSMV4Umc,128
|
|
122
|
-
letta_client/sources/client.py,sha256=
|
|
124
|
+
letta_client/sources/client.py,sha256=ozZYAKtO44VZoKIvex26b8nmkMzsvDMD5266Sw_gOyU,32579
|
|
123
125
|
letta_client/sources/files/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
124
126
|
letta_client/sources/files/client.py,sha256=R-9zHK_wWtvW-2K7erQVVh9rR7a5JC4zxmTK3rrWJoU,13289
|
|
125
127
|
letta_client/sources/passages/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
@@ -138,7 +140,7 @@ letta_client/templates/types/__init__.py,sha256=dAr_dEh0BdwUxAcV1sJ9RM07Z8nCv4dC
|
|
|
138
140
|
letta_client/templates/types/templates_list_response.py,sha256=HYloMVzk086c6fFGRYZz-Ozc_Yylozp2aPpweHS5uXI,866
|
|
139
141
|
letta_client/templates/types/templates_list_response_templates_item.py,sha256=yyJq8wEOb2XIg99uhRMKoy2qD2CbuvI_5FAspwYWnfI,593
|
|
140
142
|
letta_client/tools/__init__.py,sha256=XsuAkxHDA-Z98gLNNW_fiEwFP3fP4XQipflrK2bHl8k,353
|
|
141
|
-
letta_client/tools/client.py,sha256=
|
|
143
|
+
letta_client/tools/client.py,sha256=hB-Of9ejHugQ1VAVv6bbeH_jSy02TIFeIrXeyQJcsXA,82476
|
|
142
144
|
letta_client/tools/types/__init__.py,sha256=R11LYBi6lxkud_DRyaHFUHtlnbfnEI93-SEo7FL4tzs,478
|
|
143
145
|
letta_client/tools/types/add_mcp_server_request.py,sha256=EieZjfOT95sjkpxXdqy7glpxF4J4J3fm6tlaHFnYk84,265
|
|
144
146
|
letta_client/tools/types/add_mcp_server_response_item.py,sha256=TWdsKqGb1INhYtpGnAckz0Pw4nZShumSp4pfocRfxCA,270
|
|
@@ -273,7 +275,7 @@ letta_client/types/letta_usage_statistics.py,sha256=k6V72J2TEPd-RQBuUQxF3oylrAMc
|
|
|
273
275
|
letta_client/types/llm_config.py,sha256=Sg1W1Jx1Ubi368RIzEhcS0wJUsFddBUq-HJ43DcBz3s,3689
|
|
274
276
|
letta_client/types/llm_config_model_endpoint_type.py,sha256=HOSM5kIZDCNAVCWmASvAk52K819plqGlD66yKQ1xFkI,620
|
|
275
277
|
letta_client/types/llm_config_reasoning_effort.py,sha256=AHL2nI5aeTfPhijnhaL3aiP8EoJhy_Wdupi2pyMm4sA,173
|
|
276
|
-
letta_client/types/local_sandbox_config.py,sha256=
|
|
278
|
+
letta_client/types/local_sandbox_config.py,sha256=gJNyEJDgyMDEP2798vbXZ5UcRu-yc_ge6XuppwtMLC0,1405
|
|
277
279
|
letta_client/types/manager_type.py,sha256=GyGqWAihoS81T4RJtOcVSbiOSy-v1cpCWfRB_qU46Y0,197
|
|
278
280
|
letta_client/types/max_count_per_step_tool_rule.py,sha256=sUhnoL1jolz2sygrmCuF4KfaDUGlBui-FGCXR5762Nc,1056
|
|
279
281
|
letta_client/types/max_count_per_step_tool_rule_schema.py,sha256=1Zq4vblRTqFycqk7cBQ3gVCUy-MPWvE_tNXV5Fz0VTs,618
|
|
@@ -375,6 +377,6 @@ letta_client/voice/__init__.py,sha256=7hX85553PiRMtIMM12a0DSoFzsglNiUziYR2ekS84Q
|
|
|
375
377
|
letta_client/voice/client.py,sha256=STjswa5oOLoP59QwTJvQwi73kgn0UzKOaXc2CsTRI4k,6912
|
|
376
378
|
letta_client/voice/types/__init__.py,sha256=FRc3iKRTONE4N8Lf1IqvnqWZ2kXdrFFvkL7PxVcR8Ew,212
|
|
377
379
|
letta_client/voice/types/create_voice_chat_completions_request_body.py,sha256=ZLfKgNK1T6IAwLEvaBVFfy7jEAoPUXP28n-nfmHkklc,391
|
|
378
|
-
letta_client-0.1.
|
|
379
|
-
letta_client-0.1.
|
|
380
|
-
letta_client-0.1.
|
|
380
|
+
letta_client-0.1.129.dist-info/METADATA,sha256=_tz95T8DIxJf_ET2VHObsv6C2DMm4nbM7a7LZ9sbCBw,5042
|
|
381
|
+
letta_client-0.1.129.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
|
382
|
+
letta_client-0.1.129.dist-info/RECORD,,
|
|
File without changes
|