letta-client 0.1.23__py3-none-any.whl → 0.1.25__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.

Files changed (55) hide show
  1. letta_client/__init__.py +18 -27
  2. letta_client/agents/client.py +90 -0
  3. letta_client/agents/types/create_agent_request_tool_rules_item.py +3 -3
  4. letta_client/agents/types/update_agent_tool_rules_item.py +3 -3
  5. letta_client/base_client.py +4 -0
  6. letta_client/core/client_wrapper.py +1 -1
  7. letta_client/steps/__init__.py +2 -0
  8. letta_client/steps/client.py +339 -0
  9. letta_client/templates/__init__.py +12 -24
  10. letta_client/templates/types/__init__.py +24 -48
  11. letta_client/templates/types/templates_create_agents_from_template_response_agents_item.py +12 -0
  12. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_base_template_id.py +13 -0
  13. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_base_template_id_item.py +5 -0
  14. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_project_id.py +13 -0
  15. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_project_id_item.py +5 -0
  16. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_template_id.py +13 -0
  17. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_template_id_item.py +5 -0
  18. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_child_output_mapping_type.py +1 -7
  19. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_children_type.py +1 -7
  20. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item.py +0 -4
  21. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping_type.py +1 -7
  22. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_children_type.py +1 -7
  23. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_one_type.py +1 -7
  24. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_two_type.py +1 -7
  25. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_one_type.py +1 -7
  26. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_two_type.py +1 -7
  27. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tools_item_tool_type.py +3 -1
  28. letta_client/tools/client.py +8 -0
  29. letta_client/types/__init__.py +4 -2
  30. letta_client/types/agent_state.py +15 -0
  31. letta_client/types/agent_state_tool_rules_item.py +3 -3
  32. letta_client/types/child_tool_rule.py +1 -2
  33. letta_client/types/conditional_tool_rule.py +1 -2
  34. letta_client/types/init_tool_rule.py +1 -2
  35. letta_client/types/local_sandbox_config.py +8 -2
  36. letta_client/types/pip_requirement.py +27 -0
  37. letta_client/types/step.py +90 -0
  38. letta_client/types/terminal_tool_rule.py +1 -2
  39. letta_client/types/tool_type.py +3 -1
  40. {letta_client-0.1.23.dist-info → letta_client-0.1.25.dist-info}/METADATA +1 -1
  41. {letta_client-0.1.23.dist-info → letta_client-0.1.25.dist-info}/RECORD +42 -45
  42. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item.py +0 -22
  43. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_child_output_mapping.py +0 -38
  44. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_child_output_mapping_default_child.py +0 -17
  45. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_child_output_mapping_default_child_item.py +0 -7
  46. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_child_output_mapping_require_output_mapping.py +0 -7
  47. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_child_output_mapping_type.py +0 -13
  48. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_children.py +0 -24
  49. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_children_type.py +0 -13
  50. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_one.py +0 -23
  51. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_one_type.py +0 -13
  52. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_two.py +0 -23
  53. letta_client/templates/types/templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item_two_type.py +0 -13
  54. letta_client/types/tool_rule_type.py +0 -10
  55. {letta_client-0.1.23.dist-info → letta_client-0.1.25.dist-info}/WHEEL +0 -0
@@ -13,14 +13,10 @@ from .templates_create_agents_from_template_response_agents_item_tool_rules_item
13
13
  from .templates_create_agents_from_template_response_agents_item_tool_rules_item_item_child_output_mapping import (
14
14
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemChildOutputMapping,
15
15
  )
16
- from .templates_create_agents_from_template_response_agents_item_tool_rules_item_item_item import (
17
- TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemItem,
18
- )
19
16
 
20
17
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItem = typing.Union[
21
18
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemChildren,
22
19
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemOne,
23
20
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemTwo,
24
21
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemChildOutputMapping,
25
- typing.List[TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemItem],
26
22
  ]
@@ -3,11 +3,5 @@
3
3
  import typing
4
4
 
5
5
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemChildOutputMappingType = typing.Union[
6
- typing.Literal["InitToolRule"],
7
- typing.Literal["TerminalToolRule"],
8
- typing.Literal["continue_loop"],
9
- typing.Literal["conditional"],
10
- typing.Literal["ToolRule"],
11
- typing.Literal["require_parent_tools"],
12
- typing.Optional[typing.Any],
6
+ typing.Literal["conditional"], typing.Optional[typing.Any]
13
7
  ]
