letta-client 0.1.319__py3-none-any.whl → 0.1.321__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 (211) hide show
  1. letta_client/__init__.py +51 -9
  2. letta_client/agents/__init__.py +6 -2
  3. letta_client/agents/client.py +50 -213
  4. letta_client/agents/files/client.py +51 -6
  5. letta_client/agents/files/raw_client.py +94 -9
  6. letta_client/agents/messages/__init__.py +2 -2
  7. letta_client/agents/messages/client.py +104 -24
  8. letta_client/agents/messages/raw_client.py +109 -17
  9. letta_client/agents/messages/types/__init__.py +2 -2
  10. letta_client/agents/messages/types/{messages_preview_raw_payload_request.py → messages_preview_request.py} +1 -1
  11. letta_client/agents/raw_client.py +50 -253
  12. letta_client/agents/types/__init__.py +4 -0
  13. letta_client/agents/types/agents_list_request_order.py +5 -0
  14. letta_client/agents/types/agents_list_request_order_by.py +5 -0
  15. letta_client/archives/__init__.py +7 -0
  16. letta_client/archives/client.py +362 -0
  17. letta_client/archives/raw_client.py +448 -0
  18. letta_client/archives/types/__init__.py +7 -0
  19. letta_client/archives/types/list_archives_request_order.py +5 -0
  20. letta_client/base_client.py +3 -6
  21. letta_client/batches/__init__.py +5 -0
  22. letta_client/batches/client.py +68 -8
  23. letta_client/batches/messages/__init__.py +7 -0
  24. letta_client/{messages → batches/messages}/client.py +50 -43
  25. letta_client/{messages → batches/messages}/raw_client.py +52 -45
  26. letta_client/batches/messages/types/__init__.py +7 -0
  27. letta_client/batches/messages/types/messages_list_request_order.py +5 -0
  28. letta_client/batches/raw_client.py +71 -6
  29. letta_client/batches/types/__init__.py +7 -0
  30. letta_client/batches/types/batches_list_request_order.py +5 -0
  31. letta_client/blocks/__init__.py +3 -1
  32. letta_client/blocks/agents/__init__.py +3 -0
  33. letta_client/blocks/agents/client.py +57 -2
  34. letta_client/blocks/agents/raw_client.py +51 -0
  35. letta_client/blocks/agents/types/__init__.py +7 -0
  36. letta_client/blocks/agents/types/agents_list_request_order.py +5 -0
  37. letta_client/blocks/client.py +25 -4
  38. letta_client/blocks/raw_client.py +25 -4
  39. letta_client/blocks/types/__init__.py +7 -0
  40. letta_client/blocks/types/blocks_list_request_order.py +5 -0
  41. letta_client/core/client_wrapper.py +2 -2
  42. letta_client/errors/__init__.py +9 -1
  43. letta_client/errors/internal_server_error.py +10 -0
  44. letta_client/folders/__init__.py +14 -2
  45. letta_client/folders/agents/__init__.py +7 -0
  46. letta_client/folders/agents/client.py +176 -0
  47. letta_client/folders/agents/raw_client.py +182 -0
  48. letta_client/folders/agents/types/__init__.py +7 -0
  49. letta_client/folders/agents/types/agents_list_request_order.py +5 -0
  50. letta_client/folders/client.py +96 -86
  51. letta_client/folders/files/__init__.py +3 -0
  52. letta_client/folders/files/client.py +49 -10
  53. letta_client/folders/files/raw_client.py +41 -10
  54. letta_client/folders/files/types/__init__.py +7 -0
  55. letta_client/folders/files/types/files_list_request_order.py +5 -0
  56. letta_client/folders/passages/__init__.py +3 -0
  57. letta_client/folders/passages/client.py +43 -14
  58. letta_client/folders/passages/raw_client.py +35 -14
  59. letta_client/folders/passages/types/__init__.py +7 -0
  60. letta_client/folders/passages/types/passages_list_request_order.py +5 -0
  61. letta_client/folders/raw_client.py +83 -104
  62. letta_client/folders/types/__init__.py +7 -0
  63. letta_client/folders/types/folders_list_request_order.py +5 -0
  64. letta_client/groups/__init__.py +4 -2
  65. letta_client/groups/client.py +27 -6
  66. letta_client/groups/messages/__init__.py +2 -2
  67. letta_client/groups/messages/client.py +39 -18
  68. letta_client/groups/messages/raw_client.py +35 -14
  69. letta_client/groups/messages/types/__init__.py +2 -1
  70. letta_client/groups/messages/types/messages_list_request_order.py +5 -0
  71. letta_client/groups/raw_client.py +27 -6
  72. letta_client/groups/types/__init__.py +2 -1
  73. letta_client/groups/types/groups_list_request_order.py +5 -0
  74. letta_client/identities/__init__.py +12 -2
  75. letta_client/identities/agents/__init__.py +7 -0
  76. letta_client/identities/agents/client.py +177 -0
  77. letta_client/identities/agents/raw_client.py +183 -0
  78. letta_client/identities/agents/types/__init__.py +7 -0
  79. letta_client/identities/agents/types/agents_list_request_order.py +5 -0
  80. letta_client/identities/blocks/__init__.py +7 -0
  81. letta_client/identities/blocks/client.py +177 -0
  82. letta_client/identities/blocks/raw_client.py +183 -0
  83. letta_client/identities/blocks/types/__init__.py +7 -0
  84. letta_client/identities/blocks/types/blocks_list_request_order.py +5 -0
  85. letta_client/identities/client.py +37 -0
  86. letta_client/identities/raw_client.py +27 -0
  87. letta_client/identities/types/__init__.py +7 -0
  88. letta_client/identities/types/identities_list_request_order.py +5 -0
  89. letta_client/jobs/client.py +10 -2
  90. letta_client/jobs/raw_client.py +10 -2
  91. letta_client/models/__init__.py +3 -0
  92. letta_client/models/client.py +3 -0
  93. letta_client/{embedding_models → models/embeddings}/client.py +14 -14
  94. letta_client/{embedding_models → models/embeddings}/raw_client.py +10 -10
  95. letta_client/providers/__init__.py +3 -0
  96. letta_client/providers/client.py +151 -82
  97. letta_client/providers/raw_client.py +165 -72
  98. letta_client/providers/types/__init__.py +7 -0
  99. letta_client/providers/types/providers_list_request_order.py +5 -0
  100. letta_client/runs/__init__.py +2 -1
  101. letta_client/runs/client.py +39 -8
  102. letta_client/runs/messages/__init__.py +3 -0
  103. letta_client/runs/messages/client.py +15 -49
  104. letta_client/runs/messages/raw_client.py +13 -49
  105. letta_client/runs/messages/types/__init__.py +7 -0
  106. letta_client/runs/messages/types/messages_list_request_order.py +5 -0
  107. letta_client/runs/raw_client.py +39 -8
  108. letta_client/steps/__init__.py +13 -3
  109. letta_client/steps/client.py +32 -83
  110. letta_client/steps/feedback/client.py +21 -6
  111. letta_client/steps/feedback/raw_client.py +29 -6
  112. letta_client/steps/messages/__init__.py +7 -0
  113. letta_client/steps/messages/client.py +177 -0
  114. letta_client/steps/messages/raw_client.py +183 -0
  115. letta_client/steps/messages/types/__init__.py +8 -0
  116. letta_client/steps/messages/types/messages_list_request_order.py +5 -0
  117. letta_client/steps/messages/types/messages_list_response_item.py +25 -0
  118. letta_client/steps/metrics/client.py +110 -0
  119. letta_client/steps/metrics/raw_client.py +122 -0
  120. letta_client/steps/raw_client.py +17 -107
  121. letta_client/steps/trace/__init__.py +4 -0
  122. letta_client/steps/trace/client.py +110 -0
  123. letta_client/steps/trace/raw_client.py +122 -0
  124. letta_client/steps/types/__init__.py +2 -1
  125. letta_client/steps/types/steps_list_request_order.py +5 -0
  126. letta_client/tags/__init__.py +3 -0
  127. letta_client/tags/client.py +57 -4
  128. letta_client/tags/raw_client.py +49 -2
  129. letta_client/tags/types/__init__.py +7 -0
  130. letta_client/tags/types/tags_list_request_order.py +5 -0
  131. letta_client/telemetry/client.py +8 -0
  132. letta_client/telemetry/raw_client.py +8 -0
  133. letta_client/templates/__init__.py +64 -0
  134. letta_client/templates/agents/__init__.py +58 -0
  135. letta_client/templates/agents/types/__init__.py +66 -0
  136. letta_client/templates/agents/types/agents_create_response.py +6 -0
  137. letta_client/templates/agents/types/agents_create_response_group.py +52 -0
  138. letta_client/templates/agents/types/agents_create_response_group_base_template_id.py +12 -0
  139. letta_client/templates/agents/types/agents_create_response_group_base_template_id_item.py +5 -0
  140. letta_client/templates/agents/types/agents_create_response_group_deployment_id.py +12 -0
  141. letta_client/templates/agents/types/agents_create_response_group_deployment_id_item.py +5 -0
  142. letta_client/templates/agents/types/agents_create_response_group_hidden.py +12 -0
  143. letta_client/templates/agents/types/agents_create_response_group_hidden_item.py +5 -0
  144. letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id.py +14 -0
  145. letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id_item.py +5 -0
  146. letta_client/templates/agents/types/agents_create_response_group_manager_agent_id.py +12 -0
  147. letta_client/templates/agents/types/agents_create_response_group_manager_agent_id_item.py +5 -0
  148. letta_client/templates/agents/types/agents_create_response_group_manager_type.py +7 -0
  149. letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length.py +14 -0
  150. letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length_item.py +5 -0
  151. letta_client/templates/agents/types/agents_create_response_group_max_turns.py +12 -0
  152. letta_client/templates/agents/types/agents_create_response_group_max_turns_item.py +5 -0
  153. letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length.py +14 -0
  154. letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length_item.py +5 -0
  155. letta_client/templates/agents/types/agents_create_response_group_project_id.py +12 -0
  156. letta_client/templates/agents/types/agents_create_response_group_project_id_item.py +5 -0
  157. letta_client/templates/agents/types/agents_create_response_group_shared_block_ids.py +5 -0
  158. letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency.py +14 -0
  159. letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency_item.py +5 -0
  160. letta_client/templates/agents/types/agents_create_response_group_template_id.py +12 -0
  161. letta_client/templates/agents/types/agents_create_response_group_template_id_item.py +5 -0
  162. letta_client/templates/agents/types/agents_create_response_group_termination_token.py +12 -0
  163. letta_client/templates/agents/types/agents_create_response_group_termination_token_item.py +5 -0
  164. letta_client/templates/agents/types/agents_create_response_group_turns_counter.py +12 -0
  165. letta_client/templates/agents/types/agents_create_response_group_turns_counter_item.py +5 -0
  166. letta_client/templates/client.py +260 -0
  167. letta_client/templates/raw_client.py +395 -0
  168. letta_client/templates/types/__init__.py +8 -0
  169. letta_client/templates/types/templates_get_template_snapshot_response.py +4 -0
  170. letta_client/templates/types/templates_get_template_snapshot_response_blocks_item.py +1 -0
  171. letta_client/templates/types/templates_get_template_snapshot_response_relationships_item.py +23 -0
  172. letta_client/templates/types/templates_migrate_deployment_response.py +21 -0
  173. letta_client/templates/types/templates_set_current_template_from_snapshot_response.py +21 -0
  174. letta_client/tools/__init__.py +2 -0
  175. letta_client/tools/client.py +47 -20
  176. letta_client/tools/raw_client.py +43 -26
  177. letta_client/tools/types/__init__.py +2 -0
  178. letta_client/tools/types/tools_list_request_order.py +5 -0
  179. letta_client/types/__init__.py +10 -2
  180. letta_client/types/agent_state.py +5 -0
  181. letta_client/types/archive.py +77 -0
  182. letta_client/types/batch_job.py +16 -0
  183. letta_client/types/{body_export_agent_serialized.py → body_export_agent.py} +1 -1
  184. letta_client/types/child_tool_rule.py +1 -1
  185. letta_client/types/conditional_tool_rule.py +1 -1
  186. letta_client/types/continue_tool_rule.py +1 -1
  187. letta_client/types/deployment_entity.py +2 -0
  188. letta_client/types/init_tool_rule.py +1 -1
  189. letta_client/types/internal_server_error_body.py +20 -0
  190. letta_client/types/internal_template_agent_create.py +5 -0
  191. letta_client/types/job.py +16 -0
  192. letta_client/types/letta_schemas_agent_file_agent_schema.py +5 -0
  193. letta_client/types/max_count_per_step_tool_rule.py +1 -1
  194. letta_client/types/memory.py +7 -1
  195. letta_client/types/memory_agent_type.py +7 -0
  196. letta_client/types/parent_tool_rule.py +1 -1
  197. letta_client/types/required_before_exit_tool_rule.py +1 -1
  198. letta_client/types/requires_approval_tool_rule.py +1 -1
  199. letta_client/types/run.py +16 -0
  200. letta_client/types/source.py +6 -0
  201. letta_client/types/step.py +1 -1
  202. letta_client/types/stop_reason_type.py +1 -0
  203. letta_client/types/terminal_tool_rule.py +1 -1
  204. letta_client/types/vector_db_provider.py +5 -0
  205. letta_client/voice/client.py +2 -8
  206. letta_client/voice/raw_client.py +0 -8
  207. {letta_client-0.1.319.dist-info → letta_client-0.1.321.dist-info}/METADATA +9 -9
  208. {letta_client-0.1.319.dist-info → letta_client-0.1.321.dist-info}/RECORD +211 -114
  209. /letta_client/{embedding_models → models/embeddings}/__init__.py +0 -0
  210. /letta_client/{messages → steps/metrics}/__init__.py +0 -0
  211. {letta_client-0.1.319.dist-info → letta_client-0.1.321.dist-info}/WHEEL +0 -0
