letta-client 1.0.0a8__py3-none-any.whl → 1.0.0a10__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/_version.py +1 -1
- letta_client/pagination.py +174 -1
- letta_client/resources/agents/agents.py +396 -396
- letta_client/resources/agents/blocks.py +200 -190
- letta_client/resources/agents/files.py +13 -10
- letta_client/resources/agents/messages.py +367 -367
- letta_client/resources/agents/tools.py +6 -6
- letta_client/resources/archives.py +121 -111
- letta_client/resources/batches/messages.py +14 -11
- letta_client/resources/blocks/blocks.py +241 -222
- letta_client/resources/folders/folders.py +133 -133
- letta_client/resources/groups/groups.py +141 -141
- letta_client/resources/groups/messages.py +198 -198
- letta_client/resources/identities/blocks.py +7 -7
- letta_client/resources/identities/identities.py +141 -141
- letta_client/resources/tools.py +794 -194
- letta_client/types/__init__.py +11 -8
- letta_client/types/{agent_update_params.py → agent_modify_params.py} +2 -2
- letta_client/types/agent_state.py +6 -3
- letta_client/types/agents/__init__.py +6 -3
- letta_client/types/agents/block.py +6 -3
- letta_client/types/agents/block_list_response.py +63 -0
- letta_client/types/agents/{block_update_params.py → block_modify_params.py} +8 -5
- letta_client/types/agents/block_modify_response.py +63 -0
- letta_client/types/agents/block_retrieve_response.py +63 -0
- letta_client/types/agents/file_list_response.py +3 -14
- letta_client/types/agents/{message_update_params.py → message_modify_params.py} +2 -2
- letta_client/types/agents/{message_update_response.py → message_modify_response.py} +2 -2
- letta_client/types/archive_list_params.py +3 -0
- letta_client/types/{archive_update_params.py → archive_modify_params.py} +2 -2
- letta_client/types/batches/__init__.py +0 -1
- letta_client/types/block_create_params.py +6 -3
- letta_client/types/block_create_response.py +63 -0
- letta_client/types/block_list_response.py +63 -0
- letta_client/types/{block_update_params.py → block_modify_params.py} +8 -5
- letta_client/types/block_modify_response.py +63 -0
- letta_client/types/block_retrieve_response.py +63 -0
- letta_client/types/create_block_param.py +6 -3
- letta_client/types/{folder_update_params.py → folder_modify_params.py} +2 -2
- letta_client/types/{group_update_params.py → group_modify_params.py} +2 -2
- letta_client/types/groups/__init__.py +2 -2
- letta_client/types/groups/{message_update_params.py → message_modify_params.py} +2 -2
- letta_client/types/groups/{message_update_response.py → message_modify_response.py} +2 -2
- letta_client/types/identities/__init__.py +1 -0
- letta_client/types/identities/block_list_response.py +63 -0
- letta_client/types/{identity_update_params.py → identity_modify_params.py} +2 -2
- letta_client/types/tool.py +106 -2
- letta_client/types/{tool_update_params.py → tool_modify_params.py} +2 -2
- {letta_client-1.0.0a8.dist-info → letta_client-1.0.0a10.dist-info}/METADATA +1 -1
- {letta_client-1.0.0a8.dist-info → letta_client-1.0.0a10.dist-info}/RECORD +52 -46
- letta_client/types/archive_list_response.py +0 -10
- letta_client/types/batches/message_list_response.py +0 -12
- {letta_client-1.0.0a8.dist-info → letta_client-1.0.0a10.dist-info}/WHEEL +0 -0
- {letta_client-1.0.0a8.dist-info → letta_client-1.0.0a10.dist-info}/licenses/LICENSE +0 -0
letta_client/_version.py
CHANGED
letta_client/pagination.py
CHANGED
|
@@ -9,7 +9,14 @@ from ._utils import is_mapping
|
|
|
9
9
|
from ._models import BaseModel
|
|
10
10
|
from ._base_client import BasePage, PageInfo, BaseSyncPage, BaseAsyncPage
|
|
11
11
|
|
|
12
|
-
__all__ = [
|
|
12
|
+
__all__ = [
|
|
13
|
+
"SyncArrayPage",
|
|
14
|
+
"AsyncArrayPage",
|
|
15
|
+
"SyncObjectPage",
|
|
16
|
+
"AsyncObjectPage",
|
|
17
|
+
"SyncNextFilesPage",
|
|
18
|
+
"AsyncNextFilesPage",
|
|
19
|
+
]
|
|
13
20
|
|
|
14
21
|
_BaseModelT = TypeVar("_BaseModelT", bound=BaseModel)
|
|
15
22
|
|
|
@@ -21,6 +28,16 @@ class ArrayPageItem(Protocol):
|
|
|
21
28
|
id: Optional[str]
|
|
22
29
|
|
|
23
30
|
|
|
31
|
+
@runtime_checkable
|
|
32
|
+
class ObjectPageItem(Protocol):
|
|
33
|
+
id: Optional[str]
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@runtime_checkable
|
|
37
|
+
class NextFilesPageItem(Protocol):
|
|
38
|
+
next_cursor: Optional[str]
|
|
39
|
+
|
|
40
|
+
|
|
24
41
|
class SyncArrayPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
25
42
|
items: List[_T]
|
|
26
43
|
|
|
@@ -105,3 +122,159 @@ class AsyncArrayPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
|
105
122
|
**(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
|
|
106
123
|
},
|
|
107
124
|
)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
class SyncObjectPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
128
|
+
messages: List[_T]
|
|
129
|
+
|
|
130
|
+
@override
|
|
131
|
+
def _get_page_items(self) -> List[_T]:
|
|
132
|
+
messages = self.messages
|
|
133
|
+
if not messages:
|
|
134
|
+
return []
|
|
135
|
+
return messages
|
|
136
|
+
|
|
137
|
+
@override
|
|
138
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
139
|
+
is_forwards = not self._options.params.get("before", False)
|
|
140
|
+
|
|
141
|
+
messages = self.messages
|
|
142
|
+
if not messages:
|
|
143
|
+
return None
|
|
144
|
+
|
|
145
|
+
if is_forwards:
|
|
146
|
+
item = cast(Any, messages[-1])
|
|
147
|
+
if not isinstance(item, ObjectPageItem) or item.id is None:
|
|
148
|
+
# TODO emit warning log
|
|
149
|
+
return None
|
|
150
|
+
|
|
151
|
+
return PageInfo(params={"after": item.id})
|
|
152
|
+
else:
|
|
153
|
+
item = cast(Any, self.messages[0])
|
|
154
|
+
if not isinstance(item, ObjectPageItem) or item.id is None:
|
|
155
|
+
# TODO emit warning log
|
|
156
|
+
return None
|
|
157
|
+
|
|
158
|
+
return PageInfo(params={"before": item.id})
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
class AsyncObjectPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
162
|
+
messages: List[_T]
|
|
163
|
+
|
|
164
|
+
@override
|
|
165
|
+
def _get_page_items(self) -> List[_T]:
|
|
166
|
+
messages = self.messages
|
|
167
|
+
if not messages:
|
|
168
|
+
return []
|
|
169
|
+
return messages
|
|
170
|
+
|
|
171
|
+
@override
|
|
172
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
173
|
+
is_forwards = not self._options.params.get("before", False)
|
|
174
|
+
|
|
175
|
+
messages = self.messages
|
|
176
|
+
if not messages:
|
|
177
|
+
return None
|
|
178
|
+
|
|
179
|
+
if is_forwards:
|
|
180
|
+
item = cast(Any, messages[-1])
|
|
181
|
+
if not isinstance(item, ObjectPageItem) or item.id is None:
|
|
182
|
+
# TODO emit warning log
|
|
183
|
+
return None
|
|
184
|
+
|
|
185
|
+
return PageInfo(params={"after": item.id})
|
|
186
|
+
else:
|
|
187
|
+
item = cast(Any, self.messages[0])
|
|
188
|
+
if not isinstance(item, ObjectPageItem) or item.id is None:
|
|
189
|
+
# TODO emit warning log
|
|
190
|
+
return None
|
|
191
|
+
|
|
192
|
+
return PageInfo(params={"before": item.id})
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
class SyncNextFilesPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
196
|
+
files: List[_T]
|
|
197
|
+
next_cursor: Optional[str] = None
|
|
198
|
+
has_more: Optional[bool] = None
|
|
199
|
+
|
|
200
|
+
@override
|
|
201
|
+
def _get_page_items(self) -> List[_T]:
|
|
202
|
+
files = self.files
|
|
203
|
+
if not files:
|
|
204
|
+
return []
|
|
205
|
+
return files
|
|
206
|
+
|
|
207
|
+
@override
|
|
208
|
+
def has_next_page(self) -> bool:
|
|
209
|
+
has_more = self.has_more
|
|
210
|
+
if has_more is not None and has_more is False:
|
|
211
|
+
return False
|
|
212
|
+
|
|
213
|
+
return super().has_next_page()
|
|
214
|
+
|
|
215
|
+
@override
|
|
216
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
217
|
+
is_forwards = not self._options.params.get("before", False)
|
|
218
|
+
|
|
219
|
+
files = self.files
|
|
220
|
+
if not files:
|
|
221
|
+
return None
|
|
222
|
+
|
|
223
|
+
if is_forwards:
|
|
224
|
+
item = cast(Any, files[-1])
|
|
225
|
+
if not isinstance(item, NextFilesPageItem) or item.next_cursor is None:
|
|
226
|
+
# TODO emit warning log
|
|
227
|
+
return None
|
|
228
|
+
|
|
229
|
+
return PageInfo(params={"after": item.next_cursor})
|
|
230
|
+
else:
|
|
231
|
+
item = cast(Any, self.files[0])
|
|
232
|
+
if not isinstance(item, NextFilesPageItem) or item.next_cursor is None:
|
|
233
|
+
# TODO emit warning log
|
|
234
|
+
return None
|
|
235
|
+
|
|
236
|
+
return PageInfo(params={"before": item.next_cursor})
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
class AsyncNextFilesPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
240
|
+
files: List[_T]
|
|
241
|
+
next_cursor: Optional[str] = None
|
|
242
|
+
has_more: Optional[bool] = None
|
|
243
|
+
|
|
244
|
+
@override
|
|
245
|
+
def _get_page_items(self) -> List[_T]:
|
|
246
|
+
files = self.files
|
|
247
|
+
if not files:
|
|
248
|
+
return []
|
|
249
|
+
return files
|
|
250
|
+
|
|
251
|
+
@override
|
|
252
|
+
def has_next_page(self) -> bool:
|
|
253
|
+
has_more = self.has_more
|
|
254
|
+
if has_more is not None and has_more is False:
|
|
255
|
+
return False
|
|
256
|
+
|
|
257
|
+
return super().has_next_page()
|
|
258
|
+
|
|
259
|
+
@override
|
|
260
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
261
|
+
is_forwards = not self._options.params.get("before", False)
|
|
262
|
+
|
|
263
|
+
files = self.files
|
|
264
|
+
if not files:
|
|
265
|
+
return None
|
|
266
|
+
|
|
267
|
+
if is_forwards:
|
|
268
|
+
item = cast(Any, files[-1])
|
|
269
|
+
if not isinstance(item, NextFilesPageItem) or item.next_cursor is None:
|
|
270
|
+
# TODO emit warning log
|
|
271
|
+
return None
|
|
272
|
+
|
|
273
|
+
return PageInfo(params={"after": item.next_cursor})
|
|
274
|
+
else:
|
|
275
|
+
item = cast(Any, self.files[0])
|
|
276
|
+
if not isinstance(item, NextFilesPageItem) or item.next_cursor is None:
|
|
277
|
+
# TODO emit warning log
|
|
278
|
+
return None
|
|
279
|
+
|
|
280
|
+
return PageInfo(params={"before": item.next_cursor})
|