@@ -3,11 +3,5 @@
3
3
  import typing
4
4
 
5
5
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemChildrenType = typing.Union[
6
- typing.Literal["InitToolRule"],
7
- typing.Literal["TerminalToolRule"],
8
- typing.Literal["continue_loop"],
9
- typing.Literal["conditional"],
10
- typing.Literal["ToolRule"],
11
- typing.Literal["require_parent_tools"],
12
- typing.Optional[typing.Any],
6
+ typing.Literal["constrain_child_tools"], typing.Optional[typing.Any]
13
7
  ]
@@ -3,11 +3,5 @@
3
3
  import typing
4
4
 
5
5
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemOneType = typing.Union[
6
- typing.Literal["InitToolRule"],
7
- typing.Literal["TerminalToolRule"],
8
- typing.Literal["continue_loop"],
9
- typing.Literal["conditional"],
10
- typing.Literal["ToolRule"],
11
- typing.Literal["require_parent_tools"],
12
- typing.Optional[typing.Any],
6
+ typing.Literal["run_first"], typing.Optional[typing.Any]
13
7
  ]
@@ -3,11 +3,5 @@
3
3
  import typing
4
4
 
5
5
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemItemTwoType = typing.Union[
6
- typing.Literal["InitToolRule"],
7
- typing.Literal["TerminalToolRule"],
8
- typing.Literal["continue_loop"],
9
- typing.Literal["conditional"],
10
- typing.Literal["ToolRule"],
11
- typing.Literal["require_parent_tools"],
12
- typing.Optional[typing.Any],
6
+ typing.Literal["exit_loop"], typing.Optional[typing.Any]
13
7
  ]
@@ -3,11 +3,5 @@
3
3
  import typing
4
4
 
5
5
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemOneType = typing.Union[
6
- typing.Literal["InitToolRule"],
7
- typing.Literal["TerminalToolRule"],
8
- typing.Literal["continue_loop"],
9
- typing.Literal["conditional"],
10
- typing.Literal["ToolRule"],
11
- typing.Literal["require_parent_tools"],
12
- typing.Optional[typing.Any],
6
+ typing.Literal["run_first"], typing.Optional[typing.Any]
13
7
  ]
@@ -3,11 +3,5 @@
3
3
  import typing
4
4
 
5
5
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolRulesItemTwoType = typing.Union[
6
- typing.Literal["InitToolRule"],
7
- typing.Literal["TerminalToolRule"],
8
- typing.Literal["continue_loop"],
9
- typing.Literal["conditional"],
10
- typing.Literal["ToolRule"],
11
- typing.Literal["require_parent_tools"],
12
- typing.Optional[typing.Any],
6
+ typing.Literal["exit_loop"], typing.Optional[typing.Any]
13
7
  ]
@@ -3,6 +3,8 @@
3
3
  import typing
4
4
 
5
5
  TemplatesCreateAgentsFromTemplateResponseAgentsItemToolsItemToolType = typing.Union[
6
- typing.Literal["custom", "letta_core", "letta_memory_core", "letta_multi_agent_core", "external_composio"],
6
+ typing.Literal[
7
+ "custom", "letta_core", "letta_memory_core", "letta_multi_agent_core", "external_composio", "external_langchain"
8
+ ],
7
9
  typing.Any,
8
10
  ]
@@ -239,6 +239,7 @@ class ToolsClient:
239
239
  *,
240
240
  after: typing.Optional[str] = None,
241
241
  limit: typing.Optional[int] = None,
242
+ name: typing.Optional[str] = None,
242
243
  request_options: typing.Optional[RequestOptions] = None,
243
244
  ) -> typing.List[Tool]:
