letta-client 0.1.319__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 +104 -24
- letta_client/agents/messages/raw_client.py +109 -17
- 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.319.dist-info → letta_client-0.1.320.dist-info}/METADATA +9 -9
- {letta_client-0.1.319.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.319.dist-info → letta_client-0.1.320.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
|
+
from ...core.request_options import RequestOptions
|
|
7
|
+
from .raw_client import AsyncRawMessagesClient, RawMessagesClient
|
|
8
|
+
from .types.messages_list_request_order import MessagesListRequestOrder
|
|
9
|
+
from .types.messages_list_response_item import MessagesListResponseItem
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class MessagesClient:
|
|
13
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
14
|
+
self._raw_client = RawMessagesClient(client_wrapper=client_wrapper)
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def with_raw_response(self) -> RawMessagesClient:
|
|
18
|
+
"""
|
|
19
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
20
|
+
|
|
21
|
+
Returns
|
|
22
|
+
-------
|
|
23
|
+
RawMessagesClient
|
|
24
|
+
"""
|
|
25
|
+
return self._raw_client
|
|
26
|
+
|
|
27
|
+
def list(
|
|
28
|
+
self,
|
|
29
|
+
step_id: str,
|
|
30
|
+
*,
|
|
31
|
+
before: typing.Optional[str] = None,
|
|
32
|
+
after: typing.Optional[str] = None,
|
|
33
|
+
limit: typing.Optional[int] = None,
|
|
34
|
+
order: typing.Optional[MessagesListRequestOrder] = None,
|
|
35
|
+
order_by: typing.Optional[typing.Literal["created_at"]] = None,
|
|
36
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
37
|
+
) -> typing.List[MessagesListResponseItem]:
|
|
38
|
+
"""
|
|
39
|
+
List messages for a given step.
|
|
40
|
+
|
|
41
|
+
Parameters
|
|
42
|
+
----------
|
|
43
|
+
step_id : str
|
|
44
|
+
|
|
45
|
+
before : typing.Optional[str]
|
|
46
|
+
Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
|
|
47
|
+
|
|
48
|
+
after : typing.Optional[str]
|
|
49
|
+
Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
|
|
50
|
+
|
|
51
|
+
limit : typing.Optional[int]
|
|
52
|
+
Maximum number of messages to return
|
|
53
|
+
|
|
54
|
+
order : typing.Optional[MessagesListRequestOrder]
|
|
55
|
+
Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
56
|
+
|
|
57
|
+
order_by : typing.Optional[typing.Literal["created_at"]]
|
|
58
|
+
Sort by field
|
|
59
|
+
|
|
60
|
+
request_options : typing.Optional[RequestOptions]
|
|
61
|
+
Request-specific configuration.
|
|
62
|
+
|
|
63
|
+
Returns
|
|
64
|
+
-------
|
|
65
|
+
typing.List[MessagesListResponseItem]
|
|
66
|
+
Successful Response
|
|
67
|
+
|
|
68
|
+
Examples
|
|
69
|
+
--------
|
|
70
|
+
from letta_client import Letta
|
|
71
|
+
|
|
72
|
+
client = Letta(
|
|
73
|
+
project="YOUR_PROJECT",
|
|
74
|
+
token="YOUR_TOKEN",
|
|
75
|
+
)
|
|
76
|
+
client.steps.messages.list(
|
|
77
|
+
step_id="step_id",
|
|
78
|
+
)
|
|
79
|
+
"""
|
|
80
|
+
_response = self._raw_client.list(
|
|
81
|
+
step_id,
|
|
82
|
+
before=before,
|
|
83
|
+
after=after,
|
|
84
|
+
limit=limit,
|
|
85
|
+
order=order,
|
|
86
|
+
order_by=order_by,
|
|
87
|
+
request_options=request_options,
|
|
88
|
+
)
|
|
89
|
+
return _response.data
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class AsyncMessagesClient:
|
|
93
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
94
|
+
self._raw_client = AsyncRawMessagesClient(client_wrapper=client_wrapper)
|
|
95
|
+
|
|
96
|
+
@property
|
|
97
|
+
def with_raw_response(self) -> AsyncRawMessagesClient:
|
|
98
|
+
"""
|
|
99
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
100
|
+
|
|
101
|
+
Returns
|
|
102
|
+
-------
|
|
103
|
+
AsyncRawMessagesClient
|
|
104
|
+
"""
|
|
105
|
+
return self._raw_client
|
|
106
|
+
|
|
107
|
+
async def list(
|
|
108
|
+
self,
|
|
109
|
+
step_id: str,
|
|
110
|
+
*,
|
|
111
|
+
before: typing.Optional[str] = None,
|
|
112
|
+
after: typing.Optional[str] = None,
|
|
113
|
+
limit: typing.Optional[int] = None,
|
|
114
|
+
order: typing.Optional[MessagesListRequestOrder] = None,
|
|
115
|
+
order_by: typing.Optional[typing.Literal["created_at"]] = None,
|
|
116
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
117
|
+
) -> typing.List[MessagesListResponseItem]:
|
|
118
|
+
"""
|
|
119
|
+
List messages for a given step.
|
|
120
|
+
|
|
121
|
+
Parameters
|
|
122
|
+
----------
|
|
123
|
+
step_id : str
|
|
124
|
+
|
|
125
|
+
before : typing.Optional[str]
|
|
126
|
+
Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
|
|
127
|
+
|
|
128
|
+
after : typing.Optional[str]
|
|
129
|
+
Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
|
|
130
|
+
|
|
131
|
+
limit : typing.Optional[int]
|
|
132
|
+
Maximum number of messages to return
|
|
133
|
+
|
|
134
|
+
order : typing.Optional[MessagesListRequestOrder]
|
|
135
|
+
Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
136
|
+
|
|
137
|
+
order_by : typing.Optional[typing.Literal["created_at"]]
|
|
138
|
+
Sort by field
|
|
139
|
+
|
|
140
|
+
request_options : typing.Optional[RequestOptions]
|
|
141
|
+
Request-specific configuration.
|
|
142
|
+
|
|
143
|
+
Returns
|
|
144
|
+
-------
|
|
145
|
+
typing.List[MessagesListResponseItem]
|
|
146
|
+
Successful Response
|
|
147
|
+
|
|
148
|
+
Examples
|
|
149
|
+
--------
|
|
150
|
+
import asyncio
|
|
151
|
+
|
|
152
|
+
from letta_client import AsyncLetta
|
|
153
|
+
|
|
154
|
+
client = AsyncLetta(
|
|
155
|
+
project="YOUR_PROJECT",
|
|
156
|
+
token="YOUR_TOKEN",
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
async def main() -> None:
|
|
161
|
+
await client.steps.messages.list(
|
|
162
|
+
step_id="step_id",
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
asyncio.run(main())
|
|
167
|
+
"""
|
|
168
|
+
_response = await self._raw_client.list(
|
|
169
|
+
step_id,
|
|
170
|
+
before=before,
|
|
171
|
+
after=after,
|
|
172
|
+
limit=limit,
|
|
173
|
+
order=order,
|
|
174
|
+
order_by=order_by,
|
|
175
|
+
request_options=request_options,
|
|
176
|
+
)
|
|
177
|
+
return _response.data
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from json.decoder import JSONDecodeError
|
|
5
|
+
|
|
6
|
+
from ...core.api_error import ApiError
|
|
7
|
+
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from ...core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
|
+
from ...core.jsonable_encoder import jsonable_encoder
|
|
10
|
+
from ...core.request_options import RequestOptions
|
|
11
|
+
from ...core.unchecked_base_model import construct_type
|
|
12
|
+
from ...errors.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
from ...types.http_validation_error import HttpValidationError
|
|
14
|
+
from .types.messages_list_request_order import MessagesListRequestOrder
|
|
15
|
+
from .types.messages_list_response_item import MessagesListResponseItem
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class RawMessagesClient:
|
|
19
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
20
|
+
self._client_wrapper = client_wrapper
|
|
21
|
+
|
|
22
|
+
def list(
|
|
23
|
+
self,
|
|
24
|
+
step_id: str,
|
|
25
|
+
*,
|
|
26
|
+
before: typing.Optional[str] = None,
|
|
27
|
+
after: typing.Optional[str] = None,
|
|
28
|
+
limit: typing.Optional[int] = None,
|
|
29
|
+
order: typing.Optional[MessagesListRequestOrder] = None,
|
|
30
|
+
order_by: typing.Optional[typing.Literal["created_at"]] = None,
|
|
31
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
32
|
+
) -> HttpResponse[typing.List[MessagesListResponseItem]]:
|
|
33
|
+
"""
|
|
34
|
+
List messages for a given step.
|
|
35
|
+
|
|
36
|
+
Parameters
|
|
37
|
+
----------
|
|
38
|
+
step_id : str
|
|
39
|
+
|
|
40
|
+
before : typing.Optional[str]
|
|
41
|
+
Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
|
|
42
|
+
|
|
43
|
+
after : typing.Optional[str]
|
|
44
|
+
Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
|
|
45
|
+
|
|
46
|
+
limit : typing.Optional[int]
|
|
47
|
+
Maximum number of messages to return
|
|
48
|
+
|
|
49
|
+
order : typing.Optional[MessagesListRequestOrder]
|
|
50
|
+
Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
51
|
+
|
|
52
|
+
order_by : typing.Optional[typing.Literal["created_at"]]
|
|
53
|
+
Sort by field
|
|
54
|
+
|
|
55
|
+
request_options : typing.Optional[RequestOptions]
|
|
56
|
+
Request-specific configuration.
|
|
57
|
+
|
|
58
|
+
Returns
|
|
59
|
+
-------
|
|
60
|
+
HttpResponse[typing.List[MessagesListResponseItem]]
|
|
61
|
+
Successful Response
|
|
62
|
+
"""
|
|
63
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
64
|
+
f"v1/steps/{jsonable_encoder(step_id)}/messages",
|
|
65
|
+
method="GET",
|
|
66
|
+
params={
|
|
67
|
+
"before": before,
|
|
68
|
+
"after": after,
|
|
69
|
+
"limit": limit,
|
|
70
|
+
"order": order,
|
|
71
|
+
"order_by": order_by,
|
|
72
|
+
},
|
|
73
|
+
request_options=request_options,
|
|
74
|
+
)
|
|
75
|
+
try:
|
|
76
|
+
if 200 <= _response.status_code < 300:
|
|
77
|
+
_data = typing.cast(
|
|
78
|
+
typing.List[MessagesListResponseItem],
|
|
79
|
+
construct_type(
|
|
80
|
+
type_=typing.List[MessagesListResponseItem], # type: ignore
|
|
81
|
+
object_=_response.json(),
|
|
82
|
+
),
|
|
83
|
+
)
|
|
84
|
+
return HttpResponse(response=_response, data=_data)
|
|
85
|
+
if _response.status_code == 422:
|
|
86
|
+
raise UnprocessableEntityError(
|
|
87
|
+
headers=dict(_response.headers),
|
|
88
|
+
body=typing.cast(
|
|
89
|
+
HttpValidationError,
|
|
90
|
+
construct_type(
|
|
91
|
+
type_=HttpValidationError, # type: ignore
|
|
92
|
+
object_=_response.json(),
|
|
93
|
+
),
|
|
94
|
+
),
|
|
95
|
+
)
|
|
96
|
+
_response_json = _response.json()
|
|
97
|
+
except JSONDecodeError:
|
|
98
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
99
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class AsyncRawMessagesClient:
|
|
103
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
104
|
+
self._client_wrapper = client_wrapper
|
|
105
|
+
|
|
106
|
+
async def list(
|
|
107
|
+
self,
|
|
108
|
+
step_id: str,
|
|
109
|
+
*,
|
|
110
|
+
before: typing.Optional[str] = None,
|
|
111
|
+
after: typing.Optional[str] = None,
|
|
112
|
+
limit: typing.Optional[int] = None,
|
|
113
|
+
order: typing.Optional[MessagesListRequestOrder] = None,
|
|
114
|
+
order_by: typing.Optional[typing.Literal["created_at"]] = None,
|
|
115
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
116
|
+
) -> AsyncHttpResponse[typing.List[MessagesListResponseItem]]:
|
|
117
|
+
"""
|
|
118
|
+
List messages for a given step.
|
|
119
|
+
|
|
120
|
+
Parameters
|
|
121
|
+
----------
|
|
122
|
+
step_id : str
|
|
123
|
+
|
|
124
|
+
before : typing.Optional[str]
|
|
125
|
+
Message ID cursor for pagination. Returns messages that come before this message ID in the specified sort order
|
|
126
|
+
|
|
127
|
+
after : typing.Optional[str]
|
|
128
|
+
Message ID cursor for pagination. Returns messages that come after this message ID in the specified sort order
|
|
129
|
+
|
|
130
|
+
limit : typing.Optional[int]
|
|
131
|
+
Maximum number of messages to return
|
|
132
|
+
|
|
133
|
+
order : typing.Optional[MessagesListRequestOrder]
|
|
134
|
+
Sort order for messages by creation time. 'asc' for oldest first, 'desc' for newest first
|
|
135
|
+
|
|
136
|
+
order_by : typing.Optional[typing.Literal["created_at"]]
|
|
137
|
+
Sort by field
|
|
138
|
+
|
|
139
|
+
request_options : typing.Optional[RequestOptions]
|
|
140
|
+
Request-specific configuration.
|
|
141
|
+
|
|
142
|
+
Returns
|
|
143
|
+
-------
|
|
144
|
+
AsyncHttpResponse[typing.List[MessagesListResponseItem]]
|
|
145
|
+
Successful Response
|
|
146
|
+
"""
|
|
147
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
148
|
+
f"v1/steps/{jsonable_encoder(step_id)}/messages",
|
|
149
|
+
method="GET",
|
|
150
|
+
params={
|
|
151
|
+
"before": before,
|
|
152
|
+
"after": after,
|
|
153
|
+
"limit": limit,
|
|
154
|
+
"order": order,
|
|
155
|
+
"order_by": order_by,
|
|
156
|
+
},
|
|
157
|
+
request_options=request_options,
|
|
158
|
+
)
|
|
159
|
+
try:
|
|
160
|
+
if 200 <= _response.status_code < 300:
|
|
161
|
+
_data = typing.cast(
|
|
162
|
+
typing.List[MessagesListResponseItem],
|
|
163
|
+
construct_type(
|
|
164
|
+
type_=typing.List[MessagesListResponseItem], # type: ignore
|
|
165
|
+
object_=_response.json(),
|
|
166
|
+
),
|
|
167
|
+
)
|
|
168
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
169
|
+
if _response.status_code == 422:
|
|
170
|
+
raise UnprocessableEntityError(
|
|
171
|
+
headers=dict(_response.headers),
|
|
172
|
+
body=typing.cast(
|
|
173
|
+
HttpValidationError,
|
|
174
|
+
construct_type(
|
|
175
|
+
type_=HttpValidationError, # type: ignore
|
|
176
|
+
object_=_response.json(),
|
|
177
|
+
),
|
|
178
|
+
),
|
|
179
|
+
)
|
|
180
|
+
_response_json = _response.json()
|
|
181
|
+
except JSONDecodeError:
|
|
182
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
183
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
# isort: skip_file
|
|
4
|
+
|
|
5
|
+
from .messages_list_request_order import MessagesListRequestOrder
|
|
6
|
+
from .messages_list_response_item import MessagesListResponseItem
|
|
7
|
+
|
|
8
|
+
__all__ = ["MessagesListRequestOrder", "MessagesListResponseItem"]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ....types.approval_request_message import ApprovalRequestMessage
|
|
6
|
+
from ....types.approval_response_message import ApprovalResponseMessage
|
|
7
|
+
from ....types.assistant_message import AssistantMessage
|
|
8
|
+
from ....types.hidden_reasoning_message import HiddenReasoningMessage
|
|
9
|
+
from ....types.reasoning_message import ReasoningMessage
|
|
10
|
+
from ....types.system_message import SystemMessage
|
|
11
|
+
from ....types.tool_call_message import ToolCallMessage
|
|
12
|
+
from ....types.tool_return_message import ToolReturnMessage
|
|
13
|
+
from ....types.user_message import UserMessage
|
|
14
|
+
|
|
15
|
+
MessagesListResponseItem = typing.Union[
|
|
16
|
+
SystemMessage,
|
|
17
|
+
UserMessage,
|
|
18
|
+
ReasoningMessage,
|
|
19
|
+
HiddenReasoningMessage,
|
|
20
|
+
ToolCallMessage,
|
|
21
|
+
ToolReturnMessage,
|
|
22
|
+
AssistantMessage,
|
|
23
|
+
ApprovalRequestMessage,
|
|
24
|
+
ApprovalResponseMessage,
|
|
25
|
+
]
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
6
|
+
from ...core.request_options import RequestOptions
|
|
7
|
+
from ...types.step_metrics import StepMetrics
|
|
8
|
+
from .raw_client import AsyncRawMetricsClient, RawMetricsClient
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class MetricsClient:
|
|
12
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
13
|
+
self._raw_client = RawMetricsClient(client_wrapper=client_wrapper)
|
|
14
|
+
|
|
15
|
+
@property
|
|
16
|
+
def with_raw_response(self) -> RawMetricsClient:
|
|
17
|
+
"""
|
|
18
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
19
|
+
|
|
20
|
+
Returns
|
|
21
|
+
-------
|
|
22
|
+
RawMetricsClient
|
|
23
|
+
"""
|
|
24
|
+
return self._raw_client
|
|
25
|
+
|
|
26
|
+
def retrieve(self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> StepMetrics:
|
|
27
|
+
"""
|
|
28
|
+
Get step metrics by step ID.
|
|
29
|
+
|
|
30
|
+
Parameters
|
|
31
|
+
----------
|
|
32
|
+
step_id : str
|
|
33
|
+
|
|
34
|
+
request_options : typing.Optional[RequestOptions]
|
|
35
|
+
Request-specific configuration.
|
|
36
|
+
|
|
37
|
+
Returns
|
|
38
|
+
-------
|
|
39
|
+
StepMetrics
|
|
40
|
+
Successful Response
|
|
41
|
+
|
|
42
|
+
Examples
|
|
43
|
+
--------
|
|
44
|
+
from letta_client import Letta
|
|
45
|
+
|
|
46
|
+
client = Letta(
|
|
47
|
+
project="YOUR_PROJECT",
|
|
48
|
+
token="YOUR_TOKEN",
|
|
49
|
+
)
|
|
50
|
+
client.steps.metrics.retrieve(
|
|
51
|
+
step_id="step_id",
|
|
52
|
+
)
|
|
53
|
+
"""
|
|
54
|
+
_response = self._raw_client.retrieve(step_id, request_options=request_options)
|
|
55
|
+
return _response.data
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class AsyncMetricsClient:
|
|
59
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
60
|
+
self._raw_client = AsyncRawMetricsClient(client_wrapper=client_wrapper)
|
|
61
|
+
|
|
62
|
+
@property
|
|
63
|
+
def with_raw_response(self) -> AsyncRawMetricsClient:
|
|
64
|
+
"""
|
|
65
|
+
Retrieves a raw implementation of this client that returns raw responses.
|
|
66
|
+
|
|
67
|
+
Returns
|
|
68
|
+
-------
|
|
69
|
+
AsyncRawMetricsClient
|
|
70
|
+
"""
|
|
71
|
+
return self._raw_client
|
|
72
|
+
|
|
73
|
+
async def retrieve(self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> StepMetrics:
|
|
74
|
+
"""
|
|
75
|
+
Get step metrics by step ID.
|
|
76
|
+
|
|
77
|
+
Parameters
|
|
78
|
+
----------
|
|
79
|
+
step_id : str
|
|
80
|
+
|
|
81
|
+
request_options : typing.Optional[RequestOptions]
|
|
82
|
+
Request-specific configuration.
|
|
83
|
+
|
|
84
|
+
Returns
|
|
85
|
+
-------
|
|
86
|
+
StepMetrics
|
|
87
|
+
Successful Response
|
|
88
|
+
|
|
89
|
+
Examples
|
|
90
|
+
--------
|
|
91
|
+
import asyncio
|
|
92
|
+
|
|
93
|
+
from letta_client import AsyncLetta
|
|
94
|
+
|
|
95
|
+
client = AsyncLetta(
|
|
96
|
+
project="YOUR_PROJECT",
|
|
97
|
+
token="YOUR_TOKEN",
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
async def main() -> None:
|
|
102
|
+
await client.steps.metrics.retrieve(
|
|
103
|
+
step_id="step_id",
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
asyncio.run(main())
|
|
108
|
+
"""
|
|
109
|
+
_response = await self._raw_client.retrieve(step_id, request_options=request_options)
|
|
110
|
+
return _response.data
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
from json.decoder import JSONDecodeError
|
|
5
|
+
|
|
6
|
+
from ...core.api_error import ApiError
|
|
7
|
+
from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
|
|
8
|
+
from ...core.http_response import AsyncHttpResponse, HttpResponse
|
|
9
|
+
from ...core.jsonable_encoder import jsonable_encoder
|
|
10
|
+
from ...core.request_options import RequestOptions
|
|
11
|
+
from ...core.unchecked_base_model import construct_type
|
|
12
|
+
from ...errors.unprocessable_entity_error import UnprocessableEntityError
|
|
13
|
+
from ...types.http_validation_error import HttpValidationError
|
|
14
|
+
from ...types.step_metrics import StepMetrics
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class RawMetricsClient:
|
|
18
|
+
def __init__(self, *, client_wrapper: SyncClientWrapper):
|
|
19
|
+
self._client_wrapper = client_wrapper
|
|
20
|
+
|
|
21
|
+
def retrieve(
|
|
22
|
+
self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
23
|
+
) -> HttpResponse[StepMetrics]:
|
|
24
|
+
"""
|
|
25
|
+
Get step metrics by step ID.
|
|
26
|
+
|
|
27
|
+
Parameters
|
|
28
|
+
----------
|
|
29
|
+
step_id : str
|
|
30
|
+
|
|
31
|
+
request_options : typing.Optional[RequestOptions]
|
|
32
|
+
Request-specific configuration.
|
|
33
|
+
|
|
34
|
+
Returns
|
|
35
|
+
-------
|
|
36
|
+
HttpResponse[StepMetrics]
|
|
37
|
+
Successful Response
|
|
38
|
+
"""
|
|
39
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
40
|
+
f"v1/steps/{jsonable_encoder(step_id)}/metrics",
|
|
41
|
+
method="GET",
|
|
42
|
+
request_options=request_options,
|
|
43
|
+
)
|
|
44
|
+
try:
|
|
45
|
+
if 200 <= _response.status_code < 300:
|
|
46
|
+
_data = typing.cast(
|
|
47
|
+
StepMetrics,
|
|
48
|
+
construct_type(
|
|
49
|
+
type_=StepMetrics, # type: ignore
|
|
50
|
+
object_=_response.json(),
|
|
51
|
+
),
|
|
52
|
+
)
|
|
53
|
+
return HttpResponse(response=_response, data=_data)
|
|
54
|
+
if _response.status_code == 422:
|
|
55
|
+
raise UnprocessableEntityError(
|
|
56
|
+
headers=dict(_response.headers),
|
|
57
|
+
body=typing.cast(
|
|
58
|
+
HttpValidationError,
|
|
59
|
+
construct_type(
|
|
60
|
+
type_=HttpValidationError, # type: ignore
|
|
61
|
+
object_=_response.json(),
|
|
62
|
+
),
|
|
63
|
+
),
|
|
64
|
+
)
|
|
65
|
+
_response_json = _response.json()
|
|
66
|
+
except JSONDecodeError:
|
|
67
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
68
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
class AsyncRawMetricsClient:
|
|
72
|
+
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
73
|
+
self._client_wrapper = client_wrapper
|
|
74
|
+
|
|
75
|
+
async def retrieve(
|
|
76
|
+
self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None
|
|
77
|
+
) -> AsyncHttpResponse[StepMetrics]:
|
|
78
|
+
"""
|
|
79
|
+
Get step metrics by step ID.
|
|
80
|
+
|
|
81
|
+
Parameters
|
|
82
|
+
----------
|
|
83
|
+
step_id : str
|
|
84
|
+
|
|
85
|
+
request_options : typing.Optional[RequestOptions]
|
|
86
|
+
Request-specific configuration.
|
|
87
|
+
|
|
88
|
+
Returns
|
|
89
|
+
-------
|
|
90
|
+
AsyncHttpResponse[StepMetrics]
|
|
91
|
+
Successful Response
|
|
92
|
+
"""
|
|
93
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
94
|
+
f"v1/steps/{jsonable_encoder(step_id)}/metrics",
|
|
95
|
+
method="GET",
|
|
96
|
+
request_options=request_options,
|
|
97
|
+
)
|
|
98
|
+
try:
|
|
99
|
+
if 200 <= _response.status_code < 300:
|
|
100
|
+
_data = typing.cast(
|
|
101
|
+
StepMetrics,
|
|
102
|
+
construct_type(
|
|
103
|
+
type_=StepMetrics, # type: ignore
|
|
104
|
+
object_=_response.json(),
|
|
105
|
+
),
|
|
106
|
+
)
|
|
107
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
108
|
+
if _response.status_code == 422:
|
|
109
|
+
raise UnprocessableEntityError(
|
|
110
|
+
headers=dict(_response.headers),
|
|
111
|
+
body=typing.cast(
|
|
112
|
+
HttpValidationError,
|
|
113
|
+
construct_type(
|
|
114
|
+
type_=HttpValidationError, # type: ignore
|
|
115
|
+
object_=_response.json(),
|
|
116
|
+
),
|
|
117
|
+
),
|
|
118
|
+
)
|
|
119
|
+
_response_json = _response.json()
|
|
120
|
+
except JSONDecodeError:
|
|
121
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
122
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|