letta-client 0.1.220__py3-none-any.whl → 0.1.222__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/core/client_wrapper.py +1 -1
- 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-0.1.220.dist-info → letta_client-0.1.222.dist-info}/METADATA +1 -1
- {letta_client-0.1.220.dist-info → letta_client-0.1.222.dist-info}/RECORD +9 -8
- {letta_client-0.1.220.dist-info → letta_client-0.1.222.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",
|
|
@@ -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.222",
|
|
28
28
|
}
|
|
29
29
|
if self._project is not None:
|
|
30
30
|
headers["X-Project"] = self._project
|
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]
|
|
@@ -1,4 +1,4 @@
|
|
|
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
4
|
letta_client/agents/blocks/client.py,sha256=4UGPYxfGwNN3ZW-SkIdfVZK6cvCcumVAw0_AM8OmoBY,25046
|
|
@@ -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=b0zYRfgXmdOyNiBfVM4TwkcAkFdNDPqaceDjjnGsHUc,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
|
|
@@ -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
|
|
@@ -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.222.dist-info/METADATA,sha256=kyaM48OWqtv4Wy5AAwhRJ2zWNk-ZIC5919-n3HPXzP8,5177
|
|
449
|
+
letta_client-0.1.222.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
|
450
|
+
letta_client-0.1.222.dist-info/RECORD,,
|
|
File without changes
|