letta-client 1.0.0a10__py3-none-any.whl → 1.0.0a11__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/_client.py +5 -1
- letta_client/_streaming.py +40 -2
- letta_client/_version.py +1 -1
- letta_client/resources/agents/blocks.py +15 -17
- letta_client/resources/agents/files.py +10 -13
- letta_client/resources/agents/folders.py +10 -13
- letta_client/resources/agents/messages.py +14 -4
- letta_client/resources/agents/tools.py +10 -13
- letta_client/resources/archives.py +10 -12
- letta_client/resources/batches/batches.py +10 -12
- letta_client/resources/batches/messages.py +11 -14
- letta_client/resources/blocks/blocks.py +19 -22
- letta_client/resources/folders/agents.py +10 -13
- letta_client/resources/folders/files.py +9 -12
- letta_client/resources/folders/folders.py +10 -12
- letta_client/resources/identities/blocks.py +7 -7
- letta_client/resources/identities/identities.py +10 -12
- letta_client/resources/runs/runs.py +11 -13
- letta_client/resources/tags.py +10 -13
- letta_client/resources/tools.py +10 -12
- letta_client/types/__init__.py +7 -4
- letta_client/types/agents/__init__.py +2 -3
- letta_client/types/agents/file_list_response.py +14 -3
- letta_client/types/agents/folder_list_response.py +7 -3
- letta_client/types/agents/letta_streaming_response.py +70 -0
- letta_client/types/agents/tool_list_response.py +10 -0
- letta_client/types/archive_list_response.py +10 -0
- letta_client/types/batch_list_response.py +10 -0
- letta_client/types/batches/__init__.py +1 -0
- letta_client/types/batches/message_list_response.py +12 -0
- letta_client/types/{block_list_response.py → block_response.py} +5 -5
- letta_client/types/folder_list_response.py +10 -0
- letta_client/types/folders/agent_list_response.py +2 -1
- letta_client/types/folders/file_list_response.py +7 -4
- letta_client/types/identities/__init__.py +0 -1
- letta_client/types/identity_list_response.py +10 -0
- letta_client/types/run_list_response.py +10 -0
- letta_client/types/tag_list_response.py +2 -1
- letta_client/types/tool.py +25 -25
- letta_client/types/tool_list_response.py +10 -0
- {letta_client-1.0.0a10.dist-info → letta_client-1.0.0a11.dist-info}/METADATA +1 -1
- {letta_client-1.0.0a10.dist-info → letta_client-1.0.0a11.dist-info}/RECORD +44 -42
- letta_client/types/agents/block_list_response.py +0 -63
- letta_client/types/agents/block_modify_response.py +0 -63
- letta_client/types/agents/block_retrieve_response.py +0 -63
- letta_client/types/block_create_response.py +0 -63
- letta_client/types/block_modify_response.py +0 -63
- letta_client/types/block_retrieve_response.py +0 -63
- letta_client/types/identities/block_list_response.py +0 -63
- {letta_client-1.0.0a10.dist-info → letta_client-1.0.0a11.dist-info}/WHEEL +0 -0
- {letta_client-1.0.0a10.dist-info → letta_client-1.0.0a11.dist-info}/licenses/LICENSE +0 -0
letta_client/_client.py
CHANGED
|
@@ -64,7 +64,7 @@ __all__ = [
|
|
|
64
64
|
]
|
|
65
65
|
|
|
66
66
|
ENVIRONMENTS: Dict[str, str] = {
|
|
67
|
-
"cloud": "https://
|
|
67
|
+
"cloud": "https://api.letta.com",
|
|
68
68
|
"local": "http://localhost:8283",
|
|
69
69
|
}
|
|
70
70
|
|
|
@@ -164,6 +164,8 @@ class Letta(SyncAPIClient):
|
|
|
164
164
|
_strict_response_validation=_strict_response_validation,
|
|
165
165
|
)
|
|
166
166
|
|
|
167
|
+
self._default_stream_cls = Stream
|
|
168
|
+
|
|
167
169
|
self.archives = archives.ArchivesResource(self)
|
|
168
170
|
self.tools = tools.ToolsResource(self)
|
|
169
171
|
self.folders = folders.FoldersResource(self)
|
|
@@ -401,6 +403,8 @@ class AsyncLetta(AsyncAPIClient):
|
|
|
401
403
|
_strict_response_validation=_strict_response_validation,
|
|
402
404
|
)
|
|
403
405
|
|
|
406
|
+
self._default_stream_cls = AsyncStream
|
|
407
|
+
|
|
404
408
|
self.archives = archives.AsyncArchivesResource(self)
|
|
405
409
|
self.tools = tools.AsyncToolsResource(self)
|
|
406
410
|
self.folders = folders.AsyncFoldersResource(self)
|
letta_client/_streaming.py
CHANGED
|
@@ -55,7 +55,26 @@ class Stream(Generic[_T]):
|
|
|
55
55
|
iterator = self._iter_events()
|
|
56
56
|
|
|
57
57
|
for sse in iterator:
|
|
58
|
-
|
|
58
|
+
if sse.data.startswith("[DONE]"):
|
|
59
|
+
break
|
|
60
|
+
|
|
61
|
+
if sse.event == "error":
|
|
62
|
+
body = sse.data
|
|
63
|
+
|
|
64
|
+
try:
|
|
65
|
+
body = sse.json()
|
|
66
|
+
err_msg = f"{body}"
|
|
67
|
+
except Exception:
|
|
68
|
+
err_msg = sse.data or f"Error code: {response.status_code}"
|
|
69
|
+
|
|
70
|
+
raise self._client._make_status_error(
|
|
71
|
+
err_msg,
|
|
72
|
+
body=body,
|
|
73
|
+
response=self.response,
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
if sse.event is None:
|
|
77
|
+
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
59
78
|
|
|
60
79
|
# Ensure the entire stream is consumed
|
|
61
80
|
for _sse in iterator:
|
|
@@ -119,7 +138,26 @@ class AsyncStream(Generic[_T]):
|
|
|
119
138
|
iterator = self._iter_events()
|
|
120
139
|
|
|
121
140
|
async for sse in iterator:
|
|
122
|
-
|
|
141
|
+
if sse.data.startswith("[DONE]"):
|
|
142
|
+
break
|
|
143
|
+
|
|
144
|
+
if sse.event == "error":
|
|
145
|
+
body = sse.data
|
|
146
|
+
|
|
147
|
+
try:
|
|
148
|
+
body = sse.json()
|
|
149
|
+
err_msg = f"{body}"
|
|
150
|
+
except Exception:
|
|
151
|
+
err_msg = sse.data or f"Error code: {response.status_code}"
|
|
152
|
+
|
|
153
|
+
raise self._client._make_status_error(
|
|
154
|
+
err_msg,
|
|
155
|
+
body=body,
|
|
156
|
+
response=self.response,
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
if sse.event is None:
|
|
160
|
+
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
123
161
|
|
|
124
162
|
# Ensure the entire stream is consumed
|
|
125
163
|
async for _sse in iterator:
|
letta_client/_version.py
CHANGED
|
@@ -21,9 +21,7 @@ from ...pagination import SyncArrayPage, AsyncArrayPage
|
|
|
21
21
|
from ..._base_client import AsyncPaginator, make_request_options
|
|
22
22
|
from ...types.agents import block_list_params, block_modify_params
|
|
23
23
|
from ...types.agent_state import AgentState
|
|
24
|
-
from ...types.
|
|
25
|
-
from ...types.agents.block_modify_response import BlockModifyResponse
|
|
26
|
-
from ...types.agents.block_retrieve_response import BlockRetrieveResponse
|
|
24
|
+
from ...types.block_response import BlockResponse
|
|
27
25
|
|
|
28
26
|
__all__ = ["BlocksResource", "AsyncBlocksResource"]
|
|
29
27
|
|
|
@@ -59,7 +57,7 @@ class BlocksResource(SyncAPIResource):
|
|
|
59
57
|
extra_query: Query | None = None,
|
|
60
58
|
extra_body: Body | None = None,
|
|
61
59
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
62
|
-
) ->
|
|
60
|
+
) -> BlockResponse:
|
|
63
61
|
"""
|
|
64
62
|
Retrieve a core memory block from an agent.
|
|
65
63
|
|
|
@@ -83,7 +81,7 @@ class BlocksResource(SyncAPIResource):
|
|
|
83
81
|
options=make_request_options(
|
|
84
82
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
85
83
|
),
|
|
86
|
-
cast_to=
|
|
84
|
+
cast_to=BlockResponse,
|
|
87
85
|
)
|
|
88
86
|
|
|
89
87
|
def list(
|
|
@@ -101,7 +99,7 @@ class BlocksResource(SyncAPIResource):
|
|
|
101
99
|
extra_query: Query | None = None,
|
|
102
100
|
extra_body: Body | None = None,
|
|
103
101
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
104
|
-
) -> SyncArrayPage[
|
|
102
|
+
) -> SyncArrayPage[BlockResponse]:
|
|
105
103
|
"""
|
|
106
104
|
Retrieve the core memory blocks of a specific agent.
|
|
107
105
|
|
|
@@ -133,7 +131,7 @@ class BlocksResource(SyncAPIResource):
|
|
|
133
131
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
134
132
|
return self._get_api_list(
|
|
135
133
|
f"/v1/agents/{agent_id}/core-memory/blocks",
|
|
136
|
-
page=SyncArrayPage[
|
|
134
|
+
page=SyncArrayPage[BlockResponse],
|
|
137
135
|
options=make_request_options(
|
|
138
136
|
extra_headers=extra_headers,
|
|
139
137
|
extra_query=extra_query,
|
|
@@ -150,7 +148,7 @@ class BlocksResource(SyncAPIResource):
|
|
|
150
148
|
block_list_params.BlockListParams,
|
|
151
149
|
),
|
|
152
150
|
),
|
|
153
|
-
model=
|
|
151
|
+
model=BlockResponse,
|
|
154
152
|
)
|
|
155
153
|
|
|
156
154
|
def attach(
|
|
@@ -259,7 +257,7 @@ class BlocksResource(SyncAPIResource):
|
|
|
259
257
|
extra_query: Query | None = None,
|
|
260
258
|
extra_body: Body | None = None,
|
|
261
259
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
262
|
-
) ->
|
|
260
|
+
) -> BlockResponse:
|
|
263
261
|
"""
|
|
264
262
|
Updates a core memory block of an agent.
|
|
265
263
|
|
|
@@ -333,7 +331,7 @@ class BlocksResource(SyncAPIResource):
|
|
|
333
331
|
options=make_request_options(
|
|
334
332
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
335
333
|
),
|
|
336
|
-
cast_to=
|
|
334
|
+
cast_to=BlockResponse,
|
|
337
335
|
)
|
|
338
336
|
|
|
339
337
|
|
|
@@ -368,7 +366,7 @@ class AsyncBlocksResource(AsyncAPIResource):
|
|
|
368
366
|
extra_query: Query | None = None,
|
|
369
367
|
extra_body: Body | None = None,
|
|
370
368
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
371
|
-
) ->
|
|
369
|
+
) -> BlockResponse:
|
|
372
370
|
"""
|
|
373
371
|
Retrieve a core memory block from an agent.
|
|
374
372
|
|
|
@@ -392,7 +390,7 @@ class AsyncBlocksResource(AsyncAPIResource):
|
|
|
392
390
|
options=make_request_options(
|
|
393
391
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
394
392
|
),
|
|
395
|
-
cast_to=
|
|
393
|
+
cast_to=BlockResponse,
|
|
396
394
|
)
|
|
397
395
|
|
|
398
396
|
def list(
|
|
@@ -410,7 +408,7 @@ class AsyncBlocksResource(AsyncAPIResource):
|
|
|
410
408
|
extra_query: Query | None = None,
|
|
411
409
|
extra_body: Body | None = None,
|
|
412
410
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
413
|
-
) -> AsyncPaginator[
|
|
411
|
+
) -> AsyncPaginator[BlockResponse, AsyncArrayPage[BlockResponse]]:
|
|
414
412
|
"""
|
|
415
413
|
Retrieve the core memory blocks of a specific agent.
|
|
416
414
|
|
|
@@ -442,7 +440,7 @@ class AsyncBlocksResource(AsyncAPIResource):
|
|
|
442
440
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
443
441
|
return self._get_api_list(
|
|
444
442
|
f"/v1/agents/{agent_id}/core-memory/blocks",
|
|
445
|
-
page=AsyncArrayPage[
|
|
443
|
+
page=AsyncArrayPage[BlockResponse],
|
|
446
444
|
options=make_request_options(
|
|
447
445
|
extra_headers=extra_headers,
|
|
448
446
|
extra_query=extra_query,
|
|
@@ -459,7 +457,7 @@ class AsyncBlocksResource(AsyncAPIResource):
|
|
|
459
457
|
block_list_params.BlockListParams,
|
|
460
458
|
),
|
|
461
459
|
),
|
|
462
|
-
model=
|
|
460
|
+
model=BlockResponse,
|
|
463
461
|
)
|
|
464
462
|
|
|
465
463
|
async def attach(
|
|
@@ -568,7 +566,7 @@ class AsyncBlocksResource(AsyncAPIResource):
|
|
|
568
566
|
extra_query: Query | None = None,
|
|
569
567
|
extra_body: Body | None = None,
|
|
570
568
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
571
|
-
) ->
|
|
569
|
+
) -> BlockResponse:
|
|
572
570
|
"""
|
|
573
571
|
Updates a core memory block of an agent.
|
|
574
572
|
|
|
@@ -642,7 +640,7 @@ class AsyncBlocksResource(AsyncAPIResource):
|
|
|
642
640
|
options=make_request_options(
|
|
643
641
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
644
642
|
),
|
|
645
|
-
cast_to=
|
|
643
|
+
cast_to=BlockResponse,
|
|
646
644
|
)
|
|
647
645
|
|
|
648
646
|
|
|
@@ -8,7 +8,7 @@ from typing_extensions import Literal
|
|
|
8
8
|
import httpx
|
|
9
9
|
|
|
10
10
|
from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
|
|
11
|
-
from ..._utils import maybe_transform
|
|
11
|
+
from ..._utils import maybe_transform, async_maybe_transform
|
|
12
12
|
from ..._compat import cached_property
|
|
13
13
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
14
14
|
from ..._response import (
|
|
@@ -17,8 +17,7 @@ from ..._response import (
|
|
|
17
17
|
async_to_raw_response_wrapper,
|
|
18
18
|
async_to_streamed_response_wrapper,
|
|
19
19
|
)
|
|
20
|
-
from ...
|
|
21
|
-
from ..._base_client import AsyncPaginator, make_request_options
|
|
20
|
+
from ..._base_client import make_request_options
|
|
22
21
|
from ...types.agents import file_list_params
|
|
23
22
|
from ...types.agents.file_list_response import FileListResponse
|
|
24
23
|
from ...types.agents.file_open_response import FileOpenResponse
|
|
@@ -64,7 +63,7 @@ class FilesResource(SyncAPIResource):
|
|
|
64
63
|
extra_query: Query | None = None,
|
|
65
64
|
extra_body: Body | None = None,
|
|
66
65
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
67
|
-
) ->
|
|
66
|
+
) -> FileListResponse:
|
|
68
67
|
"""
|
|
69
68
|
Get the files attached to an agent with their open/closed status.
|
|
70
69
|
|
|
@@ -98,9 +97,8 @@ class FilesResource(SyncAPIResource):
|
|
|
98
97
|
"""
|
|
99
98
|
if not agent_id:
|
|
100
99
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
101
|
-
return self.
|
|
100
|
+
return self._get(
|
|
102
101
|
f"/v1/agents/{agent_id}/files",
|
|
103
|
-
page=SyncNextFilesPage[FileListResponse],
|
|
104
102
|
options=make_request_options(
|
|
105
103
|
extra_headers=extra_headers,
|
|
106
104
|
extra_query=extra_query,
|
|
@@ -119,7 +117,7 @@ class FilesResource(SyncAPIResource):
|
|
|
119
117
|
file_list_params.FileListParams,
|
|
120
118
|
),
|
|
121
119
|
),
|
|
122
|
-
|
|
120
|
+
cast_to=FileListResponse,
|
|
123
121
|
)
|
|
124
122
|
|
|
125
123
|
def close(
|
|
@@ -268,7 +266,7 @@ class AsyncFilesResource(AsyncAPIResource):
|
|
|
268
266
|
"""
|
|
269
267
|
return AsyncFilesResourceWithStreamingResponse(self)
|
|
270
268
|
|
|
271
|
-
def list(
|
|
269
|
+
async def list(
|
|
272
270
|
self,
|
|
273
271
|
agent_id: str,
|
|
274
272
|
*,
|
|
@@ -285,7 +283,7 @@ class AsyncFilesResource(AsyncAPIResource):
|
|
|
285
283
|
extra_query: Query | None = None,
|
|
286
284
|
extra_body: Body | None = None,
|
|
287
285
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
288
|
-
) ->
|
|
286
|
+
) -> FileListResponse:
|
|
289
287
|
"""
|
|
290
288
|
Get the files attached to an agent with their open/closed status.
|
|
291
289
|
|
|
@@ -319,15 +317,14 @@ class AsyncFilesResource(AsyncAPIResource):
|
|
|
319
317
|
"""
|
|
320
318
|
if not agent_id:
|
|
321
319
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
322
|
-
return self.
|
|
320
|
+
return await self._get(
|
|
323
321
|
f"/v1/agents/{agent_id}/files",
|
|
324
|
-
page=AsyncNextFilesPage[FileListResponse],
|
|
325
322
|
options=make_request_options(
|
|
326
323
|
extra_headers=extra_headers,
|
|
327
324
|
extra_query=extra_query,
|
|
328
325
|
extra_body=extra_body,
|
|
329
326
|
timeout=timeout,
|
|
330
|
-
query=
|
|
327
|
+
query=await async_maybe_transform(
|
|
331
328
|
{
|
|
332
329
|
"after": after,
|
|
333
330
|
"before": before,
|
|
@@ -340,7 +337,7 @@ class AsyncFilesResource(AsyncAPIResource):
|
|
|
340
337
|
file_list_params.FileListParams,
|
|
341
338
|
),
|
|
342
339
|
),
|
|
343
|
-
|
|
340
|
+
cast_to=FileListResponse,
|
|
344
341
|
)
|
|
345
342
|
|
|
346
343
|
async def close(
|
|
@@ -8,7 +8,7 @@ from typing_extensions import Literal
|
|
|
8
8
|
import httpx
|
|
9
9
|
|
|
10
10
|
from ..._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
|
|
11
|
-
from ..._utils import maybe_transform
|
|
11
|
+
from ..._utils import maybe_transform, async_maybe_transform
|
|
12
12
|
from ..._compat import cached_property
|
|
13
13
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
14
14
|
from ..._response import (
|
|
@@ -17,8 +17,7 @@ from ..._response import (
|
|
|
17
17
|
async_to_raw_response_wrapper,
|
|
18
18
|
async_to_streamed_response_wrapper,
|
|
19
19
|
)
|
|
20
|
-
from ...
|
|
21
|
-
from ..._base_client import AsyncPaginator, make_request_options
|
|
20
|
+
from ..._base_client import make_request_options
|
|
22
21
|
from ...types.agents import folder_list_params
|
|
23
22
|
from ...types.agent_state import AgentState
|
|
24
23
|
from ...types.agents.folder_list_response import FolderListResponse
|
|
@@ -61,7 +60,7 @@ class FoldersResource(SyncAPIResource):
|
|
|
61
60
|
extra_query: Query | None = None,
|
|
62
61
|
extra_body: Body | None = None,
|
|
63
62
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
64
|
-
) ->
|
|
63
|
+
) -> FolderListResponse:
|
|
65
64
|
"""
|
|
66
65
|
Get the folders associated with an agent.
|
|
67
66
|
|
|
@@ -91,9 +90,8 @@ class FoldersResource(SyncAPIResource):
|
|
|
91
90
|
"""
|
|
92
91
|
if not agent_id:
|
|
93
92
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
94
|
-
return self.
|
|
93
|
+
return self._get(
|
|
95
94
|
f"/v1/agents/{agent_id}/folders",
|
|
96
|
-
page=SyncArrayPage[FolderListResponse],
|
|
97
95
|
options=make_request_options(
|
|
98
96
|
extra_headers=extra_headers,
|
|
99
97
|
extra_query=extra_query,
|
|
@@ -110,7 +108,7 @@ class FoldersResource(SyncAPIResource):
|
|
|
110
108
|
folder_list_params.FolderListParams,
|
|
111
109
|
),
|
|
112
110
|
),
|
|
113
|
-
|
|
111
|
+
cast_to=FolderListResponse,
|
|
114
112
|
)
|
|
115
113
|
|
|
116
114
|
def attach(
|
|
@@ -214,7 +212,7 @@ class AsyncFoldersResource(AsyncAPIResource):
|
|
|
214
212
|
"""
|
|
215
213
|
return AsyncFoldersResourceWithStreamingResponse(self)
|
|
216
214
|
|
|
217
|
-
def list(
|
|
215
|
+
async def list(
|
|
218
216
|
self,
|
|
219
217
|
agent_id: str,
|
|
220
218
|
*,
|
|
@@ -229,7 +227,7 @@ class AsyncFoldersResource(AsyncAPIResource):
|
|
|
229
227
|
extra_query: Query | None = None,
|
|
230
228
|
extra_body: Body | None = None,
|
|
231
229
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
232
|
-
) ->
|
|
230
|
+
) -> FolderListResponse:
|
|
233
231
|
"""
|
|
234
232
|
Get the folders associated with an agent.
|
|
235
233
|
|
|
@@ -259,15 +257,14 @@ class AsyncFoldersResource(AsyncAPIResource):
|
|
|
259
257
|
"""
|
|
260
258
|
if not agent_id:
|
|
261
259
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
262
|
-
return self.
|
|
260
|
+
return await self._get(
|
|
263
261
|
f"/v1/agents/{agent_id}/folders",
|
|
264
|
-
page=AsyncArrayPage[FolderListResponse],
|
|
265
262
|
options=make_request_options(
|
|
266
263
|
extra_headers=extra_headers,
|
|
267
264
|
extra_query=extra_query,
|
|
268
265
|
extra_body=extra_body,
|
|
269
266
|
timeout=timeout,
|
|
270
|
-
query=
|
|
267
|
+
query=await async_maybe_transform(
|
|
271
268
|
{
|
|
272
269
|
"after": after,
|
|
273
270
|
"before": before,
|
|
@@ -278,7 +275,7 @@ class AsyncFoldersResource(AsyncAPIResource):
|
|
|
278
275
|
folder_list_params.FolderListParams,
|
|
279
276
|
),
|
|
280
277
|
),
|
|
281
|
-
|
|
278
|
+
cast_to=FolderListResponse,
|
|
282
279
|
)
|
|
283
280
|
|
|
284
281
|
async def attach(
|
|
@@ -17,6 +17,7 @@ from ..._response import (
|
|
|
17
17
|
async_to_raw_response_wrapper,
|
|
18
18
|
async_to_streamed_response_wrapper,
|
|
19
19
|
)
|
|
20
|
+
from ..._streaming import Stream, AsyncStream
|
|
20
21
|
from ...pagination import SyncArrayPage, AsyncArrayPage
|
|
21
22
|
from ..._base_client import AsyncPaginator, make_request_options
|
|
22
23
|
from ...types.agents import (
|
|
@@ -35,6 +36,7 @@ from ...types.agents.letta_response import LettaResponse
|
|
|
35
36
|
from ...types.agents.letta_message_union import LettaMessageUnion
|
|
36
37
|
from ...types.agents.message_cancel_response import MessageCancelResponse
|
|
37
38
|
from ...types.agents.message_modify_response import MessageModifyResponse
|
|
39
|
+
from ...types.agents.letta_streaming_response import LettaStreamingResponse
|
|
38
40
|
from ...types.agents.letta_user_message_content_union_param import LettaUserMessageContentUnionParam
|
|
39
41
|
from ...types.agents.letta_assistant_message_content_union_param import LettaAssistantMessageContentUnionParam
|
|
40
42
|
|
|
@@ -597,7 +599,7 @@ class MessagesResource(SyncAPIResource):
|
|
|
597
599
|
extra_query: Query | None = None,
|
|
598
600
|
extra_body: Body | None = None,
|
|
599
601
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
600
|
-
) ->
|
|
602
|
+
) -> Stream[LettaStreamingResponse]:
|
|
601
603
|
"""Process a user message and return the agent's response.
|
|
602
604
|
|
|
603
605
|
This endpoint accepts a
|
|
@@ -664,7 +666,11 @@ class MessagesResource(SyncAPIResource):
|
|
|
664
666
|
options=make_request_options(
|
|
665
667
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
666
668
|
),
|
|
667
|
-
cast_to=
|
|
669
|
+
cast_to=cast(
|
|
670
|
+
Any, LettaStreamingResponse
|
|
671
|
+
), # Union types cannot be passed in as arguments in the type system
|
|
672
|
+
stream=True,
|
|
673
|
+
stream_cls=Stream[LettaStreamingResponse],
|
|
668
674
|
)
|
|
669
675
|
|
|
670
676
|
def summarize(
|
|
@@ -1260,7 +1266,7 @@ class AsyncMessagesResource(AsyncAPIResource):
|
|
|
1260
1266
|
extra_query: Query | None = None,
|
|
1261
1267
|
extra_body: Body | None = None,
|
|
1262
1268
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
1263
|
-
) ->
|
|
1269
|
+
) -> AsyncStream[LettaStreamingResponse]:
|
|
1264
1270
|
"""Process a user message and return the agent's response.
|
|
1265
1271
|
|
|
1266
1272
|
This endpoint accepts a
|
|
@@ -1327,7 +1333,11 @@ class AsyncMessagesResource(AsyncAPIResource):
|
|
|
1327
1333
|
options=make_request_options(
|
|
1328
1334
|
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1329
1335
|
),
|
|
1330
|
-
cast_to=
|
|
1336
|
+
cast_to=cast(
|
|
1337
|
+
Any, LettaStreamingResponse
|
|
1338
|
+
), # Union types cannot be passed in as arguments in the type system
|
|
1339
|
+
stream=True,
|
|
1340
|
+
stream_cls=AsyncStream[LettaStreamingResponse],
|
|
1331
1341
|
)
|
|
1332
1342
|
|
|
1333
1343
|
async def summarize(
|
|
@@ -17,11 +17,10 @@ from ..._response import (
|
|
|
17
17
|
async_to_raw_response_wrapper,
|
|
18
18
|
async_to_streamed_response_wrapper,
|
|
19
19
|
)
|
|
20
|
-
from ...
|
|
21
|
-
from ...types.tool import Tool
|
|
22
|
-
from ..._base_client import AsyncPaginator, make_request_options
|
|
20
|
+
from ..._base_client import make_request_options
|
|
23
21
|
from ...types.agents import tool_list_params, tool_update_approval_params
|
|
24
22
|
from ...types.agent_state import AgentState
|
|
23
|
+
from ...types.agents.tool_list_response import ToolListResponse
|
|
25
24
|
|
|
26
25
|
__all__ = ["ToolsResource", "AsyncToolsResource"]
|
|
27
26
|
|
|
@@ -61,7 +60,7 @@ class ToolsResource(SyncAPIResource):
|
|
|
61
60
|
extra_query: Query | None = None,
|
|
62
61
|
extra_body: Body | None = None,
|
|
63
62
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
64
|
-
) ->
|
|
63
|
+
) -> ToolListResponse:
|
|
65
64
|
"""
|
|
66
65
|
Get tools from an existing agent.
|
|
67
66
|
|
|
@@ -91,9 +90,8 @@ class ToolsResource(SyncAPIResource):
|
|
|
91
90
|
"""
|
|
92
91
|
if not agent_id:
|
|
93
92
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
94
|
-
return self.
|
|
93
|
+
return self._get(
|
|
95
94
|
f"/v1/agents/{agent_id}/tools",
|
|
96
|
-
page=SyncArrayPage[Tool],
|
|
97
95
|
options=make_request_options(
|
|
98
96
|
extra_headers=extra_headers,
|
|
99
97
|
extra_query=extra_query,
|
|
@@ -110,7 +108,7 @@ class ToolsResource(SyncAPIResource):
|
|
|
110
108
|
tool_list_params.ToolListParams,
|
|
111
109
|
),
|
|
112
110
|
),
|
|
113
|
-
|
|
111
|
+
cast_to=ToolListResponse,
|
|
114
112
|
)
|
|
115
113
|
|
|
116
114
|
def attach(
|
|
@@ -271,7 +269,7 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
271
269
|
"""
|
|
272
270
|
return AsyncToolsResourceWithStreamingResponse(self)
|
|
273
271
|
|
|
274
|
-
def list(
|
|
272
|
+
async def list(
|
|
275
273
|
self,
|
|
276
274
|
agent_id: str,
|
|
277
275
|
*,
|
|
@@ -286,7 +284,7 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
286
284
|
extra_query: Query | None = None,
|
|
287
285
|
extra_body: Body | None = None,
|
|
288
286
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
289
|
-
) ->
|
|
287
|
+
) -> ToolListResponse:
|
|
290
288
|
"""
|
|
291
289
|
Get tools from an existing agent.
|
|
292
290
|
|
|
@@ -316,15 +314,14 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
316
314
|
"""
|
|
317
315
|
if not agent_id:
|
|
318
316
|
raise ValueError(f"Expected a non-empty value for `agent_id` but received {agent_id!r}")
|
|
319
|
-
return self.
|
|
317
|
+
return await self._get(
|
|
320
318
|
f"/v1/agents/{agent_id}/tools",
|
|
321
|
-
page=AsyncArrayPage[Tool],
|
|
322
319
|
options=make_request_options(
|
|
323
320
|
extra_headers=extra_headers,
|
|
324
321
|
extra_query=extra_query,
|
|
325
322
|
extra_body=extra_body,
|
|
326
323
|
timeout=timeout,
|
|
327
|
-
query=
|
|
324
|
+
query=await async_maybe_transform(
|
|
328
325
|
{
|
|
329
326
|
"after": after,
|
|
330
327
|
"before": before,
|
|
@@ -335,7 +332,7 @@ class AsyncToolsResource(AsyncAPIResource):
|
|
|
335
332
|
tool_list_params.ToolListParams,
|
|
336
333
|
),
|
|
337
334
|
),
|
|
338
|
-
|
|
335
|
+
cast_to=ToolListResponse,
|
|
339
336
|
)
|
|
340
337
|
|
|
341
338
|
async def attach(
|
|
@@ -18,9 +18,9 @@ from .._response import (
|
|
|
18
18
|
async_to_raw_response_wrapper,
|
|
19
19
|
async_to_streamed_response_wrapper,
|
|
20
20
|
)
|
|
21
|
-
from ..
|
|
22
|
-
from .._base_client import AsyncPaginator, make_request_options
|
|
21
|
+
from .._base_client import make_request_options
|
|
23
22
|
from ..types.archive import Archive
|
|
23
|
+
from ..types.archive_list_response import ArchiveListResponse
|
|
24
24
|
from ..types.embedding_config_param import EmbeddingConfigParam
|
|
25
25
|
|
|
26
26
|
__all__ = ["ArchivesResource", "AsyncArchivesResource"]
|
|
@@ -140,7 +140,7 @@ class ArchivesResource(SyncAPIResource):
|
|
|
140
140
|
extra_query: Query | None = None,
|
|
141
141
|
extra_body: Body | None = None,
|
|
142
142
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
143
|
-
) ->
|
|
143
|
+
) -> ArchiveListResponse:
|
|
144
144
|
"""
|
|
145
145
|
Get a list of all archives for the current organization with optional filters
|
|
146
146
|
and pagination.
|
|
@@ -171,9 +171,8 @@ class ArchivesResource(SyncAPIResource):
|
|
|
171
171
|
|
|
172
172
|
timeout: Override the client-level default timeout for this request, in seconds
|
|
173
173
|
"""
|
|
174
|
-
return self.
|
|
174
|
+
return self._get(
|
|
175
175
|
"/v1/archives/",
|
|
176
|
-
page=SyncArrayPage[Archive],
|
|
177
176
|
options=make_request_options(
|
|
178
177
|
extra_headers=extra_headers,
|
|
179
178
|
extra_query=extra_query,
|
|
@@ -192,7 +191,7 @@ class ArchivesResource(SyncAPIResource):
|
|
|
192
191
|
archive_list_params.ArchiveListParams,
|
|
193
192
|
),
|
|
194
193
|
),
|
|
195
|
-
|
|
194
|
+
cast_to=ArchiveListResponse,
|
|
196
195
|
)
|
|
197
196
|
|
|
198
197
|
def delete(
|
|
@@ -373,7 +372,7 @@ class AsyncArchivesResource(AsyncAPIResource):
|
|
|
373
372
|
cast_to=Archive,
|
|
374
373
|
)
|
|
375
374
|
|
|
376
|
-
def list(
|
|
375
|
+
async def list(
|
|
377
376
|
self,
|
|
378
377
|
*,
|
|
379
378
|
after: Optional[str] | Omit = omit,
|
|
@@ -389,7 +388,7 @@ class AsyncArchivesResource(AsyncAPIResource):
|
|
|
389
388
|
extra_query: Query | None = None,
|
|
390
389
|
extra_body: Body | None = None,
|
|
391
390
|
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
392
|
-
) ->
|
|
391
|
+
) -> ArchiveListResponse:
|
|
393
392
|
"""
|
|
394
393
|
Get a list of all archives for the current organization with optional filters
|
|
395
394
|
and pagination.
|
|
@@ -420,15 +419,14 @@ class AsyncArchivesResource(AsyncAPIResource):
|
|
|
420
419
|
|
|
421
420
|
timeout: Override the client-level default timeout for this request, in seconds
|
|
422
421
|
"""
|
|
423
|
-
return self.
|
|
422
|
+
return await self._get(
|
|
424
423
|
"/v1/archives/",
|
|
425
|
-
page=AsyncArrayPage[Archive],
|
|
426
424
|
options=make_request_options(
|
|
427
425
|
extra_headers=extra_headers,
|
|
428
426
|
extra_query=extra_query,
|
|
429
427
|
extra_body=extra_body,
|
|
430
428
|
timeout=timeout,
|
|
431
|
-
query=
|
|
429
|
+
query=await async_maybe_transform(
|
|
432
430
|
{
|
|
433
431
|
"after": after,
|
|
434
432
|
"agent_id": agent_id,
|
|
@@ -441,7 +439,7 @@ class AsyncArchivesResource(AsyncAPIResource):
|
|
|
441
439
|
archive_list_params.ArchiveListParams,
|
|
442
440
|
),
|
|
443
441
|
),
|
|
444
|
-
|
|
442
|
+
cast_to=ArchiveListResponse,
|
|
445
443
|
)
|
|
446
444
|
|
|
447
445
|
async def delete(
|