@@ -20,7 +20,7 @@ class ConditionalToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["conditional"] = "conditional"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule.
23
+ Optional template string (ignored).
24
24
  """
25
25
 
26
26
  default_child: typing.Optional[str] = pydantic.Field(default=None)
@@ -20,7 +20,7 @@ class ContinueToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["continue_loop"] = "continue_loop"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule.
23
+ Optional template string (ignored).
24
24
  """
25
25
 
26
26
  if IS_PYDANTIC_V2:
@@ -16,6 +16,8 @@ class DeploymentEntity(UncheckedBaseModel):
16
16
  type: str
17
17
  name: typing.Optional[str] = None
18
18
  description: typing.Optional[str] = None
19
+ entity_id: typing.Optional[str] = None
20
+ project_id: typing.Optional[str] = None
19
21
 
20
22
  if IS_PYDANTIC_V2:
21
23
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -20,7 +20,7 @@ class InitToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["run_first"] = "run_first"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule. Template can use variables like 'tool_name' and rule-specific attributes.
23
+ Optional template string (ignored). Rendering uses fast built-in formatting for performance.
24
24
  """
25
25
 
26
26
  if IS_PYDANTIC_V2:
@@ -0,0 +1,20 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+ from ..core.unchecked_base_model import UncheckedBaseModel
8
+
9
+
10
+ class InternalServerErrorBody(UncheckedBaseModel):
11
+ message: str
12
+
13
+ if IS_PYDANTIC_V2:
14
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
15
+ else:
16
+
17
+ class Config:
18
+ frozen = True
19
+ smart_union = True
20
+ extra = pydantic.Extra.allow
@@ -173,6 +173,11 @@ class InternalTemplateAgentCreate(UncheckedBaseModel):
173
173
  default=None
174
174
  )
175
175
  """