244
245
  """
@@ -250,6 +251,8 @@ class ToolsClient:
250
251
 
251
252
  limit : typing.Optional[int]
252
253
 
254
+ name : typing.Optional[str]
255
+
253
256
  request_options : typing.Optional[RequestOptions]
254
257
  Request-specific configuration.
255
258
 
@@ -273,6 +276,7 @@ class ToolsClient:
273
276
  params={
274
277
  "after": after,
275
278
  "limit": limit,
279
+ "name": name,
276
280
  },
277
281
  request_options=request_options,
278
282
  )
@@ -1037,6 +1041,7 @@ class AsyncToolsClient:
1037
1041
  *,
1038
1042
  after: typing.Optional[str] = None,
1039
1043
  limit: typing.Optional[int] = None,
1044
+ name: typing.Optional[str] = None,
1040
1045
  request_options: typing.Optional[RequestOptions] = None,
1041
1046
  ) -> typing.List[Tool]:
1042
1047
  """
@@ -1048,6 +1053,8 @@ class AsyncToolsClient:
1048
1053
 
1049
1054
  limit : typing.Optional[int]
1050
1055
 
1056
+ name : typing.Optional[str]
1057
+
1051
1058
  request_options : typing.Optional[RequestOptions]
1052
1059
  Request-specific configuration.
1053
1060
 
@@ -1079,6 +1086,7 @@ class AsyncToolsClient:
1079
1086
  params={
1080
1087
  "after": after,
1081
1088
  "limit": limit,
1089
+ "name": name,
1082
1090
  },
1083
1091
  request_options=request_options,
1084
1092
  )
@@ -122,6 +122,7 @@ from .openai_types_chat_completion_create_params_function import OpenaiTypesChat
122
122
  from .organization import Organization
123
123
  from .organization_create import OrganizationCreate
124
124
  from .passage import Passage
125
+ from .pip_requirement import PipRequirement
125
126
  from .provider import Provider
126
127
  from .reasoning_message import ReasoningMessage
127
128
  from .response_format_json_object import ResponseFormatJsonObject
@@ -138,6 +139,7 @@ from .sandbox_environment_variable_create import SandboxEnvironmentVariableCreat
138
139
  from .sandbox_environment_variable_update import SandboxEnvironmentVariableUpdate
139
140
  from .sandbox_type import SandboxType
140
141
  from .source import Source
142
+ from .step import Step
141
143
  from .system_message import SystemMessage
142
144
  from .system_message_content import SystemMessageContent
143
145
  from .terminal_tool_rule import TerminalToolRule
@@ -150,7 +152,6 @@ from .tool_call_message_tool_call import ToolCallMessageToolCall
150
152
  from .tool_create import ToolCreate
151
153
  from .tool_return_message import ToolReturnMessage
152
154
  from .tool_return_message_status import ToolReturnMessageStatus
153
- from .tool_rule_type import ToolRuleType
154
155
  from .tool_type import ToolType
155
156
  from .usage_statistics import UsageStatistics
156
157
  from .user import User
