letta-client 0.1.0__py3-none-any.whl → 0.1.2__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.
Files changed (201) hide show
  1. letta/__init__.py +293 -0
  2. letta/agents/__init__.py +28 -0
  3. letta/agents/archival_memory/__init__.py +2 -0
  4. letta/agents/archival_memory/client.py +591 -0
  5. letta/agents/client.py +2166 -0
  6. letta/agents/context/__init__.py +2 -0
  7. letta/agents/context/client.py +145 -0
  8. letta/agents/memory/__init__.py +5 -0
  9. letta/agents/memory/client.py +149 -0
  10. letta/agents/memory/messages/__init__.py +2 -0
  11. letta/agents/memory/messages/client.py +147 -0
  12. letta/agents/memory_blocks/__init__.py +2 -0
  13. letta/agents/memory_blocks/client.py +364 -0
  14. letta/agents/messages/__init__.py +5 -0
  15. letta/agents/messages/client.py +787 -0
  16. letta/agents/messages/types/__init__.py +7 -0
  17. letta/agents/messages/types/letta_streaming_response.py +20 -0
  18. letta/agents/messages/types/messages_list_response.py +7 -0
  19. letta/agents/messages/types/messages_list_response_item.py +13 -0
  20. letta/agents/recall_memory/__init__.py +2 -0
  21. letta/agents/recall_memory/client.py +147 -0
  22. letta/agents/sources/__init__.py +2 -0
  23. letta/agents/sources/client.py +145 -0
  24. letta/agents/tools/__init__.py +2 -0
  25. letta/agents/tools/client.py +408 -0
  26. letta/agents/types/__init__.py +13 -0
  27. letta/agents/types/agents_create_version_response.py +22 -0
  28. letta/agents/types/agents_migrate_response.py +19 -0
  29. letta/agents/types/create_agent_request_tool_rules_item.py +9 -0
  30. letta/agents/types/update_agent_tool_rules_item.py +9 -0
  31. letta/blocks/__init__.py +2 -0
  32. letta/blocks/client.py +1054 -0
  33. letta/client.py +164 -0
  34. letta/core/__init__.py +47 -0
  35. letta/core/api_error.py +15 -0
  36. letta/core/client_wrapper.py +76 -0
  37. letta/core/datetime_utils.py +28 -0
  38. letta/core/file.py +67 -0
  39. letta/core/http_client.py +499 -0
  40. letta/core/jsonable_encoder.py +101 -0
  41. letta/core/pydantic_utilities.py +296 -0
  42. letta/core/query_encoder.py +58 -0
  43. letta/core/remove_none_from_dict.py +11 -0
  44. letta/core/request_options.py +35 -0
  45. letta/core/serialization.py +272 -0
  46. letta/environment.py +8 -0
  47. letta/errors/__init__.py +8 -0
  48. letta/errors/conflict_error.py +9 -0
  49. letta/errors/internal_server_error.py +9 -0
  50. letta/errors/not_found_error.py +9 -0
  51. letta/errors/unprocessable_entity_error.py +9 -0
  52. letta/health/__init__.py +2 -0
  53. letta/health/client.py +108 -0
  54. letta/jobs/__init__.py +2 -0
  55. letta/jobs/client.py +503 -0
  56. letta/models/__init__.py +2 -0
  57. letta/models/client.py +201 -0
  58. letta/sources/__init__.py +5 -0
  59. letta/sources/client.py +1154 -0
  60. letta/sources/files/__init__.py +2 -0
  61. letta/sources/files/client.py +436 -0
  62. letta/sources/passages/__init__.py +2 -0
  63. letta/sources/passages/client.py +145 -0
  64. letta/tools/__init__.py +2 -0
  65. letta/tools/client.py +1823 -0
  66. letta/types/__init__.py +263 -0
  67. letta/types/action_model.py +36 -0
  68. letta/types/action_parameters_model.py +26 -0
  69. letta/types/action_response_model.py +26 -0
  70. letta/types/agent_state.py +139 -0
  71. letta/types/agent_state_tool_rules_item.py +9 -0
  72. letta/types/agent_type.py +8 -0
  73. letta/types/app_auth_scheme.py +34 -0
  74. letta/types/app_auth_scheme_auth_mode.py +7 -0
  75. letta/types/app_model.py +44 -0
  76. letta/types/archival_memory_summary.py +22 -0
  77. letta/types/assistant_file.py +33 -0
  78. letta/types/assistant_message_input.py +23 -0
  79. letta/types/assistant_message_output.py +23 -0
  80. letta/types/auth_request.py +22 -0
  81. letta/types/auth_response.py +29 -0
  82. letta/types/auth_scheme_field.py +30 -0
  83. letta/types/block.py +91 -0
  84. letta/types/block_update.py +60 -0
  85. letta/types/chat_completion_request.py +49 -0
  86. letta/types/chat_completion_request_function_call.py +6 -0
  87. letta/types/chat_completion_request_messages_item.py +11 -0
  88. letta/types/chat_completion_request_stop.py +5 -0
  89. letta/types/chat_completion_request_tool_choice.py +8 -0
  90. letta/types/chat_completion_response.py +32 -0
  91. letta/types/child_tool_rule.py +33 -0
  92. letta/types/choice.py +25 -0
  93. letta/types/conditional_tool_rule.py +43 -0
  94. letta/types/conflict_error_body.py +21 -0
  95. letta/types/context_window_overview.py +105 -0
  96. letta/types/create_assistant_file_request.py +22 -0
  97. letta/types/create_assistant_request.py +57 -0
  98. letta/types/create_block.py +56 -0
  99. letta/types/delete_assistant_file_response.py +28 -0
  100. letta/types/delete_assistant_response.py +28 -0
  101. letta/types/e_2_b_sandbox_config.py +32 -0
  102. letta/types/embedding_config.py +72 -0
  103. letta/types/embedding_config_embedding_endpoint_type.py +26 -0
  104. letta/types/file_metadata.py +82 -0
  105. letta/types/function_call_input.py +19 -0
  106. letta/types/function_call_output.py +20 -0
  107. letta/types/function_schema.py +21 -0
  108. letta/types/health.py +24 -0
  109. letta/types/http_validation_error.py +20 -0
  110. letta/types/init_tool_rule.py +29 -0
  111. letta/types/internal_server_error_body.py +19 -0
  112. letta/types/job.py +79 -0
  113. letta/types/job_status.py +5 -0
  114. letta/types/letta_request.py +33 -0
  115. letta/types/letta_response.py +125 -0
  116. letta/types/letta_response_assistant_message.py +23 -0
  117. letta/types/letta_response_letta_usage_statistics.py +47 -0
  118. letta/types/letta_response_reasoning_message.py +32 -0
  119. letta/types/letta_response_system_message.py +32 -0
  120. letta/types/letta_response_tool_call.py +21 -0
  121. letta/types/letta_response_tool_call_delta.py +21 -0
  122. letta/types/letta_response_tool_call_message.py +33 -0
  123. letta/types/letta_response_tool_call_message_tool_call.py +9 -0
  124. letta/types/letta_response_tool_call_message_tool_call_one.py +21 -0
  125. letta/types/letta_response_tool_call_message_tool_call_zero.py +21 -0
  126. letta/types/letta_response_tool_return_message.py +41 -0
  127. letta/types/letta_response_tool_return_message_status.py +5 -0
  128. letta/types/letta_response_usage_message.py +40 -0
  129. letta/types/letta_response_usage_message_usage.py +47 -0
  130. letta/types/letta_response_user_message.py +32 -0
  131. letta/types/letta_schemas_letta_message_tool_call.py +21 -0
  132. letta/types/letta_schemas_message_message.py +103 -0
  133. letta/types/letta_schemas_openai_chat_completion_request_tool.py +21 -0
  134. letta/types/letta_schemas_openai_chat_completion_request_tool_call.py +24 -0
  135. letta/types/letta_schemas_openai_chat_completion_request_tool_call_function.py +20 -0
  136. letta/types/letta_schemas_openai_chat_completion_response_message.py +24 -0
  137. letta/types/letta_schemas_openai_chat_completion_response_tool_call.py +22 -0
  138. letta/types/letta_schemas_openai_chat_completions_tool_call_function.py +27 -0
  139. letta/types/letta_schemas_openai_chat_completions_tool_call_input.py +29 -0
  140. letta/types/letta_schemas_openai_chat_completions_tool_call_output.py +29 -0
  141. letta/types/letta_schemas_tool_tool.py +88 -0
  142. letta/types/letta_usage_statistics.py +47 -0
  143. letta/types/llm_config.py +60 -0
  144. letta/types/llm_config_model_endpoint_type.py +26 -0
  145. letta/types/local_sandbox_config.py +32 -0
  146. letta/types/log_prob_token.py +21 -0
  147. letta/types/memory.py +32 -0
  148. letta/types/message_content_log_prob.py +23 -0
  149. letta/types/message_create.py +37 -0
  150. letta/types/message_create_role.py +5 -0
  151. letta/types/message_role.py +5 -0
  152. letta/types/not_found_error_body.py +20 -0
  153. letta/types/not_found_error_body_message.py +11 -0
  154. letta/types/open_ai_assistant.py +67 -0
  155. letta/types/organization.py +33 -0
  156. letta/types/organization_create.py +22 -0
  157. letta/types/passage.py +107 -0
  158. letta/types/reasoning_message.py +32 -0
  159. letta/types/recall_memory_summary.py +22 -0
  160. letta/types/response_format.py +19 -0
  161. letta/types/sandbox_config.py +59 -0
  162. letta/types/sandbox_config_create.py +23 -0
  163. letta/types/sandbox_config_create_config.py +7 -0
  164. letta/types/sandbox_config_update.py +27 -0
  165. letta/types/sandbox_config_update_config.py +7 -0
  166. letta/types/sandbox_environment_variable.py +68 -0
  167. letta/types/sandbox_environment_variable_create.py +32 -0
  168. letta/types/sandbox_environment_variable_update.py +36 -0
  169. letta/types/sandbox_type.py +5 -0
  170. letta/types/source.py +85 -0
  171. letta/types/system_message_input.py +21 -0
  172. letta/types/system_message_output.py +32 -0
  173. letta/types/terminal_tool_rule.py +29 -0
  174. letta/types/tool_call_delta.py +21 -0
  175. letta/types/tool_call_function_output.py +27 -0
  176. letta/types/tool_call_message.py +33 -0
  177. letta/types/tool_call_message_tool_call.py +7 -0
  178. letta/types/tool_create.py +57 -0
  179. letta/types/tool_function_choice.py +21 -0
  180. letta/types/tool_input.py +21 -0
  181. letta/types/tool_message.py +21 -0
  182. letta/types/tool_return_message.py +41 -0
  183. letta/types/tool_return_message_status.py +5 -0
  184. letta/types/tool_rule_type.py +10 -0
  185. letta/types/usage_message.py +31 -0
  186. letta/types/usage_statistics.py +21 -0
  187. letta/types/user.py +57 -0
  188. letta/types/user_create.py +27 -0
  189. letta/types/user_message_input.py +22 -0
  190. letta/types/user_message_input_content.py +5 -0
  191. letta/types/user_message_output.py +32 -0
  192. letta/types/user_update.py +32 -0
  193. letta/types/validation_error.py +22 -0
  194. letta/types/validation_error_loc_item.py +5 -0
  195. letta/version.py +3 -0
  196. letta_client-0.1.2.dist-info/METADATA +189 -0
  197. letta_client-0.1.2.dist-info/RECORD +199 -0
  198. {letta_client-0.1.0.dist-info → letta_client-0.1.2.dist-info}/WHEEL +1 -1
  199. letta_client-0.1.0.dist-info/METADATA +0 -15
  200. letta_client-0.1.0.dist-info/RECORD +0 -4
  201. /letta_client/__init__.py → /letta/py.typed +0 -0