176
+ Deprecated: use `secrets` field instead.
177
+ """
178
+
179
+ secrets: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None)
180
+ """
176
181
  The environment variables for tool execution specific to this agent.
177
182
  """
178
183
 
letta_client/types/job.py CHANGED
@@ -8,6 +8,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
8
  from ..core.unchecked_base_model import UncheckedBaseModel
9
9
  from .job_status import JobStatus
10
10
  from .job_type import JobType
11
+ from .stop_reason_type import StopReasonType
11
12
 
12
13
 
13
14
  class Job(UncheckedBaseModel):
@@ -52,6 +53,11 @@ class Job(UncheckedBaseModel):
52
53
  The unix timestamp of when the job was completed.
53
54
  """
54
55
 
56
+ stop_reason: typing.Optional[StopReasonType] = pydantic.Field(default=None)
57
+ """
58
+ The reason why the job was stopped.
59
+ """
60
+
55
61
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
56
62
  """
57
63
  The metadata of the job.
@@ -62,6 +68,16 @@ class Job(UncheckedBaseModel):
62
68
  The type of the job.
63
69
  """
64
70
 
71
+ background: typing.Optional[bool] = pydantic.Field(default=None)
72
+ """
73
+ Whether the job was created in background mode.
74
+ """
75
+
76
+ agent_id: typing.Optional[str] = pydantic.Field(default=None)
77
+ """
78
+ The agent associated with this job/run.
79
+ """
80
+
65
81
  callback_url: typing.Optional[str] = pydantic.Field(default=None)
