letta-client 0.1.318__py3-none-any.whl → 0.1.320__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 +51 -9
- letta_client/agents/__init__.py +6 -2
- letta_client/agents/client.py +50 -213
- letta_client/agents/files/client.py +51 -6
- letta_client/agents/files/raw_client.py +94 -9
- letta_client/agents/messages/__init__.py +2 -2
- letta_client/agents/messages/client.py +116 -26
- letta_client/agents/messages/raw_client.py +121 -19
- letta_client/agents/messages/types/__init__.py +2 -2
- letta_client/agents/messages/types/{messages_preview_raw_payload_request.py → messages_preview_request.py} +1 -1
- letta_client/agents/raw_client.py +50 -253
- letta_client/agents/types/__init__.py +4 -0
- letta_client/agents/types/agents_list_request_order.py +5 -0
- letta_client/agents/types/agents_list_request_order_by.py +5 -0
- letta_client/archives/__init__.py +7 -0
- letta_client/archives/client.py +362 -0
- letta_client/archives/raw_client.py +448 -0
- letta_client/archives/types/__init__.py +7 -0
- letta_client/archives/types/list_archives_request_order.py +5 -0
- letta_client/base_client.py +3 -6
- letta_client/batches/__init__.py +5 -0
- letta_client/batches/client.py +68 -8
- letta_client/batches/messages/__init__.py +7 -0
- letta_client/{messages → batches/messages}/client.py +50 -43
- letta_client/{messages → batches/messages}/raw_client.py +52 -45
- letta_client/batches/messages/types/__init__.py +7 -0
- letta_client/batches/messages/types/messages_list_request_order.py +5 -0
- letta_client/batches/raw_client.py +71 -6
- letta_client/batches/types/__init__.py +7 -0
- letta_client/batches/types/batches_list_request_order.py +5 -0
- letta_client/blocks/__init__.py +3 -1
- letta_client/blocks/agents/__init__.py +3 -0
- letta_client/blocks/agents/client.py +57 -2
- letta_client/blocks/agents/raw_client.py +51 -0
- letta_client/blocks/agents/types/__init__.py +7 -0
- letta_client/blocks/agents/types/agents_list_request_order.py +5 -0
- letta_client/blocks/client.py +25 -4
- letta_client/blocks/raw_client.py +25 -4
- letta_client/blocks/types/__init__.py +7 -0
- letta_client/blocks/types/blocks_list_request_order.py +5 -0
- letta_client/core/client_wrapper.py +2 -2
- letta_client/errors/__init__.py +9 -1
- letta_client/errors/internal_server_error.py +10 -0
- letta_client/folders/__init__.py +14 -2
- letta_client/folders/agents/__init__.py +7 -0
- letta_client/folders/agents/client.py +176 -0
- letta_client/folders/agents/raw_client.py +182 -0
- letta_client/folders/agents/types/__init__.py +7 -0
- letta_client/folders/agents/types/agents_list_request_order.py +5 -0
- letta_client/folders/client.py +96 -86
- letta_client/folders/files/__init__.py +3 -0
- letta_client/folders/files/client.py +49 -10
- letta_client/folders/files/raw_client.py +41 -10
- letta_client/folders/files/types/__init__.py +7 -0
- letta_client/folders/files/types/files_list_request_order.py +5 -0
- letta_client/folders/passages/__init__.py +3 -0
- letta_client/folders/passages/client.py +43 -14
- letta_client/folders/passages/raw_client.py +35 -14
- letta_client/folders/passages/types/__init__.py +7 -0
- letta_client/folders/passages/types/passages_list_request_order.py +5 -0
- letta_client/folders/raw_client.py +83 -104
- letta_client/folders/types/__init__.py +7 -0
- letta_client/folders/types/folders_list_request_order.py +5 -0
- letta_client/groups/__init__.py +4 -2
- letta_client/groups/client.py +27 -6
- letta_client/groups/messages/__init__.py +2 -2
- letta_client/groups/messages/client.py +39 -18
- letta_client/groups/messages/raw_client.py +35 -14
- letta_client/groups/messages/types/__init__.py +2 -1
- letta_client/groups/messages/types/messages_list_request_order.py +5 -0
- letta_client/groups/raw_client.py +27 -6
- letta_client/groups/types/__init__.py +2 -1
- letta_client/groups/types/groups_list_request_order.py +5 -0
- letta_client/identities/__init__.py +12 -2
- letta_client/identities/agents/__init__.py +7 -0
- letta_client/identities/agents/client.py +177 -0
- letta_client/identities/agents/raw_client.py +183 -0
- letta_client/identities/agents/types/__init__.py +7 -0
- letta_client/identities/agents/types/agents_list_request_order.py +5 -0
- letta_client/identities/blocks/__init__.py +7 -0
- letta_client/identities/blocks/client.py +177 -0
- letta_client/identities/blocks/raw_client.py +183 -0
- letta_client/identities/blocks/types/__init__.py +7 -0
- letta_client/identities/blocks/types/blocks_list_request_order.py +5 -0
- letta_client/identities/client.py +37 -0
- letta_client/identities/raw_client.py +27 -0
- letta_client/identities/types/__init__.py +7 -0
- letta_client/identities/types/identities_list_request_order.py +5 -0
- letta_client/jobs/client.py +10 -2
- letta_client/jobs/raw_client.py +10 -2
- letta_client/models/__init__.py +3 -0
- letta_client/models/client.py +3 -0
- letta_client/{embedding_models → models/embeddings}/client.py +14 -14
- letta_client/{embedding_models → models/embeddings}/raw_client.py +10 -10
- letta_client/providers/__init__.py +3 -0
- letta_client/providers/client.py +151 -82
- letta_client/providers/raw_client.py +165 -72
- letta_client/providers/types/__init__.py +7 -0
- letta_client/providers/types/providers_list_request_order.py +5 -0
- letta_client/runs/__init__.py +2 -1
- letta_client/runs/client.py +21 -0
- letta_client/runs/messages/__init__.py +3 -0
- letta_client/runs/messages/client.py +15 -49
- letta_client/runs/messages/raw_client.py +13 -49
- letta_client/runs/messages/types/__init__.py +7 -0
- letta_client/runs/messages/types/messages_list_request_order.py +5 -0
- letta_client/runs/raw_client.py +21 -0
- letta_client/steps/__init__.py +13 -3
- letta_client/steps/client.py +32 -83
- letta_client/steps/feedback/client.py +21 -6
- letta_client/steps/feedback/raw_client.py +29 -6
- letta_client/steps/messages/__init__.py +7 -0
- letta_client/steps/messages/client.py +177 -0
- letta_client/steps/messages/raw_client.py +183 -0
- letta_client/steps/messages/types/__init__.py +8 -0
- letta_client/steps/messages/types/messages_list_request_order.py +5 -0
- letta_client/steps/messages/types/messages_list_response_item.py +25 -0
- letta_client/steps/metrics/client.py +110 -0
- letta_client/steps/metrics/raw_client.py +122 -0
- letta_client/steps/raw_client.py +17 -107
- letta_client/steps/trace/__init__.py +4 -0
- letta_client/steps/trace/client.py +110 -0
- letta_client/steps/trace/raw_client.py +122 -0
- letta_client/steps/types/__init__.py +2 -1
- letta_client/steps/types/steps_list_request_order.py +5 -0
- letta_client/tags/__init__.py +3 -0
- letta_client/tags/client.py +57 -4
- letta_client/tags/raw_client.py +49 -2
- letta_client/tags/types/__init__.py +7 -0
- letta_client/tags/types/tags_list_request_order.py +5 -0
- letta_client/telemetry/client.py +8 -0
- letta_client/telemetry/raw_client.py +8 -0
- letta_client/templates/__init__.py +64 -0
- letta_client/templates/agents/__init__.py +58 -0
- letta_client/templates/agents/types/__init__.py +66 -0
- letta_client/templates/agents/types/agents_create_response.py +6 -0
- letta_client/templates/agents/types/agents_create_response_group.py +52 -0
- letta_client/templates/agents/types/agents_create_response_group_base_template_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_base_template_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_deployment_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_deployment_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_hidden.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_hidden_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_last_processed_message_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_manager_agent_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_manager_agent_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_manager_type.py +7 -0
- letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_max_message_buffer_length_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_max_turns.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_max_turns_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_min_message_buffer_length_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_project_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_project_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_shared_block_ids.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency.py +14 -0
- letta_client/templates/agents/types/agents_create_response_group_sleeptime_agent_frequency_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_template_id.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_template_id_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_termination_token.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_termination_token_item.py +5 -0
- letta_client/templates/agents/types/agents_create_response_group_turns_counter.py +12 -0
- letta_client/templates/agents/types/agents_create_response_group_turns_counter_item.py +5 -0
- letta_client/templates/client.py +260 -0
- letta_client/templates/raw_client.py +395 -0
- letta_client/templates/types/__init__.py +8 -0
- letta_client/templates/types/templates_get_template_snapshot_response.py +4 -0
- letta_client/templates/types/templates_get_template_snapshot_response_blocks_item.py +1 -0
- letta_client/templates/types/templates_get_template_snapshot_response_relationships_item.py +23 -0
- letta_client/templates/types/templates_migrate_deployment_response.py +21 -0
- letta_client/templates/types/templates_set_current_template_from_snapshot_response.py +21 -0
- letta_client/tools/__init__.py +2 -0
- letta_client/tools/client.py +47 -20
- letta_client/tools/raw_client.py +43 -26
- letta_client/tools/types/__init__.py +2 -0
- letta_client/tools/types/tools_list_request_order.py +5 -0
- letta_client/types/__init__.py +10 -2
- letta_client/types/agent_state.py +5 -0
- letta_client/types/archive.py +77 -0
- letta_client/types/batch_job.py +6 -0
- letta_client/types/{body_export_agent_serialized.py → body_export_agent.py} +1 -1
- letta_client/types/child_tool_rule.py +1 -1
- letta_client/types/conditional_tool_rule.py +1 -1
- letta_client/types/continue_tool_rule.py +1 -1
- letta_client/types/deployment_entity.py +2 -0
- letta_client/types/init_tool_rule.py +1 -1
- letta_client/types/internal_server_error_body.py +20 -0
- letta_client/types/internal_template_agent_create.py +5 -0
- letta_client/types/job.py +6 -0
- letta_client/types/letta_schemas_agent_file_agent_schema.py +5 -0
- letta_client/types/max_count_per_step_tool_rule.py +1 -1
- letta_client/types/memory.py +7 -1
- letta_client/types/memory_agent_type.py +7 -0
- letta_client/types/parent_tool_rule.py +1 -1
- letta_client/types/required_before_exit_tool_rule.py +1 -1
- letta_client/types/requires_approval_tool_rule.py +1 -1
- letta_client/types/run.py +6 -0
- letta_client/types/source.py +6 -0
- letta_client/types/step.py +1 -1
- letta_client/types/stop_reason_type.py +1 -0
- letta_client/types/terminal_tool_rule.py +1 -1
- letta_client/types/vector_db_provider.py +5 -0
- letta_client/voice/client.py +2 -8
- letta_client/voice/raw_client.py +0 -8
- {letta_client-0.1.318.dist-info → letta_client-0.1.320.dist-info}/METADATA +9 -9
- {letta_client-0.1.318.dist-info → letta_client-0.1.320.dist-info}/RECORD +211 -114
- /letta_client/{embedding_models → models/embeddings}/__init__.py +0 -0
- /letta_client/{messages → steps/metrics}/__init__.py +0 -0
- {letta_client-0.1.318.dist-info → letta_client-0.1.320.dist-info}/WHEEL +0 -0
|
@@ -12,7 +12,7 @@ from ...core.unchecked_base_model import construct_type
|
|
|
12
12
|
from ...errors.unprocessable_entity_error import UnprocessableEntityError
|
|
13
13
|
from ...types.http_validation_error import HttpValidationError
|
|
14
14
|
from ...types.letta_message_union import LettaMessageUnion
|
|
15
|
-
from
|
|
15
|
+
from .types.messages_list_request_order import MessagesListRequestOrder
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class RawMessagesClient:
|
|
@@ -26,44 +26,27 @@ class RawMessagesClient:
|
|
|
26
26
|
before: typing.Optional[str] = None,
|
|
27
27
|
after: typing.Optional[str] = None,
|
|
28
28
|
limit: typing.Optional[int] = None,
|
|
29
|
-
order: typing.Optional[
|
|
30
|
-
role: typing.Optional[MessageRole] = None,
|
|
29
|
+
order: typing.Optional[MessagesListRequestOrder] = None,
|
|
31
30
|
request_options: typing.Optional[RequestOptions] = None,
|
|
32
31
|
) -> HttpResponse[typing.List[LettaMessageUnion]]:
|
|
33
32
|
"""
|
|
34
|
-
Get messages associated with a run
|
|
35
|
-
|
|
36
|
-
Args:
|
|
37
|
-
run_id: ID of the run
|
|
38
|
-
before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.
|
|
39
|
-
after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.
|
|
40
|
-
limit: Maximum number of messages to return
|
|
41
|
-
order: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.
|
|
42
|
-
role: Filter by role (user/assistant/system/tool)
|
|
43
|
-
return_message_object: Whether to return Message objects or LettaMessage objects
|
|
44
|
-
user_id: ID of the user making the request
|
|
45
|
-
|
|
46
|
-
Returns:
|
|
47
|
-
A list of messages associated with the run. Default is List[LettaMessage].
|
|
33
|
+
Get response messages associated with a run.
|
|
48
34
|
|
|
49
35
|
Parameters
|
|
50
36
|
----------
|
|
51
37
|
run_id : str
|
|
52
38
|
|
|
53
39
|
before : typing.Optional[str]
|
|
54
|
-
|
|
40
|
+
Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
|
|
55
41
|
|
|
56
42
|
after : typing.Optional[str]
|
|
57
|
-
|
|
43
|
+
Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
|
|
58
44
|
|
|
59
45
|
limit : typing.Optional[int]
|
|
60
46
|
Maximum number of messages to return
|
|
61
47
|
|
|
62
|
-
order : typing.Optional[
|
|
63
|
-
Sort order
|
|
64
|
-
|
|
65
|
-
role : typing.Optional[MessageRole]
|
|
66
|
-
Filter by role
|
|
48
|
+
order : typing.Optional[MessagesListRequestOrder]
|
|
49
|
+
Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
67
50
|
|
|
68
51
|
request_options : typing.Optional[RequestOptions]
|
|
69
52
|
Request-specific configuration.
|
|
@@ -81,7 +64,6 @@ class RawMessagesClient:
|
|
|
81
64
|
"after": after,
|
|
82
65
|
"limit": limit,
|
|
83
66
|
"order": order,
|
|
84
|
-
"role": role,
|
|
85
67
|
},
|
|
86
68
|
request_options=request_options,
|
|
87
69
|
)
|
|
@@ -123,44 +105,27 @@ class AsyncRawMessagesClient:
|
|
|
123
105
|
before: typing.Optional[str] = None,
|
|
124
106
|
after: typing.Optional[str] = None,
|
|
125
107
|
limit: typing.Optional[int] = None,
|
|
126
|
-
order: typing.Optional[
|
|
127
|
-
role: typing.Optional[MessageRole] = None,
|
|
108
|
+
order: typing.Optional[MessagesListRequestOrder] = None,
|
|
128
109
|
request_options: typing.Optional[RequestOptions] = None,
|
|
129
110
|
) -> AsyncHttpResponse[typing.List[LettaMessageUnion]]:
|
|
130
111
|
"""
|
|
131
|
-
Get messages associated with a run
|
|
132
|
-
|
|
133
|
-
Args:
|
|
134
|
-
run_id: ID of the run
|
|
135
|
-
before: A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.
|
|
136
|
-
after: A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.
|
|
137
|
-
limit: Maximum number of messages to return
|
|
138
|
-
order: Sort order by the created_at timestamp of the objects. asc for ascending order and desc for descending order.
|
|
139
|
-
role: Filter by role (user/assistant/system/tool)
|
|
140
|
-
return_message_object: Whether to return Message objects or LettaMessage objects
|
|
141
|
-
user_id: ID of the user making the request
|
|
142
|
-
|
|
143
|
-
Returns:
|
|
144
|
-
A list of messages associated with the run. Default is List[LettaMessage].
|
|
112
|
+
Get response messages associated with a run.
|
|
145
113
|
|
|
146
114
|
Parameters
|
|
147
115
|
----------
|
|
148
116
|
run_id : str
|
|
149
117
|
|
|
150
118
|
before : typing.Optional[str]
|
|
151
|
-
|
|
119
|
+
Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
|
|
152
120
|
|
|
153
121
|
after : typing.Optional[str]
|
|
154
|
-
|
|
122
|
+
Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
|
|
155
123
|
|
|
156
124
|
limit : typing.Optional[int]
|
|
157
125
|
Maximum number of messages to return
|
|
158
126
|
|
|
159
|
-
order : typing.Optional[
|
|
160
|
-
Sort order
|
|
161
|
-
|
|
162
|
-
role : typing.Optional[MessageRole]
|
|
163
|
-
Filter by role
|
|
127
|
+
order : typing.Optional[MessagesListRequestOrder]
|
|
128
|
+
Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
164
129
|
|
|
165
130
|
request_options : typing.Optional[RequestOptions]
|
|
166
131
|
Request-specific configuration.
|
|
@@ -178,7 +143,6 @@ class AsyncRawMessagesClient:
|
|
|
178
143
|
"after": after,
|
|
179
144
|
"limit": limit,
|
|
180
145
|
"order": order,
|
|
181
|
-
"role": role,
|
|
182
146
|
},
|
|
183
147
|
request_options=request_options,
|
|
184
148
|
)
|
letta_client/runs/raw_client.py
CHANGED
|
@@ -15,6 +15,7 @@ from ..core.unchecked_base_model import construct_type
|
|
|
15
15
|
from ..errors.unprocessable_entity_error import UnprocessableEntityError
|
|
16
16
|
from ..types.http_validation_error import HttpValidationError
|
|
17
17
|
from ..types.run import Run
|
|
18
|
+
from ..types.stop_reason_type import StopReasonType
|
|
18
19
|
from .types.letta_streaming_response import LettaStreamingResponse
|
|
19
20
|
|
|
20
21
|
# this is used as the default value for optional parameters
|
|
@@ -30,9 +31,11 @@ class RawRunsClient:
|
|
|
30
31
|
*,
|
|
31
32
|
agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
32
33
|
background: typing.Optional[bool] = None,
|
|
34
|
+
stop_reason: typing.Optional[StopReasonType] = None,
|
|
33
35
|
after: typing.Optional[str] = None,
|
|
34
36
|
before: typing.Optional[str] = None,
|
|
35
37
|
limit: typing.Optional[int] = None,
|
|
38
|
+
active: typing.Optional[bool] = None,
|
|
36
39
|
ascending: typing.Optional[bool] = None,
|
|
37
40
|
request_options: typing.Optional[RequestOptions] = None,
|
|
38
41
|
) -> HttpResponse[typing.List[Run]]:
|
|
@@ -47,6 +50,9 @@ class RawRunsClient:
|
|
|
47
50
|
background : typing.Optional[bool]
|
|
48
51
|
If True, filters for runs that were created in background mode.
|
|
49
52
|
|
|
53
|
+
stop_reason : typing.Optional[StopReasonType]
|
|
54
|
+
Filter runs by stop reason.
|
|
55
|
+
|
|
50
56
|
after : typing.Optional[str]
|
|
51
57
|
Cursor for pagination
|
|
52
58
|
|
|
@@ -56,6 +62,9 @@ class RawRunsClient:
|
|
|
56
62
|
limit : typing.Optional[int]
|
|
57
63
|
Maximum number of runs to return
|
|
58
64
|
|
|
65
|
+
active : typing.Optional[bool]
|
|
66
|
+
Filter for active runs.
|
|
67
|
+
|
|
59
68
|
ascending : typing.Optional[bool]
|
|
60
69
|
Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
|
|
61
70
|
|
|
@@ -73,9 +82,11 @@ class RawRunsClient:
|
|
|
73
82
|
params={
|
|
74
83
|
"agent_ids": agent_ids,
|
|
75
84
|
"background": background,
|
|
85
|
+
"stop_reason": stop_reason,
|
|
76
86
|
"after": after,
|
|
77
87
|
"before": before,
|
|
78
88
|
"limit": limit,
|
|
89
|
+
"active": active,
|
|
79
90
|
"ascending": ascending,
|
|
80
91
|
},
|
|
81
92
|
request_options=request_options,
|
|
@@ -366,9 +377,11 @@ class AsyncRawRunsClient:
|
|
|
366
377
|
*,
|
|
367
378
|
agent_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
|
|
368
379
|
background: typing.Optional[bool] = None,
|
|
380
|
+
stop_reason: typing.Optional[StopReasonType] = None,
|
|
369
381
|
after: typing.Optional[str] = None,
|
|
370
382
|
before: typing.Optional[str] = None,
|
|
371
383
|
limit: typing.Optional[int] = None,
|
|
384
|
+
active: typing.Optional[bool] = None,
|
|
372
385
|
ascending: typing.Optional[bool] = None,
|
|
373
386
|
request_options: typing.Optional[RequestOptions] = None,
|
|
374
387
|
) -> AsyncHttpResponse[typing.List[Run]]:
|
|
@@ -383,6 +396,9 @@ class AsyncRawRunsClient:
|
|
|
383
396
|
background : typing.Optional[bool]
|
|
384
397
|
If True, filters for runs that were created in background mode.
|
|
385
398
|
|
|
399
|
+
stop_reason : typing.Optional[StopReasonType]
|
|
400
|
+
Filter runs by stop reason.
|
|
401
|
+
|
|
386
402
|
after : typing.Optional[str]
|
|
387
403
|
Cursor for pagination
|
|
388
404
|
|
|
@@ -392,6 +408,9 @@ class AsyncRawRunsClient:
|
|
|
392
408
|
limit : typing.Optional[int]
|
|
393
409
|
Maximum number of runs to return
|
|
394
410
|
|
|
411
|
+
active : typing.Optional[bool]
|
|
412
|
+
Filter for active runs.
|
|
413
|
+
|
|
395
414
|
ascending : typing.Optional[bool]
|
|
396
415
|
Whether to sort agents oldest to newest (True) or newest to oldest (False, default)
|
|
397
416
|
|
|
@@ -409,9 +428,11 @@ class AsyncRawRunsClient:
|
|
|
409
428
|
params={
|
|
410
429
|
"agent_ids": agent_ids,
|
|
411
430
|
"background": background,
|
|
431
|
+
"stop_reason": stop_reason,
|
|
412
432
|
"after": after,
|
|
413
433
|
"before": before,
|
|
414
434
|
"limit": limit,
|
|
435
|
+
"active": active,
|
|
415
436
|
"ascending": ascending,
|
|
416
437
|
},
|
|
417
438
|
request_options=request_options,
|
letta_client/steps/__init__.py
CHANGED
|
@@ -2,7 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
# isort: skip_file
|
|
4
4
|
|
|
5
|
-
from .types import StepsListRequestFeedback
|
|
6
|
-
from . import feedback
|
|
5
|
+
from .types import StepsListRequestFeedback, StepsListRequestOrder
|
|
6
|
+
from . import feedback, messages, metrics, trace
|
|
7
|
+
from .messages import MessagesListRequestOrder, MessagesListResponseItem
|
|
7
8
|
|
|
8
|
-
__all__ = [
|
|
9
|
+
__all__ = [
|
|
10
|
+
"MessagesListRequestOrder",
|
|
11
|
+
"MessagesListResponseItem",
|
|
12
|
+
"StepsListRequestFeedback",
|
|
13
|
+
"StepsListRequestOrder",
|
|
14
|
+
"feedback",
|
|
15
|
+
"messages",
|
|
16
|
+
"metrics",
|
|
17
|
+
"trace",
|
|
18
|
+
]
|
letta_client/steps/client.py
CHANGED
|
@@ -5,17 +5,26 @@ import typing
|
|
|
5
5
|
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
6
|
from ..core.request_options import RequestOptions
|
|
7
7
|
from ..types.step import Step
|
|
8
|
-
from ..types.step_metrics import StepMetrics
|
|
9
8
|
from .feedback.client import AsyncFeedbackClient, FeedbackClient
|
|
9
|
+
from .messages.client import AsyncMessagesClient, MessagesClient
|
|
10
|
+
from .metrics.client import AsyncMetricsClient, MetricsClient
|
|
10
11
|
from .raw_client import AsyncRawStepsClient, RawStepsClient
|
|
12
|
+
from .trace.client import AsyncTraceClient, TraceClient
|
|
11
13
|
from .types.steps_list_request_feedback import StepsListRequestFeedback
|
|
14
|
+
from .types.steps_list_request_order import StepsListRequestOrder
|
|
12
15
|
|
|
13
16
|
|
|
14
17
|
class StepsClient:
|
|
15
18
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
16
19
|
self._raw_client = RawStepsClient(client_wrapper=client_wrapper)
|
|
20
|
+
self.metrics = MetricsClient(client_wrapper=client_wrapper)
|
|
21
|
+
|
|
22
|
+
self.trace = TraceClient(client_wrapper=client_wrapper)
|
|
23
|
+
|
|
17
24
|
self.feedback = FeedbackClient(client_wrapper=client_wrapper)
|
|
18
25
|
|
|
26
|
+
self.messages = MessagesClient(client_wrapper=client_wrapper)
|
|
27
|
+
|
|
19
28
|
@property
|
|
20
29
|
def with_raw_response(self) -> RawStepsClient:
|
|
21
30
|
"""
|
|
@@ -33,7 +42,8 @@ class StepsClient:
|
|
|
33
42
|
before: typing.Optional[str] = None,
|
|
34
43
|
after: typing.Optional[str] = None,
|
|
35
44
|
limit: typing.Optional[int] = None,
|
|
36
|
-
order: typing.Optional[
|
|
45
|
+
order: typing.Optional[StepsListRequestOrder] = None,
|
|
46
|
+
order_by: typing.Optional[typing.Literal["created_at"]] = None,
|
|
37
47
|
start_date: typing.Optional[str] = None,
|
|
38
48
|
end_date: typing.Optional[str] = None,
|
|
39
49
|
model: typing.Optional[str] = None,
|
|
@@ -47,7 +57,6 @@ class StepsClient:
|
|
|
47
57
|
) -> typing.List[Step]:
|
|
48
58
|
"""
|
|
49
59
|
List steps with optional pagination and date filters.
|
|
50
|
-
Dates should be provided in ISO 8601 format (e.g. 2025-01-29T15:01:19-08:00)
|
|
51
60
|
|
|
52
61
|
Parameters
|
|
53
62
|
----------
|
|
@@ -60,8 +69,11 @@ class StepsClient:
|
|
|
60
69
|
limit : typing.Optional[int]
|
|
61
70
|
Maximum number of steps to return
|
|
62
71
|
|
|
63
|
-
order : typing.Optional[
|
|
64
|
-
Sort order
|
|
72
|
+
order : typing.Optional[StepsListRequestOrder]
|
|
73
|
+
Sort order for steps by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
74
|
+
|
|
75
|
+
order_by : typing.Optional[typing.Literal["created_at"]]
|
|
76
|
+
Field to sort by
|
|
65
77
|
|
|
66
78
|
start_date : typing.Optional[str]
|
|
67
79
|
Return steps after this ISO datetime (e.g. "2025-01-29T15:01:19-08:00")
|
|
@@ -113,6 +125,7 @@ class StepsClient:
|
|
|
113
125
|
after=after,
|
|
114
126
|
limit=limit,
|
|
115
127
|
order=order,
|
|
128
|
+
order_by=order_by,
|
|
116
129
|
start_date=start_date,
|
|
117
130
|
end_date=end_date,
|
|
118
131
|
model=model,
|
|
@@ -157,45 +170,18 @@ class StepsClient:
|
|
|
157
170
|
_response = self._raw_client.retrieve(step_id, request_options=request_options)
|
|
158
171
|
return _response.data
|
|
159
172
|
|
|
160
|
-
def retrieve_step_metrics(
|
|
161
|
-
self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
162
|
-
) -> StepMetrics:
|
|
163
|
-
"""
|
|
164
|
-
Get step metrics by step ID.
|
|
165
|
-
|
|
166
|
-
Parameters
|
|
167
|
-
----------
|
|
168
|
-
step_id : str
|
|
169
|
-
|
|
170
|
-
request_options : typing.Optional[RequestOptions]
|
|
171
|
-
Request-specific configuration.
|
|
172
|
-
|
|
173
|
-
Returns
|
|
174
|
-
-------
|
|
175
|
-
StepMetrics
|
|
176
|
-
Successful Response
|
|
177
|
-
|
|
178
|
-
Examples
|
|
179
|
-
--------
|
|
180
|
-
from letta_client import Letta
|
|
181
|
-
|
|
182
|
-
client = Letta(
|
|
183
|
-
project="YOUR_PROJECT",
|
|
184
|
-
token="YOUR_TOKEN",
|
|
185
|
-
)
|
|
186
|
-
client.steps.retrieve_step_metrics(
|
|
187
|
-
step_id="step_id",
|
|
188
|
-
)
|
|
189
|
-
"""
|
|
190
|
-
_response = self._raw_client.retrieve_step_metrics(step_id, request_options=request_options)
|
|
191
|
-
return _response.data
|
|
192
|
-
|
|
193
173
|
|
|
194
174
|
class AsyncStepsClient:
|
|
195
175
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
196
176
|
self._raw_client = AsyncRawStepsClient(client_wrapper=client_wrapper)
|
|
177
|
+
self.metrics = AsyncMetricsClient(client_wrapper=client_wrapper)
|
|
178
|
+
|
|
179
|
+
self.trace = AsyncTraceClient(client_wrapper=client_wrapper)
|
|
180
|
+
|
|
197
181
|
self.feedback = AsyncFeedbackClient(client_wrapper=client_wrapper)
|
|
198
182
|
|
|
183
|
+
self.messages = AsyncMessagesClient(client_wrapper=client_wrapper)
|
|
184
|
+
|
|
199
185
|
@property
|
|
200
186
|
def with_raw_response(self) -> AsyncRawStepsClient:
|
|
201
187
|
"""
|
|
@@ -213,7 +199,8 @@ class AsyncStepsClient:
|
|
|
213
199
|
before: typing.Optional[str] = None,
|
|
214
200
|
after: typing.Optional[str] = None,
|
|
215
201
|
limit: typing.Optional[int] = None,
|
|
216
|
-
order: typing.Optional[
|
|
202
|
+
order: typing.Optional[StepsListRequestOrder] = None,
|
|
203
|
+
order_by: typing.Optional[typing.Literal["created_at"]] = None,
|
|
217
204
|
start_date: typing.Optional[str] = None,
|
|
218
205
|
end_date: typing.Optional[str] = None,
|
|
219
206
|
model: typing.Optional[str] = None,
|
|
@@ -227,7 +214,6 @@ class AsyncStepsClient:
|
|
|
227
214
|
) -> typing.List[Step]:
|
|
228
215
|
"""
|
|
229
216
|
List steps with optional pagination and date filters.
|
|
230
|
-
Dates should be provided in ISO 8601 format (e.g. 2025-01-29T15:01:19-08:00)
|
|
231
217
|
|
|
232
218
|
Parameters
|
|
233
219
|
----------
|
|
@@ -240,8 +226,11 @@ class AsyncStepsClient:
|
|
|
240
226
|
limit : typing.Optional[int]
|
|
241
227
|
Maximum number of steps to return
|
|
242
228
|
|
|
243
|
-
order : typing.Optional[
|
|
244
|
-
Sort order
|
|
229
|
+
order : typing.Optional[StepsListRequestOrder]
|
|
230
|
+
Sort order for steps by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
231
|
+
|
|
232
|
+
order_by : typing.Optional[typing.Literal["created_at"]]
|
|
233
|
+
Field to sort by
|
|
245
234
|
|
|
246
235
|
start_date : typing.Optional[str]
|
|
247
236
|
Return steps after this ISO datetime (e.g. "2025-01-29T15:01:19-08:00")
|
|
@@ -301,6 +290,7 @@ class AsyncStepsClient:
|
|
|
301
290
|
after=after,
|
|
302
291
|
limit=limit,
|
|
303
292
|
order=order,
|
|
293
|
+
order_by=order_by,
|
|
304
294
|
start_date=start_date,
|
|
305
295
|
end_date=end_date,
|
|
306
296
|
model=model,
|
|
@@ -352,44 +342,3 @@ class AsyncStepsClient:
|
|
|
352
342
|
"""
|
|
353
343
|
_response = await self._raw_client.retrieve(step_id, request_options=request_options)
|
|
354
344
|
return _response.data
|
|
355
|
-
|
|
356
|
-
async def retrieve_step_metrics(
|
|
357
|
-
self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
358
|
-
) -> StepMetrics:
|
|
359
|
-
"""
|
|
360
|
-
Get step metrics by step ID.
|
|
361
|
-
|
|
362
|
-
Parameters
|
|
363
|
-
----------
|
|
364
|
-
step_id : str
|
|
365
|
-
|
|
366
|
-
request_options : typing.Optional[RequestOptions]
|
|
367
|
-
Request-specific configuration.
|
|
368
|
-
|
|
369
|
-
Returns
|
|
370
|
-
-------
|
|
371
|
-
StepMetrics
|
|
372
|
-
Successful Response
|
|
373
|
-
|
|
374
|
-
Examples
|
|
375
|
-
--------
|
|
376
|
-
import asyncio
|
|
377
|
-
|
|
378
|
-
from letta_client import AsyncLetta
|
|
379
|
-
|
|
380
|
-
client = AsyncLetta(
|
|
381
|
-
project="YOUR_PROJECT",
|
|
382
|
-
token="YOUR_TOKEN",
|
|
383
|
-
)
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
async def main() -> None:
|
|
387
|
-
await client.steps.retrieve_step_metrics(
|
|
388
|
-
step_id="step_id",
|
|
389
|
-
)
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
asyncio.run(main())
|
|
393
|
-
"""
|
|
394
|
-
_response = await self._raw_client.retrieve_step_metrics(step_id, request_options=request_options)
|
|
395
|
-
return _response.data
|
|
@@ -8,6 +8,9 @@ from ...types.feedback_type import FeedbackType
|
|
|
8
8
|
from ...types.step import Step
|
|
9
9
|
from .raw_client import AsyncRawFeedbackClient, RawFeedbackClient
|
|
10
10
|
|
|
11
|
+
# this is used as the default value for optional parameters
|
|
12
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
13
|
+
|
|
11
14
|
|
|
12
15
|
class FeedbackClient:
|
|
13
16
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
@@ -28,17 +31,22 @@ class FeedbackClient:
|
|
|
28
31
|
self,
|
|
29
32
|
step_id: str,
|
|
30
33
|
*,
|
|
31
|
-
feedback: typing.Optional[FeedbackType] =
|
|
34
|
+
feedback: typing.Optional[FeedbackType] = OMIT,
|
|
35
|
+
tags: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
32
36
|
request_options: typing.Optional[RequestOptions] = None,
|
|
33
37
|
) -> Step:
|
|
34
38
|
"""
|
|
35
|
-
|
|
39
|
+
Modify feedback for a given step.
|
|
36
40
|
|
|
37
41
|
Parameters
|
|
38
42
|
----------
|
|
39
43
|
step_id : str
|
|
40
44
|
|
|
41
45
|
feedback : typing.Optional[FeedbackType]
|
|
46
|
+
Whether this feedback is positive or negative
|
|
47
|
+
|
|
48
|
+
tags : typing.Optional[typing.Sequence[str]]
|
|
49
|
+
Feedback tags to add to the step
|
|
42
50
|
|
|
43
51
|
request_options : typing.Optional[RequestOptions]
|
|
44
52
|
Request-specific configuration.
|
|
@@ -60,7 +68,7 @@ class FeedbackClient:
|
|
|
60
68
|
step_id="step_id",
|
|
61
69
|
)
|
|
62
70
|
"""
|
|
63
|
-
_response = self._raw_client.create(step_id, feedback=feedback, request_options=request_options)
|
|
71
|
+
_response = self._raw_client.create(step_id, feedback=feedback, tags=tags, request_options=request_options)
|
|
64
72
|
return _response.data
|
|
65
73
|
|
|
66
74
|
|
|
@@ -83,17 +91,22 @@ class AsyncFeedbackClient:
|
|
|
83
91
|
self,
|
|
84
92
|
step_id: str,
|
|
85
93
|
*,
|
|
86
|
-
feedback: typing.Optional[FeedbackType] =
|
|
94
|
+
feedback: typing.Optional[FeedbackType] = OMIT,
|
|
95
|
+
tags: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
87
96
|
request_options: typing.Optional[RequestOptions] = None,
|
|
88
97
|
) -> Step:
|
|
89
98
|
"""
|
|
90
|
-
|
|
99
|
+
Modify feedback for a given step.
|
|
91
100
|
|
|
92
101
|
Parameters
|
|
93
102
|
----------
|
|
94
103
|
step_id : str
|
|
95
104
|
|
|
96
105
|
feedback : typing.Optional[FeedbackType]
|
|
106
|
+
Whether this feedback is positive or negative
|
|
107
|
+
|
|
108
|
+
tags : typing.Optional[typing.Sequence[str]]
|
|
109
|
+
Feedback tags to add to the step
|
|
97
110
|
|
|
98
111
|
request_options : typing.Optional[RequestOptions]
|
|
99
112
|
Request-specific configuration.
|
|
@@ -123,5 +136,7 @@ class AsyncFeedbackClient:
|
|
|
123
136
|
|
|
124
137
|
asyncio.run(main())
|
|
125
138
|
"""
|
|
126
|
-
_response = await self._raw_client.create(
|
|
139
|
+
_response = await self._raw_client.create(
|
|
140
|
+
step_id, feedback=feedback, tags=tags, request_options=request_options
|
|
141
|
+
)
|
|
127
142
|
return _response.data
|
|
@@ -14,6 +14,9 @@ from ...types.feedback_type import FeedbackType
|
|
|
14
14
|
from ...types.http_validation_error import HttpValidationError
|
|
15
15
|
from ...types.step import Step
|
|
16
16
|
|
|
17
|
+
# this is used as the default value for optional parameters
|
|
18
|
+
OMIT = typing.cast(typing.Any, ...)
|
|
19
|
+
|
|
17
20
|
|
|
18
21
|
class RawFeedbackClient:
|
|
19
22
|
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
@@ -23,17 +26,22 @@ class RawFeedbackClient:
|
|
|
23
26
|
self,
|
|
24
27
|
step_id: str,
|
|
25
28
|
*,
|
|
26
|
-
feedback: typing.Optional[FeedbackType] =
|
|
29
|
+
feedback: typing.Optional[FeedbackType] = OMIT,
|
|
30
|
+
tags: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
27
31
|
request_options: typing.Optional[RequestOptions] = None,
|
|
28
32
|
) -> HttpResponse[Step]:
|
|
29
33
|
"""
|
|
30
|
-
|
|
34
|
+
Modify feedback for a given step.
|
|
31
35
|
|
|
32
36
|
Parameters
|
|
33
37
|
----------
|
|
34
38
|
step_id : str
|
|
35
39
|
|
|
36
40
|
feedback : typing.Optional[FeedbackType]
|
|
41
|
+
Whether this feedback is positive or negative
|
|
42
|
+
|
|
43
|
+
tags : typing.Optional[typing.Sequence[str]]
|
|
44
|
+
Feedback tags to add to the step
|
|
37
45
|
|
|
38
46
|
request_options : typing.Optional[RequestOptions]
|
|
39
47
|
Request-specific configuration.
|
|
@@ -46,10 +54,15 @@ class RawFeedbackClient:
|
|
|
46
54
|
_response = self._client_wrapper.httpx_client.request(
|
|
47
55
|
f"v1/steps/{jsonable_encoder(step_id)}/feedback",
|
|
48
56
|
method="PATCH",
|
|
49
|
-
|
|
57
|
+
json={
|
|
50
58
|
"feedback": feedback,
|
|
59
|
+
"tags": tags,
|
|
60
|
+
},
|
|
61
|
+
headers={
|
|
62
|
+
"content-type": "application/json",
|
|
51
63
|
},
|
|
52
64
|
request_options=request_options,
|
|
65
|
+
omit=OMIT,
|
|
53
66
|
)
|
|
54
67
|
try:
|
|
55
68
|
if 200 <= _response.status_code < 300:
|
|
@@ -86,17 +99,22 @@ class AsyncRawFeedbackClient:
|
|
|
86
99
|
self,
|
|
87
100
|
step_id: str,
|
|
88
101
|
*,
|
|
89
|
-
feedback: typing.Optional[FeedbackType] =
|
|
102
|
+
feedback: typing.Optional[FeedbackType] = OMIT,
|
|
103
|
+
tags: typing.Optional[typing.Sequence[str]] = OMIT,
|
|
90
104
|
request_options: typing.Optional[RequestOptions] = None,
|
|
91
105
|
) -> AsyncHttpResponse[Step]:
|
|
92
106
|
"""
|
|
93
|
-
|
|
107
|
+
Modify feedback for a given step.
|
|
94
108
|
|
|
95
109
|
Parameters
|
|
96
110
|
----------
|
|
97
111
|
step_id : str
|
|
98
112
|
|
|
99
113
|
feedback : typing.Optional[FeedbackType]
|
|
114
|
+
Whether this feedback is positive or negative
|
|
115
|
+
|
|
116
|
+
tags : typing.Optional[typing.Sequence[str]]
|
|
117
|
+
Feedback tags to add to the step
|
|
100
118
|
|
|
101
119
|
request_options : typing.Optional[RequestOptions]
|
|
102
120
|
Request-specific configuration.
|
|
@@ -109,10 +127,15 @@ class AsyncRawFeedbackClient:
|
|
|
109
127
|
_response = await self._client_wrapper.httpx_client.request(
|
|
110
128
|
f"v1/steps/{jsonable_encoder(step_id)}/feedback",
|
|
111
129
|
method="PATCH",
|
|
112
|
-
|
|
130
|
+
json={
|
|
113
131
|
"feedback": feedback,
|
|
132
|
+
"tags": tags,
|
|
133
|
+
},
|
|
134
|
+
headers={
|
|
135
|
+
"content-type": "application/json",
|
|
114
136
|
},
|
|
115
137
|
request_options=request_options,
|
|
138
|
+
omit=OMIT,
|
|
116
139
|
)
|
|
117
140
|
try:
|
|
118
141
|
if 200 <= _response.status_code < 300:
|