letta-client 0.1.256__py3-none-any.whl → 0.1.258__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 CHANGED
@@ -234,6 +234,7 @@ from .types import (
234
234
  StdioServerConfig,
235
235
  Step,
236
236
  StepFeedback,
237
+ StepMetrics,
237
238
  StepStatus,
238
239
  StopReasonType,
239
240
  StreamableHttpServerConfig,
@@ -641,6 +642,7 @@ __all__ = [
641
642
  "StdioServerConfig",
642
643
  "Step",
643
644
  "StepFeedback",
645
+ "StepMetrics",
644
646
  "StepStatus",
645
647
  "StepsListRequestFeedback",
646
648
  "StopReasonType",
@@ -24,10 +24,10 @@ class BaseClientWrapper:
24
24
 
25
25
  def get_headers(self) -> typing.Dict[str, str]:
26
26
  headers: typing.Dict[str, str] = {
27
- "User-Agent": "letta-client/0.1.256",
27
+ "User-Agent": "letta-client/0.1.258",
28
28
  "X-Fern-Language": "Python",
29
29
  "X-Fern-SDK-Name": "letta-client",
30
- "X-Fern-SDK-Version": "0.1.256",
30
+ "X-Fern-SDK-Version": "0.1.258",
31
31
  **(self.get_custom_headers() or {}),
32
32
  }
33
33
  if self._project is not None:
@@ -5,6 +5,7 @@ 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
8
9
  from .feedback.client import AsyncFeedbackClient, FeedbackClient
9
10
  from .raw_client import AsyncRawStepsClient, RawStepsClient
10
11
  from .types.steps_list_request_feedback import StepsListRequestFeedback
@@ -156,6 +157,39 @@ class StepsClient:
156
157
  _response = self._raw_client.retrieve(step_id, request_options=request_options)
157
158
  return _response.data
158
159
 
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
+
159
193
 
160
194
  class AsyncStepsClient:
161
195
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -318,3 +352,44 @@ class AsyncStepsClient:
318
352
  """
319
353
  _response = await self._raw_client.retrieve(step_id, request_options=request_options)
320
354
  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
@@ -12,6 +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.step import Step
15
+ from ..types.step_metrics import StepMetrics
15
16
  from .types.steps_list_request_feedback import StepsListRequestFeedback
16
17
 
17
18
 
@@ -183,6 +184,55 @@ class RawStepsClient:
183
184
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
184
185
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
185
186
 
187
+ def retrieve_step_metrics(
188
+ self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None
189
+ ) -> HttpResponse[StepMetrics]:
190
+ """
191
+ Get step metrics by step ID.
192
+
193
+ Parameters
194
+ ----------
195
+ step_id : str
196
+
197
+ request_options : typing.Optional[RequestOptions]
198
+ Request-specific configuration.
199
+
200
+ Returns
201
+ -------
202
+ HttpResponse[StepMetrics]
203
+ Successful Response
204
+ """
205
+ _response = self._client_wrapper.httpx_client.request(
206
+ f"v1/steps/{jsonable_encoder(step_id)}/metrics",
207
+ method="GET",
208
+ request_options=request_options,
209
+ )
210
+ try:
211
+ if 200 <= _response.status_code < 300:
212
+ _data = typing.cast(
213
+ StepMetrics,
214
+ construct_type(
215
+ type_=StepMetrics, # type: ignore
216
+ object_=_response.json(),
217
+ ),
218
+ )
219
+ return HttpResponse(response=_response, data=_data)
220
+ if _response.status_code == 422:
221
+ raise UnprocessableEntityError(
222
+ headers=dict(_response.headers),
223
+ body=typing.cast(
224
+ HttpValidationError,
225
+ construct_type(
226
+ type_=HttpValidationError, # type: ignore
227
+ object_=_response.json(),
228
+ ),
229
+ ),
230
+ )
231
+ _response_json = _response.json()
232
+ except JSONDecodeError:
233
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
234
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
235
+
186
236
 
187
237
  class AsyncRawStepsClient:
188
238
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -353,3 +403,52 @@ class AsyncRawStepsClient:
353
403
  except JSONDecodeError:
354
404
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
355
405
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
406
+
407
+ async def retrieve_step_metrics(
408
+ self, step_id: str, *, request_options: typing.Optional[RequestOptions] = None
409
+ ) -> AsyncHttpResponse[StepMetrics]:
410
+ """
411
+ Get step metrics by step ID.
412
+
413
+ Parameters
414
+ ----------
415
+ step_id : str
416
+
417
+ request_options : typing.Optional[RequestOptions]
418
+ Request-specific configuration.
419
+
420
+ Returns
421
+ -------
422
+ AsyncHttpResponse[StepMetrics]
423
+ Successful Response
424
+ """
425
+ _response = await self._client_wrapper.httpx_client.request(
426
+ f"v1/steps/{jsonable_encoder(step_id)}/metrics",
427
+ method="GET",
428
+ request_options=request_options,
429
+ )
430
+ try:
431
+ if 200 <= _response.status_code < 300:
432
+ _data = typing.cast(
433
+ StepMetrics,
434
+ construct_type(
435
+ type_=StepMetrics, # type: ignore
436
+ object_=_response.json(),
437
+ ),
438
+ )
439
+ return AsyncHttpResponse(response=_response, data=_data)
440
+ if _response.status_code == 422:
441
+ raise UnprocessableEntityError(
442
+ headers=dict(_response.headers),
443
+ body=typing.cast(
444
+ HttpValidationError,
445
+ construct_type(
446
+ type_=HttpValidationError, # type: ignore
447
+ object_=_response.json(),
448
+ ),
449
+ ),
450
+ )
451
+ _response_json = _response.json()
452
+ except JSONDecodeError:
453
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
454
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -245,6 +245,7 @@ from .sse_server_config import SseServerConfig
245
245
  from .stdio_server_config import StdioServerConfig
246
246
  from .step import Step
247
247
  from .step_feedback import StepFeedback
248
+ from .step_metrics import StepMetrics
248
249
  from .step_status import StepStatus
249
250
  from .stop_reason_type import StopReasonType
250
251
  from .streamable_http_server_config import StreamableHttpServerConfig
@@ -530,6 +531,7 @@ __all__ = [
530
531
  "StdioServerConfig",
531
532
  "Step",
532
533
  "StepFeedback",
534
+ "StepMetrics",
533
535
  "StepStatus",
534
536
  "StopReasonType",
535
537
  "StreamableHttpServerConfig",
@@ -7,7 +7,6 @@ EmbeddingConfigEmbeddingEndpointType = typing.Union[
7
7
  "openai",
8
8
  "anthropic",
9
9
  "bedrock",
10
- "cohere",
11
10
  "google_ai",
12
11
  "google_vertex",
13
12
  "azure",
@@ -6,7 +6,6 @@ LlmConfigModelEndpointType = typing.Union[
6
6
  typing.Literal[
7
7
  "openai",
8
8
  "anthropic",
9
- "cohere",
10
9
  "google_ai",
11
10
  "google_vertex",
12
11
  "azure",
@@ -20,7 +20,6 @@ ProviderType = typing.Union[
20
20
  "azure",
21
21
  "vllm",
22
22
  "bedrock",
23
- "cohere",
24
23
  ],
25
24
  typing.Any,
26
25
  ]
@@ -0,0 +1,68 @@
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 StepMetrics(UncheckedBaseModel):
11
+ id: str = pydantic.Field()
12
+ """
13
+ The id of the step this metric belongs to (matches steps.id).
14
+ """
15
+
16
+ provider_id: typing.Optional[str] = pydantic.Field(default=None)
17
+ """
18
+ The unique identifier of the provider.
19
+ """
20
+
21
+ job_id: typing.Optional[str] = pydantic.Field(default=None)
22
+ """
23
+ The unique identifier of the job.
24
+ """
25
+
26
+ agent_id: typing.Optional[str] = pydantic.Field(default=None)
27
+ """
28
+ The unique identifier of the agent.
29
+ """
30
+
31
+ llm_request_ns: typing.Optional[int] = pydantic.Field(default=None)
32
+ """
33
+ Time spent on LLM requests in nanoseconds.
34
+ """
35
+
36
+ tool_execution_ns: typing.Optional[int] = pydantic.Field(default=None)
37
+ """
38
+ Time spent on tool execution in nanoseconds.
39
+ """
40
+
41
+ step_ns: typing.Optional[int] = pydantic.Field(default=None)
42
+ """
43
+ Total time for the step in nanoseconds.
44
+ """
45
+
46
+ base_template_id: typing.Optional[str] = pydantic.Field(default=None)
47
+ """
48
+ The base template ID that the step belongs to (cloud only).
49
+ """
50
+
51
+ template_id: typing.Optional[str] = pydantic.Field(default=None)
52
+ """
53
+ The template ID that the step belongs to (cloud only).
54
+ """
55
+
56
+ project_id: typing.Optional[str] = pydantic.Field(default=None)
57
+ """
58
+ The project that the step belongs to (cloud only).
59
+ """
60
+
61
+ if IS_PYDANTIC_V2:
62
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
63
+ else:
64
+
65
+ class Config:
66
+ frozen = True
67
+ smart_union = True
68
+ extra = pydantic.Extra.allow
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-client
3
- Version: 0.1.256
3
+ Version: 0.1.258
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -1,4 +1,4 @@
1
- letta_client/__init__.py,sha256=rtr9CTOq7fyIoSU6wXtwv1j8dVU-_lpQLy1wsJaJaFs,21196
1
+ letta_client/__init__.py,sha256=EAT9kpeazjGtXHZ-FuznqefNwW251mIxdqfEgPhCwXg,21232
2
2
  letta_client/agents/__init__.py,sha256=JkuWGGNJsCfnMr2DFzQ1SiqEB1tcFZnafdidODi0_DY,2166
3
3
  letta_client/agents/blocks/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
4
4
  letta_client/agents/blocks/client.py,sha256=Akx-1SYEXkmdtLtytPtdFNhVts8JkjC2aMQnnWgd8Ug,14735
@@ -92,7 +92,7 @@ letta_client/client_side_access_tokens/types/client_side_access_tokens_list_clie
92
92
  letta_client/client_side_access_tokens/types/client_side_access_tokens_list_client_side_access_tokens_response_tokens_item_policy_data_item_access_item.py,sha256=kNHfEWFl7u71Pu8NPqutod0a2NXfvq8il05Hqm0iBB4,284
93
93
  letta_client/core/__init__.py,sha256=tpn7rjb6C2UIkYZYIqdrNpI7Yax2jw88sXh2baxaxAI,1715
94
94
  letta_client/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
95
- letta_client/core/client_wrapper.py,sha256=soND1nkEb679y6Fc_pCuaDVQMzBSPCuwMOgo72EHaqo,2776
95
+ letta_client/core/client_wrapper.py,sha256=bPHwe4Yo871NsvmsvP01kEc4AhKRLdqbCWsLXujBb3A,2776
96
96
  letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
97
97
  letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
98
98
  letta_client/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -188,11 +188,11 @@ letta_client/sources/passages/client.py,sha256=6wo3iTfQcDLvmS-TaoX6wUXZ31t1l3VAd
188
188
  letta_client/sources/passages/raw_client.py,sha256=iPIHJs_pmSsbyu5vBFuQdopymxlfQDkEKN4cs4YKVB8,5901
189
189
  letta_client/sources/raw_client.py,sha256=6fyI0Y_agaebPZ_lOykNf1TybmRU-09vfrYEVgyGsz0,46078
190
190
  letta_client/steps/__init__.py,sha256=aL21TXi3Lbs5vlhlmonxgk1mNdx_MRPwobryhwVelpg,204
191
- letta_client/steps/client.py,sha256=bVVb6po0lW3K5ko6EfrrwxP6r2sp1bZTcUJA0NAhDS8,9823
191
+ letta_client/steps/client.py,sha256=zDoaXlSu2zLOUzXUKz3egGuc4VLE2JG_FJCXOFU6ub0,11686
192
192
  letta_client/steps/feedback/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
193
193
  letta_client/steps/feedback/client.py,sha256=KrblygVLvdLQDMDA7NigcR34fiJzd8xLsQQlJxzwyUA,3234
194
194
  letta_client/steps/feedback/raw_client.py,sha256=ILfN7fX-ZRl3_VpOVVBpbGMJO1twP02zLjnub23MlQE,4979
195
- letta_client/steps/raw_client.py,sha256=91CKYtHV365SVKzTLJLib0p-sYxhSRy421euSH9nGv4,13491
195
+ letta_client/steps/raw_client.py,sha256=0L5g4Qkz3E15jSzXWwMX3EMwonYwI0G6j8zM7oH00BY,17243
196
196
  letta_client/steps/types/__init__.py,sha256=quEAP-ttL6qyeTg4wUY4b2m2PNbdXKqOdQVXgGk0seQ,191
197
197
  letta_client/steps/types/steps_list_request_feedback.py,sha256=Au1YSn3UYRc_b4yxUT6hFqru4iJ-SX-_Ndb3PwCYGp8,172
198
198
  letta_client/tags/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
@@ -228,7 +228,7 @@ letta_client/tools/types/streaming_response.py,sha256=V1qT-XAqm-z7zffJ7W1JKPCaxZ
228
228
  letta_client/tools/types/test_mcp_server_request.py,sha256=3SqjEL3EYi7iV57TjTIzuBSKv8O3Y7qSUFrCiXEvSRk,373
229
229
  letta_client/tools/types/update_mcp_server_request.py,sha256=MHouV3iyZCTROguOQP5rOYvnmvDbBeXe5VtEejRvrEs,403
230
230
  letta_client/tools/types/update_mcp_server_response.py,sha256=BJTPHWkb8hwgd4FvftQ8eZjl2QzCQT-vZAUVnLft9hw,376
231
- letta_client/types/__init__.py,sha256=ZfDuDphGnLFxJ_X5FCZ6Q8sOy0e2nDoRD_cAbZbDpYo,25714
231
+ letta_client/types/__init__.py,sha256=x73IHWkxzhYCIJgthgXWlx4EJRdO5GL8dWoyXFg5rZA,25771
232
232
  letta_client/types/action_model.py,sha256=VTXavHB6J2d4MjjTMEpkuEyVaiTHyj1FGfa4j8kN6hQ,1241
233
233
  letta_client/types/action_parameters_model.py,sha256=s1mJ4tycms8UmCFsxyjKr6RbghSuqv35xpa9mK42sjg,829
234
234
  letta_client/types/action_response_model.py,sha256=LcML150OvsKimVV3sP4jSFh8pVxQXn_r_ff8DADOr3c,825
@@ -319,7 +319,7 @@ letta_client/types/dynamic_manager.py,sha256=B-GwXKSD_-vvYPOx27OW6Jzp11ev2IPz6zr
319
319
  letta_client/types/dynamic_manager_update.py,sha256=73luQ0zJ2__wghe-OVEJ-f4JIfrEwytpf5NGpTumS9k,889
320
320
  letta_client/types/e_2_b_sandbox_config.py,sha256=LOR4k4sUyAGQWQ0AbJGLxvZesZAvErORFRAXhvdwMNk,958
321
321
  letta_client/types/embedding_config.py,sha256=BC5HNq_R0dvzcvH1Ncm2YONvkKm_LurMwosyE5RYJS4,2003
322
- letta_client/types/embedding_config_embedding_endpoint_type.py,sha256=9-C0KAbQbi2nm5ECDmKVbeqyCbBB6w6Izy5vXvMBAXA,579
322
+ letta_client/types/embedding_config_embedding_endpoint_type.py,sha256=KGUZl9cAQNedLGhaOfuvAEE4JtDvVz6wlWFMAQEfSSk,561
323
323
  letta_client/types/feedback_type.py,sha256=sDfsniSnnpSwzZqfIkRL7vYPxYqdwURpI6LMI7eDkoQ,160
324
324
  letta_client/types/file.py,sha256=YPkTYb8V_XsvuQ6qXUzzDsp4iQMlZxPormZWoy7ROnI,629
325
325
  letta_client/types/file_agent_schema.py,sha256=I0uHseeqx-FDK5pVAb6-0zrqpfNdXcjDTb4_LS2QmGw,1890
@@ -389,7 +389,7 @@ letta_client/types/letta_usage_statistics.py,sha256=uZZq2lVOGHK6N-VhA0oknQfUjE9Z
389
389
  letta_client/types/letta_user_message_content_union.py,sha256=2SrcmMjvsQzCvfIUYG7PkaE4brMZcL6H437GSCLK4zg,230
390
390
  letta_client/types/llm_config.py,sha256=Re7XL1AV4WClySsaLtGzNnwxwHNYldl3sw2rZn3dltA,3632
391
391
  letta_client/types/llm_config_compatibility_type.py,sha256=m6E90W-R9-Oi3EGSV_GdPIuVC2rmAH7TsUKbl79EiAQ,165
392
- letta_client/types/llm_config_model_endpoint_type.py,sha256=HOSM5kIZDCNAVCWmASvAk52K819plqGlD66yKQ1xFkI,620
392
+ letta_client/types/llm_config_model_endpoint_type.py,sha256=o59NDg3-3ud2mqAPYze40G7kyVD7pkRRbdT_vdTqL24,602
393
393
  letta_client/types/llm_config_reasoning_effort.py,sha256=r4I3i2c7RxkBe-xXOE_XCXwjp9Y0QoaF2SVY7WYPdg4,184
394
394
  letta_client/types/local_sandbox_config.py,sha256=J_Dkqk2kkkw23AzLdDDM3r9ply-TK4HlEWIwsLKLhIQ,1388
395
395
  letta_client/types/manager_type.py,sha256=3ztXv2xWw6PIgDoqqxaHwdIcssDYqdqB0KqUDSW3Bc0,222
@@ -428,7 +428,7 @@ letta_client/types/pip_requirement.py,sha256=A9mFgoz-yAlVHsy8vljtYdtJInfN7qL1JeP
428
428
  letta_client/types/provider.py,sha256=hUTNL8HIolqPtKwPdSxjElEhENIYh05nB12ma9pcZ1g,1890
429
429
  letta_client/types/provider_category.py,sha256=St4tSc_Wc5huF79kb088-L-tRz9Cj2_b5DqEoU4eDIs,156
430
430
  letta_client/types/provider_trace.py,sha256=d7_IpoEgLeqnPaElWjOp6iAL8SbeI4DZsBaaaFtkorM,2201
431
- letta_client/types/provider_type.py,sha256=GChNOHlZBAq3J0H4gv_1Hmg3Ju678iffL5HU6mGdKQE,481
431
+ letta_client/types/provider_type.py,sha256=NwBjRytkZr9uOxRgXATflyDcxchus2xjBb5kKtJ9aQ8,463
432
432
  letta_client/types/reasoning_content.py,sha256=YPmNwwSH_toPAThpE5gq7gaxBlvvjh33csKBRdFI_iY,996
433
433
  letta_client/types/reasoning_message.py,sha256=MrEaT1NT2RB-G0FAjHGaqbGHILrmne_MnHpeCUKuqXc,1648
434
434
  letta_client/types/reasoning_message_source.py,sha256=GYOWGm2mje1yYbR8E2kbAeQS--VDrGlpsobEBQHE2cU,186
@@ -460,6 +460,7 @@ letta_client/types/sse_server_config.py,sha256=UbSmODGr5nxVMqTGtSvEbZyN2V8P_T0cO
460
460
  letta_client/types/stdio_server_config.py,sha256=kuPmwj9lDTz7jBY1jh5VH-ns3ffctWwatT_emXyyTFE,1092
461
461
  letta_client/types/step.py,sha256=r0RWvPiLUDstHKakLjMFC6SajsMNisPhiBuo32F48U4,4190
462
462
  letta_client/types/step_feedback.py,sha256=JXUkclvJ6C-6ZTgd2lteOxqEyO5KRDNQ8ronBPYMdbo,160
463
+ letta_client/types/step_metrics.py,sha256=yR_CQL3rH7S9p5NUUzIUwUVfUxtzR99s5eSsKV3TOzg,1870
463
464
  letta_client/types/step_status.py,sha256=OruAXMfFrCL0Bgoj7Wfjr8400ok5jcV4busa9NV-KIw,179
464
465
  letta_client/types/stop_reason_type.py,sha256=BgrPBP-v9YBOpGmpusQvVQqCLPNOQFl57kVrEpPMRKU,246
465
466
  letta_client/types/streamable_http_server_config.py,sha256=GNbt2KO9VepHUtiMoK6htJLpFHcGoFJaoH1Az6zkt-Q,1776
@@ -516,6 +517,6 @@ letta_client/version.py,sha256=bttKLbIhO3UonCYQlqs600zzbQgfhCCMjeXR9WRzid4,79
516
517
  letta_client/voice/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
517
518
  letta_client/voice/client.py,sha256=EbIVOQh4HXqU9McATxwga08STk-HUwPEAUr_UHqyKHg,3748
518
519
  letta_client/voice/raw_client.py,sha256=KvM_3GXuSf51bubM0RVBnxvlf20qZTFMnaA_BzhXzjQ,5938
519
- letta_client-0.1.256.dist-info/METADATA,sha256=aiUh4WDcGc730FVAp2tnW-YVYvnJz7vxtPkIG5SjRlo,5781
520
- letta_client-0.1.256.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
521
- letta_client-0.1.256.dist-info/RECORD,,
520
+ letta_client-0.1.258.dist-info/METADATA,sha256=24PPmF0YmFmcWDkla60-lK_o87NYpGQ4-yEEyrYjGnc,5781
521
+ letta_client-0.1.258.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
522
+ letta_client-0.1.258.dist-info/RECORD,,