@@ -0,0 +1,125 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing_extensions
5
+ import typing
6
+ from .letta_response_assistant_message import LettaResponseAssistantMessage
7
+ from ..core.serialization import FieldMetadata
8
+ from .letta_response_letta_usage_statistics import LettaResponseLettaUsageStatistics
9
+ import pydantic
10
+ from .letta_response_reasoning_message import LettaResponseReasoningMessage
11
+ from .letta_response_system_message import LettaResponseSystemMessage
12
+ from .letta_response_tool_call import LettaResponseToolCall
13
+ from .letta_response_tool_call_delta import LettaResponseToolCallDelta
14
+ from .letta_response_tool_call_message import LettaResponseToolCallMessage
15
+ from .letta_response_tool_return_message import LettaResponseToolReturnMessage
16
+ from .letta_response_usage_message import LettaResponseUsageMessage
17
+ from .letta_response_user_message import LettaResponseUserMessage
18
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
19
+
20
+
21
+ class LettaResponse(UniversalBaseModel):
22
+ assistant_message: typing_extensions.Annotated[
23
+ typing.Optional[LettaResponseAssistantMessage], FieldMetadata(alias="AssistantMessage")
24
+ ] = None
25
+ letta_usage_statistics: typing_extensions.Annotated[
26
+ typing.Optional[LettaResponseLettaUsageStatistics], FieldMetadata(alias="LettaUsageStatistics")
27
+ ] = pydantic.Field(default=None)
28
+ """
29
+ Usage statistics for the agent interaction.
30
+
31
+ Attributes:
32
+ completion_tokens (int): The number of tokens generated by the agent.
33
+ prompt_tokens (int): The number of tokens in the prompt.
34
+ total_tokens (int): The total number of tokens processed by the agent.
35
+ step_count (int): The number of steps taken by the agent.
36
+ """
37
+
38
+ reasoning_message: typing_extensions.Annotated[
39
+ typing.Optional[LettaResponseReasoningMessage], FieldMetadata(alias="ReasoningMessage")
40
+ ] = pydantic.Field(default=None)
41
+ """
42
+ Representation of an agent's internal reasoning.
43
+
44
+ Attributes:
45
+ reasoning (str): The internal reasoning of the agent
46
+ id (str): The ID of the message
47
+ date (datetime): The date the message was created in ISO format
48
+ """
49
+
50
+ system_message: typing_extensions.Annotated[
51
+ typing.Optional[LettaResponseSystemMessage], FieldMetadata(alias="SystemMessage")
52
+ ] = pydantic.Field(default=None)
53
+ """
54
+ A message generated by the system. Never streamed back on a response, only used for cursor pagination.
55
+
56
+ Attributes:
57
+ message (str): The message sent by the system
58
+ id (str): The ID of the message
59
+ date (datetime): The date the message was created in ISO format
60
+ """
61
+
62
+ tool_call: typing_extensions.Annotated[typing.Optional[LettaResponseToolCall], FieldMetadata(alias="ToolCall")] = (
63
+ None
64
+ )
65
+ tool_call_delta: typing_extensions.Annotated[
66
+ typing.Optional[LettaResponseToolCallDelta], FieldMetadata(alias="ToolCallDelta")
67
+ ] = None
68
+ tool_call_message: typing_extensions.Annotated[
69
+ typing.Optional[LettaResponseToolCallMessage], FieldMetadata(alias="ToolCallMessage")
70
+ ] = pydantic.Field(default=None)
71
+ """
72
+ A message representing a request to call a tool (generated by the LLM to trigger tool execution).
73
+
74
+ Attributes:
75
+ tool_call (Union[ToolCall, ToolCallDelta]): The tool call
76
+ id (str): The ID of the message
77
+ date (datetime): The date the message was created in ISO format
78
+ """
79
+
80
+ tool_return_message: typing_extensions.Annotated[
81
+ typing.Optional[LettaResponseToolReturnMessage], FieldMetadata(alias="ToolReturnMessage")
82
+ ] = pydantic.Field(default=None)
83
+ """
84
+ A message representing the return value of a tool call (generated by Letta executing the requested tool).
85
+
86
+ Attributes:
87
+ tool_return (str): The return value of the tool
88
+ status (Literal["success", "error"]): The status of the tool call
89
+ id (str): The ID of the message
90
+ date (datetime): The date the message was created in ISO format
91
+ tool_call_id (str): A unique identifier for the tool call that generated this message
92
+ stdout (Optional[List(str)]): Captured stdout (e.g. prints, logs) from the tool invocation
93
+ stderr (Optional[List(str)]): Captured stderr from the tool invocation
94
+ """
95
+
96
+ usage_message: typing_extensions.Annotated[
97
+ typing.Optional[LettaResponseUsageMessage], FieldMetadata(alias="UsageMessage")
98
+ ] = pydantic.Field(default=None)
99
+ """
100
+ A message representint the usage statistics for the agent interaction.
101
+
102
+ Attributes:
103
+ usage (LettaUsageStatistics): Usage statistics for the agent interaction.
104
+ """
105
+
106
+ user_message: typing_extensions.Annotated[
107
+ typing.Optional[LettaResponseUserMessage], FieldMetadata(alias="UserMessage")
108
+ ] = pydantic.Field(default=None)
109
+ """
110
+ A message sent by the user. Never streamed back on a response, only used for cursor pagination.
111
+
112
+ Attributes:
113
+ message (str): The message sent by the user
114
+ id (str): The ID of the message
115
+ date (datetime): The date the message was created in ISO format
116
+ """
117
+
118
+ if IS_PYDANTIC_V2:
119
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
120
+ else:
121
+
122
+ class Config:
123
+ frozen = True
124
+ smart_union = True
125
+ extra = pydantic.Extra.allow
@@ -0,0 +1,23 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ import typing
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class LettaResponseAssistantMessage(UniversalBaseModel):
11
+ id: str
12
+ date: dt.datetime
13
+ message_type: typing.Optional[typing.Literal["assistant_message"]] = None
14
+ assistant_message: str
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -0,0 +1,47 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+
8
+
9
+ class LettaResponseLettaUsageStatistics(UniversalBaseModel):
10
+ """
11
+ Usage statistics for the agent interaction.
12
+
13
+ Attributes:
14
+ completion_tokens (int): The number of tokens generated by the agent.
15
+ prompt_tokens (int): The number of tokens in the prompt.
16
+ total_tokens (int): The total number of tokens processed by the agent.
17
+ step_count (int): The number of steps taken by the agent.
18
+ """
19
+
20
+ completion_tokens: typing.Optional[int] = pydantic.Field(default=None)
21
+ """
22
+ The number of tokens generated by the agent.
23
+ """
24
+
25
+ prompt_tokens: typing.Optional[int] = pydantic.Field(default=None)
26
+ """
27
+ The number of tokens in the prompt.
28
+ """
29
+
30
+ total_tokens: typing.Optional[int] = pydantic.Field(default=None)
31
+ """
32
+ The total number of tokens processed by the agent.
33
+ """
34
+
35
+ step_count: typing.Optional[int] = pydantic.Field(default=None)
36
+ """
37
+ The number of steps taken by the agent.
38
+ """
39
+
40
+ if IS_PYDANTIC_V2:
41
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
42
+ else:
43
+
44
+ class Config:
45
+ frozen = True
46
+ smart_union = True
47
+ extra = pydantic.Extra.allow
@@ -0,0 +1,32 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ import typing
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class LettaResponseReasoningMessage(UniversalBaseModel):
11
+ """
12
+ Representation of an agent's internal reasoning.
13
+
14
+ Attributes:
15
+ reasoning (str): The internal reasoning of the agent
16
+ id (str): The ID of the message
17
+ date (datetime): The date the message was created in ISO format
18
+ """
19
+
20
+ id: str
21
+ date: dt.datetime
22
+ message_type: typing.Optional[typing.Literal["reasoning_message"]] = None
23
+ reasoning: str
24
+
25
+ if IS_PYDANTIC_V2:
26
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
27
+ else:
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
@@ -0,0 +1,32 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ import typing
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class LettaResponseSystemMessage(UniversalBaseModel):
11
+ """
12
+ A message generated by the system. Never streamed back on a response, only used for cursor pagination.
13
+
14
+ Attributes:
15
+ message (str): The message sent by the system
16
+ id (str): The ID of the message
17
+ date (datetime): The date the message was created in ISO format
18
+ """
19
+
20
+ id: str
21
+ date: dt.datetime
22
+ message_type: typing.Optional[typing.Literal["system_message"]] = None
23
+ message: str
24
+
25
+ if IS_PYDANTIC_V2:
26
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
27
+ else:
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
+ import typing
6
+ import pydantic
7
+
8
+
9
+ class LettaResponseToolCall(UniversalBaseModel):
10
+ name: str
11
+ arguments: str
12
+ tool_call_id: str
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
7
+
8
+
9
+ class LettaResponseToolCallDelta(UniversalBaseModel):
10
+ name: typing.Optional[str] = None
11
+ arguments: typing.Optional[str] = None
12
+ tool_call_id: typing.Optional[str] = None
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -0,0 +1,33 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ import typing
6
+ from .letta_response_tool_call_message_tool_call import LettaResponseToolCallMessageToolCall
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class LettaResponseToolCallMessage(UniversalBaseModel):
12
+ """
13
+ A message representing a request to call a tool (generated by the LLM to trigger tool execution).
14
+
15
+ Attributes:
16
+ tool_call (Union[ToolCall, ToolCallDelta]): The tool call
17
+ id (str): The ID of the message
18
+ date (datetime): The date the message was created in ISO format
19
+ """
20
+
21
+ id: str
22
+ date: dt.datetime
23
+ message_type: typing.Optional[typing.Literal["tool_call_message"]] = None
24
+ tool_call: LettaResponseToolCallMessageToolCall
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ extra = pydantic.Extra.allow
@@ -0,0 +1,9 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from .letta_response_tool_call_message_tool_call_zero import LettaResponseToolCallMessageToolCallZero
5
+ from .letta_response_tool_call_message_tool_call_one import LettaResponseToolCallMessageToolCallOne
6
+
7
+ LettaResponseToolCallMessageToolCall = typing.Union[
8
+ LettaResponseToolCallMessageToolCallZero, LettaResponseToolCallMessageToolCallOne
9
+ ]
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
6
+ import pydantic
7
+
8
+
9
+ class LettaResponseToolCallMessageToolCallOne(UniversalBaseModel):
10
+ name: typing.Optional[str] = None
11
+ arguments: typing.Optional[str] = None
12
+ tool_call_id: typing.Optional[str] = None
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
+ import typing
6
+ import pydantic
7
+
8
+
9
+ class LettaResponseToolCallMessageToolCallZero(UniversalBaseModel):
10
+ name: str
11
+ arguments: str
12
+ tool_call_id: str
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow
@@ -0,0 +1,41 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ import typing
6
+ from .letta_response_tool_return_message_status import LettaResponseToolReturnMessageStatus
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
+ import pydantic
9
+
10
+
11
+ class LettaResponseToolReturnMessage(UniversalBaseModel):
12
+ """
13
+ A message representing the return value of a tool call (generated by Letta executing the requested tool).
14
+
15
+ Attributes:
16
+ tool_return (str): The return value of the tool
17
+ status (Literal["success", "error"]): The status of the tool call
18
+ id (str): The ID of the message
19
+ date (datetime): The date the message was created in ISO format
20
+ tool_call_id (str): A unique identifier for the tool call that generated this message
21
+ stdout (Optional[List(str)]): Captured stdout (e.g. prints, logs) from the tool invocation
22
+ stderr (Optional[List(str)]): Captured stderr from the tool invocation
23
+ """
24
+
25
+ id: str
26
+ date: dt.datetime
27
+ message_type: typing.Optional[typing.Literal["tool_return_message"]] = None
28
+ tool_return: str
29
+ status: LettaResponseToolReturnMessageStatus
30
+ tool_call_id: str
31
+ stdout: typing.Optional[typing.List[str]] = None
32
+ stderr: typing.Optional[typing.List[str]] = None
33
+
34
+ if IS_PYDANTIC_V2:
35
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
36
+ else:
37
+
38
+ class Config:
39
+ frozen = True
40
+ smart_union = True
41
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ LettaResponseToolReturnMessageStatus = typing.Union[typing.Literal["success", "error"], typing.Any]
@@ -0,0 +1,40 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ import typing
6
+ from .letta_response_usage_message_usage import LettaResponseUsageMessageUsage
7
+ import pydantic
8
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
9
+
10
+
11
+ class LettaResponseUsageMessage(UniversalBaseModel):
12
+ """
13
+ A message representint the usage statistics for the agent interaction.
14
+
15
+ Attributes:
16
+ usage (LettaUsageStatistics): Usage statistics for the agent interaction.
17
+ """
18
+
19
+ id: str
20
+ date: dt.datetime
21
+ message_type: typing.Optional[typing.Literal["usage_message"]] = None
22
+ usage: LettaResponseUsageMessageUsage = pydantic.Field()
23
+ """
24
+ Usage statistics for the agent interaction.
25
+
26
+ Attributes:
27
+ completion_tokens (int): The number of tokens generated by the agent.
28
+ prompt_tokens (int): The number of tokens in the prompt.
29
+ total_tokens (int): The total number of tokens processed by the agent.
30
+ step_count (int): The number of steps taken by the agent.
31
+ """
32
+
33
+ if IS_PYDANTIC_V2:
34
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
35
+ else:
36
+
37
+ class Config:
38
+ frozen = True
39
+ smart_union = True
40
+ extra = pydantic.Extra.allow
@@ -0,0 +1,47 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import typing
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+
8
+
9
+ class LettaResponseUsageMessageUsage(UniversalBaseModel):
10
+ """
11
+ Usage statistics for the agent interaction.
12
+
13
+ Attributes:
14
+ completion_tokens (int): The number of tokens generated by the agent.
15
+ prompt_tokens (int): The number of tokens in the prompt.
16
+ total_tokens (int): The total number of tokens processed by the agent.
17
+ step_count (int): The number of steps taken by the agent.
18
+ """
19
+
20
+ completion_tokens: typing.Optional[int] = pydantic.Field(default=None)
21
+ """
22
+ The number of tokens generated by the agent.
23
+ """
24
+
25
+ prompt_tokens: typing.Optional[int] = pydantic.Field(default=None)
26
+ """
27
+ The number of tokens in the prompt.
28
+ """
29
+
30
+ total_tokens: typing.Optional[int] = pydantic.Field(default=None)
31
+ """
32
+ The total number of tokens processed by the agent.
33
+ """
34
+
35
+ step_count: typing.Optional[int] = pydantic.Field(default=None)
36
+ """
37
+ The number of steps taken by the agent.
38
+ """
39
+
40
+ if IS_PYDANTIC_V2:
41
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
42
+ else:
43
+
44
+ class Config:
45
+ frozen = True
46
+ smart_union = True
47
+ extra = pydantic.Extra.allow
@@ -0,0 +1,32 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ import datetime as dt
5
+ import typing
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ import pydantic
8
+
9
+
10
+ class LettaResponseUserMessage(UniversalBaseModel):
11
+ """
12
+ A message sent by the user. Never streamed back on a response, only used for cursor pagination.
13
+
14
+ Attributes:
15
+ message (str): The message sent by the user
16
+ id (str): The ID of the message
17
+ date (datetime): The date the message was created in ISO format
18
+ """
19
+
20
+ id: str
21
+ date: dt.datetime
22
+ message_type: typing.Optional[typing.Literal["user_message"]] = None
23
+ message: str
24
+
25
+ if IS_PYDANTIC_V2:
26
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
27
+ else:
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.pydantic_utilities import UniversalBaseModel
4
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
5
+ import typing
6
+ import pydantic
7
+
8
+
9
+ class LettaSchemasLettaMessageToolCall(UniversalBaseModel):
10
+ name: str
11
+ arguments: str
12
+ tool_call_id: str
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
16
+ else:
17
+
18
+ class Config:
19
+ frozen = True
20
+ smart_union = True
21
+ extra = pydantic.Extra.allow