66
82
  """
67
83
  If set, POST to this URL when the job completes.
@@ -177,6 +177,11 @@ class LettaSchemasAgentFileAgentSchema(UncheckedBaseModel):
177
177
  default=None
178
178
  )
179
179
  """
180
+ Deprecated: use `secrets` field instead.
181
+ """
182
+
183
+ secrets: typing.Optional[typing.Dict[str, typing.Optional[str]]] = pydantic.Field(default=None)
184
+ """
180
185
  The environment variables for tool execution specific to this agent.
181
186
  """
182
187
 
@@ -20,7 +20,7 @@ class MaxCountPerStepToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["max_count_per_step"] = "max_count_per_step"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule.
23
+ Optional template string (ignored).
24
24
  """
25
25
 
26
26
  max_count_limit: int = pydantic.Field()
@@ -7,6 +7,7 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
7
  from ..core.unchecked_base_model import UncheckedBaseModel
8
8
  from .block import Block
9
9
  from .file_block import FileBlock
10
+ from .memory_agent_type import MemoryAgentType
10
11
 
11
12
 
12
13
  class Memory(UncheckedBaseModel):
@@ -14,6 +15,11 @@ class Memory(UncheckedBaseModel):
14
15
  Represents the in-context memory (i.e. Core memory) of the agent. This includes both the `Block` objects (labelled by sections), as well as tools to edit the blocks.
