letta-client 1.0.0a1__py3-none-any.whl → 1.0.0a3__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 +149 -23
- letta_client/agents/__init__.py +15 -17
- letta_client/agents/blocks/__init__.py +3 -0
- letta_client/agents/blocks/client.py +77 -4
- letta_client/agents/blocks/raw_client.py +63 -2
- letta_client/agents/blocks/types/__init__.py +7 -0
- letta_client/agents/blocks/types/blocks_list_request_order.py +5 -0
- letta_client/agents/client.py +46 -13
- letta_client/agents/files/__init__.py +3 -0
- letta_client/agents/files/client.py +71 -10
- letta_client/agents/files/raw_client.py +51 -10
- letta_client/agents/files/types/__init__.py +7 -0
- letta_client/{types/tool_return_status.py → agents/files/types/files_list_request_order.py} +1 -1
- letta_client/agents/folders/__init__.py +3 -0
- letta_client/agents/folders/client.py +77 -4
- letta_client/agents/folders/raw_client.py +63 -2
- letta_client/agents/folders/types/__init__.py +7 -0
- letta_client/agents/folders/types/folders_list_request_order.py +5 -0
- letta_client/agents/groups/__init__.py +3 -0
- letta_client/agents/groups/client.py +71 -2
- letta_client/agents/groups/raw_client.py +51 -0
- letta_client/agents/groups/types/__init__.py +7 -0
- letta_client/agents/groups/types/groups_list_request_order.py +5 -0
- letta_client/agents/messages/__init__.py +2 -0
- letta_client/agents/messages/client.py +55 -14
- letta_client/agents/messages/raw_client.py +35 -14
- letta_client/agents/messages/types/__init__.py +2 -0
- letta_client/agents/messages/types/messages_list_request_order.py +5 -0
- letta_client/agents/passages/client.py +29 -0
- letta_client/agents/raw_client.py +4 -4
- letta_client/agents/sources/__init__.py +3 -0
- letta_client/agents/sources/client.py +77 -4
- letta_client/agents/sources/raw_client.py +63 -2
- letta_client/agents/sources/types/__init__.py +7 -0
- letta_client/agents/sources/types/sources_list_request_order.py +5 -0
- letta_client/agents/tools/__init__.py +3 -0
- letta_client/agents/tools/client.py +77 -4
- letta_client/agents/tools/raw_client.py +63 -2
- letta_client/agents/tools/types/__init__.py +7 -0
- letta_client/agents/tools/types/tools_list_request_order.py +5 -0
- letta_client/archives/client.py +16 -2
- letta_client/base_client.py +3 -0
- letta_client/batches/client.py +12 -2
- letta_client/batches/messages/client.py +10 -0
- letta_client/blocks/agents/client.py +8 -0
- letta_client/blocks/client.py +32 -2
- letta_client/chat/__init__.py +7 -0
- letta_client/chat/client.py +255 -0
- letta_client/chat/raw_client.py +269 -0
- letta_client/chat/types/__init__.py +8 -0
- letta_client/chat/types/chat_completion_request_messages_item.py +19 -0
- letta_client/chat/types/chat_completion_request_stop.py +5 -0
- letta_client/client_side_access_tokens/client.py +10 -2
- letta_client/core/client_wrapper.py +2 -2
- letta_client/errors/__init__.py +2 -0
- letta_client/errors/gone_error.py +10 -0
- letta_client/folders/agents/client.py +8 -0
- letta_client/folders/client.py +20 -4
- letta_client/folders/files/client.py +14 -0
- letta_client/folders/passages/client.py +8 -0
- letta_client/groups/client.py +16 -2
- letta_client/groups/messages/client.py +14 -0
- letta_client/identities/agents/client.py +8 -0
- letta_client/identities/blocks/client.py +8 -0
- letta_client/identities/client.py +20 -2
- letta_client/jobs/__init__.py +3 -0
- letta_client/jobs/client.py +61 -12
- letta_client/jobs/raw_client.py +29 -8
- letta_client/jobs/types/__init__.py +7 -0
- letta_client/jobs/types/jobs_list_request_order.py +5 -0
- letta_client/models/client.py +8 -2
- letta_client/projects/client.py +10 -2
- letta_client/providers/client.py +90 -2
- letta_client/providers/raw_client.py +102 -0
- letta_client/runs/__init__.py +11 -2
- letta_client/runs/client.py +150 -18
- letta_client/runs/messages/client.py +30 -2
- letta_client/runs/messages/raw_client.py +10 -0
- letta_client/runs/raw_client.py +144 -14
- letta_client/runs/steps/__init__.py +3 -0
- letta_client/runs/steps/client.py +39 -30
- letta_client/runs/steps/raw_client.py +19 -28
- letta_client/runs/steps/types/__init__.py +7 -0
- letta_client/runs/steps/types/steps_list_request_order.py +5 -0
- letta_client/runs/types/__init__.py +2 -1
- letta_client/runs/types/runs_list_request_order.py +5 -0
- letta_client/sources/client.py +8 -2
- letta_client/sources/files/client.py +12 -0
- letta_client/sources/passages/client.py +6 -0
- letta_client/steps/client.py +26 -2
- letta_client/steps/messages/client.py +8 -0
- letta_client/tags/client.py +16 -2
- letta_client/templates/__init__.py +12 -0
- letta_client/templates/client.py +30 -4
- letta_client/templates/raw_client.py +2 -2
- letta_client/templates/types/__init__.py +24 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config.py +4 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_display_name.py +14 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_llm_config_display_name_item.py +5 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item.py +4 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_value_enc.py +14 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_secrets_item_value_enc_item.py +5 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item.py +6 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_value_enc.py +16 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_exec_environment_variables_item_value_enc_item.py +7 -0
- letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_tool_type.py +1 -1
- letta_client/tools/client.py +30 -220
- letta_client/tools/raw_client.py +0 -292
- letta_client/types/__init__.py +130 -22
- letta_client/types/agent_environment_variable.py +5 -0
- letta_client/types/{action_parameters_model.py → annotation.py} +4 -10
- letta_client/types/{action_response_model.py → annotation_url_citation.py} +4 -9
- letta_client/types/approval_create.py +8 -2
- letta_client/types/approval_create_approvals_item.py +8 -0
- letta_client/types/approval_response_message.py +8 -2
- letta_client/types/approval_response_message_approvals_item.py +8 -0
- letta_client/types/approval_return.py +34 -0
- letta_client/{agents/templates/types/templates_migrate_response.py → types/audio.py} +4 -4
- letta_client/types/chat_completion.py +30 -0
- letta_client/types/chat_completion_assistant_message_param.py +30 -0
- letta_client/types/chat_completion_assistant_message_param_content.py +9 -0
- letta_client/types/chat_completion_assistant_message_param_content_item.py +10 -0
- letta_client/types/chat_completion_assistant_message_param_tool_calls_item.py +10 -0
- letta_client/types/chat_completion_audio.py +23 -0
- letta_client/types/chat_completion_content_part_image_param.py +22 -0
- letta_client/types/chat_completion_content_part_input_audio_param.py +22 -0
- letta_client/types/chat_completion_content_part_refusal_param.py +21 -0
- letta_client/types/chat_completion_content_part_text_param.py +21 -0
- letta_client/types/chat_completion_developer_message_param.py +23 -0
- letta_client/types/chat_completion_developer_message_param_content.py +7 -0
- letta_client/types/chat_completion_function_message_param.py +22 -0
- letta_client/types/chat_completion_message.py +30 -0
- letta_client/types/chat_completion_message_custom_tool_call.py +23 -0
- letta_client/types/chat_completion_message_custom_tool_call_param.py +23 -0
- letta_client/types/chat_completion_message_function_tool_call_input.py +25 -0
- letta_client/types/{chat_completion_message_function_tool_call.py → chat_completion_message_function_tool_call_output.py} +3 -3
- letta_client/types/chat_completion_message_function_tool_call_param.py +25 -0
- letta_client/types/chat_completion_message_tool_calls_item.py +10 -0
- letta_client/types/chat_completion_service_tier.py +5 -0
- letta_client/types/chat_completion_system_message_param.py +23 -0
- letta_client/types/chat_completion_system_message_param_content.py +7 -0
- letta_client/types/chat_completion_token_logprob.py +24 -0
- letta_client/types/chat_completion_tool_message_param.py +23 -0
- letta_client/types/chat_completion_tool_message_param_content.py +7 -0
- letta_client/types/chat_completion_user_message_param.py +23 -0
- letta_client/types/chat_completion_user_message_param_content.py +7 -0
- letta_client/types/chat_completion_user_message_param_content_item.py +15 -0
- letta_client/types/choice.py +26 -0
- letta_client/types/choice_finish_reason.py +7 -0
- letta_client/types/choice_logprobs.py +22 -0
- letta_client/types/completion_tokens_details.py +23 -0
- letta_client/types/{auth_scheme_field.py → completion_usage.py} +8 -13
- letta_client/types/custom_input.py +21 -0
- letta_client/types/custom_output.py +21 -0
- letta_client/types/file.py +22 -0
- letta_client/types/file_file.py +22 -0
- letta_client/types/function_call_input.py +21 -0
- letta_client/types/function_call_output.py +21 -0
- letta_client/types/{function.py → function_output.py} +1 -1
- letta_client/types/image_url.py +22 -0
- letta_client/types/image_url_detail.py +5 -0
- letta_client/types/input_audio.py +22 -0
- letta_client/types/input_audio_format.py +5 -0
- letta_client/types/internal_template_agent_create.py +2 -2
- letta_client/types/letta_schemas_agent_file_agent_schema.py +2 -2
- letta_client/types/letta_schemas_agent_file_message_schema.py +27 -4
- letta_client/types/letta_schemas_agent_file_message_schema_approvals_item.py +8 -0
- letta_client/types/letta_schemas_letta_message_tool_return.py +26 -0
- letta_client/types/letta_schemas_letta_message_tool_return_status.py +5 -0
- letta_client/types/{tool_return.py → letta_schemas_message_tool_return.py} +9 -3
- letta_client/types/letta_schemas_message_tool_return_status.py +5 -0
- letta_client/types/llm_config.py +5 -0
- letta_client/types/message.py +10 -4
- letta_client/types/message_approvals_item.py +8 -0
- letta_client/types/omitted_reasoning_content.py +4 -0
- letta_client/types/openai_types_chat_chat_completion_message_function_tool_call_function.py +21 -0
- letta_client/types/openai_types_chat_chat_completion_message_function_tool_call_param_function.py +21 -0
- letta_client/types/prompt_tokens_details.py +21 -0
- letta_client/types/provider.py +10 -0
- letta_client/types/run_metrics.py +58 -0
- letta_client/types/sandbox_environment_variable.py +5 -0
- letta_client/types/text_content.py +5 -0
- letta_client/types/tool_call_content.py +5 -0
- letta_client/types/tool_call_message.py +2 -0
- letta_client/types/tool_call_message_tool_calls.py +8 -0
- letta_client/types/tool_return_message.py +8 -5
- letta_client/types/tool_type.py +1 -1
- letta_client/types/top_logprob.py +22 -0
- letta_client/voice/client.py +14 -0
- letta_client/voice/raw_client.py +37 -0
- letta_client-1.0.0a3.dist-info/METADATA +422 -0
- {letta_client-1.0.0a1.dist-info → letta_client-1.0.0a3.dist-info}/RECORD +193 -115
- letta_client/agents/templates/__init__.py +0 -7
- letta_client/agents/templates/client.py +0 -307
- letta_client/agents/templates/raw_client.py +0 -275
- letta_client/agents/templates/types/__init__.py +0 -7
- letta_client/types/action_model.py +0 -39
- letta_client/types/app_auth_scheme.py +0 -35
- letta_client/types/app_auth_scheme_auth_mode.py +0 -19
- letta_client/types/app_model.py +0 -45
- letta_client-1.0.0a1.dist-info/METADATA +0 -211
- {letta_client-1.0.0a1.dist-info → letta_client-1.0.0a3.dist-info}/WHEEL +0 -0
letta_client/tools/client.py
CHANGED
|
@@ -4,8 +4,6 @@ import typing
|
|
|
4
4
|
|
|
5
5
|
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
6
|
from ..core.request_options import RequestOptions
|
|
7
|
-
from ..types.action_model import ActionModel
|
|
8
|
-
from ..types.app_model import AppModel
|
|
9
7
|
from ..types.mcp_tool import McpTool
|
|
10
8
|
from ..types.npm_requirement import NpmRequirement
|
|
11
9
|
from ..types.pip_requirement import PipRequirement
|
|
@@ -257,7 +255,12 @@ class ToolsClient:
|
|
|
257
255
|
project="YOUR_PROJECT",
|
|
258
256
|
token="YOUR_TOKEN",
|
|
259
257
|
)
|
|
260
|
-
client.tools.count(
|
|
258
|
+
client.tools.count(
|
|
259
|
+
name="name",
|
|
260
|
+
search="search",
|
|
261
|
+
return_only_letta_tools=True,
|
|
262
|
+
exclude_letta_tools=True,
|
|
263
|
+
)
|
|
261
264
|
"""
|
|
262
265
|
_response = self._raw_client.count(
|
|
263
266
|
name=name,
|
|
@@ -346,7 +349,15 @@ class ToolsClient:
|
|
|
346
349
|
project="YOUR_PROJECT",
|
|
347
350
|
token="YOUR_TOKEN",
|
|
348
351
|
)
|
|
349
|
-
client.tools.list(
|
|
352
|
+
client.tools.list(
|
|
353
|
+
before="before",
|
|
354
|
+
after="after",
|
|
355
|
+
limit=1,
|
|
356
|
+
order="asc",
|
|
357
|
+
name="name",
|
|
358
|
+
search="search",
|
|
359
|
+
return_only_letta_tools=True,
|
|
360
|
+
)
|
|
350
361
|
"""
|
|
351
362
|
_response = self._raw_client.list(
|
|
352
363
|
before=before,
|
|
@@ -643,99 +654,6 @@ class ToolsClient:
|
|
|
643
654
|
)
|
|
644
655
|
return _response.data
|
|
645
656
|
|
|
646
|
-
def list_composio_apps(self, *, request_options: typing.Optional[RequestOptions] = None) -> typing.List[AppModel]:
|
|
647
|
-
"""
|
|
648
|
-
Get a list of all Composio apps
|
|
649
|
-
|
|
650
|
-
Parameters
|
|
651
|
-
----------
|
|
652
|
-
request_options : typing.Optional[RequestOptions]
|
|
653
|
-
Request-specific configuration.
|
|
654
|
-
|
|
655
|
-
Returns
|
|
656
|
-
-------
|
|
657
|
-
typing.List[AppModel]
|
|
658
|
-
Successful Response
|
|
659
|
-
|
|
660
|
-
Examples
|
|
661
|
-
--------
|
|
662
|
-
from letta_client import Letta
|
|
663
|
-
|
|
664
|
-
client = Letta(
|
|
665
|
-
project="YOUR_PROJECT",
|
|
666
|
-
token="YOUR_TOKEN",
|
|
667
|
-
)
|
|
668
|
-
client.tools.list_composio_apps()
|
|
669
|
-
"""
|
|
670
|
-
_response = self._raw_client.list_composio_apps(request_options=request_options)
|
|
671
|
-
return _response.data
|
|
672
|
-
|
|
673
|
-
def list_composio_actions_by_app(
|
|
674
|
-
self, composio_app_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
675
|
-
) -> typing.List[ActionModel]:
|
|
676
|
-
"""
|
|
677
|
-
Get a list of all Composio actions for a specific app
|
|
678
|
-
|
|
679
|
-
Parameters
|
|
680
|
-
----------
|
|
681
|
-
composio_app_name : str
|
|
682
|
-
|
|
683
|
-
request_options : typing.Optional[RequestOptions]
|
|
684
|
-
Request-specific configuration.
|
|
685
|
-
|
|
686
|
-
Returns
|
|
687
|
-
-------
|
|
688
|
-
typing.List[ActionModel]
|
|
689
|
-
Successful Response
|
|
690
|
-
|
|
691
|
-
Examples
|
|
692
|
-
--------
|
|
693
|
-
from letta_client import Letta
|
|
694
|
-
|
|
695
|
-
client = Letta(
|
|
696
|
-
project="YOUR_PROJECT",
|
|
697
|
-
token="YOUR_TOKEN",
|
|
698
|
-
)
|
|
699
|
-
client.tools.list_composio_actions_by_app(
|
|
700
|
-
composio_app_name="composio_app_name",
|
|
701
|
-
)
|
|
702
|
-
"""
|
|
703
|
-
_response = self._raw_client.list_composio_actions_by_app(composio_app_name, request_options=request_options)
|
|
704
|
-
return _response.data
|
|
705
|
-
|
|
706
|
-
def add_composio_tool(
|
|
707
|
-
self, composio_action_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
708
|
-
) -> Tool:
|
|
709
|
-
"""
|
|
710
|
-
Add a new Composio tool by action name (Composio refers to each tool as an `Action`)
|
|
711
|
-
|
|
712
|
-
Parameters
|
|
713
|
-
----------
|
|
714
|
-
composio_action_name : str
|
|
715
|
-
|
|
716
|
-
request_options : typing.Optional[RequestOptions]
|
|
717
|
-
Request-specific configuration.
|
|
718
|
-
|
|
719
|
-
Returns
|
|
720
|
-
-------
|
|
721
|
-
Tool
|
|
722
|
-
Successful Response
|
|
723
|
-
|
|
724
|
-
Examples
|
|
725
|
-
--------
|
|
726
|
-
from letta_client import Letta
|
|
727
|
-
|
|
728
|
-
client = Letta(
|
|
729
|
-
project="YOUR_PROJECT",
|
|
730
|
-
token="YOUR_TOKEN",
|
|
731
|
-
)
|
|
732
|
-
client.tools.add_composio_tool(
|
|
733
|
-
composio_action_name="composio_action_name",
|
|
734
|
-
)
|
|
735
|
-
"""
|
|
736
|
-
_response = self._raw_client.add_composio_tool(composio_action_name, request_options=request_options)
|
|
737
|
-
return _response.data
|
|
738
|
-
|
|
739
657
|
def list_mcp_servers(
|
|
740
658
|
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
741
659
|
) -> typing.Dict[str, ListMcpServersResponseValue]:
|
|
@@ -1284,7 +1202,12 @@ class AsyncToolsClient:
|
|
|
1284
1202
|
|
|
1285
1203
|
|
|
1286
1204
|
async def main() -> None:
|
|
1287
|
-
await client.tools.count(
|
|
1205
|
+
await client.tools.count(
|
|
1206
|
+
name="name",
|
|
1207
|
+
search="search",
|
|
1208
|
+
return_only_letta_tools=True,
|
|
1209
|
+
exclude_letta_tools=True,
|
|
1210
|
+
)
|
|
1288
1211
|
|
|
1289
1212
|
|
|
1290
1213
|
asyncio.run(main())
|
|
@@ -1381,7 +1304,15 @@ class AsyncToolsClient:
|
|
|
1381
1304
|
|
|
1382
1305
|
|
|
1383
1306
|
async def main() -> None:
|
|
1384
|
-
await client.tools.list(
|
|
1307
|
+
await client.tools.list(
|
|
1308
|
+
before="before",
|
|
1309
|
+
after="after",
|
|
1310
|
+
limit=1,
|
|
1311
|
+
order="asc",
|
|
1312
|
+
name="name",
|
|
1313
|
+
search="search",
|
|
1314
|
+
return_only_letta_tools=True,
|
|
1315
|
+
)
|
|
1385
1316
|
|
|
1386
1317
|
|
|
1387
1318
|
asyncio.run(main())
|
|
@@ -1713,127 +1644,6 @@ class AsyncToolsClient:
|
|
|
1713
1644
|
)
|
|
1714
1645
|
return _response.data
|
|
1715
1646
|
|
|
1716
|
-
async def list_composio_apps(
|
|
1717
|
-
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
1718
|
-
) -> typing.List[AppModel]:
|
|
1719
|
-
"""
|
|
1720
|
-
Get a list of all Composio apps
|
|
1721
|
-
|
|
1722
|
-
Parameters
|
|
1723
|
-
----------
|
|
1724
|
-
request_options : typing.Optional[RequestOptions]
|
|
1725
|
-
Request-specific configuration.
|
|
1726
|
-
|
|
1727
|
-
Returns
|
|
1728
|
-
-------
|
|
1729
|
-
typing.List[AppModel]
|
|
1730
|
-
Successful Response
|
|
1731
|
-
|
|
1732
|
-
Examples
|
|
1733
|
-
--------
|
|
1734
|
-
import asyncio
|
|
1735
|
-
|
|
1736
|
-
from letta_client import AsyncLetta
|
|
1737
|
-
|
|
1738
|
-
client = AsyncLetta(
|
|
1739
|
-
project="YOUR_PROJECT",
|
|
1740
|
-
token="YOUR_TOKEN",
|
|
1741
|
-
)
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
async def main() -> None:
|
|
1745
|
-
await client.tools.list_composio_apps()
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
asyncio.run(main())
|
|
1749
|
-
"""
|
|
1750
|
-
_response = await self._raw_client.list_composio_apps(request_options=request_options)
|
|
1751
|
-
return _response.data
|
|
1752
|
-
|
|
1753
|
-
async def list_composio_actions_by_app(
|
|
1754
|
-
self, composio_app_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
1755
|
-
) -> typing.List[ActionModel]:
|
|
1756
|
-
"""
|
|
1757
|
-
Get a list of all Composio actions for a specific app
|
|
1758
|
-
|
|
1759
|
-
Parameters
|
|
1760
|
-
----------
|
|
1761
|
-
composio_app_name : str
|
|
1762
|
-
|
|
1763
|
-
request_options : typing.Optional[RequestOptions]
|
|
1764
|
-
Request-specific configuration.
|
|
1765
|
-
|
|
1766
|
-
Returns
|
|
1767
|
-
-------
|
|
1768
|
-
typing.List[ActionModel]
|
|
1769
|
-
Successful Response
|
|
1770
|
-
|
|
1771
|
-
Examples
|
|
1772
|
-
--------
|
|
1773
|
-
import asyncio
|
|
1774
|
-
|
|
1775
|
-
from letta_client import AsyncLetta
|
|
1776
|
-
|
|
1777
|
-
client = AsyncLetta(
|
|
1778
|
-
project="YOUR_PROJECT",
|
|
1779
|
-
token="YOUR_TOKEN",
|
|
1780
|
-
)
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
async def main() -> None:
|
|
1784
|
-
await client.tools.list_composio_actions_by_app(
|
|
1785
|
-
composio_app_name="composio_app_name",
|
|
1786
|
-
)
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
asyncio.run(main())
|
|
1790
|
-
"""
|
|
1791
|
-
_response = await self._raw_client.list_composio_actions_by_app(
|
|
1792
|
-
composio_app_name, request_options=request_options
|
|
1793
|
-
)
|
|
1794
|
-
return _response.data
|
|
1795
|
-
|
|
1796
|
-
async def add_composio_tool(
|
|
1797
|
-
self, composio_action_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
1798
|
-
) -> Tool:
|
|
1799
|
-
"""
|
|
1800
|
-
Add a new Composio tool by action name (Composio refers to each tool as an `Action`)
|
|
1801
|
-
|
|
1802
|
-
Parameters
|
|
1803
|
-
----------
|
|
1804
|
-
composio_action_name : str
|
|
1805
|
-
|
|
1806
|
-
request_options : typing.Optional[RequestOptions]
|
|
1807
|
-
Request-specific configuration.
|
|
1808
|
-
|
|
1809
|
-
Returns
|
|
1810
|
-
-------
|
|
1811
|
-
Tool
|
|
1812
|
-
Successful Response
|
|
1813
|
-
|
|
1814
|
-
Examples
|
|
1815
|
-
--------
|
|
1816
|
-
import asyncio
|
|
1817
|
-
|
|
1818
|
-
from letta_client import AsyncLetta
|
|
1819
|
-
|
|
1820
|
-
client = AsyncLetta(
|
|
1821
|
-
project="YOUR_PROJECT",
|
|
1822
|
-
token="YOUR_TOKEN",
|
|
1823
|
-
)
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
async def main() -> None:
|
|
1827
|
-
await client.tools.add_composio_tool(
|
|
1828
|
-
composio_action_name="composio_action_name",
|
|
1829
|
-
)
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
asyncio.run(main())
|
|
1833
|
-
"""
|
|
1834
|
-
_response = await self._raw_client.add_composio_tool(composio_action_name, request_options=request_options)
|
|
1835
|
-
return _response.data
|
|
1836
|
-
|
|
1837
1647
|
async def list_mcp_servers(
|
|
1838
1648
|
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
1839
1649
|
) -> typing.Dict[str, ListMcpServersResponseValue]:
|
letta_client/tools/raw_client.py
CHANGED
|
@@ -14,8 +14,6 @@ from ..core.request_options import RequestOptions
|
|
|
14
14
|
from ..core.serialization import convert_and_respect_annotation_metadata
|
|
15
15
|
from ..core.unchecked_base_model import construct_type
|
|
16
16
|
from ..errors.unprocessable_entity_error import UnprocessableEntityError
|
|
17
|
-
from ..types.action_model import ActionModel
|
|
18
|
-
from ..types.app_model import AppModel
|
|
19
17
|
from ..types.http_validation_error import HttpValidationError
|
|
20
18
|
from ..types.mcp_tool import McpTool
|
|
21
19
|
from ..types.npm_requirement import NpmRequirement
|
|
@@ -826,151 +824,6 @@ class RawToolsClient:
|
|
|
826
824
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
827
825
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
828
826
|
|
|
829
|
-
def list_composio_apps(
|
|
830
|
-
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
831
|
-
) -> HttpResponse[typing.List[AppModel]]:
|
|
832
|
-
"""
|
|
833
|
-
Get a list of all Composio apps
|
|
834
|
-
|
|
835
|
-
Parameters
|
|
836
|
-
----------
|
|
837
|
-
request_options : typing.Optional[RequestOptions]
|
|
838
|
-
Request-specific configuration.
|
|
839
|
-
|
|
840
|
-
Returns
|
|
841
|
-
-------
|
|
842
|
-
HttpResponse[typing.List[AppModel]]
|
|
843
|
-
Successful Response
|
|
844
|
-
"""
|
|
845
|
-
_response = self._client_wrapper.httpx_client.request(
|
|
846
|
-
"v1/tools/composio/apps",
|
|
847
|
-
method="GET",
|
|
848
|
-
request_options=request_options,
|
|
849
|
-
)
|
|
850
|
-
try:
|
|
851
|
-
if 200 <= _response.status_code < 300:
|
|
852
|
-
_data = typing.cast(
|
|
853
|
-
typing.List[AppModel],
|
|
854
|
-
construct_type(
|
|
855
|
-
type_=typing.List[AppModel], # type: ignore
|
|
856
|
-
object_=_response.json(),
|
|
857
|
-
),
|
|
858
|
-
)
|
|
859
|
-
return HttpResponse(response=_response, data=_data)
|
|
860
|
-
if _response.status_code == 422:
|
|
861
|
-
raise UnprocessableEntityError(
|
|
862
|
-
headers=dict(_response.headers),
|
|
863
|
-
body=typing.cast(
|
|
864
|
-
HttpValidationError,
|
|
865
|
-
construct_type(
|
|
866
|
-
type_=HttpValidationError, # type: ignore
|
|
867
|
-
object_=_response.json(),
|
|
868
|
-
),
|
|
869
|
-
),
|
|
870
|
-
)
|
|
871
|
-
_response_json = _response.json()
|
|
872
|
-
except JSONDecodeError:
|
|
873
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
874
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
875
|
-
|
|
876
|
-
def list_composio_actions_by_app(
|
|
877
|
-
self, composio_app_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
878
|
-
) -> HttpResponse[typing.List[ActionModel]]:
|
|
879
|
-
"""
|
|
880
|
-
Get a list of all Composio actions for a specific app
|
|
881
|
-
|
|
882
|
-
Parameters
|
|
883
|
-
----------
|
|
884
|
-
composio_app_name : str
|
|
885
|
-
|
|
886
|
-
request_options : typing.Optional[RequestOptions]
|
|
887
|
-
Request-specific configuration.
|
|
888
|
-
|
|
889
|
-
Returns
|
|
890
|
-
-------
|
|
891
|
-
HttpResponse[typing.List[ActionModel]]
|
|
892
|
-
Successful Response
|
|
893
|
-
"""
|
|
894
|
-
_response = self._client_wrapper.httpx_client.request(
|
|
895
|
-
f"v1/tools/composio/apps/{jsonable_encoder(composio_app_name)}/actions",
|
|
896
|
-
method="GET",
|
|
897
|
-
request_options=request_options,
|
|
898
|
-
)
|
|
899
|
-
try:
|
|
900
|
-
if 200 <= _response.status_code < 300:
|
|
901
|
-
_data = typing.cast(
|
|
902
|
-
typing.List[ActionModel],
|
|
903
|
-
construct_type(
|
|
904
|
-
type_=typing.List[ActionModel], # type: ignore
|
|
905
|
-
object_=_response.json(),
|
|
906
|
-
),
|
|
907
|
-
)
|
|
908
|
-
return HttpResponse(response=_response, data=_data)
|
|
909
|
-
if _response.status_code == 422:
|
|
910
|
-
raise UnprocessableEntityError(
|
|
911
|
-
headers=dict(_response.headers),
|
|
912
|
-
body=typing.cast(
|
|
913
|
-
HttpValidationError,
|
|
914
|
-
construct_type(
|
|
915
|
-
type_=HttpValidationError, # type: ignore
|
|
916
|
-
object_=_response.json(),
|
|
917
|
-
),
|
|
918
|
-
),
|
|
919
|
-
)
|
|
920
|
-
_response_json = _response.json()
|
|
921
|
-
except JSONDecodeError:
|
|
922
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
923
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
924
|
-
|
|
925
|
-
def add_composio_tool(
|
|
926
|
-
self, composio_action_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
927
|
-
) -> HttpResponse[Tool]:
|
|
928
|
-
"""
|
|
929
|
-
Add a new Composio tool by action name (Composio refers to each tool as an `Action`)
|
|
930
|
-
|
|
931
|
-
Parameters
|
|
932
|
-
----------
|
|
933
|
-
composio_action_name : str
|
|
934
|
-
|
|
935
|
-
request_options : typing.Optional[RequestOptions]
|
|
936
|
-
Request-specific configuration.
|
|
937
|
-
|
|
938
|
-
Returns
|
|
939
|
-
-------
|
|
940
|
-
HttpResponse[Tool]
|
|
941
|
-
Successful Response
|
|
942
|
-
"""
|
|
943
|
-
_response = self._client_wrapper.httpx_client.request(
|
|
944
|
-
f"v1/tools/composio/{jsonable_encoder(composio_action_name)}",
|
|
945
|
-
method="POST",
|
|
946
|
-
request_options=request_options,
|
|
947
|
-
)
|
|
948
|
-
try:
|
|
949
|
-
if 200 <= _response.status_code < 300:
|
|
950
|
-
_data = typing.cast(
|
|
951
|
-
Tool,
|
|
952
|
-
construct_type(
|
|
953
|
-
type_=Tool, # type: ignore
|
|
954
|
-
object_=_response.json(),
|
|
955
|
-
),
|
|
956
|
-
)
|
|
957
|
-
return HttpResponse(response=_response, data=_data)
|
|
958
|
-
if _response.status_code == 422:
|
|
959
|
-
raise UnprocessableEntityError(
|
|
960
|
-
headers=dict(_response.headers),
|
|
961
|
-
body=typing.cast(
|
|
962
|
-
HttpValidationError,
|
|
963
|
-
construct_type(
|
|
964
|
-
type_=HttpValidationError, # type: ignore
|
|
965
|
-
object_=_response.json(),
|
|
966
|
-
),
|
|
967
|
-
),
|
|
968
|
-
)
|
|
969
|
-
_response_json = _response.json()
|
|
970
|
-
except JSONDecodeError:
|
|
971
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
972
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
973
|
-
|
|
974
827
|
def list_mcp_servers(
|
|
975
828
|
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
976
829
|
) -> HttpResponse[typing.Dict[str, ListMcpServersResponseValue]]:
|
|
@@ -2212,151 +2065,6 @@ class AsyncRawToolsClient:
|
|
|
2212
2065
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
2213
2066
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
2214
2067
|
|
|
2215
|
-
async def list_composio_apps(
|
|
2216
|
-
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
2217
|
-
) -> AsyncHttpResponse[typing.List[AppModel]]:
|
|
2218
|
-
"""
|
|
2219
|
-
Get a list of all Composio apps
|
|
2220
|
-
|
|
2221
|
-
Parameters
|
|
2222
|
-
----------
|
|
2223
|
-
request_options : typing.Optional[RequestOptions]
|
|
2224
|
-
Request-specific configuration.
|
|
2225
|
-
|
|
2226
|
-
Returns
|
|
2227
|
-
-------
|
|
2228
|
-
AsyncHttpResponse[typing.List[AppModel]]
|
|
2229
|
-
Successful Response
|
|
2230
|
-
"""
|
|
2231
|
-
_response = await self._client_wrapper.httpx_client.request(
|
|
2232
|
-
"v1/tools/composio/apps",
|
|
2233
|
-
method="GET",
|
|
2234
|
-
request_options=request_options,
|
|
2235
|
-
)
|
|
2236
|
-
try:
|
|
2237
|
-
if 200 <= _response.status_code < 300:
|
|
2238
|
-
_data = typing.cast(
|
|
2239
|
-
typing.List[AppModel],
|
|
2240
|
-
construct_type(
|
|
2241
|
-
type_=typing.List[AppModel], # type: ignore
|
|
2242
|
-
object_=_response.json(),
|
|
2243
|
-
),
|
|
2244
|
-
)
|
|
2245
|
-
return AsyncHttpResponse(response=_response, data=_data)
|
|
2246
|
-
if _response.status_code == 422:
|
|
2247
|
-
raise UnprocessableEntityError(
|
|
2248
|
-
headers=dict(_response.headers),
|
|
2249
|
-
body=typing.cast(
|
|
2250
|
-
HttpValidationError,
|
|
2251
|
-
construct_type(
|
|
2252
|
-
type_=HttpValidationError, # type: ignore
|
|
2253
|
-
object_=_response.json(),
|
|
2254
|
-
),
|
|
2255
|
-
),
|
|
2256
|
-
)
|
|
2257
|
-
_response_json = _response.json()
|
|
2258
|
-
except JSONDecodeError:
|
|
2259
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
2260
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
2261
|
-
|
|
2262
|
-
async def list_composio_actions_by_app(
|
|
2263
|
-
self, composio_app_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
2264
|
-
) -> AsyncHttpResponse[typing.List[ActionModel]]:
|
|
2265
|
-
"""
|
|
2266
|
-
Get a list of all Composio actions for a specific app
|
|
2267
|
-
|
|
2268
|
-
Parameters
|
|
2269
|
-
----------
|
|
2270
|
-
composio_app_name : str
|
|
2271
|
-
|
|
2272
|
-
request_options : typing.Optional[RequestOptions]
|
|
2273
|
-
Request-specific configuration.
|
|
2274
|
-
|
|
2275
|
-
Returns
|
|
2276
|
-
-------
|
|
2277
|
-
AsyncHttpResponse[typing.List[ActionModel]]
|
|
2278
|
-
Successful Response
|
|
2279
|
-
"""
|
|
2280
|
-
_response = await self._client_wrapper.httpx_client.request(
|
|
2281
|
-
f"v1/tools/composio/apps/{jsonable_encoder(composio_app_name)}/actions",
|
|
2282
|
-
method="GET",
|
|
2283
|
-
request_options=request_options,
|
|
2284
|
-
)
|
|
2285
|
-
try:
|
|
2286
|
-
if 200 <= _response.status_code < 300:
|
|
2287
|
-
_data = typing.cast(
|
|
2288
|
-
typing.List[ActionModel],
|
|
2289
|
-
construct_type(
|
|
2290
|
-
type_=typing.List[ActionModel], # type: ignore
|
|
2291
|
-
object_=_response.json(),
|
|
2292
|
-
),
|
|
2293
|
-
)
|
|
2294
|
-
return AsyncHttpResponse(response=_response, data=_data)
|
|
2295
|
-
if _response.status_code == 422:
|
|
2296
|
-
raise UnprocessableEntityError(
|
|
2297
|
-
headers=dict(_response.headers),
|
|
2298
|
-
body=typing.cast(
|
|
2299
|
-
HttpValidationError,
|
|
2300
|
-
construct_type(
|
|
2301
|
-
type_=HttpValidationError, # type: ignore
|
|
2302
|
-
object_=_response.json(),
|
|
2303
|
-
),
|
|
2304
|
-
),
|
|
2305
|
-
)
|
|
2306
|
-
_response_json = _response.json()
|
|
2307
|
-
except JSONDecodeError:
|
|
2308
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
2309
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
2310
|
-
|
|
2311
|
-
async def add_composio_tool(
|
|
2312
|
-
self, composio_action_name: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
2313
|
-
) -> AsyncHttpResponse[Tool]:
|
|
2314
|
-
"""
|
|
2315
|
-
Add a new Composio tool by action name (Composio refers to each tool as an `Action`)
|
|
2316
|
-
|
|
2317
|
-
Parameters
|
|
2318
|
-
----------
|
|
2319
|
-
composio_action_name : str
|
|
2320
|
-
|
|
2321
|
-
request_options : typing.Optional[RequestOptions]
|
|
2322
|
-
Request-specific configuration.
|
|
2323
|
-
|
|
2324
|
-
Returns
|
|
2325
|
-
-------
|
|
2326
|
-
AsyncHttpResponse[Tool]
|
|
2327
|
-
Successful Response
|
|
2328
|
-
"""
|
|
2329
|
-
_response = await self._client_wrapper.httpx_client.request(
|
|
2330
|
-
f"v1/tools/composio/{jsonable_encoder(composio_action_name)}",
|
|
2331
|
-
method="POST",
|
|
2332
|
-
request_options=request_options,
|
|
2333
|
-
)
|
|
2334
|
-
try:
|
|
2335
|
-
if 200 <= _response.status_code < 300:
|
|
2336
|
-
_data = typing.cast(
|
|
2337
|
-
Tool,
|
|
2338
|
-
construct_type(
|
|
2339
|
-
type_=Tool, # type: ignore
|
|
2340
|
-
object_=_response.json(),
|
|
2341
|
-
),
|
|
2342
|
-
)
|
|
2343
|
-
return AsyncHttpResponse(response=_response, data=_data)
|
|
2344
|
-
if _response.status_code == 422:
|
|
2345
|
-
raise UnprocessableEntityError(
|
|
2346
|
-
headers=dict(_response.headers),
|
|
2347
|
-
body=typing.cast(
|
|
2348
|
-
HttpValidationError,
|
|
2349
|
-
construct_type(
|
|
2350
|
-
type_=HttpValidationError, # type: ignore
|
|
2351
|
-
object_=_response.json(),
|
|
2352
|
-
),
|
|
2353
|
-
),
|
|
2354
|
-
)
|
|
2355
|
-
_response_json = _response.json()
|
|
2356
|
-
except JSONDecodeError:
|
|
2357
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
2358
|
-
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
2359
|
-
|
|
2360
2068
|
async def list_mcp_servers(
|
|
2361
2069
|
self, *, request_options: typing.Optional[RequestOptions] = None
|
|
2362
2070
|
) -> AsyncHttpResponse[typing.Dict[str, ListMcpServersResponseValue]]:
|