letta-client 0.1.221__py3-none-any.whl → 0.1.223__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of letta-client might be problematic. Click here for more details.
- letta_client/__init__.py +2 -0
- letta_client/agents/blocks/client.py +10 -0
- letta_client/blocks/client.py +30 -0
- letta_client/core/client_wrapper.py +1 -1
- letta_client/groups/client.py +20 -0
- letta_client/tools/__init__.py +2 -0
- letta_client/tools/client.py +317 -10
- letta_client/tools/types/__init__.py +2 -0
- letta_client/tools/types/connect_mcp_server_request.py +8 -0
- letta_client/types/block.py +5 -0
- letta_client/types/block_update.py +5 -0
- letta_client/types/create_block.py +5 -0
- letta_client/types/file_block.py +5 -0
- letta_client/types/group.py +5 -0
- {letta_client-0.1.221.dist-info → letta_client-0.1.223.dist-info}/METADATA +1 -1
- {letta_client-0.1.221.dist-info → letta_client-0.1.223.dist-info}/RECORD +17 -16
- {letta_client-0.1.221.dist-info → letta_client-0.1.223.dist-info}/WHEEL +0 -0
letta_client/__init__.py
CHANGED
|
@@ -334,6 +334,7 @@ from .templates import TemplatesListResponse, TemplatesListResponseTemplatesItem
|
|
|
334
334
|
from .tools import (
|
|
335
335
|
AddMcpServerRequest,
|
|
336
336
|
AddMcpServerResponseItem,
|
|
337
|
+
ConnectMcpServerRequest,
|
|
337
338
|
DeleteMcpServerResponseItem,
|
|
338
339
|
ListMcpServersResponseValue,
|
|
339
340
|
TestMcpServerRequest,
|
|
@@ -449,6 +450,7 @@ __all__ = [
|
|
|
449
450
|
"ConditionalToolRuleSchema",
|
|
450
451
|
"ConflictError",
|
|
451
452
|
"ConflictErrorBody",
|
|
453
|
+
"ConnectMcpServerRequest",
|
|
452
454
|
"ContextWindowOverview",
|
|
453
455
|
"ContinueToolRule",
|
|
454
456
|
"CoreMemoryBlockSchema",
|
|
@@ -90,6 +90,7 @@ class BlocksClient:
|
|
|
90
90
|
*,
|
|
91
91
|
value: typing.Optional[str] = OMIT,
|
|
92
92
|
limit: typing.Optional[int] = OMIT,
|
|
93
|
+
project_id: typing.Optional[str] = OMIT,
|
|
93
94
|
name: typing.Optional[str] = OMIT,
|
|
94
95
|
is_template: typing.Optional[bool] = OMIT,
|
|
95
96
|
preserve_on_migration: typing.Optional[bool] = OMIT,
|
|
@@ -114,6 +115,9 @@ class BlocksClient:
|
|
|
114
115
|
limit : typing.Optional[int]
|
|
115
116
|
Character limit of the block.
|
|
116
117
|
|
|
118
|
+
project_id : typing.Optional[str]
|
|
119
|
+
The associated project id.
|
|
120
|
+
|
|
117
121
|
name : typing.Optional[str]
|
|
118
122
|
Name of the block if it is a template.
|
|
119
123
|
|
|
@@ -162,6 +166,7 @@ class BlocksClient:
|
|
|
162
166
|
json={
|
|
163
167
|
"value": value,
|
|
164
168
|
"limit": limit,
|
|
169
|
+
"project_id": project_id,
|
|
165
170
|
"name": name,
|
|
166
171
|
"is_template": is_template,
|
|
167
172
|
"preserve_on_migration": preserve_on_migration,
|
|
@@ -460,6 +465,7 @@ class AsyncBlocksClient:
|
|
|
460
465
|
*,
|
|
461
466
|
value: typing.Optional[str] = OMIT,
|
|
462
467
|
limit: typing.Optional[int] = OMIT,
|
|
468
|
+
project_id: typing.Optional[str] = OMIT,
|
|
463
469
|
name: typing.Optional[str] = OMIT,
|
|
464
470
|
is_template: typing.Optional[bool] = OMIT,
|
|
465
471
|
preserve_on_migration: typing.Optional[bool] = OMIT,
|
|
@@ -484,6 +490,9 @@ class AsyncBlocksClient:
|
|
|
484
490
|
limit : typing.Optional[int]
|
|
485
491
|
Character limit of the block.
|
|
486
492
|
|
|
493
|
+
project_id : typing.Optional[str]
|
|
494
|
+
The associated project id.
|
|
495
|
+
|
|
487
496
|
name : typing.Optional[str]
|
|
488
497
|
Name of the block if it is a template.
|
|
489
498
|
|
|
@@ -540,6 +549,7 @@ class AsyncBlocksClient:
|
|
|
540
549
|
json={
|
|
541
550
|
"value": value,
|
|
542
551
|
"limit": limit,
|
|
552
|
+
"project_id": project_id,
|
|
543
553
|
"name": name,
|
|
544
554
|
"is_template": is_template,
|
|
545
555
|
"preserve_on_migration": preserve_on_migration,
|
letta_client/blocks/client.py
CHANGED
|
@@ -31,6 +31,7 @@ class BlocksClient:
|
|
|
31
31
|
name: typing.Optional[str] = None,
|
|
32
32
|
identity_id: typing.Optional[str] = None,
|
|
33
33
|
identifier_keys: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
34
|
+
project_id: typing.Optional[str] = None,
|
|
34
35
|
limit: typing.Optional[int] = None,
|
|
35
36
|
request_options: typing.Optional[RequestOptions] = None,
|
|
36
37
|
) -> typing.List[Block]:
|
|
@@ -52,6 +53,9 @@ class BlocksClient:
|
|
|
52
53
|
identifier_keys : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
53
54
|
Search agents by identifier keys
|
|
54
55
|
|
|
56
|
+
project_id : typing.Optional[str]
|
|
57
|
+
Search blocks by project id
|
|
58
|
+
|
|
55
59
|
limit : typing.Optional[int]
|
|
56
60
|
Number of blocks to return
|
|
57
61
|
|
|
@@ -82,6 +86,7 @@ class BlocksClient:
|
|
|
82
86
|
"name": name,
|
|
83
87
|
"identity_id": identity_id,
|
|
84
88
|
"identifier_keys": identifier_keys,
|
|
89
|
+
"project_id": project_id,
|
|
85
90
|
"limit": limit,
|
|
86
91
|
},
|
|
87
92
|
request_options=request_options,
|
|
@@ -116,6 +121,7 @@ class BlocksClient:
|
|
|
116
121
|
value: str,
|
|
117
122
|
label: str,
|
|
118
123
|
limit: typing.Optional[int] = OMIT,
|
|
124
|
+
project_id: typing.Optional[str] = OMIT,
|
|
119
125
|
name: typing.Optional[str] = OMIT,
|
|
120
126
|
is_template: typing.Optional[bool] = OMIT,
|
|
121
127
|
preserve_on_migration: typing.Optional[bool] = OMIT,
|
|
@@ -136,6 +142,9 @@ class BlocksClient:
|
|
|
136
142
|
limit : typing.Optional[int]
|
|
137
143
|
Character limit of the block.
|
|
138
144
|
|
|
145
|
+
project_id : typing.Optional[str]
|
|
146
|
+
The associated project id.
|
|
147
|
+
|
|
139
148
|
name : typing.Optional[str]
|
|
140
149
|
Name of the block if it is a template.
|
|
141
150
|
|
|
@@ -180,6 +189,7 @@ class BlocksClient:
|
|
|
180
189
|
json={
|
|
181
190
|
"value": value,
|
|
182
191
|
"limit": limit,
|
|
192
|
+
"project_id": project_id,
|
|
183
193
|
"name": name,
|
|
184
194
|
"is_template": is_template,
|
|
185
195
|
"preserve_on_migration": preserve_on_migration,
|
|
@@ -386,6 +396,7 @@ class BlocksClient:
|
|
|
386
396
|
*,
|
|
387
397
|
value: typing.Optional[str] = OMIT,
|
|
388
398
|
limit: typing.Optional[int] = OMIT,
|
|
399
|
+
project_id: typing.Optional[str] = OMIT,
|
|
389
400
|
name: typing.Optional[str] = OMIT,
|
|
390
401
|
is_template: typing.Optional[bool] = OMIT,
|
|
391
402
|
preserve_on_migration: typing.Optional[bool] = OMIT,
|
|
@@ -406,6 +417,9 @@ class BlocksClient:
|
|
|
406
417
|
limit : typing.Optional[int]
|
|
407
418
|
Character limit of the block.
|
|
408
419
|
|
|
420
|
+
project_id : typing.Optional[str]
|
|
421
|
+
The associated project id.
|
|
422
|
+
|
|
409
423
|
name : typing.Optional[str]
|
|
410
424
|
Name of the block if it is a template.
|
|
411
425
|
|
|
@@ -453,6 +467,7 @@ class BlocksClient:
|
|
|
453
467
|
json={
|
|
454
468
|
"value": value,
|
|
455
469
|
"limit": limit,
|
|
470
|
+
"project_id": project_id,
|
|
456
471
|
"name": name,
|
|
457
472
|
"is_template": is_template,
|
|
458
473
|
"preserve_on_migration": preserve_on_migration,
|
|
@@ -502,6 +517,7 @@ class AsyncBlocksClient:
|
|
|
502
517
|
name: typing.Optional[str] = None,
|
|
503
518
|
identity_id: typing.Optional[str] = None,
|
|
504
519
|
identifier_keys: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
520
|
+
project_id: typing.Optional[str] = None,
|
|
505
521
|
limit: typing.Optional[int] = None,
|
|
506
522
|
request_options: typing.Optional[RequestOptions] = None,
|
|
507
523
|
) -> typing.List[Block]:
|
|
@@ -523,6 +539,9 @@ class AsyncBlocksClient:
|
|
|
523
539
|
identifier_keys : typing.Optional[typing.Union[str, typing.Sequence[str]]]
|
|
524
540
|
Search agents by identifier keys
|
|
525
541
|
|
|
542
|
+
project_id : typing.Optional[str]
|
|
543
|
+
Search blocks by project id
|
|
544
|
+
|
|
526
545
|
limit : typing.Optional[int]
|
|
527
546
|
Number of blocks to return
|
|
528
547
|
|
|
@@ -561,6 +580,7 @@ class AsyncBlocksClient:
|
|
|
561
580
|
"name": name,
|
|
562
581
|
"identity_id": identity_id,
|
|
563
582
|
"identifier_keys": identifier_keys,
|
|
583
|
+
"project_id": project_id,
|
|
564
584
|
"limit": limit,
|
|
565
585
|
},
|
|
566
586
|
request_options=request_options,
|
|
@@ -595,6 +615,7 @@ class AsyncBlocksClient:
|
|
|
595
615
|
value: str,
|
|
596
616
|
label: str,
|
|
597
617
|
limit: typing.Optional[int] = OMIT,
|
|
618
|
+
project_id: typing.Optional[str] = OMIT,
|
|
598
619
|
name: typing.Optional[str] = OMIT,
|
|
599
620
|
is_template: typing.Optional[bool] = OMIT,
|
|
600
621
|
preserve_on_migration: typing.Optional[bool] = OMIT,
|
|
@@ -615,6 +636,9 @@ class AsyncBlocksClient:
|
|
|
615
636
|
limit : typing.Optional[int]
|
|
616
637
|
Character limit of the block.
|
|
617
638
|
|
|
639
|
+
project_id : typing.Optional[str]
|
|
640
|
+
The associated project id.
|
|
641
|
+
|
|
618
642
|
name : typing.Optional[str]
|
|
619
643
|
Name of the block if it is a template.
|
|
620
644
|
|
|
@@ -667,6 +691,7 @@ class AsyncBlocksClient:
|
|
|
667
691
|
json={
|
|
668
692
|
"value": value,
|
|
669
693
|
"limit": limit,
|
|
694
|
+
"project_id": project_id,
|
|
670
695
|
"name": name,
|
|
671
696
|
"is_template": is_template,
|
|
672
697
|
"preserve_on_migration": preserve_on_migration,
|
|
@@ -897,6 +922,7 @@ class AsyncBlocksClient:
|
|
|
897
922
|
*,
|
|
898
923
|
value: typing.Optional[str] = OMIT,
|
|
899
924
|
limit: typing.Optional[int] = OMIT,
|
|
925
|
+
project_id: typing.Optional[str] = OMIT,
|
|
900
926
|
name: typing.Optional[str] = OMIT,
|
|
901
927
|
is_template: typing.Optional[bool] = OMIT,
|
|
902
928
|
preserve_on_migration: typing.Optional[bool] = OMIT,
|
|
@@ -917,6 +943,9 @@ class AsyncBlocksClient:
|
|
|
917
943
|
limit : typing.Optional[int]
|
|
918
944
|
Character limit of the block.
|
|
919
945
|
|
|
946
|
+
project_id : typing.Optional[str]
|
|
947
|
+
The associated project id.
|
|
948
|
+
|
|
920
949
|
name : typing.Optional[str]
|
|
921
950
|
Name of the block if it is a template.
|
|
922
951
|
|
|
@@ -972,6 +1001,7 @@ class AsyncBlocksClient:
|
|
|
972
1001
|
json={
|
|
973
1002
|
"value": value,
|
|
974
1003
|
"limit": limit,
|
|
1004
|
+
"project_id": project_id,
|
|
975
1005
|
"name": name,
|
|
976
1006
|
"is_template": is_template,
|
|
977
1007
|
"preserve_on_migration": preserve_on_migration,
|
|
@@ -24,7 +24,7 @@ class BaseClientWrapper:
|
|
|
24
24
|
headers: typing.Dict[str, str] = {
|
|
25
25
|
"X-Fern-Language": "Python",
|
|
26
26
|
"X-Fern-SDK-Name": "letta-client",
|
|
27
|
-
"X-Fern-SDK-Version": "0.1.
|
|
27
|
+
"X-Fern-SDK-Version": "0.1.223",
|
|
28
28
|
}
|
|
29
29
|
if self._project is not None:
|
|
30
30
|
headers["X-Project"] = self._project
|
letta_client/groups/client.py
CHANGED
|
@@ -117,6 +117,7 @@ class GroupsClient:
|
|
|
117
117
|
agent_ids: typing.Sequence[str],
|
|
118
118
|
description: str,
|
|
119
119
|
manager_config: typing.Optional[GroupCreateManagerConfig] = OMIT,
|
|
120
|
+
project_id: typing.Optional[str] = OMIT,
|
|
120
121
|
shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
121
122
|
request_options: typing.Optional[RequestOptions] = None,
|
|
122
123
|
) -> Group:
|
|
@@ -134,6 +135,9 @@ class GroupsClient:
|
|
|
134
135
|
manager_config : typing.Optional[GroupCreateManagerConfig]
|
|
135
136
|
|
|
136
137
|
|
|
138
|
+
project_id : typing.Optional[str]
|
|
139
|
+
The associated project id.
|
|
140
|
+
|
|
137
141
|
shared_block_ids : typing.Optional[typing.Sequence[str]]
|
|
138
142
|
|
|
139
143
|
|
|
@@ -167,6 +171,7 @@ class GroupsClient:
|
|
|
167
171
|
"manager_config": convert_and_respect_annotation_metadata(
|
|
168
172
|
object_=manager_config, annotation=GroupCreateManagerConfig, direction="write"
|
|
169
173
|
),
|
|
174
|
+
"project_id": project_id,
|
|
170
175
|
"shared_block_ids": shared_block_ids,
|
|
171
176
|
},
|
|
172
177
|
headers={
|
|
@@ -375,6 +380,7 @@ class GroupsClient:
|
|
|
375
380
|
agent_ids: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
376
381
|
description: typing.Optional[str] = OMIT,
|
|
377
382
|
manager_config: typing.Optional[GroupUpdateManagerConfig] = OMIT,
|
|
383
|
+
project_id: typing.Optional[str] = OMIT,
|
|
378
384
|
shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
379
385
|
request_options: typing.Optional[RequestOptions] = None,
|
|
380
386
|
) -> Group:
|
|
@@ -394,6 +400,9 @@ class GroupsClient:
|
|
|
394
400
|
manager_config : typing.Optional[GroupUpdateManagerConfig]
|
|
395
401
|
|
|
396
402
|
|
|
403
|
+
project_id : typing.Optional[str]
|
|
404
|
+
The associated project id.
|
|
405
|
+
|
|
397
406
|
shared_block_ids : typing.Optional[typing.Sequence[str]]
|
|
398
407
|
|
|
399
408
|
|
|
@@ -426,6 +435,7 @@ class GroupsClient:
|
|
|
426
435
|
"manager_config": convert_and_respect_annotation_metadata(
|
|
427
436
|
object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
|
|
428
437
|
),
|
|
438
|
+
"project_id": project_id,
|
|
429
439
|
"shared_block_ids": shared_block_ids,
|
|
430
440
|
},
|
|
431
441
|
headers={
|
|
@@ -562,6 +572,7 @@ class AsyncGroupsClient:
|
|
|
562
572
|
agent_ids: typing.Sequence[str],
|
|
563
573
|
description: str,
|
|
564
574
|
manager_config: typing.Optional[GroupCreateManagerConfig] = OMIT,
|
|
575
|
+
project_id: typing.Optional[str] = OMIT,
|
|
565
576
|
shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
566
577
|
request_options: typing.Optional[RequestOptions] = None,
|
|
567
578
|
) -> Group:
|
|
@@ -579,6 +590,9 @@ class AsyncGroupsClient:
|
|
|
579
590
|
manager_config : typing.Optional[GroupCreateManagerConfig]
|
|
580
591
|
|
|
581
592
|
|
|
593
|
+
project_id : typing.Optional[str]
|
|
594
|
+
The associated project id.
|
|
595
|
+
|
|
582
596
|
shared_block_ids : typing.Optional[typing.Sequence[str]]
|
|
583
597
|
|
|
584
598
|
|
|
@@ -620,6 +634,7 @@ class AsyncGroupsClient:
|
|
|
620
634
|
"manager_config": convert_and_respect_annotation_metadata(
|
|
621
635
|
object_=manager_config, annotation=GroupCreateManagerConfig, direction="write"
|
|
622
636
|
),
|
|
637
|
+
"project_id": project_id,
|
|
623
638
|
"shared_block_ids": shared_block_ids,
|
|
624
639
|
},
|
|
625
640
|
headers={
|
|
@@ -852,6 +867,7 @@ class AsyncGroupsClient:
|
|
|
852
867
|
agent_ids: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
853
868
|
description: typing.Optional[str] = OMIT,
|
|
854
869
|
manager_config: typing.Optional[GroupUpdateManagerConfig] = OMIT,
|
|
870
|
+
project_id: typing.Optional[str] = OMIT,
|
|
855
871
|
shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
856
872
|
request_options: typing.Optional[RequestOptions] = None,
|
|
857
873
|
) -> Group:
|
|
@@ -871,6 +887,9 @@ class AsyncGroupsClient:
|
|
|
871
887
|
manager_config : typing.Optional[GroupUpdateManagerConfig]
|
|
872
888
|
|
|
873
889
|
|
|
890
|
+
project_id : typing.Optional[str]
|
|
891
|
+
The associated project id.
|
|
892
|
+
|
|
874
893
|
shared_block_ids : typing.Optional[typing.Sequence[str]]
|
|
875
894
|
|
|
876
895
|
|
|
@@ -911,6 +930,7 @@ class AsyncGroupsClient:
|
|
|
911
930
|
"manager_config": convert_and_respect_annotation_metadata(
|
|
912
931
|
object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
|
|
913
932
|
),
|
|
933
|
+
"project_id": project_id,
|
|
914
934
|
"shared_block_ids": shared_block_ids,
|
|
915
935
|
},
|
|
916
936
|
headers={
|
letta_client/tools/__init__.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from .types import (
|
|
4
4
|
AddMcpServerRequest,
|
|
5
5
|
AddMcpServerResponseItem,
|
|
6
|
+
ConnectMcpServerRequest,
|
|
6
7
|
DeleteMcpServerResponseItem,
|
|
7
8
|
ListMcpServersResponseValue,
|
|
8
9
|
TestMcpServerRequest,
|
|
@@ -13,6 +14,7 @@ from .types import (
|
|
|
13
14
|
__all__ = [
|
|
14
15
|
"AddMcpServerRequest",
|
|
15
16
|
"AddMcpServerResponseItem",
|
|
17
|
+
"ConnectMcpServerRequest",
|
|
16
18
|
"DeleteMcpServerResponseItem",
|
|
17
19
|
"ListMcpServersResponseValue",
|
|
18
20
|
"TestMcpServerRequest",
|
letta_client/tools/client.py
CHANGED
|
@@ -23,6 +23,7 @@ from .types.delete_mcp_server_response_item import DeleteMcpServerResponseItem
|
|
|
23
23
|
from .types.update_mcp_server_request import UpdateMcpServerRequest
|
|
24
24
|
from .types.update_mcp_server_response import UpdateMcpServerResponse
|
|
25
25
|
from .types.test_mcp_server_request import TestMcpServerRequest
|
|
26
|
+
from .types.connect_mcp_server_request import ConnectMcpServerRequest
|
|
26
27
|
from ..core.client_wrapper import AsyncClientWrapper
|
|
27
28
|
|
|
28
29
|
# this is used as the default value for optional parameters
|
|
@@ -1320,10 +1321,10 @@ class ToolsClient:
|
|
|
1320
1321
|
|
|
1321
1322
|
def test_mcp_server(
|
|
1322
1323
|
self, *, request: TestMcpServerRequest, request_options: typing.Optional[RequestOptions] = None
|
|
1323
|
-
) -> typing.
|
|
1324
|
+
) -> typing.Optional[typing.Any]:
|
|
1324
1325
|
"""
|
|
1325
1326
|
Test connection to an MCP server without adding it.
|
|
1326
|
-
Returns the list of available tools if successful.
|
|
1327
|
+
Returns the list of available tools if successful, or OAuth information if OAuth is required.
|
|
1327
1328
|
|
|
1328
1329
|
Parameters
|
|
1329
1330
|
----------
|
|
@@ -1334,7 +1335,7 @@ class ToolsClient:
|
|
|
1334
1335
|
|
|
1335
1336
|
Returns
|
|
1336
1337
|
-------
|
|
1337
|
-
typing.
|
|
1338
|
+
typing.Optional[typing.Any]
|
|
1338
1339
|
Successful Response
|
|
1339
1340
|
|
|
1340
1341
|
Examples
|
|
@@ -1365,9 +1366,77 @@ class ToolsClient:
|
|
|
1365
1366
|
try:
|
|
1366
1367
|
if 200 <= _response.status_code < 300:
|
|
1367
1368
|
return typing.cast(
|
|
1368
|
-
typing.
|
|
1369
|
+
typing.Optional[typing.Any],
|
|
1369
1370
|
construct_type(
|
|
1370
|
-
type_=typing.
|
|
1371
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1372
|
+
object_=_response.json(),
|
|
1373
|
+
),
|
|
1374
|
+
)
|
|
1375
|
+
if _response.status_code == 422:
|
|
1376
|
+
raise UnprocessableEntityError(
|
|
1377
|
+
typing.cast(
|
|
1378
|
+
HttpValidationError,
|
|
1379
|
+
construct_type(
|
|
1380
|
+
type_=HttpValidationError, # type: ignore
|
|
1381
|
+
object_=_response.json(),
|
|
1382
|
+
),
|
|
1383
|
+
)
|
|
1384
|
+
)
|
|
1385
|
+
_response_json = _response.json()
|
|
1386
|
+
except JSONDecodeError:
|
|
1387
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1388
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
1389
|
+
|
|
1390
|
+
def connect_mcp_server(
|
|
1391
|
+
self, *, request: ConnectMcpServerRequest, request_options: typing.Optional[RequestOptions] = None
|
|
1392
|
+
) -> typing.Optional[typing.Any]:
|
|
1393
|
+
"""
|
|
1394
|
+
Connect to an MCP server with support for OAuth via SSE.
|
|
1395
|
+
Returns a stream of events handling authorization state and exchange if OAuth is required.
|
|
1396
|
+
|
|
1397
|
+
Parameters
|
|
1398
|
+
----------
|
|
1399
|
+
request : ConnectMcpServerRequest
|
|
1400
|
+
|
|
1401
|
+
request_options : typing.Optional[RequestOptions]
|
|
1402
|
+
Request-specific configuration.
|
|
1403
|
+
|
|
1404
|
+
Returns
|
|
1405
|
+
-------
|
|
1406
|
+
typing.Optional[typing.Any]
|
|
1407
|
+
Successful response
|
|
1408
|
+
|
|
1409
|
+
Examples
|
|
1410
|
+
--------
|
|
1411
|
+
from letta_client import Letta, StdioServerConfig
|
|
1412
|
+
|
|
1413
|
+
client = Letta(
|
|
1414
|
+
project="YOUR_PROJECT",
|
|
1415
|
+
token="YOUR_TOKEN",
|
|
1416
|
+
)
|
|
1417
|
+
client.tools.connect_mcp_server(
|
|
1418
|
+
request=StdioServerConfig(
|
|
1419
|
+
server_name="server_name",
|
|
1420
|
+
command="command",
|
|
1421
|
+
args=["args"],
|
|
1422
|
+
),
|
|
1423
|
+
)
|
|
1424
|
+
"""
|
|
1425
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
1426
|
+
"v1/tools/mcp/servers/connect",
|
|
1427
|
+
method="POST",
|
|
1428
|
+
json=convert_and_respect_annotation_metadata(
|
|
1429
|
+
object_=request, annotation=ConnectMcpServerRequest, direction="write"
|
|
1430
|
+
),
|
|
1431
|
+
request_options=request_options,
|
|
1432
|
+
omit=OMIT,
|
|
1433
|
+
)
|
|
1434
|
+
try:
|
|
1435
|
+
if 200 <= _response.status_code < 300:
|
|
1436
|
+
return typing.cast(
|
|
1437
|
+
typing.Optional[typing.Any],
|
|
1438
|
+
construct_type(
|
|
1439
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1371
1440
|
object_=_response.json(),
|
|
1372
1441
|
),
|
|
1373
1442
|
)
|
|
@@ -1386,6 +1455,83 @@ class ToolsClient:
|
|
|
1386
1455
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1387
1456
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
1388
1457
|
|
|
1458
|
+
def mcp_oauth_callback(
|
|
1459
|
+
self,
|
|
1460
|
+
session_id: str,
|
|
1461
|
+
*,
|
|
1462
|
+
code: typing.Optional[str] = None,
|
|
1463
|
+
state: typing.Optional[str] = None,
|
|
1464
|
+
error: typing.Optional[str] = None,
|
|
1465
|
+
error_description: typing.Optional[str] = None,
|
|
1466
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1467
|
+
) -> None:
|
|
1468
|
+
"""
|
|
1469
|
+
Handle OAuth callback for MCP server authentication.
|
|
1470
|
+
|
|
1471
|
+
Parameters
|
|
1472
|
+
----------
|
|
1473
|
+
session_id : str
|
|
1474
|
+
|
|
1475
|
+
code : typing.Optional[str]
|
|
1476
|
+
OAuth authorization code
|
|
1477
|
+
|
|
1478
|
+
state : typing.Optional[str]
|
|
1479
|
+
OAuth state parameter
|
|
1480
|
+
|
|
1481
|
+
error : typing.Optional[str]
|
|
1482
|
+
OAuth error
|
|
1483
|
+
|
|
1484
|
+
error_description : typing.Optional[str]
|
|
1485
|
+
OAuth error description
|
|
1486
|
+
|
|
1487
|
+
request_options : typing.Optional[RequestOptions]
|
|
1488
|
+
Request-specific configuration.
|
|
1489
|
+
|
|
1490
|
+
Returns
|
|
1491
|
+
-------
|
|
1492
|
+
None
|
|
1493
|
+
|
|
1494
|
+
Examples
|
|
1495
|
+
--------
|
|
1496
|
+
from letta_client import Letta
|
|
1497
|
+
|
|
1498
|
+
client = Letta(
|
|
1499
|
+
project="YOUR_PROJECT",
|
|
1500
|
+
token="YOUR_TOKEN",
|
|
1501
|
+
)
|
|
1502
|
+
client.tools.mcp_oauth_callback(
|
|
1503
|
+
session_id="session_id",
|
|
1504
|
+
)
|
|
1505
|
+
"""
|
|
1506
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
1507
|
+
f"v1/tools/mcp/oauth/callback/{jsonable_encoder(session_id)}",
|
|
1508
|
+
method="GET",
|
|
1509
|
+
params={
|
|
1510
|
+
"code": code,
|
|
1511
|
+
"state": state,
|
|
1512
|
+
"error": error,
|
|
1513
|
+
"error_description": error_description,
|
|
1514
|
+
},
|
|
1515
|
+
request_options=request_options,
|
|
1516
|
+
)
|
|
1517
|
+
try:
|
|
1518
|
+
if 200 <= _response.status_code < 300:
|
|
1519
|
+
return
|
|
1520
|
+
if _response.status_code == 422:
|
|
1521
|
+
raise UnprocessableEntityError(
|
|
1522
|
+
typing.cast(
|
|
1523
|
+
HttpValidationError,
|
|
1524
|
+
construct_type(
|
|
1525
|
+
type_=HttpValidationError, # type: ignore
|
|
1526
|
+
object_=_response.json(),
|
|
1527
|
+
),
|
|
1528
|
+
)
|
|
1529
|
+
)
|
|
1530
|
+
_response_json = _response.json()
|
|
1531
|
+
except JSONDecodeError:
|
|
1532
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
1533
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
1534
|
+
|
|
1389
1535
|
|
|
1390
1536
|
class AsyncToolsClient:
|
|
1391
1537
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
@@ -2822,10 +2968,10 @@ class AsyncToolsClient:
|
|
|
2822
2968
|
|
|
2823
2969
|
async def test_mcp_server(
|
|
2824
2970
|
self, *, request: TestMcpServerRequest, request_options: typing.Optional[RequestOptions] = None
|
|
2825
|
-
) -> typing.
|
|
2971
|
+
) -> typing.Optional[typing.Any]:
|
|
2826
2972
|
"""
|
|
2827
2973
|
Test connection to an MCP server without adding it.
|
|
2828
|
-
Returns the list of available tools if successful.
|
|
2974
|
+
Returns the list of available tools if successful, or OAuth information if OAuth is required.
|
|
2829
2975
|
|
|
2830
2976
|
Parameters
|
|
2831
2977
|
----------
|
|
@@ -2836,7 +2982,7 @@ class AsyncToolsClient:
|
|
|
2836
2982
|
|
|
2837
2983
|
Returns
|
|
2838
2984
|
-------
|
|
2839
|
-
typing.
|
|
2985
|
+
typing.Optional[typing.Any]
|
|
2840
2986
|
Successful Response
|
|
2841
2987
|
|
|
2842
2988
|
Examples
|
|
@@ -2875,9 +3021,9 @@ class AsyncToolsClient:
|
|
|
2875
3021
|
try:
|
|
2876
3022
|
if 200 <= _response.status_code < 300:
|
|
2877
3023
|
return typing.cast(
|
|
2878
|
-
typing.
|
|
3024
|
+
typing.Optional[typing.Any],
|
|
2879
3025
|
construct_type(
|
|
2880
|
-
type_=typing.
|
|
3026
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
2881
3027
|
object_=_response.json(),
|
|
2882
3028
|
),
|
|
2883
3029
|
)
|
|
@@ -2895,3 +3041,164 @@ class AsyncToolsClient:
|
|
|
2895
3041
|
except JSONDecodeError:
|
|
2896
3042
|
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
2897
3043
|
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
3044
|
+
|
|
3045
|
+
async def connect_mcp_server(
|
|
3046
|
+
self, *, request: ConnectMcpServerRequest, request_options: typing.Optional[RequestOptions] = None
|
|
3047
|
+
) -> typing.Optional[typing.Any]:
|
|
3048
|
+
"""
|
|
3049
|
+
Connect to an MCP server with support for OAuth via SSE.
|
|
3050
|
+
Returns a stream of events handling authorization state and exchange if OAuth is required.
|
|
3051
|
+
|
|
3052
|
+
Parameters
|
|
3053
|
+
----------
|
|
3054
|
+
request : ConnectMcpServerRequest
|
|
3055
|
+
|
|
3056
|
+
request_options : typing.Optional[RequestOptions]
|
|
3057
|
+
Request-specific configuration.
|
|
3058
|
+
|
|
3059
|
+
Returns
|
|
3060
|
+
-------
|
|
3061
|
+
typing.Optional[typing.Any]
|
|
3062
|
+
Successful response
|
|
3063
|
+
|
|
3064
|
+
Examples
|
|
3065
|
+
--------
|
|
3066
|
+
import asyncio
|
|
3067
|
+
|
|
3068
|
+
from letta_client import AsyncLetta, StdioServerConfig
|
|
3069
|
+
|
|
3070
|
+
client = AsyncLetta(
|
|
3071
|
+
project="YOUR_PROJECT",
|
|
3072
|
+
token="YOUR_TOKEN",
|
|
3073
|
+
)
|
|
3074
|
+
|
|
3075
|
+
|
|
3076
|
+
async def main() -> None:
|
|
3077
|
+
await client.tools.connect_mcp_server(
|
|
3078
|
+
request=StdioServerConfig(
|
|
3079
|
+
server_name="server_name",
|
|
3080
|
+
command="command",
|
|
3081
|
+
args=["args"],
|
|
3082
|
+
),
|
|
3083
|
+
)
|
|
3084
|
+
|
|
3085
|
+
|
|
3086
|
+
asyncio.run(main())
|
|
3087
|
+
"""
|
|
3088
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
3089
|
+
"v1/tools/mcp/servers/connect",
|
|
3090
|
+
method="POST",
|
|
3091
|
+
json=convert_and_respect_annotation_metadata(
|
|
3092
|
+
object_=request, annotation=ConnectMcpServerRequest, direction="write"
|
|
3093
|
+
),
|
|
3094
|
+
request_options=request_options,
|
|
3095
|
+
omit=OMIT,
|
|
3096
|
+
)
|
|
3097
|
+
try:
|
|
3098
|
+
if 200 <= _response.status_code < 300:
|
|
3099
|
+
return typing.cast(
|
|
3100
|
+
typing.Optional[typing.Any],
|
|
3101
|
+
construct_type(
|
|
3102
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
3103
|
+
object_=_response.json(),
|
|
3104
|
+
),
|
|
3105
|
+
)
|
|
3106
|
+
if _response.status_code == 422:
|
|
3107
|
+
raise UnprocessableEntityError(
|
|
3108
|
+
typing.cast(
|
|
3109
|
+
HttpValidationError,
|
|
3110
|
+
construct_type(
|
|
3111
|
+
type_=HttpValidationError, # type: ignore
|
|
3112
|
+
object_=_response.json(),
|
|
3113
|
+
),
|
|
3114
|
+
)
|
|
3115
|
+
)
|
|
3116
|
+
_response_json = _response.json()
|
|
3117
|
+
except JSONDecodeError:
|
|
3118
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
3119
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
3120
|
+
|
|
3121
|
+
async def mcp_oauth_callback(
|
|
3122
|
+
self,
|
|
3123
|
+
session_id: str,
|
|
3124
|
+
*,
|
|
3125
|
+
code: typing.Optional[str] = None,
|
|
3126
|
+
state: typing.Optional[str] = None,
|
|
3127
|
+
error: typing.Optional[str] = None,
|
|
3128
|
+
error_description: typing.Optional[str] = None,
|
|
3129
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
3130
|
+
) -> None:
|
|
3131
|
+
"""
|
|
3132
|
+
Handle OAuth callback for MCP server authentication.
|
|
3133
|
+
|
|
3134
|
+
Parameters
|
|
3135
|
+
----------
|
|
3136
|
+
session_id : str
|
|
3137
|
+
|
|
3138
|
+
code : typing.Optional[str]
|
|
3139
|
+
OAuth authorization code
|
|
3140
|
+
|
|
3141
|
+
state : typing.Optional[str]
|
|
3142
|
+
OAuth state parameter
|
|
3143
|
+
|
|
3144
|
+
error : typing.Optional[str]
|
|
3145
|
+
OAuth error
|
|
3146
|
+
|
|
3147
|
+
error_description : typing.Optional[str]
|
|
3148
|
+
OAuth error description
|
|
3149
|
+
|
|
3150
|
+
request_options : typing.Optional[RequestOptions]
|
|
3151
|
+
Request-specific configuration.
|
|
3152
|
+
|
|
3153
|
+
Returns
|
|
3154
|
+
-------
|
|
3155
|
+
None
|
|
3156
|
+
|
|
3157
|
+
Examples
|
|
3158
|
+
--------
|
|
3159
|
+
import asyncio
|
|
3160
|
+
|
|
3161
|
+
from letta_client import AsyncLetta
|
|
3162
|
+
|
|
3163
|
+
client = AsyncLetta(
|
|
3164
|
+
project="YOUR_PROJECT",
|
|
3165
|
+
token="YOUR_TOKEN",
|
|
3166
|
+
)
|
|
3167
|
+
|
|
3168
|
+
|
|
3169
|
+
async def main() -> None:
|
|
3170
|
+
await client.tools.mcp_oauth_callback(
|
|
3171
|
+
session_id="session_id",
|
|
3172
|
+
)
|
|
3173
|
+
|
|
3174
|
+
|
|
3175
|
+
asyncio.run(main())
|
|
3176
|
+
"""
|
|
3177
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
3178
|
+
f"v1/tools/mcp/oauth/callback/{jsonable_encoder(session_id)}",
|
|
3179
|
+
method="GET",
|
|
3180
|
+
params={
|
|
3181
|
+
"code": code,
|
|
3182
|
+
"state": state,
|
|
3183
|
+
"error": error,
|
|
3184
|
+
"error_description": error_description,
|
|
3185
|
+
},
|
|
3186
|
+
request_options=request_options,
|
|
3187
|
+
)
|
|
3188
|
+
try:
|
|
3189
|
+
if 200 <= _response.status_code < 300:
|
|
3190
|
+
return
|
|
3191
|
+
if _response.status_code == 422:
|
|
3192
|
+
raise UnprocessableEntityError(
|
|
3193
|
+
typing.cast(
|
|
3194
|
+
HttpValidationError,
|
|
3195
|
+
construct_type(
|
|
3196
|
+
type_=HttpValidationError, # type: ignore
|
|
3197
|
+
object_=_response.json(),
|
|
3198
|
+
),
|
|
3199
|
+
)
|
|
3200
|
+
)
|
|
3201
|
+
_response_json = _response.json()
|
|
3202
|
+
except JSONDecodeError:
|
|
3203
|
+
raise ApiError(status_code=_response.status_code, body=_response.text)
|
|
3204
|
+
raise ApiError(status_code=_response.status_code, body=_response_json)
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from .add_mcp_server_request import AddMcpServerRequest
|
|
4
4
|
from .add_mcp_server_response_item import AddMcpServerResponseItem
|
|
5
|
+
from .connect_mcp_server_request import ConnectMcpServerRequest
|
|
5
6
|
from .delete_mcp_server_response_item import DeleteMcpServerResponseItem
|
|
6
7
|
from .list_mcp_servers_response_value import ListMcpServersResponseValue
|
|
7
8
|
from .test_mcp_server_request import TestMcpServerRequest
|
|
@@ -11,6 +12,7 @@ from .update_mcp_server_response import UpdateMcpServerResponse
|
|
|
11
12
|
__all__ = [
|
|
12
13
|
"AddMcpServerRequest",
|
|
13
14
|
"AddMcpServerResponseItem",
|
|
15
|
+
"ConnectMcpServerRequest",
|
|
14
16
|
"DeleteMcpServerResponseItem",
|
|
15
17
|
"ListMcpServersResponseValue",
|
|
16
18
|
"TestMcpServerRequest",
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from ...types.stdio_server_config import StdioServerConfig
|
|
5
|
+
from ...types.sse_server_config import SseServerConfig
|
|
6
|
+
from ...types.streamable_http_server_config import StreamableHttpServerConfig
|
|
7
|
+
|
|
8
|
+
ConnectMcpServerRequest = typing.Union[StdioServerConfig, SseServerConfig, StreamableHttpServerConfig]
|
letta_client/types/block.py
CHANGED
|
@@ -32,6 +32,11 @@ class Block(UncheckedBaseModel):
|
|
|
32
32
|
Character limit of the block.
|
|
33
33
|
"""
|
|
34
34
|
|
|
35
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
36
|
+
"""
|
|
37
|
+
The associated project id.
|
|
38
|
+
"""
|
|
39
|
+
|
|
35
40
|
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
36
41
|
"""
|
|
37
42
|
Name of the block if it is a template.
|
|
@@ -21,6 +21,11 @@ class BlockUpdate(UncheckedBaseModel):
|
|
|
21
21
|
Character limit of the block.
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
25
|
+
"""
|
|
26
|
+
The associated project id.
|
|
27
|
+
"""
|
|
28
|
+
|
|
24
29
|
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
25
30
|
"""
|
|
26
31
|
Name of the block if it is a template.
|
|
@@ -21,6 +21,11 @@ class CreateBlock(UncheckedBaseModel):
|
|
|
21
21
|
Character limit of the block.
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
25
|
+
"""
|
|
26
|
+
The associated project id.
|
|
27
|
+
"""
|
|
28
|
+
|
|
24
29
|
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
25
30
|
"""
|
|
26
31
|
Name of the block if it is a template.
|
letta_client/types/file_block.py
CHANGED
|
@@ -18,6 +18,11 @@ class FileBlock(UncheckedBaseModel):
|
|
|
18
18
|
Character limit of the block.
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
22
|
+
"""
|
|
23
|
+
The associated project id.
|
|
24
|
+
"""
|
|
25
|
+
|
|
21
26
|
name: typing.Optional[str] = pydantic.Field(default=None)
|
|
22
27
|
"""
|
|
23
28
|
Name of the block if it is a template.
|
letta_client/types/group.py
CHANGED
|
@@ -28,6 +28,11 @@ class Group(UncheckedBaseModel):
|
|
|
28
28
|
|
|
29
29
|
"""
|
|
30
30
|
|
|
31
|
+
project_id: typing.Optional[str] = pydantic.Field(default=None)
|
|
32
|
+
"""
|
|
33
|
+
The associated project id.
|
|
34
|
+
"""
|
|
35
|
+
|
|
31
36
|
shared_block_ids: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
|
|
32
37
|
"""
|
|
33
38
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
letta_client/__init__.py,sha256=
|
|
1
|
+
letta_client/__init__.py,sha256=SHGQJZEiJUN0sO7ZVdwwTenizJTldEs9YqrB-ux8vCk,19484
|
|
2
2
|
letta_client/agents/__init__.py,sha256=9wEJMighDL1OFg_7Qh-D50bubPbV4BWo1ZKYxdDJGIQ,2146
|
|
3
3
|
letta_client/agents/blocks/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
4
|
-
letta_client/agents/blocks/client.py,sha256=
|
|
4
|
+
letta_client/agents/blocks/client.py,sha256=kCAcU1ACOKRCrjEYPyCQslWBjtsq7m4QboQP0wwLQy8,25392
|
|
5
5
|
letta_client/agents/client.py,sha256=6txh-ARpVOKXcDlzzu_H8U652JnO3cYTUQx_xWMl_zA,92585
|
|
6
6
|
letta_client/agents/context/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
7
7
|
letta_client/agents/context/client.py,sha256=O1gxStQyfzXi4MblatWalLTWM425gS_fndW3W_es08U,4887
|
|
@@ -57,7 +57,7 @@ letta_client/batches/client.py,sha256=DHnsRYHgxVh6OvfAE8etlbno1FMg4cIzAYiydJrfmJ
|
|
|
57
57
|
letta_client/blocks/__init__.py,sha256=c6SGOs9_YGdydYAzhe5TUiaXq52rpWT1mNMcke8qGTQ,108
|
|
58
58
|
letta_client/blocks/agents/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
59
59
|
letta_client/blocks/agents/client.py,sha256=2mBOt6CZanLUi_8Nc-bthaGoKhU3WgSA9vL1UjMdZE8,6066
|
|
60
|
-
letta_client/blocks/client.py,sha256=
|
|
60
|
+
letta_client/blocks/client.py,sha256=dkF-SBlCuWUye5IY18c9fD9_OIPO1H8wVDRmAgDar7U,33351
|
|
61
61
|
letta_client/client.py,sha256=iXqKTuQ0F9jIjkTwD73apLlLQqUF1IF6V_PhenY_CJo,22470
|
|
62
62
|
letta_client/client_side_access_tokens/__init__.py,sha256=e9NgxUsEnfbJVCM2npPuQ02dAS5jlXmneqU9DS6Q3d8,1561
|
|
63
63
|
letta_client/client_side_access_tokens/client.py,sha256=5aiqgKkzXElPgJszjyT-1wPRsBziH32UJwPVGQdZOFg,18215
|
|
@@ -75,7 +75,7 @@ letta_client/client_side_access_tokens/types/client_side_access_tokens_list_clie
|
|
|
75
75
|
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
|
|
76
76
|
letta_client/core/__init__.py,sha256=OKbX2aCZXgHCDUsCouqv-OiX32xA6eFFCKIUH9M5Vzk,1591
|
|
77
77
|
letta_client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
|
|
78
|
-
letta_client/core/client_wrapper.py,sha256=
|
|
78
|
+
letta_client/core/client_wrapper.py,sha256=AKDJ8FeAmzJGgSJcWcxkvn68sw-Q-ehE72K03YCXxVI,2336
|
|
79
79
|
letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
|
|
80
80
|
letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
|
|
81
81
|
letta_client/core/http_client.py,sha256=Z77OIxIbL4OAB2IDqjRq_sYa5yNYAWfmdhdCSSvh6Y4,19552
|
|
@@ -103,7 +103,7 @@ letta_client/folders/files/client.py,sha256=oSEduN6Q9iw13aRpc2Mm8LxD06tHxJqnBNUM
|
|
|
103
103
|
letta_client/folders/passages/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
104
104
|
letta_client/folders/passages/client.py,sha256=ejEUmwrwfUBG4UihNTrIk7b1-a1v6QziRggL_BgcrZw,6041
|
|
105
105
|
letta_client/groups/__init__.py,sha256=WzkNp5Q_5zQj_NHv4hJCOKvW6ftM9EuNxw8hkPRRbko,434
|
|
106
|
-
letta_client/groups/client.py,sha256=
|
|
106
|
+
letta_client/groups/client.py,sha256=H6PW_E2QUX_hfoa5aunu90KEU1sF5d4xpTL1hxZFifU,30369
|
|
107
107
|
letta_client/groups/messages/__init__.py,sha256=M7Ar6Rmb8we4dfYE6jj3FCL9UvVFy1bNQIPflUXMWHA,243
|
|
108
108
|
letta_client/groups/messages/client.py,sha256=lK8P1J3ETHxdsS8zbdNnxagVSef03Z_tLiqQiEXq6t0,36386
|
|
109
109
|
letta_client/groups/messages/types/__init__.py,sha256=Oc2j0oGOs96IEFf9xsJIkjBjoq3OMtse64YwWv3F9Io,335
|
|
@@ -168,11 +168,12 @@ letta_client/templates/client.py,sha256=wcidkaF0eRgKEYRrDTgKAS_A57MO7H2S_muzznEV
|
|
|
168
168
|
letta_client/templates/types/__init__.py,sha256=dAr_dEh0BdwUxAcV1sJ9RM07Z8nCv4dCK6fmTltqQ6c,286
|
|
169
169
|
letta_client/templates/types/templates_list_response.py,sha256=HYloMVzk086c6fFGRYZz-Ozc_Yylozp2aPpweHS5uXI,866
|
|
170
170
|
letta_client/templates/types/templates_list_response_templates_item.py,sha256=yyJq8wEOb2XIg99uhRMKoy2qD2CbuvI_5FAspwYWnfI,593
|
|
171
|
-
letta_client/tools/__init__.py,sha256=
|
|
172
|
-
letta_client/tools/client.py,sha256=
|
|
173
|
-
letta_client/tools/types/__init__.py,sha256
|
|
171
|
+
letta_client/tools/__init__.py,sha256=qPV3aBl81CCoPAvuGdX-GiMyYkz0i49KerSRO-7BWXA,585
|
|
172
|
+
letta_client/tools/client.py,sha256=ljRP0WZUhkgMFGXwM327QJReaW_dt4WRYkcDWJ1SIzY,107013
|
|
173
|
+
letta_client/tools/types/__init__.py,sha256=U6Z2ZrKY4czFQyksSjoeoQHPbNQ0gJBM7QOGPJltqAA,846
|
|
174
174
|
letta_client/tools/types/add_mcp_server_request.py,sha256=m3QdTmY2ZHQUWbxMTNsOhPnseWHVipsOTdSXuC7KHQI,371
|
|
175
175
|
letta_client/tools/types/add_mcp_server_response_item.py,sha256=DNrB3LwstJzKrw_GRJ8tb3XCEJWfD16WzBoGrGY_ZQI,376
|
|
176
|
+
letta_client/tools/types/connect_mcp_server_request.py,sha256=KDHYKXnRRf9g8bHUUWvWdyIiJk-enBZ5EO7N80r-i80,375
|
|
176
177
|
letta_client/tools/types/delete_mcp_server_response_item.py,sha256=YLIBE7OD535NJAncGpzMDGaQRe1831DNKcj2UzS9e0c,379
|
|
177
178
|
letta_client/tools/types/list_mcp_servers_response_value.py,sha256=Eyji5qB7FhowiogsAbpcU_aMyH9zClv9lUMmHOmNPYk,379
|
|
178
179
|
letta_client/tools/types/test_mcp_server_request.py,sha256=sLlOEZdmLfkHqHCkUjntGbr8_MkBhsqpMQ-HwdNOnq0,372
|
|
@@ -202,8 +203,8 @@ letta_client/types/bad_request_error_body.py,sha256=E4_eWEc9xeW9BkXGViBDrevV8Jf6
|
|
|
202
203
|
letta_client/types/base_64_image.py,sha256=RarQnUE-5AnRAZF8W73h6y9K-b6Deq27KnMe93te5Lw,964
|
|
203
204
|
letta_client/types/base_tool_rule_schema.py,sha256=FbnJy6gb8wY_DPiU3Gs-u1Ol_l4K7-nAmPTc1oR3kOo,582
|
|
204
205
|
letta_client/types/batch_job.py,sha256=MIycCFHvBeVqSoi4WX_L_MPI92jnq-x4-F5XnHw-sYg,2364
|
|
205
|
-
letta_client/types/block.py,sha256=
|
|
206
|
-
letta_client/types/block_update.py,sha256=
|
|
206
|
+
letta_client/types/block.py,sha256=7lWUsOoXKA4GyY9VYKq2UcQrUD3lq-EF8EScOBaGThs,3301
|
|
207
|
+
letta_client/types/block_update.py,sha256=zoGWquhG6M2rH_kwK85eQL4NLB3fErmzkp574VZsAVE,1897
|
|
207
208
|
letta_client/types/chat_completion_assistant_message_param.py,sha256=QwxAJ9RQqxtZKnt6g6RfDppuMIt-1RAIlpnfSrVdHgg,1219
|
|
208
209
|
letta_client/types/chat_completion_assistant_message_param_content.py,sha256=CJ7Z_Jik2fzBYGy0UuvgDk0aLt3-Xpj3qswBLmWM0Sg,323
|
|
209
210
|
letta_client/types/chat_completion_assistant_message_param_content_item.py,sha256=tF-E0jNH0ilRJgm4vPTqHguCb-TZZ0LJfTXxOnon23w,405
|
|
@@ -262,7 +263,7 @@ letta_client/types/conflict_error_body.py,sha256=Mena-q1jti6nv_7-xrp6sDb_5MXNKPG
|
|
|
262
263
|
letta_client/types/context_window_overview.py,sha256=9pwiObSxu-SFyQ1pxSTlQiRatVAyFgqa6t0_qrrsGfU,2815
|
|
263
264
|
letta_client/types/continue_tool_rule.py,sha256=cGKyCh9LwxXJfWKEi8HMAcyBv3QTrmZkwt9YugzwtqY,1035
|
|
264
265
|
letta_client/types/core_memory_block_schema.py,sha256=DGHyLAcFhHBm7oXkhkGIkkckcl9S2bCaU9b3qrUeNtc,984
|
|
265
|
-
letta_client/types/create_block.py,sha256=
|
|
266
|
+
letta_client/types/create_block.py,sha256=jco0Hpi2UQu4FkALpizz6rfW0isQo7H1AwKoZSVv-eY,1678
|
|
266
267
|
letta_client/types/duplicate_file_handling.py,sha256=H7pDhPZSSbnqPHPo2yGl7xkpHAD9L0yZOdcU5n-9BdE,172
|
|
267
268
|
letta_client/types/dynamic_manager.py,sha256=5DRNqtUnjeTwOe5mkNB-SXItqLOfEX0avSrwsrJt1Aw,853
|
|
268
269
|
letta_client/types/dynamic_manager_update.py,sha256=Kew94BsFP6vP9pUXpZDMFZAo3TyaYWKu1KPgoQQjKYg,888
|
|
@@ -271,7 +272,7 @@ letta_client/types/embedding_config.py,sha256=47DxstNToHfirYxgIn4jNqkt8vDh5taRu6
|
|
|
271
272
|
letta_client/types/embedding_config_embedding_endpoint_type.py,sha256=9-C0KAbQbi2nm5ECDmKVbeqyCbBB6w6Izy5vXvMBAXA,579
|
|
272
273
|
letta_client/types/feedback_type.py,sha256=sDfsniSnnpSwzZqfIkRL7vYPxYqdwURpI6LMI7eDkoQ,160
|
|
273
274
|
letta_client/types/file.py,sha256=ZLCEYJqIJ1pzAJn4Pke6gVdKivKU9FrIg98P4GmFY8M,628
|
|
274
|
-
letta_client/types/file_block.py,sha256=
|
|
275
|
+
letta_client/types/file_block.py,sha256=HSfMx6SpCpQv2vdIiqqZ0oxfZoHPquxuU-AG0QtrW-k,2776
|
|
275
276
|
letta_client/types/file_file.py,sha256=jbWcPKn-fSUlq9kl8n2us9fPU6x-Z20IKScHD_pJruw,665
|
|
276
277
|
letta_client/types/file_metadata.py,sha256=51abJ_M4dmpRJetdWcMf_P39l3EaJ1R2kjuexzEWwMI,2957
|
|
277
278
|
letta_client/types/file_processing_status.py,sha256=8W8VAx9-jCaUx6q6mvyCMyLoa2peLTE_sgIaGloOWo4,201
|
|
@@ -284,7 +285,7 @@ letta_client/types/function_output.py,sha256=7b8550BllXxtZQ3T3jfvZjcCU_ZGWNBvjlr
|
|
|
284
285
|
letta_client/types/function_tool.py,sha256=TOETpZdqgPIgd4g9JFo3yvDBpTx4lDFzJNZH8PxAjpI,697
|
|
285
286
|
letta_client/types/generate_tool_input.py,sha256=6_r00rctGxSa1mNDEFCwAc2JOXlmf9BO_rIG7ZksB4Q,1095
|
|
286
287
|
letta_client/types/generate_tool_output.py,sha256=y22000DeKje2FwSaLEXorLfmnrqFE1QbBrQ3nFIWULE,860
|
|
287
|
-
letta_client/types/group.py,sha256=
|
|
288
|
+
letta_client/types/group.py,sha256=_szcUZN3fUOu_2-KnG3r8ptx8H9bOmeQlcQPig6nxMg,2222
|
|
288
289
|
letta_client/types/health.py,sha256=nQwx5ysn_cJMKUoqsfaPcGNSRSjfwX5S272UiSQJ03w,618
|
|
289
290
|
letta_client/types/hidden_reasoning_message.py,sha256=FrzJv12sgz6W5VWk74q2jX6UaqB_MItqhDYuUCozPTE,1610
|
|
290
291
|
letta_client/types/hidden_reasoning_message_state.py,sha256=qotAgF_P4T7OEHzbhGDVFaLZYOs1ULMPVHmiFvoRIfM,174
|
|
@@ -444,6 +445,6 @@ letta_client/types/web_search_options_user_location_approximate.py,sha256=Ywk01J
|
|
|
444
445
|
letta_client/version.py,sha256=bttKLbIhO3UonCYQlqs600zzbQgfhCCMjeXR9WRzid4,79
|
|
445
446
|
letta_client/voice/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
|
|
446
447
|
letta_client/voice/client.py,sha256=47iQYCuW_qpKI4hM3pYVxn3hw7kgQj3emU1_oRpkRMA,5811
|
|
447
|
-
letta_client-0.1.
|
|
448
|
-
letta_client-0.1.
|
|
449
|
-
letta_client-0.1.
|
|
448
|
+
letta_client-0.1.223.dist-info/METADATA,sha256=-XudpJyiA6UaAxDd2y_QS1OgRFpkhPQWecBsi2KyYvY,5177
|
|
449
|
+
letta_client-0.1.223.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
|
450
|
+
letta_client-0.1.223.dist-info/RECORD,,
|
|
File without changes
|