15
16
  """
16
17
 
18
+ agent_type: typing.Optional[MemoryAgentType] = pydantic.Field(default=None)
19
+ """
20
+ Agent type controlling prompt rendering.
21
+ """
22
+
17
23
  blocks: typing.List[Block] = pydantic.Field()
18
24
  """
19
25
  Memory blocks contained in the agent's in-context memory
@@ -26,7 +32,7 @@ class Memory(UncheckedBaseModel):
26
32
 
27
33
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
28
34
  """
29
- Jinja2 template for compiling memory blocks into a prompt string
35
+ Deprecated. Ignored for performance.
30
36
  """
31
37
 
32
38
  if IS_PYDANTIC_V2:
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .agent_type import AgentType
6
+
7
+ MemoryAgentType = typing.Union[AgentType, str]
@@ -20,7 +20,7 @@ class ParentToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["parent_last_tool"] = "parent_last_tool"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule.
23
+ Optional template string (ignored).
24
24
  """
25
25
 
26
26
  children: typing.List[str] = pydantic.Field()
@@ -20,7 +20,7 @@ class RequiredBeforeExitToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["required_before_exit"] = "required_before_exit"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule.
23
+ Optional template string (ignored).
24
24
  """
25
25
 
26
26
  if IS_PYDANTIC_V2:
@@ -20,7 +20,7 @@ class RequiresApprovalToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["requires_approval"] = "requires_approval"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule. Template can use variables like 'tool_name' and rule-specific attributes.
23
+ Optional template string (ignored). Rendering uses fast built-in formatting for performance.
24
24
  """
25
25
 
26
26
  if IS_PYDANTIC_V2:
letta_client/types/run.py CHANGED
@@ -9,6 +9,7 @@ from ..core.unchecked_base_model import UncheckedBaseModel
9
9
  from .job_status import JobStatus
10
10
  from .job_type import JobType
11
11
  from .letta_request_config import LettaRequestConfig
12
+ from .stop_reason_type import StopReasonType
12
13
 
13
14
 
14
15
  class Run(UncheckedBaseModel):
@@ -54,12 +55,27 @@ class Run(UncheckedBaseModel):
54
55
  The unix timestamp of when the job was completed.
55
56
  """
56
57
 
58
+ stop_reason: typing.Optional[StopReasonType] = pydantic.Field(default=None)
59
+ """
60
+ The reason why the run was stopped.
61
+ """
62
+
57
63
  metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
58
64
  """
59
65
  The metadata of the job.
60
66
  """
61
67
 
62
68
  job_type: typing.Optional[JobType] = None
69
+ background: typing.Optional[bool] = pydantic.Field(default=None)
70
+ """
71
+ Whether the job was created in background mode.
72
+ """
73
+
74
+ agent_id: typing.Optional[str] = pydantic.Field(default=None)
75
+ """
76
+ The agent associated with this job/run.
77
+ """
78
+
63
79
  callback_url: typing.Optional[str] = pydantic.Field(default=None)
