letta-client 0.1.308__py3-none-any.whl → 0.1.310__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 +18 -0
- letta_client/agents/passages/client.py +12 -12
- letta_client/agents/passages/raw_client.py +17 -16
- letta_client/core/client_wrapper.py +2 -2
- letta_client/templates/__init__.py +6 -0
- letta_client/templates/client.py +17 -24
- letta_client/templates/raw_client.py +14 -26
- letta_client/templates/types/__init__.py +6 -0
- letta_client/templates/types/templates_create_template_request.py +10 -0
- letta_client/templates/types/templates_create_template_request_agent_file.py +33 -0
- letta_client/templates/types/templates_create_template_request_agent_id.py +33 -0
- letta_client/types/__init__.py +12 -0
- letta_client/types/internal_template_agent_create.py +256 -0
- letta_client/types/internal_template_agent_create_response_format.py +11 -0
- letta_client/types/internal_template_agent_create_tool_rules_item.py +25 -0
- letta_client/types/internal_template_block_create.py +88 -0
- letta_client/types/internal_template_group_create.py +63 -0
- letta_client/types/internal_template_group_create_manager_config.py +13 -0
- {letta_client-0.1.308.dist-info → letta_client-0.1.310.dist-info}/METADATA +1 -1
- {letta_client-0.1.308.dist-info → letta_client-0.1.310.dist-info}/RECORD +21 -12
- {letta_client-0.1.308.dist-info → letta_client-0.1.310.dist-info}/WHEEL +0 -0
letta_client/__init__.py
CHANGED
|
@@ -153,6 +153,12 @@ from .types import (
|
|
|
153
153
|
InitToolRule,
|
|
154
154
|
InputAudio,
|
|
155
155
|
InputAudioFormat,
|
|
156
|
+
InternalTemplateAgentCreate,
|
|
157
|
+
InternalTemplateAgentCreateResponseFormat,
|
|
158
|
+
InternalTemplateAgentCreateToolRulesItem,
|
|
159
|
+
InternalTemplateBlockCreate,
|
|
160
|
+
InternalTemplateGroupCreate,
|
|
161
|
+
InternalTemplateGroupCreateManagerConfig,
|
|
156
162
|
Job,
|
|
157
163
|
JobStatus,
|
|
158
164
|
JobType,
|
|
@@ -381,6 +387,9 @@ from .projects import ProjectsListResponse, ProjectsListResponseProjectsItem
|
|
|
381
387
|
from .runs import LettaStreamingResponse
|
|
382
388
|
from .steps import StepsListRequestFeedback
|
|
383
389
|
from .templates import (
|
|
390
|
+
TemplatesCreateTemplateRequest,
|
|
391
|
+
TemplatesCreateTemplateRequestAgentFile,
|
|
392
|
+
TemplatesCreateTemplateRequestAgentId,
|
|
384
393
|
TemplatesCreateTemplateResponse,
|
|
385
394
|
TemplatesDeleteTemplateResponse,
|
|
386
395
|
TemplatesForkTemplateResponse,
|
|
@@ -611,6 +620,12 @@ __all__ = [
|
|
|
611
620
|
"InitToolRule",
|
|
612
621
|
"InputAudio",
|
|
613
622
|
"InputAudioFormat",
|
|
623
|
+
"InternalTemplateAgentCreate",
|
|
624
|
+
"InternalTemplateAgentCreateResponseFormat",
|
|
625
|
+
"InternalTemplateAgentCreateToolRulesItem",
|
|
626
|
+
"InternalTemplateBlockCreate",
|
|
627
|
+
"InternalTemplateGroupCreate",
|
|
628
|
+
"InternalTemplateGroupCreateManagerConfig",
|
|
614
629
|
"Job",
|
|
615
630
|
"JobStatus",
|
|
616
631
|
"JobType",
|
|
@@ -743,6 +758,9 @@ __all__ = [
|
|
|
743
758
|
"SupervisorManagerUpdate",
|
|
744
759
|
"SystemMessage",
|
|
745
760
|
"TagSchema",
|
|
761
|
+
"TemplatesCreateTemplateRequest",
|
|
762
|
+
"TemplatesCreateTemplateRequestAgentFile",
|
|
763
|
+
"TemplatesCreateTemplateRequestAgentId",
|
|
746
764
|
"TemplatesCreateTemplateResponse",
|
|
747
765
|
"TemplatesDeleteTemplateResponse",
|
|
748
766
|
"TemplatesForkTemplateResponse",
|
|
@@ -152,8 +152,8 @@ class PassagesClient:
|
|
|
152
152
|
tags: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
153
153
|
tag_match_mode: typing.Optional[PassagesSearchRequestTagMatchMode] = None,
|
|
154
154
|
top_k: typing.Optional[int] = None,
|
|
155
|
-
start_datetime: typing.Optional[
|
|
156
|
-
end_datetime: typing.Optional[
|
|
155
|
+
start_datetime: typing.Optional[dt.datetime] = None,
|
|
156
|
+
end_datetime: typing.Optional[dt.datetime] = None,
|
|
157
157
|
request_options: typing.Optional[RequestOptions] = None,
|
|
158
158
|
) -> ArchivalMemorySearchResponse:
|
|
159
159
|
"""
|
|
@@ -179,11 +179,11 @@ class PassagesClient:
|
|
|
179
179
|
top_k : typing.Optional[int]
|
|
180
180
|
Maximum number of results to return. Uses system default if not specified
|
|
181
181
|
|
|
182
|
-
start_datetime : typing.Optional[
|
|
183
|
-
Filter results to passages created after this datetime
|
|
182
|
+
start_datetime : typing.Optional[dt.datetime]
|
|
183
|
+
Filter results to passages created after this datetime
|
|
184
184
|
|
|
185
|
-
end_datetime : typing.Optional[
|
|
186
|
-
Filter results to passages created before this datetime
|
|
185
|
+
end_datetime : typing.Optional[dt.datetime]
|
|
186
|
+
Filter results to passages created before this datetime
|
|
187
187
|
|
|
188
188
|
request_options : typing.Optional[RequestOptions]
|
|
189
189
|
Request-specific configuration.
|
|
@@ -440,8 +440,8 @@ class AsyncPassagesClient:
|
|
|
440
440
|
tags: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
441
441
|
tag_match_mode: typing.Optional[PassagesSearchRequestTagMatchMode] = None,
|
|
442
442
|
top_k: typing.Optional[int] = None,
|
|
443
|
-
start_datetime: typing.Optional[
|
|
444
|
-
end_datetime: typing.Optional[
|
|
443
|
+
start_datetime: typing.Optional[dt.datetime] = None,
|
|
444
|
+
end_datetime: typing.Optional[dt.datetime] = None,
|
|
445
445
|
request_options: typing.Optional[RequestOptions] = None,
|
|
446
446
|
) -> ArchivalMemorySearchResponse:
|
|
447
447
|
"""
|
|
@@ -467,11 +467,11 @@ class AsyncPassagesClient:
|
|
|
467
467
|
top_k : typing.Optional[int]
|
|
468
468
|
Maximum number of results to return. Uses system default if not specified
|
|
469
469
|
|
|
470
|
-
start_datetime : typing.Optional[
|
|
471
|
-
Filter results to passages created after this datetime
|
|
470
|
+
start_datetime : typing.Optional[dt.datetime]
|
|
471
|
+
Filter results to passages created after this datetime
|
|
472
472
|
|
|
473
|
-
end_datetime : typing.Optional[
|
|
474
|
-
Filter results to passages created before this datetime
|
|
473
|
+
end_datetime : typing.Optional[dt.datetime]
|
|
474
|
+
Filter results to passages created before this datetime
|
|
475
475
|
|
|
476
476
|
request_options : typing.Optional[RequestOptions]
|
|
477
477
|
Request-specific configuration.
|
|
@@ -6,6 +6,7 @@ from json.decoder import JSONDecodeError
|
|
|
6
6
|
|
|
7
7
|
from ...core.api_error import ApiError
|
|
8
8
|
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
9
|
+
from ...core.datetime_utils import serialize_datetime
|
|
9
10
|
from ...core.http_response import AsyncHttpResponse, HttpResponse
|
|
10
11
|
from ...core.jsonable_encoder import jsonable_encoder
|
|
11
12
|
from ...core.request_options import RequestOptions
|
|
@@ -184,8 +185,8 @@ class RawPassagesClient:
|
|
|
184
185
|
tags: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
185
186
|
tag_match_mode: typing.Optional[PassagesSearchRequestTagMatchMode] = None,
|
|
186
187
|
top_k: typing.Optional[int] = None,
|
|
187
|
-
start_datetime: typing.Optional[
|
|
188
|
-
end_datetime: typing.Optional[
|
|
188
|
+
start_datetime: typing.Optional[dt.datetime] = None,
|
|
189
|
+
end_datetime: typing.Optional[dt.datetime] = None,
|
|
189
190
|
request_options: typing.Optional[RequestOptions] = None,
|
|
190
191
|
) -> HttpResponse[ArchivalMemorySearchResponse]:
|
|
191
192
|
"""
|
|
@@ -211,11 +212,11 @@ class RawPassagesClient:
|
|
|
211
212
|
top_k : typing.Optional[int]
|
|
212
213
|
Maximum number of results to return. Uses system default if not specified
|
|
213
214
|
|
|
214
|
-
start_datetime : typing.Optional[
|
|
215
|
-
Filter results to passages created after this datetime
|
|
215
|
+
start_datetime : typing.Optional[dt.datetime]
|
|
216
|
+
Filter results to passages created after this datetime
|
|
216
217
|
|
|
217
|
-
end_datetime : typing.Optional[
|
|
218
|
-
Filter results to passages created before this datetime
|
|
218
|
+
end_datetime : typing.Optional[dt.datetime]
|
|
219
|
+
Filter results to passages created before this datetime
|
|
219
220
|
|
|
220
221
|
request_options : typing.Optional[RequestOptions]
|
|
221
222
|
Request-specific configuration.
|
|
@@ -233,8 +234,8 @@ class RawPassagesClient:
|
|
|
233
234
|
"tags": tags,
|
|
234
235
|
"tag_match_mode": tag_match_mode,
|
|
235
236
|
"top_k": top_k,
|
|
236
|
-
"start_datetime": start_datetime,
|
|
237
|
-
"end_datetime": end_datetime,
|
|
237
|
+
"start_datetime": serialize_datetime(start_datetime) if start_datetime is not None else None,
|
|
238
|
+
"end_datetime": serialize_datetime(end_datetime) if end_datetime is not None else None,
|
|
238
239
|
},
|
|
239
240
|
request_options=request_options,
|
|
240
241
|
)
|
|
@@ -512,8 +513,8 @@ class AsyncRawPassagesClient:
|
|
|
512
513
|
tags: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
513
514
|
tag_match_mode: typing.Optional[PassagesSearchRequestTagMatchMode] = None,
|
|
514
515
|
top_k: typing.Optional[int] = None,
|
|
515
|
-
start_datetime: typing.Optional[
|
|
516
|
-
end_datetime: typing.Optional[
|
|
516
|
+
start_datetime: typing.Optional[dt.datetime] = None,
|
|
517
|
+
end_datetime: typing.Optional[dt.datetime] = None,
|
|
517
518
|
request_options: typing.Optional[RequestOptions] = None,
|
|
518
519
|
) -> AsyncHttpResponse[ArchivalMemorySearchResponse]:
|
|
519
520
|
"""
|
|
@@ -539,11 +540,11 @@ class AsyncRawPassagesClient:
|
|
|
539
540
|
top_k : typing.Optional[int]
|
|
540
541
|
Maximum number of results to return. Uses system default if not specified
|
|
541
542
|
|
|
542
|
-
start_datetime : typing.Optional[
|
|
543
|
-
Filter results to passages created after this datetime
|
|
543
|
+
start_datetime : typing.Optional[dt.datetime]
|
|
544
|
+
Filter results to passages created after this datetime
|
|
544
545
|
|
|
545
|
-
end_datetime : typing.Optional[
|
|
546
|
-
Filter results to passages created before this datetime
|
|
546
|
+
end_datetime : typing.Optional[dt.datetime]
|
|
547
|
+
Filter results to passages created before this datetime
|
|
547
548
|
|
|
548
549
|
request_options : typing.Optional[RequestOptions]
|
|
549
550
|
Request-specific configuration.
|
|
@@ -561,8 +562,8 @@ class AsyncRawPassagesClient:
|
|
|
561
562
|
"tags": tags,
|
|
562
563
|
"tag_match_mode": tag_match_mode,
|
|
563
564
|
"top_k": top_k,
|
|
564
|
-
"start_datetime": start_datetime,
|
|
565
|
-
"end_datetime": end_datetime,
|
|
565
|
+
"start_datetime": serialize_datetime(start_datetime) if start_datetime is not None else None,
|
|
566
|
+
"end_datetime": serialize_datetime(end_datetime) if end_datetime is not None else None,
|
|
566
567
|
},
|
|
567
568
|
request_options=request_options,
|
|
568
569
|
)
|
|
@@ -24,10 +24,10 @@ class BaseClientWrapper:
|
|
|
24
24
|
|
|
25
25
|
def get_headers(self) -> typing.Dict[str, str]:
|
|
26
26
|
headers: typing.Dict[str, str] = {
|
|
27
|
-
"User-Agent": "letta-client/0.1.
|
|
27
|
+
"User-Agent": "letta-client/0.1.310",
|
|
28
28
|
"X-Fern-Language": "Python",
|
|
29
29
|
"X-Fern-SDK-Name": "letta-client",
|
|
30
|
-
"X-Fern-SDK-Version": "0.1.
|
|
30
|
+
"X-Fern-SDK-Version": "0.1.310",
|
|
31
31
|
**(self.get_custom_headers() or {}),
|
|
32
32
|
}
|
|
33
33
|
if self._project is not None:
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
# isort: skip_file
|
|
4
4
|
|
|
5
5
|
from .types import (
|
|
6
|
+
TemplatesCreateTemplateRequest,
|
|
7
|
+
TemplatesCreateTemplateRequestAgentFile,
|
|
8
|
+
TemplatesCreateTemplateRequestAgentId,
|
|
6
9
|
TemplatesCreateTemplateResponse,
|
|
7
10
|
TemplatesDeleteTemplateResponse,
|
|
8
11
|
TemplatesForkTemplateResponse,
|
|
@@ -47,6 +50,9 @@ __all__ = [
|
|
|
47
50
|
"AgentsCreateRequestInitialMessageSequenceItem",
|
|
48
51
|
"AgentsCreateRequestInitialMessageSequenceItemRole",
|
|
49
52
|
"AgentsCreateResponse",
|
|
53
|
+
"TemplatesCreateTemplateRequest",
|
|
54
|
+
"TemplatesCreateTemplateRequestAgentFile",
|
|
55
|
+
"TemplatesCreateTemplateRequestAgentId",
|
|
50
56
|
"TemplatesCreateTemplateResponse",
|
|
51
57
|
"TemplatesDeleteTemplateResponse",
|
|
52
58
|
"TemplatesForkTemplateResponse",
|
letta_client/templates/client.py
CHANGED
|
@@ -6,6 +6,7 @@ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
|
6
6
|
from ..core.request_options import RequestOptions
|
|
7
7
|
from .agents.client import AgentsClient, AsyncAgentsClient
|
|
8
8
|
from .raw_client import AsyncRawTemplatesClient, RawTemplatesClient
|
|
9
|
+
from .types.templates_create_template_request import TemplatesCreateTemplateRequest
|
|
9
10
|
from .types.templates_create_template_response import TemplatesCreateTemplateResponse
|
|
10
11
|
from .types.templates_delete_template_response import TemplatesDeleteTemplateResponse
|
|
11
12
|
from .types.templates_fork_template_response import TemplatesForkTemplateResponse
|
|
@@ -304,23 +305,18 @@ class TemplatesClient:
|
|
|
304
305
|
self,
|
|
305
306
|
project: str,
|
|
306
307
|
*,
|
|
307
|
-
|
|
308
|
-
name: typing.Optional[str] = OMIT,
|
|
308
|
+
request: TemplatesCreateTemplateRequest,
|
|
309
309
|
request_options: typing.Optional[RequestOptions] = None,
|
|
310
310
|
) -> TemplatesCreateTemplateResponse:
|
|
311
311
|
"""
|
|
312
|
-
Creates a new template from an existing agent
|
|
312
|
+
Creates a new template from an existing agent or agent file
|
|
313
313
|
|
|
314
314
|
Parameters
|
|
315
315
|
----------
|
|
316
316
|
project : str
|
|
317
317
|
The project slug
|
|
318
318
|
|
|
319
|
-
|
|
320
|
-
The ID of the agent to use as a template, can be from any project
|
|
321
|
-
|
|
322
|
-
name : typing.Optional[str]
|
|
323
|
-
Optional custom name for the template. If not provided, a random name will be generated.
|
|
319
|
+
request : TemplatesCreateTemplateRequest
|
|
324
320
|
|
|
325
321
|
request_options : typing.Optional[RequestOptions]
|
|
326
322
|
Request-specific configuration.
|
|
@@ -333,6 +329,7 @@ class TemplatesClient:
|
|
|
333
329
|
Examples
|
|
334
330
|
--------
|
|
335
331
|
from letta_client import Letta
|
|
332
|
+
from letta_client.templates import TemplatesCreateTemplateRequestAgentId
|
|
336
333
|
|
|
337
334
|
client = Letta(
|
|
338
335
|
project="YOUR_PROJECT",
|
|
@@ -340,12 +337,12 @@ class TemplatesClient:
|
|
|
340
337
|
)
|
|
341
338
|
client.templates.createtemplate(
|
|
342
339
|
project="project",
|
|
343
|
-
|
|
340
|
+
request=TemplatesCreateTemplateRequestAgentId(
|
|
341
|
+
agent_id="agent_id",
|
|
342
|
+
),
|
|
344
343
|
)
|
|
345
344
|
"""
|
|
346
|
-
_response = self._raw_client.createtemplate(
|
|
347
|
-
project, agent_id=agent_id, name=name, request_options=request_options
|
|
348
|
-
)
|
|
345
|
+
_response = self._raw_client.createtemplate(project, request=request, request_options=request_options)
|
|
349
346
|
return _response.data
|
|
350
347
|
|
|
351
348
|
def renametemplate(
|
|
@@ -823,23 +820,18 @@ class AsyncTemplatesClient:
|
|
|
823
820
|
self,
|
|
824
821
|
project: str,
|
|
825
822
|
*,
|
|
826
|
-
|
|
827
|
-
name: typing.Optional[str] = OMIT,
|
|
823
|
+
request: TemplatesCreateTemplateRequest,
|
|
828
824
|
request_options: typing.Optional[RequestOptions] = None,
|
|
829
825
|
) -> TemplatesCreateTemplateResponse:
|
|
830
826
|
"""
|
|
831
|
-
Creates a new template from an existing agent
|
|
827
|
+
Creates a new template from an existing agent or agent file
|
|
832
828
|
|
|
833
829
|
Parameters
|
|
834
830
|
----------
|
|
835
831
|
project : str
|
|
836
832
|
The project slug
|
|
837
833
|
|
|
838
|
-
|
|
839
|
-
The ID of the agent to use as a template, can be from any project
|
|
840
|
-
|
|
841
|
-
name : typing.Optional[str]
|
|
842
|
-
Optional custom name for the template. If not provided, a random name will be generated.
|
|
834
|
+
request : TemplatesCreateTemplateRequest
|
|
843
835
|
|
|
844
836
|
request_options : typing.Optional[RequestOptions]
|
|
845
837
|
Request-specific configuration.
|
|
@@ -854,6 +846,7 @@ class AsyncTemplatesClient:
|
|
|
854
846
|
import asyncio
|
|
855
847
|
|
|
856
848
|
from letta_client import AsyncLetta
|
|
849
|
+
from letta_client.templates import TemplatesCreateTemplateRequestAgentId
|
|
857
850
|
|
|
858
851
|
client = AsyncLetta(
|
|
859
852
|
project="YOUR_PROJECT",
|
|
@@ -864,15 +857,15 @@ class AsyncTemplatesClient:
|
|
|
864
857
|
async def main() -> None:
|
|
865
858
|
await client.templates.createtemplate(
|
|
866
859
|
project="project",
|
|
867
|
-
|
|
860
|
+
request=TemplatesCreateTemplateRequestAgentId(
|
|
861
|
+
agent_id="agent_id",
|
|
862
|
+
),
|
|
868
863
|
)
|
|
869
864
|
|
|
870
865
|
|
|
871
866
|
asyncio.run(main())
|
|
872
867
|
"""
|
|
873
|
-
_response = await self._raw_client.createtemplate(
|
|
874
|
-
project, agent_id=agent_id, name=name, request_options=request_options
|
|
875
|
-
)
|
|
868
|
+
_response = await self._raw_client.createtemplate(project, request=request, request_options=request_options)
|
|
876
869
|
return _response.data
|
|
877
870
|
|
|
878
871
|
async def renametemplate(
|
|
@@ -8,11 +8,13 @@ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
|
8
8
|
from ..core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
9
|
from ..core.jsonable_encoder import jsonable_encoder
|
|
10
10
|
from ..core.request_options import RequestOptions
|
|
11
|
+
from ..core.serialization import convert_and_respect_annotation_metadata
|
|
11
12
|
from ..core.unchecked_base_model import construct_type
|
|
12
13
|
from ..errors.bad_request_error import BadRequestError
|
|
13
14
|
from ..errors.conflict_error import ConflictError
|
|
14
15
|
from ..errors.not_found_error import NotFoundError
|
|
15
16
|
from ..types.conflict_error_body import ConflictErrorBody
|
|
17
|
+
from .types.templates_create_template_request import TemplatesCreateTemplateRequest
|
|
16
18
|
from .types.templates_create_template_response import TemplatesCreateTemplateResponse
|
|
17
19
|
from .types.templates_delete_template_response import TemplatesDeleteTemplateResponse
|
|
18
20
|
from .types.templates_fork_template_response import TemplatesForkTemplateResponse
|
|
@@ -369,23 +371,18 @@ class RawTemplatesClient:
|
|
|
369
371
|
self,
|
|
370
372
|
project: str,
|
|
371
373
|
*,
|
|
372
|
-
|
|
373
|
-
name: typing.Optional[str] = OMIT,
|
|
374
|
+
request: TemplatesCreateTemplateRequest,
|
|
374
375
|
request_options: typing.Optional[RequestOptions] = None,
|
|
375
376
|
) -> HttpResponse[TemplatesCreateTemplateResponse]:
|
|
376
377
|
"""
|
|
377
|
-
Creates a new template from an existing agent
|
|
378
|
+
Creates a new template from an existing agent or agent file
|
|
378
379
|
|
|
379
380
|
Parameters
|
|
380
381
|
----------
|
|
381
382
|
project : str
|
|
382
383
|
The project slug
|
|
383
384
|
|
|
384
|
-
|
|
385
|
-
The ID of the agent to use as a template, can be from any project
|
|
386
|
-
|
|
387
|
-
name : typing.Optional[str]
|
|
388
|
-
Optional custom name for the template. If not provided, a random name will be generated.
|
|
385
|
+
request : TemplatesCreateTemplateRequest
|
|
389
386
|
|
|
390
387
|
request_options : typing.Optional[RequestOptions]
|
|
391
388
|
Request-specific configuration.
|
|
@@ -398,11 +395,9 @@ class RawTemplatesClient:
|
|
|
398
395
|
_response = self._client_wrapper.httpx_client.request(
|
|
399
396
|
f"v1/templates/{jsonable_encoder(project)}",
|
|
400
397
|
method="POST",
|
|
401
|
-
json=
|
|
402
|
-
"
|
|
403
|
-
|
|
404
|
-
"type": "agent",
|
|
405
|
-
},
|
|
398
|
+
json=convert_and_respect_annotation_metadata(
|
|
399
|
+
object_=request, annotation=TemplatesCreateTemplateRequest, direction="write"
|
|
400
|
+
),
|
|
406
401
|
headers={
|
|
407
402
|
"content-type": "application/json",
|
|
408
403
|
},
|
|
@@ -1013,23 +1008,18 @@ class AsyncRawTemplatesClient:
|
|
|
1013
1008
|
self,
|
|
1014
1009
|
project: str,
|
|
1015
1010
|
*,
|
|
1016
|
-
|
|
1017
|
-
name: typing.Optional[str] = OMIT,
|
|
1011
|
+
request: TemplatesCreateTemplateRequest,
|
|
1018
1012
|
request_options: typing.Optional[RequestOptions] = None,
|
|
1019
1013
|
) -> AsyncHttpResponse[TemplatesCreateTemplateResponse]:
|
|
1020
1014
|
"""
|
|
1021
|
-
Creates a new template from an existing agent
|
|
1015
|
+
Creates a new template from an existing agent or agent file
|
|
1022
1016
|
|
|
1023
1017
|
Parameters
|
|
1024
1018
|
----------
|
|
1025
1019
|
project : str
|
|
1026
1020
|
The project slug
|
|
1027
1021
|
|
|
1028
|
-
|
|
1029
|
-
The ID of the agent to use as a template, can be from any project
|
|
1030
|
-
|
|
1031
|
-
name : typing.Optional[str]
|
|
1032
|
-
Optional custom name for the template. If not provided, a random name will be generated.
|
|
1022
|
+
request : TemplatesCreateTemplateRequest
|
|
1033
1023
|
|
|
1034
1024
|
request_options : typing.Optional[RequestOptions]
|
|
1035
1025
|
Request-specific configuration.
|
|
@@ -1042,11 +1032,9 @@ class AsyncRawTemplatesClient:
|
|
|
1042
1032
|
_response = await self._client_wrapper.httpx_client.request(
|
|
1043
1033
|
f"v1/templates/{jsonable_encoder(project)}",
|
|
1044
1034
|
method="POST",
|
|
1045
|
-
json=
|
|
1046
|
-
"
|
|
1047
|
-
|
|
1048
|
-
"type": "agent",
|
|
1049
|
-
},
|
|
1035
|
+
json=convert_and_respect_annotation_metadata(
|
|
1036
|
+
object_=request, annotation=TemplatesCreateTemplateRequest, direction="write"
|
|
1037
|
+
),
|
|
1050
1038
|
headers={
|
|
1051
1039
|
"content-type": "application/json",
|
|
1052
1040
|
},
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
# isort: skip_file
|
|
4
4
|
|
|
5
|
+
from .templates_create_template_request import TemplatesCreateTemplateRequest
|
|
6
|
+
from .templates_create_template_request_agent_file import TemplatesCreateTemplateRequestAgentFile
|
|
7
|
+
from .templates_create_template_request_agent_id import TemplatesCreateTemplateRequestAgentId
|
|
5
8
|
from .templates_create_template_response import TemplatesCreateTemplateResponse
|
|
6
9
|
from .templates_delete_template_response import TemplatesDeleteTemplateResponse
|
|
7
10
|
from .templates_fork_template_response import TemplatesForkTemplateResponse
|
|
@@ -68,6 +71,9 @@ from .templates_save_template_version_response import TemplatesSaveTemplateVersi
|
|
|
68
71
|
from .templates_update_template_description_response import TemplatesUpdateTemplateDescriptionResponse
|
|
69
72
|
|
|
70
73
|
__all__ = [
|
|
74
|
+
"TemplatesCreateTemplateRequest",
|
|
75
|
+
"TemplatesCreateTemplateRequestAgentFile",
|
|
76
|
+
"TemplatesCreateTemplateRequestAgentId",
|
|
71
77
|
"TemplatesCreateTemplateResponse",
|
|
72
78
|
"TemplatesDeleteTemplateResponse",
|
|
73
79
|
"TemplatesForkTemplateResponse",
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from .templates_create_template_request_agent_file import TemplatesCreateTemplateRequestAgentFile
|
|
6
|
+
from .templates_create_template_request_agent_id import TemplatesCreateTemplateRequestAgentId
|
|
7
|
+
|
|
8
|
+
TemplatesCreateTemplateRequest = typing.Union[
|
|
9
|
+
TemplatesCreateTemplateRequestAgentId, TemplatesCreateTemplateRequestAgentFile
|
|
10
|
+
]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TemplatesCreateTemplateRequestAgentFile(UncheckedBaseModel):
|
|
11
|
+
"""
|
|
12
|
+
Create a template from an uploaded agent file
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
type: typing.Literal["agent_file"] = "agent_file"
|
|
16
|
+
agent_file: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
The agent file to use as a template, this should be a JSON file exported from the platform
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
22
|
+
"""
|
|
23
|
+
Optional custom name for the template. If not provided, a random name will be generated.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
if IS_PYDANTIC_V2:
|
|
27
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
28
|
+
else:
|
|
29
|
+
|
|
30
|
+
class Config:
|
|
31
|
+
frozen = True
|
|
32
|
+
smart_union = True
|
|
33
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class TemplatesCreateTemplateRequestAgentId(UncheckedBaseModel):
|
|
11
|
+
"""
|
|
12
|
+
Create a template from an existing agent
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
type: typing.Literal["agent"] = "agent"
|
|
16
|
+
agent_id: str = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
The ID of the agent to use as a template, can be from any project
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
22
|
+
"""
|
|
23
|
+
Optional custom name for the template. If not provided, a random name will be generated.
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
if IS_PYDANTIC_V2:
|
|
27
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
28
|
+
else:
|
|
29
|
+
|
|
30
|
+
class Config:
|
|
31
|
+
frozen = True
|
|
32
|
+
smart_union = True
|
|
33
|
+
extra = pydantic.Extra.allow
|
letta_client/types/__init__.py
CHANGED
|
@@ -152,6 +152,12 @@ from .imported_agents_response import ImportedAgentsResponse
|
|
|
152
152
|
from .init_tool_rule import InitToolRule
|
|
153
153
|
from .input_audio import InputAudio
|
|
154
154
|
from .input_audio_format import InputAudioFormat
|
|
155
|
+
from .internal_template_agent_create import InternalTemplateAgentCreate
|
|
156
|
+
from .internal_template_agent_create_response_format import InternalTemplateAgentCreateResponseFormat
|
|
157
|
+
from .internal_template_agent_create_tool_rules_item import InternalTemplateAgentCreateToolRulesItem
|
|
158
|
+
from .internal_template_block_create import InternalTemplateBlockCreate
|
|
159
|
+
from .internal_template_group_create import InternalTemplateGroupCreate
|
|
160
|
+
from .internal_template_group_create_manager_config import InternalTemplateGroupCreateManagerConfig
|
|
155
161
|
from .job import Job
|
|
156
162
|
from .job_status import JobStatus
|
|
157
163
|
from .job_type import JobType
|
|
@@ -493,6 +499,12 @@ __all__ = [
|
|
|
493
499
|
"InitToolRule",
|
|
494
500
|
"InputAudio",
|
|
495
501
|
"InputAudioFormat",
|
|
502
|
+
"InternalTemplateAgentCreate",
|
|
503
|
+
"InternalTemplateAgentCreateResponseFormat",
|
|
504
|
+
"InternalTemplateAgentCreateToolRulesItem",
|
|
505
|
+
"InternalTemplateBlockCreate",
|
|
506
|
+
"InternalTemplateGroupCreate",
|
|
507
|
+
"InternalTemplateGroupCreateManagerConfig",
|
|
496
508
|
"Job",
|
|
497
509
|
"JobStatus",
|
|
498
510
|
"JobType",
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
from .agent_type import AgentType
|
|
9
|
+
from .create_block import CreateBlock
|
|
10
|
+
from .embedding_config import EmbeddingConfig
|
|
11
|
+
from .internal_template_agent_create_response_format import InternalTemplateAgentCreateResponseFormat
|
|
12
|
+
from .internal_template_agent_create_tool_rules_item import InternalTemplateAgentCreateToolRulesItem
|
|
13
|
+
from .llm_config import LlmConfig
|
|
14
|
+
from .message_create import MessageCreate
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class InternalTemplateAgentCreate(UncheckedBaseModel):
|
|
18
|
+
"""
|
|
19
|
+
Used for Letta Cloud
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
23
|
+
"""
|
|
24
|
+
The name of the agent.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
memory_blocks: typing.Optional[typing.List[CreateBlock]] = pydantic.Field(default=None)
|
|
28
|
+
"""
|
|
29
|
+
The blocks to create in the agent's in-context memory.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
tools: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
33
|
+
"""
|
|
34
|
+
The tools used by the agent.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
tool_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
38
|
+
"""
|
|
39
|
+
The ids of the tools used by the agent.
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
source_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
43
|
+
"""
|
|
44
|
+
The ids of the sources used by the agent.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
block_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
48
|
+
"""
|
|
49
|
+
The ids of the blocks used by the agent.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
tool_rules: typing.Optional[typing.List[InternalTemplateAgentCreateToolRulesItem]] = pydantic.Field(default=None)
|
|
53
|
+
"""
|
|
54
|
+
The tool rules governing the agent.
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
58
|
+
"""
|
|
59
|
+
The tags associated with the agent.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
system: typing.Optional[str] = pydantic.Field(default=None)
|
|
63
|
+
"""
|
|
64
|
+
The system prompt used by the agent.
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
agent_type: typing.Optional[AgentType] = pydantic.Field(default=None)
|
|
68
|
+
"""
|
|
69
|
+
The type of agent.
|
|
70
|
+
"""
|
|
71
|
+
|
|
72
|
+
llm_config: typing.Optional[LlmConfig] = pydantic.Field(default=None)
|
|
73
|
+
"""
|
|
74
|
+
The LLM configuration used by the agent.
|
|
75
|
+
"""
|
|
76
|
+
|
|
77
|
+
embedding_config: typing.Optional[EmbeddingConfig] = pydantic.Field(default=None)
|
|
78
|
+
"""
|
|
79
|
+
The embedding configuration used by the agent.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
initial_message_sequence: typing.Optional[typing.List[MessageCreate]] = pydantic.Field(default=None)
|
|
83
|
+
"""
|
|
84
|
+
The initial set of messages to put in the agent's in-context memory.
|
|
85
|
+
"""
|
|
86
|
+
|
|
87
|
+
include_base_tools: typing.Optional[bool] = pydantic.Field(default=None)
|
|
88
|
+
"""
|
|
89
|
+
If true, attaches the Letta core tools (e.g. core_memory related functions).
|
|
90
|
+
"""
|
|
91
|
+
|
|
92
|
+
include_multi_agent_tools: typing.Optional[bool] = pydantic.Field(default=None)
|
|
93
|
+
"""
|
|
94
|
+
If true, attaches the Letta multi-agent tools (e.g. sending a message to another agent).
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
include_base_tool_rules: typing.Optional[bool] = pydantic.Field(default=None)
|
|
98
|
+
"""
|
|
99
|
+
If true, attaches the Letta base tool rules (e.g. deny all tools not explicitly allowed).
|
|
100
|
+
"""
|
|
101
|
+
|
|
102
|
+
include_default_source: typing.Optional[bool] = pydantic.Field(default=None)
|
|
103
|
+
"""
|
|
104
|
+
If true, automatically creates and attaches a default data source for this agent.
|
|
105
|
+
"""
|
|
106
|
+
|
|
107
|
+
description: typing.Optional[str] = pydantic.Field(default=None)
|
|
108
|
+
"""
|
|
109
|
+
The description of the agent.
|
|
110
|
+
"""
|
|
111
|
+
|
|
112
|
+
metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
|
|
113
|
+
"""
|
|
114
|
+
The metadata of the agent.
|
|
115
|
+
"""
|
|
116
|
+
|
|
117
|
+
model: typing.Optional[str] = pydantic.Field(default=None)
|
|
118
|
+
"""
|
|
119
|
+
The LLM configuration handle used by the agent, specified in the format provider/model-name, as an alternative to specifying llm_config.
|
|
120
|
+
"""
|
|
121
|
+
|
|
122
|
+
embedding: typing.Optional[str] = pydantic.Field(default=None)
|
|
123
|
+
"""
|
|
124
|
+
The embedding configuration handle used by the agent, specified in the format provider/model-name.
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
context_window_limit: typing.Optional[int] = pydantic.Field(default=None)
|
|
128
|
+
"""
|
|
129
|
+
The context window limit used by the agent.
|
|
130
|
+
"""
|
|
131
|
+
|
|
132
|
+
embedding_chunk_size: typing.Optional[int] = pydantic.Field(default=None)
|
|
133
|
+
"""
|
|
134
|
+
The embedding chunk size used by the agent.
|
|
135
|
+
"""
|
|
136
|
+
|
|
137
|
+
max_tokens: typing.Optional[int] = pydantic.Field(default=None)
|
|
138
|
+
"""
|
|
139
|
+
The maximum number of tokens to generate, including reasoning step. If not set, the model will use its default value.
|
|
140
|
+
"""
|
|
141
|
+
|
|
142
|
+
max_reasoning_tokens: typing.Optional[int] = pydantic.Field(default=None)
|
|
143
|
+
"""
|
|
144
|
+
The maximum number of tokens to generate for reasoning step. If not set, the model will use its default value.
|
|
145
|
+
"""
|
|
146
|
+
|
|
147
|
+
enable_reasoner: typing.Optional[bool] = pydantic.Field(default=None)
|
|
148
|
+
"""
|
|
149
|
+
Whether to enable internal extended thinking step for a reasoner model.
|
|
150
|
+
"""
|
|
151
|
+
|
|
152
|
+
reasoning: typing.Optional[bool] = pydantic.Field(default=None)
|
|
153
|
+
"""
|
|
154
|
+
Whether to enable reasoning for this agent.
|
|
155
|
+
"""
|
|
156
|
+
|
|
157
|
+
from_template: typing.Optional[str] = pydantic.Field(default=None)
|
|
158
|
+
"""
|
|
159
|
+
The template id used to configure the agent
|
|
160
|
+
"""
|
|
161
|
+
|
|
162
|
+
template: typing.Optional[bool] = pydantic.Field(default=None)
|
|
163
|
+
"""
|
|
164
|
+
Whether the agent is a template
|
|
165
|
+
"""
|
|
166
|
+
|
|
167
|
+
project: typing.Optional[str] = pydantic.Field(default=None)
|
|
168
|
+
"""
|
|
169
|
+
Deprecated: Project should now be passed via the X-Project header instead of in the request body. If using the sdk, this can be done via the new x_project field below.
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
tool_exec_environment_variables: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(
|
|
173
|
+
default=None
|
|
174
|
+
)
|
|
175
|
+
"""
|
|
176
|
+
The environment variables for tool execution specific to this agent.
|
|
177
|
+
"""
|
|
178
|
+
|
|
179
|
+
memory_variables: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None)
|
|
180
|
+
"""
|
|
181
|
+
The variables that should be set for the agent.
|
|
182
|
+
"""
|
|
183
|
+
|
|
184
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
185
|
+
"""
|
|
186
|
+
The id of the project the agent belongs to.
|
|
187
|
+
"""
|
|
188
|
+
|
|
189
|
+
template_id: str = pydantic.Field()
|
|
190
|
+
"""
|
|
191
|
+
The id of the template.
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
base_template_id: str = pydantic.Field()
|
|
195
|
+
"""
|
|
196
|
+
The id of the base template.
|
|
197
|
+
"""
|
|
198
|
+
|
|
199
|
+
identity_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
200
|
+
"""
|
|
201
|
+
The ids of the identities associated with this agent.
|
|
202
|
+
"""
|
|
203
|
+
|
|
204
|
+
message_buffer_autoclear: typing.Optional[bool] = pydantic.Field(default=None)
|
|
205
|
+
"""
|
|
206
|
+
If set to True, the agent will not remember previous messages (though the agent will still retain state via core memory blocks and archival/recall memory). Not recommended unless you have an advanced use case.
|
|
207
|
+
"""
|
|
208
|
+
|
|
209
|
+
enable_sleeptime: typing.Optional[bool] = pydantic.Field(default=None)
|
|
210
|
+
"""
|
|
211
|
+
If set to True, memory management will move to a background agent thread.
|
|
212
|
+
"""
|
|
213
|
+
|
|
214
|
+
response_format: typing.Optional[InternalTemplateAgentCreateResponseFormat] = pydantic.Field(default=None)
|
|
215
|
+
"""
|
|
216
|
+
The response format for the agent.
|
|
217
|
+
"""
|
|
218
|
+
|
|
219
|
+
timezone: typing.Optional[str] = pydantic.Field(default=None)
|
|
220
|
+
"""
|
|
221
|
+
The timezone of the agent (IANA format).
|
|
222
|
+
"""
|
|
223
|
+
|
|
224
|
+
max_files_open: typing.Optional[int] = pydantic.Field(default=None)
|
|
225
|
+
"""
|
|
226
|
+
Maximum number of files that can be open at once for this agent. Setting this too high may exceed the context window, which will break the agent.
|
|
227
|
+
"""
|
|
228
|
+
|
|
229
|
+
per_file_view_window_char_limit: typing.Optional[int] = pydantic.Field(default=None)
|
|
230
|
+
"""
|
|
231
|
+
The per-file view window character limit for this agent. Setting this too high may exceed the context window, which will break the agent.
|
|
232
|
+
"""
|
|
233
|
+
|
|
234
|
+
hidden: typing.Optional[bool] = pydantic.Field(default=None)
|
|
235
|
+
"""
|
|
236
|
+
If set to True, the agent will be hidden.
|
|
237
|
+
"""
|
|
238
|
+
|
|
239
|
+
deployment_id: str = pydantic.Field()
|
|
240
|
+
"""
|
|
241
|
+
The id of the deployment.
|
|
242
|
+
"""
|
|
243
|
+
|
|
244
|
+
entity_id: str = pydantic.Field()
|
|
245
|
+
"""
|
|
246
|
+
The id of the entity within the template.
|
|
247
|
+
"""
|
|
248
|
+
|
|
249
|
+
if IS_PYDANTIC_V2:
|
|
250
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
251
|
+
else:
|
|
252
|
+
|
|
253
|
+
class Config:
|
|
254
|
+
frozen = True
|
|
255
|
+
smart_union = True
|
|
256
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from .json_object_response_format import JsonObjectResponseFormat
|
|
6
|
+
from .json_schema_response_format import JsonSchemaResponseFormat
|
|
7
|
+
from .text_response_format import TextResponseFormat
|
|
8
|
+
|
|
9
|
+
InternalTemplateAgentCreateResponseFormat = typing.Union[
|
|
10
|
+
JsonObjectResponseFormat, JsonSchemaResponseFormat, TextResponseFormat
|
|
11
|
+
]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from .child_tool_rule import ChildToolRule
|
|
6
|
+
from .conditional_tool_rule import ConditionalToolRule
|
|
7
|
+
from .continue_tool_rule import ContinueToolRule
|
|
8
|
+
from .init_tool_rule import InitToolRule
|
|
9
|
+
from .max_count_per_step_tool_rule import MaxCountPerStepToolRule
|
|
10
|
+
from .parent_tool_rule import ParentToolRule
|
|
11
|
+
from .required_before_exit_tool_rule import RequiredBeforeExitToolRule
|
|
12
|
+
from .requires_approval_tool_rule import RequiresApprovalToolRule
|
|
13
|
+
from .terminal_tool_rule import TerminalToolRule
|
|
14
|
+
|
|
15
|
+
InternalTemplateAgentCreateToolRulesItem = typing.Union[
|
|
16
|
+
ConditionalToolRule,
|
|
17
|
+
ChildToolRule,
|
|
18
|
+
ContinueToolRule,
|
|
19
|
+
TerminalToolRule,
|
|
20
|
+
MaxCountPerStepToolRule,
|
|
21
|
+
ParentToolRule,
|
|
22
|
+
RequiredBeforeExitToolRule,
|
|
23
|
+
RequiresApprovalToolRule,
|
|
24
|
+
InitToolRule,
|
|
25
|
+
]
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class InternalTemplateBlockCreate(UncheckedBaseModel):
|
|
11
|
+
"""
|
|
12
|
+
Used for Letta Cloud
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
value: str = pydantic.Field()
|
|
16
|
+
"""
|
|
17
|
+
Value of the block.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
limit: typing.Optional[int] = pydantic.Field(default=None)
|
|
21
|
+
"""
|
|
22
|
+
Character limit of the block.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
26
|
+
"""
|
|
27
|
+
The associated project id.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
31
|
+
"""
|
|
32
|
+
Name of the block if it is a template.
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
is_template: typing.Optional[bool] = None
|
|
36
|
+
template_id: str = pydantic.Field()
|
|
37
|
+
"""
|
|
38
|
+
The id of the template.
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
base_template_id: str = pydantic.Field()
|
|
42
|
+
"""
|
|
43
|
+
The id of the base template.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
deployment_id: str = pydantic.Field()
|
|
47
|
+
"""
|
|
48
|
+
The id of the deployment.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
entity_id: str = pydantic.Field()
|
|
52
|
+
"""
|
|
53
|
+
The id of the entity within the template.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
preserve_on_migration: typing.Optional[bool] = pydantic.Field(default=None)
|
|
57
|
+
"""
|
|
58
|
+
Preserve the block on template migration.
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
label: str = pydantic.Field()
|
|
62
|
+
"""
|
|
63
|
+
Label of the block.
|
|
64
|
+
"""
|
|
65
|
+
|
|
66
|
+
read_only: typing.Optional[bool] = pydantic.Field(default=None)
|
|
67
|
+
"""
|
|
68
|
+
Whether the agent has read-only access to the block.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
description: typing.Optional[str] = pydantic.Field(default=None)
|
|
72
|
+
"""
|
|
73
|
+
Description of the block.
|
|
74
|
+
"""
|
|
75
|
+
|
|
76
|
+
metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
|
|
77
|
+
"""
|
|
78
|
+
Metadata of the block.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
if IS_PYDANTIC_V2:
|
|
82
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
83
|
+
else:
|
|
84
|
+
|
|
85
|
+
class Config:
|
|
86
|
+
frozen = True
|
|
87
|
+
smart_union = True
|
|
88
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
from ..core.pydantic_utilities import IS_PYDANTIC_V2
|
|
7
|
+
from ..core.unchecked_base_model import UncheckedBaseModel
|
|
8
|
+
from .internal_template_group_create_manager_config import InternalTemplateGroupCreateManagerConfig
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class InternalTemplateGroupCreate(UncheckedBaseModel):
|
|
12
|
+
"""
|
|
13
|
+
Used for Letta Cloud
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
agent_ids: typing.List[str] = pydantic.Field()
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
"""
|
|
20
|
+
|
|
21
|
+
description: str = pydantic.Field()
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
manager_config: typing.Optional[InternalTemplateGroupCreateManagerConfig] = pydantic.Field(default=None)
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
32
|
+
"""
|
|
33
|
+
The associated project id.
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
shared_block_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
base_template_id: str = pydantic.Field()
|
|
42
|
+
"""
|
|
43
|
+
The id of the base template.
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
template_id: str = pydantic.Field()
|
|
47
|
+
"""
|
|
48
|
+
The id of the template.
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
deployment_id: str = pydantic.Field()
|
|
52
|
+
"""
|
|
53
|
+
The id of the deployment.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
if IS_PYDANTIC_V2:
|
|
57
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
58
|
+
else:
|
|
59
|
+
|
|
60
|
+
class Config:
|
|
61
|
+
frozen = True
|
|
62
|
+
smart_union = True
|
|
63
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from .dynamic_manager import DynamicManager
|
|
6
|
+
from .round_robin_manager import RoundRobinManager
|
|
7
|
+
from .sleeptime_manager import SleeptimeManager
|
|
8
|
+
from .supervisor_manager import SupervisorManager
|
|
9
|
+
from .voice_sleeptime_manager import VoiceSleeptimeManager
|
|
10
|
+
|
|
11
|
+
InternalTemplateGroupCreateManagerConfig = typing.Union[
|
|
12
|
+
DynamicManager, RoundRobinManager, SleeptimeManager, SupervisorManager, VoiceSleeptimeManager
|
|
13
|
+
]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
letta_client/__init__.py,sha256=
|
|
1
|
+
letta_client/__init__.py,sha256=bXiTjE64Mj9HyVqd7lTCNddeKrY_jCMBMD8_r_1q2S8,28177
|
|
2
2
|
letta_client/agents/__init__.py,sha256=6U2CPqYOtgufFoEhev61AzE-oOqgAQPUBsN8H7YJDbg,2081
|
|
3
3
|
letta_client/agents/blocks/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
|
|
4
4
|
letta_client/agents/blocks/client.py,sha256=CUwVh5FHgD0YP3VNhUrWdkedMWk49yH3IiDD589AWEM,15809
|
|
@@ -34,8 +34,8 @@ letta_client/agents/messages/types/messages_modify_request.py,sha256=0NT3pgbqQIt
|
|
|
34
34
|
letta_client/agents/messages/types/messages_modify_response.py,sha256=0nbkp7q7iaM2esLkdmIe0CYpJWY6LYtR3V-WkKaAy-g,871
|
|
35
35
|
letta_client/agents/messages/types/messages_preview_raw_payload_request.py,sha256=ncI14H-30FLJujezUyk2yS7Jfqf7TqqhcWejWXQ4pcE,283
|
|
36
36
|
letta_client/agents/passages/__init__.py,sha256=wA0bocGcbmgb62sL9MEWpKzP_KBVv8KHhvc6vZH6MOE,187
|
|
37
|
-
letta_client/agents/passages/client.py,sha256=
|
|
38
|
-
letta_client/agents/passages/raw_client.py,sha256=
|
|
37
|
+
letta_client/agents/passages/client.py,sha256=x0Fj8BvukT4PDAsdqYiPLcoTVKWb7YSgi7Q8CX3m6Wc,17387
|
|
38
|
+
letta_client/agents/passages/raw_client.py,sha256=4oe8qXeXHM09ZwGJUtV0yh-WfaQ18q6oOlQ-aOGqKs8,26535
|
|
39
39
|
letta_client/agents/passages/types/__init__.py,sha256=zA5psnkblMdGa_kOTKkqZmMPtryV1uGScnWFeI9fuu4,220
|
|
40
40
|
letta_client/agents/passages/types/passages_search_request_tag_match_mode.py,sha256=cgAkixKi6VCJGFHUtjEzYdgq9KJcn5nrEMbR3zKp2rE,171
|
|
41
41
|
letta_client/agents/raw_client.py,sha256=h3USsoctFijFNYUQDi6OdgvpJBtj7a8ekrL58EtsV7A,97954
|
|
@@ -92,7 +92,7 @@ letta_client/client_side_access_tokens/types/client_side_access_tokens_list_clie
|
|
|
92
92
|
letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item_access_item.py,sha256=kNHfEWFl7u71Pu8NPqutod0a2NXfvq8il05Hqm0iBB4,284
|
|
93
93
|
letta_client/core/__init__.py,sha256=tpn7rjb6C2UIkYZYIqdrNpI7Yax2jw88sXh2baxaxAI,1715
|
|
94
94
|
letta_client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
|
|
95
|
-
letta_client/core/client_wrapper.py,sha256=
|
|
95
|
+
letta_client/core/client_wrapper.py,sha256=d03nmVl5Ye_9rsRILOLXLEDnugc2XlluvcxNB7xqb6U,2776
|
|
96
96
|
letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
|
97
97
|
letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
|
|
98
98
|
letta_client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
|
|
@@ -202,7 +202,7 @@ letta_client/tags/raw_client.py,sha256=DQXEgzOuCygBMbzX63Sc9UwfueALa5rUHH3c8jb4O
|
|
|
202
202
|
letta_client/telemetry/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
|
|
203
203
|
letta_client/telemetry/client.py,sha256=cHMxfLAFjbT-XLtG0o04tGMaRnabrPuixbfHV3HFitE,3042
|
|
204
204
|
letta_client/telemetry/raw_client.py,sha256=Zxs3KkYCfs6M1b4vJbzHunZs7SzSiYAiy4Nb7tFAKC8,4962
|
|
205
|
-
letta_client/templates/__init__.py,sha256=
|
|
205
|
+
letta_client/templates/__init__.py,sha256=A-h3ZYJPXZsRGvUdk9UrSOir_NawVjkqLVXoeX_noxI,4372
|
|
206
206
|
letta_client/templates/agents/__init__.py,sha256=Nb3AeDuJhSba_DbgHKuCUY1b3PT1jj3-YMJ7uW7RIAk,393
|
|
207
207
|
letta_client/templates/agents/client.py,sha256=HCCEZZ3b0tGonxDNbiPuXadoZu_x1G_OtBdTHRBpG4M,7088
|
|
208
208
|
letta_client/templates/agents/raw_client.py,sha256=RGf_8ZaBbkS3sE7qrKqirL8Mu-E7CDRZNEKFWCJ3v4E,9552
|
|
@@ -210,9 +210,12 @@ letta_client/templates/agents/types/__init__.py,sha256=gDThrVEf3npLrxCqHWKgJLwB6
|
|
|
210
210
|
letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item.py,sha256=0--NEWDhbw-1WBF5wr5tl25ucWkqHvhmSm8iuQOr6tw,986
|
|
211
211
|
letta_client/templates/agents/types/agents_create_request_initial_message_sequence_item_role.py,sha256=Xp6uU0_CfWtIBtHdwicF9b4yAcrCYXQyYvxtNKyq-K4,210
|
|
212
212
|
letta_client/templates/agents/types/agents_create_response.py,sha256=P5sppbD_qW7I9suv5Ykm7tlgnh5a3omYggA8JgLw2RY,637
|
|
213
|
-
letta_client/templates/client.py,sha256=
|
|
214
|
-
letta_client/templates/raw_client.py,sha256=
|
|
215
|
-
letta_client/templates/types/__init__.py,sha256=
|
|
213
|
+
letta_client/templates/client.py,sha256=cUyfi2AqglBR8JvDzyV43znUmQnwyOdq3lrWPElTKsQ,30714
|
|
214
|
+
letta_client/templates/raw_client.py,sha256=U9x3mGpgptDFm2sbHri4o4yB3pPLFCoCeVP9XK18IFk,50697
|
|
215
|
+
letta_client/templates/types/__init__.py,sha256=Joib6wxgIzQ4cmKKD2In6Ts8iF8YuCtyrdX0pN0Izuo,6428
|
|
216
|
+
letta_client/templates/types/templates_create_template_request.py,sha256=8Po-a33Bdyosx-Y08cnbTmmHYog7GJC--ZcZse5Opkk,405
|
|
217
|
+
letta_client/templates/types/templates_create_template_request_agent_file.py,sha256=LVlJq2JWT9Bgo3BPRcLaf5inWX034SvEOEd4fkM4gvg,1058
|
|
218
|
+
letta_client/templates/types/templates_create_template_request_agent_id.py,sha256=M5MG3wNcbGHZR2Z-zxwgj9PA03VkKB8gTGmZQwuApuM,972
|
|
216
219
|
letta_client/templates/types/templates_create_template_response.py,sha256=UKaNiwW7WNX4Q3_IqGkFJaatMcdSS-Tsf8gDT2i677w,1082
|
|
217
220
|
letta_client/templates/types/templates_delete_template_response.py,sha256=_DUyWh9jtgw8u_U_JsV8N-RhPcY32QLAQZsUCSXDCTY,583
|
|
218
221
|
letta_client/templates/types/templates_fork_template_response.py,sha256=zX8aCR5Z8sEgXJHHzxsPeYRNMW2HfD26EN5Mlwrt-ZI,1080
|
|
@@ -259,7 +262,7 @@ letta_client/tools/types/streaming_response.py,sha256=V1qT-XAqm-z7zffJ7W1JKPCaxZ
|
|
|
259
262
|
letta_client/tools/types/test_mcp_server_request.py,sha256=3SqjEL3EYi7iV57TjTIzuBSKv8O3Y7qSUFrCiXEvSRk,373
|
|
260
263
|
letta_client/tools/types/update_mcp_server_request.py,sha256=MHouV3iyZCTROguOQP5rOYvnmvDbBeXe5VtEejRvrEs,403
|
|
261
264
|
letta_client/tools/types/update_mcp_server_response.py,sha256=BJTPHWkb8hwgd4FvftQ8eZjl2QzCQT-vZAUVnLft9hw,376
|
|
262
|
-
letta_client/types/__init__.py,sha256=
|
|
265
|
+
letta_client/types/__init__.py,sha256=ASxjFvQ1zvBhfqKpbPXyniGTLFUmK_bFgJWlQHy1Tbc,30954
|
|
263
266
|
letta_client/types/action_model.py,sha256=VTXavHB6J2d4MjjTMEpkuEyVaiTHyj1FGfa4j8kN6hQ,1241
|
|
264
267
|
letta_client/types/action_parameters_model.py,sha256=s1mJ4tycms8UmCFsxyjKr6RbghSuqv35xpa9mK42sjg,829
|
|
265
268
|
letta_client/types/action_response_model.py,sha256=LcML150OvsKimVV3sP4jSFh8pVxQXn_r_ff8DADOr3c,825
|
|
@@ -410,6 +413,12 @@ letta_client/types/imported_agents_response.py,sha256=PDBKbNcUNpRumkUgQTE4-pfPc9
|
|
|
410
413
|
letta_client/types/init_tool_rule.py,sha256=ybXzH1cWQesY2Z4Umf3lnGep8TmulRW6OCtrV7cx8hw,1044
|
|
411
414
|
letta_client/types/input_audio.py,sha256=l4T076iM05SxiqBx5TEkE4baG99rk1olL6hmVictuJQ,634
|
|
412
415
|
letta_client/types/input_audio_format.py,sha256=QQFfndI9w66wIbGyHwfmJnk2bEJDPmEs9GybkaNL6AI,154
|
|
416
|
+
letta_client/types/internal_template_agent_create.py,sha256=q1qgpCpfHbkAMGZfJTw1SGS2EeKzPtLA6raygY70bls,8255
|
|
417
|
+
letta_client/types/internal_template_agent_create_response_format.py,sha256=4SOu2jhF5qZDlDorGrZ2cdyUF2do0IOtslZ_219qtzk,401
|
|
418
|
+
letta_client/types/internal_template_agent_create_tool_rules_item.py,sha256=zAZ1RbQnzI0K9YAP3OcBxRyi2WRx6G60lOnt6sekiS8,842
|
|
419
|
+
letta_client/types/internal_template_block_create.py,sha256=lkq-fhvnsD8GrMgZyRgwbDA6wZ8_Fl3VmJ_yeo0oWcI,2071
|
|
420
|
+
letta_client/types/internal_template_group_create.py,sha256=p4qAkNz4MkzHqG3e1_viafwRf6WHFTA9xv29W9oNRyc,1460
|
|
421
|
+
letta_client/types/internal_template_group_create_manager_config.py,sha256=zAX6KW-UB6dyqXSm2Wtp30wRfitANePpuoulLzsQm7M,490
|
|
413
422
|
letta_client/types/job.py,sha256=dQLV9NM5mTYnS5iER8f-MvNAcC2CD7NXBBwQvbJN77c,3193
|
|
414
423
|
letta_client/types/job_status.py,sha256=hfkoSxAxkPegq1FSzzCTWQCBzoJwlvyrYnxtC0LzfUs,219
|
|
415
424
|
letta_client/types/job_type.py,sha256=HXYrfzPwxI54PqV7OVcMhewSJ_pBNHc14s9LcExr7Ss,154
|
|
@@ -581,6 +590,6 @@ letta_client/version.py,sha256=bttKLbIhO3UonCYQlqs600zzbQgfhCCMjeXR9WRzid4,79
|
|
|
581
590
|
letta_client/voice/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
|
|
582
591
|
letta_client/voice/client.py,sha256=EbIVOQh4HXqU9McATxwga08STk-HUwPEAUr_UHqyKHg,3748
|
|
583
592
|
letta_client/voice/raw_client.py,sha256=KvM_3GXuSf51bubM0RVBnxvlf20qZTFMnaA_BzhXzjQ,5938
|
|
584
|
-
letta_client-0.1.
|
|
585
|
-
letta_client-0.1.
|
|
586
|
-
letta_client-0.1.
|
|
593
|
+
letta_client-0.1.310.dist-info/METADATA,sha256=uopeLfGEHVYlIC2ZDqslDrWcqL605PVj7pbqAt_HBSM,5782
|
|
594
|
+
letta_client-0.1.310.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
|
595
|
+
letta_client-0.1.310.dist-info/RECORD,,
|
|
File without changes
|