letta-client 0.1.102__py3-none-any.whl → 0.1.104__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
@@ -147,6 +147,7 @@ from .types import (
147
147
  OrganizationUpdate,
148
148
  ParameterProperties,
149
149
  ParametersSchema,
150
+ ParentToolRule,
150
151
  Passage,
151
152
  PipRequirement,
152
153
  Provider,
@@ -423,6 +424,7 @@ __all__ = [
423
424
  "OrganizationUpdate",
424
425
  "ParameterProperties",
425
426
  "ParametersSchema",
427
+ "ParentToolRule",
426
428
  "Passage",
427
429
  "PipRequirement",
428
430
  "Provider",
@@ -6,8 +6,15 @@ from ...types.child_tool_rule import ChildToolRule
6
6
  from ...types.continue_tool_rule import ContinueToolRule
7
7
  from ...types.terminal_tool_rule import TerminalToolRule
8
8
  from ...types.max_count_per_step_tool_rule import MaxCountPerStepToolRule
9
+ from ...types.parent_tool_rule import ParentToolRule
9
10
  from ...types.init_tool_rule import InitToolRule
10
11
 
11
12
  CreateAgentRequestToolRulesItem = typing.Union[
12
- ConditionalToolRule, ChildToolRule, ContinueToolRule, TerminalToolRule, MaxCountPerStepToolRule, InitToolRule
13
+ ConditionalToolRule,
14
+ ChildToolRule,
15
+ ContinueToolRule,
16
+ TerminalToolRule,
17
+ MaxCountPerStepToolRule,
18
+ ParentToolRule,
19
+ InitToolRule,
13
20
  ]
@@ -6,8 +6,15 @@ from ...types.child_tool_rule import ChildToolRule
6
6
  from ...types.continue_tool_rule import ContinueToolRule
7
7
  from ...types.terminal_tool_rule import TerminalToolRule
8
8
  from ...types.max_count_per_step_tool_rule import MaxCountPerStepToolRule
9
+ from ...types.parent_tool_rule import ParentToolRule
9
10
  from ...types.init_tool_rule import InitToolRule
10
11
 
11
12
  UpdateAgentToolRulesItem = typing.Union[
12
- ConditionalToolRule, ChildToolRule, ContinueToolRule, TerminalToolRule, MaxCountPerStepToolRule, InitToolRule
13
+ ConditionalToolRule,
14
+ ChildToolRule,
15
+ ContinueToolRule,
16
+ TerminalToolRule,
17
+ MaxCountPerStepToolRule,
18
+ ParentToolRule,
19
+ InitToolRule,
13
20
  ]
@@ -16,7 +16,7 @@ class BaseClientWrapper:
16
16
  headers: typing.Dict[str, str] = {
17
17
  "X-Fern-Language": "Python",
18
18
  "X-Fern-SDK-Name": "letta-client",
19
- "X-Fern-SDK-Version": "0.1.102",
19
+ "X-Fern-SDK-Version": "0.1.104",
20
20
  }
21
21
  if self.token is not None:
22
22
  headers["Authorization"] = f"Bearer {self.token}"
@@ -257,44 +257,22 @@ class GroupsClient:
257
257
  raise ApiError(status_code=_response.status_code, body=_response.text)
258
258
  raise ApiError(status_code=_response.status_code, body=_response_json)
259
259
 
260
- def modify_group(
261
- self,
262
- group_id: str,
263
- *,
264
- project: typing.Optional[str] = None,
265
- agent_ids: typing.Optional[typing.Sequence[str]] = OMIT,
266
- description: typing.Optional[str] = OMIT,
267
- manager_config: typing.Optional[GroupUpdateManagerConfig] = OMIT,
268
- shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
269
- request_options: typing.Optional[RequestOptions] = None,
270
- ) -> Group:
260
+ def delete(
261
+ self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
262
+ ) -> typing.Optional[typing.Any]:
271
263
  """
272
- Create a new multi-agent group with the specified configuration.
264
+ Delete a multi-agent group.
273
265
 
274
266
  Parameters
275
267
  ----------
276
268
  group_id : str
277
269
 
278
- project : typing.Optional[str]
279
-
280
- agent_ids : typing.Optional[typing.Sequence[str]]
281
-
282
-
283
- description : typing.Optional[str]
284
-
285
-
286
- manager_config : typing.Optional[GroupUpdateManagerConfig]
287
-
288
-
289
- shared_block_ids : typing.Optional[typing.Sequence[str]]
290
-
291
-
292
270
  request_options : typing.Optional[RequestOptions]
293
271
  Request-specific configuration.
294
272
 
295
273
  Returns
296
274
  -------
297
- Group
275
+ typing.Optional[typing.Any]
298
276
  Successful Response
299
277
 
300
278
  Examples
@@ -304,34 +282,21 @@ class GroupsClient:
304
282
  client = Letta(
305
283
  token="YOUR_TOKEN",
306
284
  )
307
- client.groups.modify_group(
285
+ client.groups.delete(
308
286
  group_id="group_id",
309
287
  )
310
288
  """
311
289
  _response = self._client_wrapper.httpx_client.request(
312
290
  f"v1/groups/{jsonable_encoder(group_id)}",
313
- method="PUT",
314
- json={
315
- "agent_ids": agent_ids,
316
- "description": description,
317
- "manager_config": convert_and_respect_annotation_metadata(
318
- object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
319
- ),
320
- "shared_block_ids": shared_block_ids,
321
- },
322
- headers={
323
- "content-type": "application/json",
324
- "X-Project": str(project) if project is not None else None,
325
- },
291
+ method="DELETE",
326
292
  request_options=request_options,
327
- omit=OMIT,
328
293
  )
329
294
  try:
330
295
  if 200 <= _response.status_code < 300:
331
296
  return typing.cast(
332
- Group,
297
+ typing.Optional[typing.Any],
333
298
  construct_type(
334
- type_=Group, # type: ignore
299
+ type_=typing.Optional[typing.Any], # type: ignore
335
300
  object_=_response.json(),
336
301
  ),
337
302
  )
@@ -350,22 +315,44 @@ class GroupsClient:
350
315
  raise ApiError(status_code=_response.status_code, body=_response.text)
351
316
  raise ApiError(status_code=_response.status_code, body=_response_json)
352
317
 
353
- def delete(
354
- self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
355
- ) -> typing.Optional[typing.Any]:
318
+ def modify(
319
+ self,
320
+ group_id: str,
321
+ *,
322
+ project: typing.Optional[str] = None,
323
+ agent_ids: typing.Optional[typing.Sequence[str]] = OMIT,
324
+ description: typing.Optional[str] = OMIT,
325
+ manager_config: typing.Optional[GroupUpdateManagerConfig] = OMIT,
326
+ shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
327
+ request_options: typing.Optional[RequestOptions] = None,
328
+ ) -> Group:
356
329
  """
357
- Delete a multi-agent group.
330
+ Create a new multi-agent group with the specified configuration.
358
331
 
359
332
  Parameters
360
333
  ----------
361
334
  group_id : str
362
335
 
336
+ project : typing.Optional[str]
337
+
338
+ agent_ids : typing.Optional[typing.Sequence[str]]
339
+
340
+
341
+ description : typing.Optional[str]
342
+
343
+
344
+ manager_config : typing.Optional[GroupUpdateManagerConfig]
345
+
346
+
347
+ shared_block_ids : typing.Optional[typing.Sequence[str]]
348
+
349
+
363
350
  request_options : typing.Optional[RequestOptions]
364
351
  Request-specific configuration.
365
352
 
366
353
  Returns
367
354
  -------
368
- typing.Optional[typing.Any]
355
+ Group
369
356
  Successful Response
370
357
 
371
358
  Examples
@@ -375,21 +362,34 @@ class GroupsClient:
375
362
  client = Letta(
376
363
  token="YOUR_TOKEN",
377
364
  )
378
- client.groups.delete(
365
+ client.groups.modify(
379
366
  group_id="group_id",
380
367
  )
381
368
  """
382
369
  _response = self._client_wrapper.httpx_client.request(
383
370
  f"v1/groups/{jsonable_encoder(group_id)}",
384
- method="DELETE",
371
+ method="PATCH",
372
+ json={
373
+ "agent_ids": agent_ids,
374
+ "description": description,
375
+ "manager_config": convert_and_respect_annotation_metadata(
376
+ object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
377
+ ),
378
+ "shared_block_ids": shared_block_ids,
379
+ },
380
+ headers={
381
+ "content-type": "application/json",
382
+ "X-Project": str(project) if project is not None else None,
383
+ },
385
384
  request_options=request_options,
385
+ omit=OMIT,
386
386
  )
387
387
  try:
388
388
  if 200 <= _response.status_code < 300:
389
389
  return typing.cast(
390
- typing.Optional[typing.Any],
390
+ Group,
391
391
  construct_type(
392
- type_=typing.Optional[typing.Any], # type: ignore
392
+ type_=Group, # type: ignore
393
393
  object_=_response.json(),
394
394
  ),
395
395
  )
@@ -408,43 +408,6 @@ class GroupsClient:
408
408
  raise ApiError(status_code=_response.status_code, body=_response.text)
409
409
  raise ApiError(status_code=_response.status_code, body=_response_json)
410
410
 
411
- def modify(self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
412
- """
413
- Parameters
414
- ----------
415
- group_id : str
416
-
417
- request_options : typing.Optional[RequestOptions]
418
- Request-specific configuration.
419
-
420
- Returns
421
- -------
422
- None
423
-
424
- Examples
425
- --------
426
- from letta_client import Letta
427
-
428
- client = Letta(
429
- token="YOUR_TOKEN",
430
- )
431
- client.groups.modify(
432
- group_id="group_id",
433
- )
434
- """
435
- _response = self._client_wrapper.httpx_client.request(
436
- f"v1/groups/{jsonable_encoder(group_id)}",
437
- method="PATCH",
438
- request_options=request_options,
439
- )
440
- try:
441
- if 200 <= _response.status_code < 300:
442
- return
443
- _response_json = _response.json()
444
- except JSONDecodeError:
445
- raise ApiError(status_code=_response.status_code, body=_response.text)
446
- raise ApiError(status_code=_response.status_code, body=_response_json)
447
-
448
411
  def reset_messages(
449
412
  self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
450
413
  ) -> typing.Optional[typing.Any]:
@@ -763,44 +726,22 @@ class AsyncGroupsClient:
763
726
  raise ApiError(status_code=_response.status_code, body=_response.text)
764
727
  raise ApiError(status_code=_response.status_code, body=_response_json)
765
728
 
766
- async def modify_group(
767
- self,
768
- group_id: str,
769
- *,
770
- project: typing.Optional[str] = None,
771
- agent_ids: typing.Optional[typing.Sequence[str]] = OMIT,
772
- description: typing.Optional[str] = OMIT,
773
- manager_config: typing.Optional[GroupUpdateManagerConfig] = OMIT,
774
- shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
775
- request_options: typing.Optional[RequestOptions] = None,
776
- ) -> Group:
729
+ async def delete(
730
+ self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
731
+ ) -> typing.Optional[typing.Any]:
777
732
  """
778
- Create a new multi-agent group with the specified configuration.
733
+ Delete a multi-agent group.
779
734
 
780
735
  Parameters
781
736
  ----------
782
737
  group_id : str
783
738
 
784
- project : typing.Optional[str]
785
-
786
- agent_ids : typing.Optional[typing.Sequence[str]]
787
-
788
-
789
- description : typing.Optional[str]
790
-
791
-
792
- manager_config : typing.Optional[GroupUpdateManagerConfig]
793
-
794
-
795
- shared_block_ids : typing.Optional[typing.Sequence[str]]
796
-
797
-
798
739
  request_options : typing.Optional[RequestOptions]
799
740
  Request-specific configuration.
800
741
 
801
742
  Returns
802
743
  -------
803
- Group
744
+ typing.Optional[typing.Any]
804
745
  Successful Response
805
746
 
806
747
  Examples
@@ -815,7 +756,7 @@ class AsyncGroupsClient:
815
756
 
816
757
 
817
758
  async def main() -> None:
818
- await client.groups.modify_group(
759
+ await client.groups.delete(
819
760
  group_id="group_id",
820
761
  )
821
762
 
@@ -824,28 +765,15 @@ class AsyncGroupsClient:
824
765
  """
825
766
  _response = await self._client_wrapper.httpx_client.request(
826
767
  f"v1/groups/{jsonable_encoder(group_id)}",
827
- method="PUT",
828
- json={
829
- "agent_ids": agent_ids,
830
- "description": description,
831
- "manager_config": convert_and_respect_annotation_metadata(
832
- object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
833
- ),
834
- "shared_block_ids": shared_block_ids,
835
- },
836
- headers={
837
- "content-type": "application/json",
838
- "X-Project": str(project) if project is not None else None,
839
- },
768
+ method="DELETE",
840
769
  request_options=request_options,
841
- omit=OMIT,
842
770
  )
843
771
  try:
844
772
  if 200 <= _response.status_code < 300:
845
773
  return typing.cast(
846
- Group,
774
+ typing.Optional[typing.Any],
847
775
  construct_type(
848
- type_=Group, # type: ignore
776
+ type_=typing.Optional[typing.Any], # type: ignore
849
777
  object_=_response.json(),
850
778
  ),
851
779
  )
@@ -864,22 +792,44 @@ class AsyncGroupsClient:
864
792
  raise ApiError(status_code=_response.status_code, body=_response.text)
865
793
  raise ApiError(status_code=_response.status_code, body=_response_json)
866
794
 
867
- async def delete(
868
- self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
869
- ) -> typing.Optional[typing.Any]:
795
+ async def modify(
796
+ self,
797
+ group_id: str,
798
+ *,
799
+ project: typing.Optional[str] = None,
800
+ agent_ids: typing.Optional[typing.Sequence[str]] = OMIT,
801
+ description: typing.Optional[str] = OMIT,
802
+ manager_config: typing.Optional[GroupUpdateManagerConfig] = OMIT,
803
+ shared_block_ids: typing.Optional[typing.Sequence[str]] = OMIT,
804
+ request_options: typing.Optional[RequestOptions] = None,
805
+ ) -> Group:
870
806
  """
871
- Delete a multi-agent group.
807
+ Create a new multi-agent group with the specified configuration.
872
808
 
873
809
  Parameters
874
810
  ----------
875
811
  group_id : str
876
812
 
813
+ project : typing.Optional[str]
814
+
815
+ agent_ids : typing.Optional[typing.Sequence[str]]
816
+
817
+
818
+ description : typing.Optional[str]
819
+
820
+
821
+ manager_config : typing.Optional[GroupUpdateManagerConfig]
822
+
823
+
824
+ shared_block_ids : typing.Optional[typing.Sequence[str]]
825
+
826
+
877
827
  request_options : typing.Optional[RequestOptions]
878
828
  Request-specific configuration.
879
829
 
880
830
  Returns
881
831
  -------
882
- typing.Optional[typing.Any]
832
+ Group
883
833
  Successful Response
884
834
 
885
835
  Examples
@@ -894,7 +844,7 @@ class AsyncGroupsClient:
894
844
 
895
845
 
896
846
  async def main() -> None:
897
- await client.groups.delete(
847
+ await client.groups.modify(
898
848
  group_id="group_id",
899
849
  )
900
850
 
@@ -903,15 +853,28 @@ class AsyncGroupsClient:
903
853
  """
904
854
  _response = await self._client_wrapper.httpx_client.request(
905
855
  f"v1/groups/{jsonable_encoder(group_id)}",
906
- method="DELETE",
856
+ method="PATCH",
857
+ json={
858
+ "agent_ids": agent_ids,
859
+ "description": description,
860
+ "manager_config": convert_and_respect_annotation_metadata(
861
+ object_=manager_config, annotation=GroupUpdateManagerConfig, direction="write"
862
+ ),
863
+ "shared_block_ids": shared_block_ids,
864
+ },
865
+ headers={
866
+ "content-type": "application/json",
867
+ "X-Project": str(project) if project is not None else None,
868
+ },
907
869
  request_options=request_options,
870
+ omit=OMIT,
908
871
  )
909
872
  try:
910
873
  if 200 <= _response.status_code < 300:
911
874
  return typing.cast(
912
- typing.Optional[typing.Any],
875
+ Group,
913
876
  construct_type(
914
- type_=typing.Optional[typing.Any], # type: ignore
877
+ type_=Group, # type: ignore
915
878
  object_=_response.json(),
916
879
  ),
917
880
  )
@@ -930,51 +893,6 @@ class AsyncGroupsClient:
930
893
  raise ApiError(status_code=_response.status_code, body=_response.text)
931
894
  raise ApiError(status_code=_response.status_code, body=_response_json)
932
895
 
933
- async def modify(self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
934
- """
935
- Parameters
936
- ----------
937
- group_id : str
938
-
939
- request_options : typing.Optional[RequestOptions]
940
- Request-specific configuration.
941
-
942
- Returns
943
- -------
944
- None
945
-
946
- Examples
947
- --------
948
- import asyncio
949
-
950
- from letta_client import AsyncLetta
951
-
952
- client = AsyncLetta(
953
- token="YOUR_TOKEN",
954
- )
955
-
956
-
957
- async def main() -> None:
958
- await client.groups.modify(
959
- group_id="group_id",
960
- )
961
-
962
-
963
- asyncio.run(main())
964
- """
965
- _response = await self._client_wrapper.httpx_client.request(
966
- f"v1/groups/{jsonable_encoder(group_id)}",
967
- method="PATCH",
968
- request_options=request_options,
969
- )
970
- try:
971
- if 200 <= _response.status_code < 300:
972
- return
973
- _response_json = _response.json()
974
- except JSONDecodeError:
975
- raise ApiError(status_code=_response.status_code, body=_response.text)
976
- raise ApiError(status_code=_response.status_code, body=_response_json)
977
-
978
896
  async def reset_messages(
979
897
  self, group_id: str, *, request_options: typing.Optional[RequestOptions] = None
980
898
  ) -> typing.Optional[typing.Any]:
@@ -150,6 +150,7 @@ from .organization_create import OrganizationCreate
150
150
  from .organization_update import OrganizationUpdate
151
151
  from .parameter_properties import ParameterProperties
152
152
  from .parameters_schema import ParametersSchema
153
+ from .parent_tool_rule import ParentToolRule
153
154
  from .passage import Passage
154
155
  from .pip_requirement import PipRequirement
155
156
  from .provider import Provider
@@ -363,6 +364,7 @@ __all__ = [
363
364
  "OrganizationUpdate",
364
365
  "ParameterProperties",
365
366
  "ParametersSchema",
367
+ "ParentToolRule",
366
368
  "Passage",
367
369
  "PipRequirement",
368
370
  "Provider",
@@ -6,8 +6,15 @@ from .child_tool_rule import ChildToolRule
6
6
  from .continue_tool_rule import ContinueToolRule
7
7
  from .terminal_tool_rule import TerminalToolRule
8
8
  from .max_count_per_step_tool_rule import MaxCountPerStepToolRule
9
+ from .parent_tool_rule import ParentToolRule
9
10
  from .init_tool_rule import InitToolRule
10
11
 
11
12
  AgentStateToolRulesItem = typing.Union[
12
- ConditionalToolRule, ChildToolRule, ContinueToolRule, TerminalToolRule, MaxCountPerStepToolRule, InitToolRule
13
+ ConditionalToolRule,
14
+ ChildToolRule,
15
+ ContinueToolRule,
16
+ TerminalToolRule,
17
+ MaxCountPerStepToolRule,
18
+ ParentToolRule,
19
+ InitToolRule,
13
20
  ]
@@ -0,0 +1,32 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ from ..core.unchecked_base_model import UncheckedBaseModel
4
+ import pydantic
5
+ import typing
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2
7
+
8
+
9
+ class ParentToolRule(UncheckedBaseModel):
10
+ """
11
+ A ToolRule that only allows a child tool to be called if the parent has been called.
12
+ """
13
+
14
+ tool_name: str = pydantic.Field()
15
+ """
16
+ The name of the tool. Must exist in the database for the user's organization.
17
+ """
18
+
19
+ type: typing.Literal["parent_last_tool"] = "parent_last_tool"
20
+ children: typing.List[str] = pydantic.Field()
21
+ """
22
+ The children tools that can be invoked.
23
+ """
24
+
25
+ if IS_PYDANTIC_V2:
26
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
27
+ else:
28
+
29
+ class Config:
30
+ frozen = True
31
+ smart_union = True
32
+ extra = pydantic.Extra.allow
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-client
3
- Version: 0.1.102
3
+ Version: 0.1.104
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=9uCx4KMFIArh1ADJkT-Yqzkf09Y1xlzXBdNlb4Gc7ak,14271
1
+ letta_client/__init__.py,sha256=7ugIsCugujtSzOf2YYd4uZNYLJ5Mckl96-3PvjSkjdc,14313
2
2
  letta_client/agents/__init__.py,sha256=CveigJGrnkw3yZ8S9yZ2DpK1HV0v1fU-khsiLJJ0uaU,1452
3
3
  letta_client/agents/blocks/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
4
4
  letta_client/agents/blocks/client.py,sha256=u5zvutxoH_DqfSLWhRtNSRBC9_ezQDx682cxkxDz3JA,23822
@@ -36,15 +36,15 @@ letta_client/agents/types/agents_search_request_search_item_operator.py,sha256=q
36
36
  letta_client/agents/types/agents_search_request_search_item_two.py,sha256=YBC-rhz_ToN948VyRy5VB1yT4JqtYcLD_V9hNrkgnfQ,690
37
37
  letta_client/agents/types/agents_search_request_search_item_zero.py,sha256=tGjwnFqSofFMBSAogmPLEflDQZ2rMqoMfFUtaIpND18,630
38
38
  letta_client/agents/types/agents_search_response.py,sha256=AQJVKps-bjCx2ujqESzW1Iy9ZYFS17hH_UFIeBeK4S8,815
39
- letta_client/agents/types/create_agent_request_tool_rules_item.py,sha256=P5vANIz2x0rWUAqHIgbXNA03fuTtJ8sWYimldw3NEnI,595
40
- letta_client/agents/types/update_agent_tool_rules_item.py,sha256=O0W83nOK8oMx_6NI8AWwUHTWH9X5QQ3JfpkqW8b9h_I,588
39
+ letta_client/agents/types/create_agent_request_tool_rules_item.py,sha256=L3FNsFTG9kVmuPbQhbCKNg3H2E5bB2Rgp92gWmGd-LM,689
40
+ letta_client/agents/types/update_agent_tool_rules_item.py,sha256=k9MmcVPsK-EGl8XlT3JQwdlBNLgpGw528jmi8fCFS7g,682
41
41
  letta_client/base_client.py,sha256=bF1nEcPGrhNqelaWz3DgROYdroGsBFCjpAHHri0uq7I,8629
42
42
  letta_client/blocks/__init__.py,sha256=FTtvy8EDg9nNNg9WCatVgKTRYV8-_v1roeGPAKoa_pw,65
43
43
  letta_client/blocks/client.py,sha256=LE9dsHaBxFLC3G035f0VpNDG7XKWRK8y9OXpeFCMvUw,30082
44
44
  letta_client/client.py,sha256=k2mZqqEWciVmEQHgipjCK4kQILk74hpSqzcdNwdql9A,21212
45
45
  letta_client/core/__init__.py,sha256=OKbX2aCZXgHCDUsCouqv-OiX32xA6eFFCKIUH9M5Vzk,1591
46
46
  letta_client/core/api_error.py,sha256=RE8LELok2QCjABadECTvtDp7qejA1VmINCh6TbqPwSE,426
47
- letta_client/core/client_wrapper.py,sha256=zbdOYMyMq14fGL5Fd7kALrelcto87WM0_es2CoS5Pj4,1998
47
+ letta_client/core/client_wrapper.py,sha256=B7vt266a3GogaLzku8AJkTxYRR5sGmq5oRZ2hHlsabo,1998
48
48
  letta_client/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
49
49
  letta_client/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
50
50
  letta_client/core/http_client.py,sha256=Z77OIxIbL4OAB2IDqjRq_sYa5yNYAWfmdhdCSSvh6Y4,19552
@@ -62,7 +62,7 @@ letta_client/errors/internal_server_error.py,sha256=8USCagXyJJ1MOm9snpcXIUt6eNXv
62
62
  letta_client/errors/not_found_error.py,sha256=tBVCeBC8n3C811WHRj_n-hs3h8MqwR5gp0vLiobk7W8,262
63
63
  letta_client/errors/unprocessable_entity_error.py,sha256=FvR7XPlV3Xx5nu8HNlmLhBRdk4so_gCHjYT5PyZe6sM,313
64
64
  letta_client/groups/__init__.py,sha256=WzkNp5Q_5zQj_NHv4hJCOKvW6ftM9EuNxw8hkPRRbko,434
65
- letta_client/groups/client.py,sha256=xLzVug9u7wKJh0sfQln9Ybi58q__G97mJ8u_LE2z0r8,32761
65
+ letta_client/groups/client.py,sha256=atIHiSTR_nvOVWMZYAcBh1j9tjTnMxaYK7l7F7SzYS0,30447
66
66
  letta_client/groups/messages/__init__.py,sha256=M7Ar6Rmb8we4dfYE6jj3FCL9UvVFy1bNQIPflUXMWHA,243
67
67
  letta_client/groups/messages/client.py,sha256=qI2l8wT_qZ1Ou_ZweOjduTKcLbpbpMg1P0s4lfnWXlE,29644
68
68
  letta_client/groups/messages/types/__init__.py,sha256=Oc2j0oGOs96IEFf9xsJIkjBjoq3OMtse64YwWv3F9Io,335
@@ -106,7 +106,7 @@ letta_client/tools/types/add_mcp_server_request.py,sha256=EieZjfOT95sjkpxXdqy7gl
106
106
  letta_client/tools/types/add_mcp_server_response_item.py,sha256=TWdsKqGb1INhYtpGnAckz0Pw4nZShumSp4pfocRfxCA,270
107
107
  letta_client/tools/types/delete_mcp_server_response_item.py,sha256=MeZObU-7tMSCd-S5yuUjNDse6A1hUz1LLjbko0pXaro,273
108
108
  letta_client/tools/types/list_mcp_servers_response_value.py,sha256=AIoXu4bO8QNSU7zjL1jj0Rg4313wVtPaTt13W0aevLQ,273
109
- letta_client/types/__init__.py,sha256=mvsrVjScPnFriGz71-UsgicwQqMfPZeU0YDscVQ72QU,19156
109
+ letta_client/types/__init__.py,sha256=wvEXDQXF3Dx66mFVxP3Upy57HA9c6aHmDRxJqsvURJA,19223
110
110
  letta_client/types/action_model.py,sha256=y1e2XMv3skFaNJIBdYoBKgiORzGh05aOVvu-qVR9uHg,1240
111
111
  letta_client/types/action_parameters_model.py,sha256=LgKf5aPZG3-OHGxFdXiSokIDgce8c02xPYIAY05VgW8,828
112
112
  letta_client/types/action_response_model.py,sha256=yq2Fd9UU8j7vvtE3VqXUoRRvDzWcfJPj_95ynGdeHCs,824
@@ -114,7 +114,7 @@ letta_client/types/agent_environment_variable.py,sha256=vutZLcR0yETltgOZ7E_o9kR4
114
114
  letta_client/types/agent_schema.py,sha256=uTSjFAsnEYdOX-PRD2vHbn69JBe8GKbctvlDOP85k_U,1784
115
115
  letta_client/types/agent_schema_tool_rules_item.py,sha256=TTP7uKYPSe-EAl4p03j0Kd-W9tG5T6gfaWIUBAOVv9U,482
116
116
  letta_client/types/agent_state.py,sha256=8HlqbdcES-fgdk_rRCoStUoeJo0AWH0L1Vkri8IHpLc,5366
117
- letta_client/types/agent_state_tool_rules_item.py,sha256=jrcYmhULwLq704i85rCxW2GJLdz8XnBK0HxBLSkgs6k,539
117
+ letta_client/types/agent_state_tool_rules_item.py,sha256=WB-N4uyDTfhYBjQYDcLZDxDj73Xu1mQasBkdofUM-XU,625
118
118
  letta_client/types/agent_type.py,sha256=ywCn-ii7Xu0-N1tkK7oQaONlx42wcTVB-8oP71fNbw0,190
119
119
  letta_client/types/app_auth_scheme.py,sha256=_6FLlw3drQ3HDSP9SecStBwQyE0DgL6UvKFArCC4yp8,1242
120
120
  letta_client/types/app_auth_scheme_auth_mode.py,sha256=cEj9XAxLgFcang_Irw6h3koWac9A0tpNeBG05NUeGlw,387
@@ -253,6 +253,7 @@ letta_client/types/organization_create.py,sha256=qi37VLCejxTYpJe9gC1slhENIdz6B4D
253
253
  letta_client/types/organization_update.py,sha256=uCQAcWm8az3VbMtCEidPBZLh6Qyo4Z0FQco1Hdrk4LY,814
254
254
  letta_client/types/parameter_properties.py,sha256=KVQGp_csoiNzyf9XsL083fwlX_a2Tc8GsCKyWB323C8,609
255
255
  letta_client/types/parameters_schema.py,sha256=ptXcwjuaCwqRhfizeiWAsu3pqT87Jcj_P3YaEkL4asM,748
256
+ letta_client/types/parent_tool_rule.py,sha256=zPTfn5epS8spEIw71HUbbSX2KYxlIPB-cGJ52UQmQ_M,964
256
257
  letta_client/types/passage.py,sha256=1OM19TyVCQEL1P3BC58hmzWfawZM4vejiKr0P11dOUk,3034
257
258
  letta_client/types/pip_requirement.py,sha256=Hmh7VpJhdSfFkafh6QwAehCp0MQUBXv1YAoYP-2wV2M,773
258
259
  letta_client/types/provider.py,sha256=RvdE9dzGFJ4hcmyvk2xeO7RNpxQvXhB_S9DNy8t_z-E,1053
@@ -323,6 +324,6 @@ letta_client/voice/__init__.py,sha256=7hX85553PiRMtIMM12a0DSoFzsglNiUziYR2ekS84Q
323
324
  letta_client/voice/client.py,sha256=STjswa5oOLoP59QwTJvQwi73kgn0UzKOaXc2CsTRI4k,6912
324
325
  letta_client/voice/types/__init__.py,sha256=FRc3iKRTONE4N8Lf1IqvnqWZ2kXdrFFvkL7PxVcR8Ew,212
325
326
  letta_client/voice/types/create_voice_chat_completions_request_body.py,sha256=ZLfKgNK1T6IAwLEvaBVFfy7jEAoPUXP28n-nfmHkklc,391
326
- letta_client-0.1.102.dist-info/METADATA,sha256=wCvf_HkjoSWGFWWxPJ2eertlZHQFycSb09zRlZeV5hw,5042
327
- letta_client-0.1.102.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
328
- letta_client-0.1.102.dist-info/RECORD,,
327
+ letta_client-0.1.104.dist-info/METADATA,sha256=hSEHa7e85qXoliBmEz2_RTAHaFvZN94_uxjz4uZ5fCw,5042
328
+ letta_client-0.1.104.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
329
+ letta_client-0.1.104.dist-info/RECORD,,