64
80
  """
65
81
  If set, POST to this URL when the job completes.
@@ -7,6 +7,7 @@ import pydantic
7
7
  from ..core.pydantic_utilities import IS_PYDANTIC_V2
8
8
  from ..core.unchecked_base_model import UncheckedBaseModel
9
9
  from .embedding_config import EmbeddingConfig
10
+ from .vector_db_provider import VectorDbProvider
10
11
 
11
12
 
12
13
  class Source(UncheckedBaseModel):
@@ -52,6 +53,11 @@ class Source(UncheckedBaseModel):
52
53
  The embedding configuration used by the source.
53
54
  """
54
55
 
56
+ vector_db_provider: typing.Optional[VectorDbProvider] = pydantic.Field(default=None)
57
+ """
58
+ The vector database provider used for this source's passages
59
+ """
60
+
55
61
  created_by_id: typing.Optional[str] = pydantic.Field(default=None)
56
62
  """
57
63
  The id of the user that made this Tool.
@@ -106,7 +106,7 @@ class Step(UncheckedBaseModel):
106
106
 
107
107
  messages: typing.Optional[typing.List[Message]] = pydantic.Field(default=None)
108
108
  """
109
- The messages generated during this step.
109
+ The messages generated during this step. Deprecated: use `GET /v1/steps/{step_id}/messages` endpoint instead
110
110
  """
111
111
 
112
112
  feedback: typing.Optional[StepFeedback] = pydantic.Field(default=None)
@@ -6,6 +6,7 @@ StopReasonType = typing.Union[
6
6
  typing.Literal[
7
7
  "end_turn",
8
8
  "error",
9
+ "llm_api_error",
9
10
  "invalid_llm_response",
10
11
  "invalid_tool_call",
11
12
  "max_steps",
@@ -20,7 +20,7 @@ class TerminalToolRule(UncheckedBaseModel):
20
20
  type: typing.Literal["exit_loop"] = "exit_loop"
21
21
  prompt_template: typing.Optional[str] = pydantic.Field(default=None)
22
22
  """
23
- Optional Jinja2 template for generating agent prompt about this tool rule.
23
+ Optional template string (ignored).
24
24
  """
25
25
 
26
26
  if IS_PYDANTIC_V2:
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ VectorDbProvider = typing.Union[typing.Literal["native", "tpuf", "pinecone"], typing.Any]
@@ -30,7 +30,6 @@ class VoiceClient:
30
30
  agent_id: str,
31
31
  *,
32
32
  request: typing.Dict[str, typing.Optional[typing.Any]],
33
- user_id: typing.Optional[str] = None,
34
33
  request_options: typing.Optional[RequestOptions] = None,
35
34
  ) -> typing.Optional[typing.Any]:
36
35
  """
@@ -40,8 +39,6 @@ class VoiceClient:
40
39
 
41
40
  request : typing.Dict[str, typing.Optional[typing.Any]]
42
41
 
43
- user_id : typing.Optional[str]
44
-
45
42
  request_options : typing.Optional[RequestOptions]
46
43
  Request-specific configuration.
47
44
 
@@ -64,7 +61,7 @@ class VoiceClient:
64
61
  )
65
62
  """
66
63
  _response = self._raw_client.create_voice_chat_completions(
67
- agent_id, request=request, user_id=user_id, request_options=request_options
64
+ agent_id, request=request, request_options=request_options
68
65
  )
69
66
  return _response.data
70
67
 
@@ -89,7 +86,6 @@ class AsyncVoiceClient:
89
86
  agent_id: str,
90
87
  *,
91
88
  request: typing.Dict[str, typing.Optional[typing.Any]],
92
- user_id: typing.Optional[str] = None,
93
89
  request_options: typing.Optional[RequestOptions] = None,
94
90
  ) -> typing.Optional[typing.Any]:
95
91
  """
@@ -99,8 +95,6 @@ class AsyncVoiceClient:
99
95
 
100
96
  request : typing.Dict[str, typing.Optional[typing.Any]]
101
97
 
102
- user_id : typing.Optional[str]
103
-
104
98
  request_options : typing.Optional[RequestOptions]
105
99
  Request-specific configuration.
106
100
 
@@ -131,6 +125,6 @@ class AsyncVoiceClient:
131
125
  asyncio.run(main())
132
126
  """
133
127
  _response = await self._raw_client.create_voice_chat_completions(
134
- agent_id, request=request, user_id=user_id, request_options=request_options
128
+ agent_id, request=request, request_options=request_options
135
129
  )
136
130
  return _response.data
@@ -25,7 +25,6 @@ class RawVoiceClient:
25
25
  agent_id: str,
26
26
  *,
27
27
  request: typing.Dict[str, typing.Optional[typing.Any]],
28
- user_id: typing.Optional[str] = None,
29
28
  request_options: typing.Optional[RequestOptions] = None,
30
29
  ) -> HttpResponse[typing.Optional[typing.Any]]:
31
30
  """
@@ -35,8 +34,6 @@ class RawVoiceClient:
35
34
 
36
35
  request : typing.Dict[str, typing.Optional[typing.Any]]
37
36
 
38
- user_id : typing.Optional[str]
39
-
40
37
  request_options : typing.Optional[RequestOptions]
41
38
  Request-specific configuration.
42
39
 
@@ -51,7 +48,6 @@ class RawVoiceClient:
51
48
  json=request,
52
49
  headers={
53
50
  "content-type": "application/json",
54
- "user-id": str(user_id) if user_id is not None else None,
55
51
  },
56
52
  request_options=request_options,
57
53
  omit=OMIT,
@@ -94,7 +90,6 @@ class AsyncRawVoiceClient:
94
90
  agent_id: str,
95
91
  *,
96
92
  request: typing.Dict[str, typing.Optional[typing.Any]],
97
- user_id: typing.Optional[str] = None,
98
93
  request_options: typing.Optional[RequestOptions] = None,
99
94
  ) -> AsyncHttpResponse[typing.Optional[typing.Any]]:
100
95
  """
@@ -104,8 +99,6 @@ class AsyncRawVoiceClient:
104
99
 
105
100
  request : typing.Dict[str, typing.Optional[typing.Any]]
106
101
 
107
- user_id : typing.Optional[str]
108
-
109
102
  request_options : typing.Optional[RequestOptions]
110
103
  Request-specific configuration.
111
104
 
@@ -120,7 +113,6 @@ class AsyncRawVoiceClient:
120
113
  json=request,
121
114
  headers={
122
115
  "content-type": "application/json",
123
- "user-id": str(user_id) if user_id is not None else None,
124
116
  },
125
117
  request_options=request_options,
126
118
  omit=OMIT,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-client
3
- Version: 0.1.319
3
+ Version: 0.1.321
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -53,8 +53,8 @@ client = Letta(
53
53
  project="YOUR_PROJECT",
54
54
  token="YOUR_TOKEN",
55
55
  )
56
- client.tools.create(
57
- source_code="source_code",
56
+ client.archives.create_archive(
57
+ name="name",
58
58
  )
59
59
  ```
60
60
 
@@ -74,8 +74,8 @@ client = AsyncLetta(
74
74
 
75
75
 
76
76
  async def main() -> None:
77
- await client.tools.create(
78
- source_code="source_code",
77
+ await client.archives.create_archive(
78
+ name="name",
79
79
  )
80
80
 
81
81
 
@@ -91,7 +91,7 @@ will be thrown.
91
91
  from letta_client.core.api_error import ApiError
92
92
 
93
93
  try:
94
- client.tools.create(...)
94
+ client.archives.create_archive(...)
95
95
  except ApiError as e:
96
96
  print(e.status_code)
97
97
  print(e.body)
@@ -132,7 +132,7 @@ from letta_client import Letta
132
132
  client = Letta(
133
133
  ...,
134
134
  )
135
- response = client.tools.with_raw_response.create(...)
135
+ response = client.archives.with_raw_response.create_archive(...)
136
136
  print(response.headers) # access the response headers
137
137
  print(response.data) # access the underlying object
138
138
  with client.tools.with_raw_response.connect_mcp_server(...) as response:
@@ -156,7 +156,7 @@ A request is deemed retryable when any of the following HTTP status codes is ret
156
156
  Use the `max_retries` request option to configure this behavior.
157
157
 
158
158
  ```python
159
- client.tools.create(..., request_options={
159
+ client.archives.create_archive(..., request_options={
160
160
  "max_retries": 1
161
161
  })
162
162
  ```
@@ -176,7 +176,7 @@ client = Letta(
176
176
 
177
177
 
178
178
  # Override timeout for a specific method
179
- client.tools.create(..., request_options={
179
+ client.archives.create_archive(..., request_options={
180
180
  "timeout_in_seconds": 1
181
181
  })
182
182
  ```