@@ -278,6 +279,7 @@ __all__ = [
278
279
  "Organization",
279
280
  "OrganizationCreate",
280
281
  "Passage",
282
+ "PipRequirement",
281
283
  "Provider",
282
284
  "ReasoningMessage",
283
285
  "ResponseFormatJsonObject",
@@ -294,6 +296,7 @@ __all__ = [
294
296
  "SandboxEnvironmentVariableUpdate",
295
297
  "SandboxType",
296
298
  "Source",
299
+ "Step",
297
300
  "SystemMessage",
298
301
  "SystemMessageContent",
299
302
  "TerminalToolRule",
@@ -306,7 +309,6 @@ __all__ = [
306
309
  "ToolCreate",
307
310
  "ToolReturnMessage",
308
311
  "ToolReturnMessageStatus",
309
- "ToolRuleType",
310
312
  "ToolType",
311
313
  "UsageStatistics",
312
314
  "User",
@@ -128,6 +128,21 @@ class AgentState(UncheckedBaseModel):
128
128
  The environment variables for tool execution specific to this agent.
129
129
  """
130
130
 
131
+ project_id: typing.Optional[str] = pydantic.Field(default=None)
132
+ """
133
+ The id of the project the agent belongs to.
134
+ """
135
+
136
+ template_id: typing.Optional[str] = pydantic.Field(default=None)
137
+ """
138
+ The id of the template the agent belongs to.
139
+ """
140
+
141
+ base_template_id: typing.Optional[str] = pydantic.Field(default=None)
142
+ """
143
+ The base template id of the agent.
144
+ """
145
+
131
146
  if IS_PYDANTIC_V2:
132
147
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
133
148
  else:
@@ -1,9 +1,9 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
+ from .conditional_tool_rule import ConditionalToolRule
4
5
  from .child_tool_rule import ChildToolRule
5
- from .init_tool_rule import InitToolRule
6
6
  from .terminal_tool_rule import TerminalToolRule
7
- from .conditional_tool_rule import ConditionalToolRule
7
+ from .init_tool_rule import InitToolRule
8
8
 
9
- AgentStateToolRulesItem = typing.Union[ChildToolRule, InitToolRule, TerminalToolRule, ConditionalToolRule]
9
+ AgentStateToolRulesItem = typing.Union[ConditionalToolRule, ChildToolRule, TerminalToolRule, InitToolRule]
@@ -3,7 +3,6 @@
3
3
  from ..core.unchecked_base_model import UncheckedBaseModel
4
4
  import pydantic
5
5
  import typing
6
- from .tool_rule_type import ToolRuleType
7
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
7
 
9
8
 
@@ -17,7 +16,7 @@ class ChildToolRule(UncheckedBaseModel):
17
16
  The name of the tool. Must exist in the database for the user's organization.
18
17
  """
19
18
 
20
- type: typing.Optional[ToolRuleType] = None
19
+ type: typing.Literal["constrain_child_tools"] = "constrain_child_tools"
21
20
  children: typing.List[str] = pydantic.Field()
22
21
  """
23
22
  The children tools that can be invoked.
@@ -3,7 +3,6 @@
3
3
  from ..core.unchecked_base_model import UncheckedBaseModel
4
4
  import pydantic
5
5
  import typing
6
- from .tool_rule_type import ToolRuleType
7
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
7
 
9
8
 
@@ -17,7 +16,7 @@ class ConditionalToolRule(UncheckedBaseModel):
17
16
  The name of the tool. Must exist in the database for the user's organization.
18
17
  """
19
18
 
20
- type: typing.Optional[ToolRuleType] = None
19
+ type: typing.Literal["conditional"] = "conditional"
21
20
  default_child: typing.Optional[str] = pydantic.Field(default=None)
22
21
  """
23
22
  The default child tool to be called. If None, any tool can be called.
@@ -3,7 +3,6 @@
3
3
  from ..core.unchecked_base_model import UncheckedBaseModel
4
4
  import pydantic
5
5
  import typing
6
- from .tool_rule_type import ToolRuleType
7
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
7
 
9
8
 
@@ -17,7 +16,7 @@ class InitToolRule(UncheckedBaseModel):
17
16
  The name of the tool. Must exist in the database for the user's organization.
18
17
  """
19
18
 
20
- type: typing.Optional[ToolRuleType] = None
19
+ type: typing.Literal["run_first"] = "run_first"
21
20
 
22
21
  if IS_PYDANTIC_V2:
23
22
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -1,13 +1,14 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  from ..core.unchecked_base_model import UncheckedBaseModel
4
- import pydantic
5
4
  import typing
5
+ import pydantic
6
+ from .pip_requirement import PipRequirement
6
7
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
8
 
8
9
 
9
10
  class LocalSandboxConfig(UncheckedBaseModel):
10
- sandbox_dir: str = pydantic.Field()
11
+ sandbox_dir: typing.Optional[str] = pydantic.Field(default=None)
11
12
  """
12
13
  Directory for the sandbox environment.
13
14
  """
@@ -22,6 +23,11 @@ class LocalSandboxConfig(UncheckedBaseModel):
22
23
  The name for the venv in the sandbox directory. We first search for an existing venv with this name, otherwise, we make it from the requirements.txt.
23
24
  """
24
25
 
26
+ pip_requirements: typing.Optional[typing.List[PipRequirement]] = pydantic.Field(default=None)
27
+ """
28
+ List of pip packages to install with mandatory name and optional version following semantic versioning. This only is considered when use_venv is True.
29
+ """
30
+
25
31
  if IS_PYDANTIC_V2:
26
32
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
27
33
  else:
@@ -0,0 +1,27 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import pydantic
5
+ import typing
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+
8
+
9
+ class PipRequirement(UncheckedBaseModel):
10
+ name: str = pydantic.Field()
11
+ """
12
+ Name of the pip package.
13
+ """
14
+
15
+ version: typing.Optional[str] = pydantic.Field(default=None)
16
+ """
17
+ Optional version of the package, following semantic versioning.
18
+ """
19
+
20
+ if IS_PYDANTIC_V2:
21
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
22
+ else:
23
+
24
+ class Config:
25
+ frozen = True
26
+ smart_union = True
27
+ extra = pydantic.Extra.allow
@@ -0,0 +1,90 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import pydantic
5
+ import typing
6
+ from .message import Message
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+
9
+
10
+ class Step(UncheckedBaseModel):
11
+ id: str = pydantic.Field()
12
+ """
13
+ The id of the step. Assigned by the database.
14
+ """
15
+
16
+ origin: typing.Optional[str] = pydantic.Field(default=None)
17
+ """
18
+ The surface that this agent step was initiated from.
19
+ """
20
+
21
+ provider_id: typing.Optional[str] = pydantic.Field(default=None)
22
+ """
23
+ The unique identifier of the provider that was configured for this step
24
+ """
25
+
26
+ job_id: typing.Optional[str] = pydantic.Field(default=None)
27
+ """
28
+ The unique identifier of the job that this step belongs to. Only included for async calls.
29
+ """
30
+
31
+ provider_name: typing.Optional[str] = pydantic.Field(default=None)
32
+ """
33
+ The name of the provider used for this step.
34
+ """
35
+
36
+ model: typing.Optional[str] = pydantic.Field(default=None)
37
+ """
38
+ The name of the model used for this step.
39
+ """
40
+
41
+ context_window_limit: typing.Optional[int] = pydantic.Field(default=None)
42
+ """
43
+ The context window limit configured for this step.
44
+ """
45
+
46
+ completion_tokens: typing.Optional[int] = pydantic.Field(default=None)
47
+ """
48
+ The number of tokens generated by the agent during this step.
49
+ """
50
+
51
+ prompt_tokens: typing.Optional[int] = pydantic.Field(default=None)
52
+ """
53
+ The number of tokens in the prompt during this step.
54
+ """
55
+
56
+ total_tokens: typing.Optional[int] = pydantic.Field(default=None)
57
+ """
58
+ The total number of tokens processed by the agent during this step.
59
+ """
60
+
61
+ completion_tokens_details: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(
62
+ default=None
63
+ )
64
+ """
65
+ Metadata for the agent.
66
+ """
67
+
68
+ tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
69
+ """
70
+ Metadata tags.
71
+ """
72
+
73
+ tid: typing.Optional[str] = pydantic.Field(default=None)
74
+ """
75
+ The unique identifier of the transaction that processed this step.
76
+ """
77
+
78
+ messages: typing.Optional[typing.List[Message]] = pydantic.Field(default=None)
79
+ """
80
+ The messages generated during this step.
81
+ """
82
+
83
+ if IS_PYDANTIC_V2:
84
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
85
+ else:
86
+
87
+ class Config:
88
+ frozen = True
89
+ smart_union = True
90
+ extra = pydantic.Extra.allow
@@ -3,7 +3,6 @@
3
3
  from ..core.unchecked_base_model import UncheckedBaseModel
4
4
  import pydantic
5
5
  import typing
6
- from .tool_rule_type import ToolRuleType
7
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
7
 
9
8
 
@@ -17,7 +16,7 @@ class TerminalToolRule(UncheckedBaseModel):
17
16
  The name of the tool. Must exist in the database for the user's organization.
18
17
  """
19
18
 
20
- type: typing.Optional[ToolRuleType] = None
19
+ type: typing.Literal["exit_loop"] = "exit_loop"
21
20
 
22
21
  if IS_PYDANTIC_V2:
23
22
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -3,6 +3,8 @@
3
3
  import typing
4
4
 
5
5
  ToolType = typing.Union[
6
- typing.Literal["custom", "letta_core", "letta_memory_core", "letta_multi_agent_core", "external_composio"],
6
+ typing.Literal[
7
+ "custom", "letta_core", "letta_memory_core", "letta_multi_agent_core", "external_composio", "external_langchain"
8
+ ],
7
9
  typing.Any,
8
10
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-client
3
- Version: 0.1.23
3
+ Version: 0.1.25
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers