letta-client 0.1.16__py3-none-any.whl → 0.1.19__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.
Files changed (104) hide show
  1. letta_client/__init__.py +34 -120
  2. letta_client/agents/__init__.py +18 -54
  3. letta_client/agents/archival_memory/client.py +25 -343
  4. letta_client/agents/client.py +1640 -347
  5. letta_client/agents/context/client.py +6 -4
  6. letta_client/agents/core_memory/client.py +95 -624
  7. letta_client/agents/memory_variables/__init__.py +2 -2
  8. letta_client/agents/memory_variables/client.py +15 -15
  9. letta_client/agents/memory_variables/types/__init__.py +2 -2
  10. letta_client/agents/memory_variables/types/{memory_variables_get_response.py → memory_variables_list_response.py} +1 -1
  11. letta_client/agents/messages/__init__.py +2 -22
  12. letta_client/agents/messages/client.py +32 -38
  13. letta_client/agents/messages/types/__init__.py +2 -21
  14. letta_client/agents/messages/types/letta_streaming_response.py +16 -139
  15. letta_client/agents/messages/types/messages_list_response.py +2 -2
  16. letta_client/agents/sources/client.py +266 -5
  17. letta_client/agents/tools/client.py +25 -27
  18. letta_client/agents/types/__init__.py +15 -25
  19. letta_client/agents/types/agents_search_request_search_item.py +10 -78
  20. letta_client/agents/types/{agents_search_request_search_item_order_by.py → agents_search_request_search_item_direction.py} +7 -6
  21. letta_client/agents/types/agents_search_request_search_item_direction_direction.py +5 -0
  22. letta_client/agents/types/agents_search_request_search_item_direction_value.py +5 -0
  23. letta_client/agents/types/{agents_search_request_search_item_name.py → agents_search_request_search_item_one.py} +5 -4
  24. letta_client/agents/types/agents_search_request_search_item_one_operator.py +5 -0
  25. letta_client/agents/types/{agents_search_request_search_item_tags.py → agents_search_request_search_item_two.py} +2 -1
  26. letta_client/agents/types/{agents_search_request_search_item_version.py → agents_search_request_search_item_zero.py} +3 -2
  27. letta_client/blocks/client.py +12 -260
  28. letta_client/client.py +3 -3
  29. letta_client/core/client_wrapper.py +1 -1
  30. letta_client/jobs/client.py +4 -4
  31. letta_client/providers/client.py +74 -74
  32. letta_client/runs/client.py +14 -12
  33. letta_client/sources/client.py +12 -288
  34. letta_client/tools/client.py +63 -189
  35. letta_client/types/__init__.py +21 -103
  36. letta_client/types/agent_state.py +3 -7
  37. letta_client/types/{assistant_message_output.py → assistant_message.py} +3 -2
  38. letta_client/types/block.py +2 -6
  39. letta_client/types/block_update.py +1 -5
  40. letta_client/types/{archival_memory_summary.py → chat_completion_message_tool_call.py} +7 -7
  41. letta_client/types/context_window_overview.py +4 -6
  42. letta_client/types/create_block.py +1 -5
  43. letta_client/types/embedding_config_embedding_endpoint_type.py +1 -0
  44. letta_client/types/{function_call_output.py → function.py} +1 -1
  45. letta_client/types/{function_schema.py → function_definition.py} +2 -1
  46. letta_client/types/{create_assistant_file_request.py → function_tool.py} +6 -7
  47. letta_client/types/job.py +1 -5
  48. letta_client/types/letta_message_union.py +9 -121
  49. letta_client/types/letta_usage_statistics.py +1 -0
  50. letta_client/types/llm_config_model_endpoint_type.py +1 -0
  51. letta_client/types/{letta_schemas_message_message.py → message.py} +9 -6
  52. letta_client/types/passage.py +1 -5
  53. letta_client/types/reasoning_message.py +2 -1
  54. letta_client/types/run.py +1 -5
  55. letta_client/types/source.py +2 -6
  56. letta_client/types/{system_message_output.py → system_message.py} +3 -2
  57. letta_client/types/{letta_schemas_tool_tool.py → tool.py} +1 -1
  58. letta_client/types/{letta_schemas_letta_message_tool_call.py → tool_call.py} +1 -1
  59. letta_client/types/tool_call_message.py +2 -1
  60. letta_client/types/tool_call_message_tool_call.py +2 -2
  61. letta_client/types/tool_return_message.py +2 -1
  62. letta_client/types/tool_type.py +2 -1
  63. letta_client/types/{user_message_output.py → user_message.py} +3 -2
  64. {letta_client-0.1.16.dist-info → letta_client-0.1.19.dist-info}/METADATA +2 -2
  65. {letta_client-0.1.16.dist-info → letta_client-0.1.19.dist-info}/RECORD +66 -101
  66. letta_client/agents/recall_memory/__init__.py +0 -2
  67. letta_client/agents/recall_memory/client.py +0 -147
  68. letta_client/agents/types/agents_search_request_search_item_name_operator.py +0 -5
  69. letta_client/agents/types/agents_search_request_search_item_order_by_direction.py +0 -5
  70. letta_client/agents/types/agents_search_request_search_item_order_by_value.py +0 -5
  71. letta_client/types/assistant_file.py +0 -33
  72. letta_client/types/assistant_message_input.py +0 -23
  73. letta_client/types/chat_completion_request.py +0 -49
  74. letta_client/types/chat_completion_request_function_call.py +0 -6
  75. letta_client/types/chat_completion_request_messages_item.py +0 -11
  76. letta_client/types/chat_completion_request_stop.py +0 -5
  77. letta_client/types/chat_completion_request_tool_choice.py +0 -8
  78. letta_client/types/chat_completion_response.py +0 -32
  79. letta_client/types/choice.py +0 -25
  80. letta_client/types/create_assistant_request.py +0 -57
  81. letta_client/types/delete_assistant_file_response.py +0 -28
  82. letta_client/types/delete_assistant_response.py +0 -28
  83. letta_client/types/function_call_input.py +0 -19
  84. letta_client/types/letta_schemas_openai_chat_completion_request_tool.py +0 -21
  85. letta_client/types/letta_schemas_openai_chat_completion_request_tool_call.py +0 -24
  86. letta_client/types/letta_schemas_openai_chat_completion_request_tool_call_function.py +0 -20
  87. letta_client/types/letta_schemas_openai_chat_completion_response_message.py +0 -24
  88. letta_client/types/letta_schemas_openai_chat_completion_response_tool_call.py +0 -22
  89. letta_client/types/letta_schemas_openai_chat_completions_tool_call_function.py +0 -27
  90. letta_client/types/letta_schemas_openai_chat_completions_tool_call_input.py +0 -29
  91. letta_client/types/letta_schemas_openai_chat_completions_tool_call_output.py +0 -29
  92. letta_client/types/log_prob_token.py +0 -21
  93. letta_client/types/message_content_log_prob.py +0 -23
  94. letta_client/types/open_ai_assistant.py +0 -67
  95. letta_client/types/recall_memory_summary.py +0 -22
  96. letta_client/types/response_format.py +0 -19
  97. letta_client/types/system_message_input.py +0 -21
  98. letta_client/types/tool_call_function_output.py +0 -27
  99. letta_client/types/tool_function_choice.py +0 -21
  100. letta_client/types/tool_input.py +0 -21
  101. letta_client/types/tool_message.py +0 -21
  102. letta_client/types/user_message_input.py +0 -22
  103. letta_client/types/user_message_input_content.py +0 -5
  104. {letta_client-0.1.16.dist-info → letta_client-0.1.19.dist-info}/WHEEL +0 -0
@@ -28,7 +28,7 @@ class SourcesClient:
28
28
  self.files = FilesClient(client_wrapper=self._client_wrapper)
29
29
  self.passages = PassagesClient(client_wrapper=self._client_wrapper)
30
30
 
31
- def get(self, source_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Source:
31
+ def retrieve(self, source_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Source:
32
32
  """
33
33
  Get all sources
34
34
 
@@ -51,7 +51,7 @@ class SourcesClient:
51
51
  client = Letta(
52
52
  token="YOUR_TOKEN",
53
53
  )
54
- client.sources.get(
54
+ client.sources.retrieve(
55
55
  source_id="source_id",
56
56
  )
57
57
  """
@@ -142,7 +142,7 @@ class SourcesClient:
142
142
  raise ApiError(status_code=_response.status_code, body=_response.text)
143
143
  raise ApiError(status_code=_response.status_code, body=_response_json)
144
144
 
145
- def update(
145
+ def modify(
146
146
  self,
147
147
  source_id: str,
148
148
  *,
@@ -186,7 +186,7 @@ class SourcesClient:
186
186
  client = Letta(
187
187
  token="YOUR_TOKEN",
188
188
  )
189
- client.sources.update(
189
+ client.sources.modify(
190
190
  source_id="source_id",
191
191
  )
192
192
  """
@@ -196,7 +196,7 @@ class SourcesClient:
196
196
  json={
197
197
  "name": name,
198
198
  "description": description,
199
- "metadata_": metadata,
199
+ "metadata": metadata,
200
200
  "embedding_config": convert_and_respect_annotation_metadata(
201
201
  object_=embedding_config, annotation=EmbeddingConfig, direction="write"
202
202
  ),
@@ -393,7 +393,7 @@ class SourcesClient:
393
393
  object_=embedding_config, annotation=EmbeddingConfig, direction="write"
394
394
  ),
395
395
  "description": description,
396
- "metadata_": metadata,
396
+ "metadata": metadata,
397
397
  },
398
398
  headers={
399
399
  "content-type": "application/json",
@@ -425,136 +425,6 @@ class SourcesClient:
425
425
  raise ApiError(status_code=_response.status_code, body=_response.text)
426
426
  raise ApiError(status_code=_response.status_code, body=_response_json)
427
427
 
428
- def attach(
429
- self, source_id: str, *, agent_id: str, request_options: typing.Optional[RequestOptions] = None
430
- ) -> Source:
431
- """
432
- Attach a data source to an existing agent.
433
-
434
- Parameters
435
- ----------
436
- source_id : str
437
-
438
- agent_id : str
439
- The unique identifier of the agent to attach the source to.
440
-
441
- request_options : typing.Optional[RequestOptions]
442
- Request-specific configuration.
443
-
444
- Returns
445
- -------
446
- Source
447
- Successful Response
448
-
449
- Examples
450
- --------
451
- from letta_client import Letta
452
-
453
- client = Letta(
454
- token="YOUR_TOKEN",
455
- )
456
- client.sources.attach(
457
- source_id="source_id",
458
- agent_id="agent_id",
459
- )
460
- """
461
- _response = self._client_wrapper.httpx_client.request(
462
- f"v1/sources/{jsonable_encoder(source_id)}/attach",
463
- method="POST",
464
- params={
465
- "agent_id": agent_id,
466
- },
467
- request_options=request_options,
468
- )
469
- try:
470
- if 200 <= _response.status_code < 300:
471
- return typing.cast(
472
- Source,
473
- construct_type(
474
- type_=Source, # type: ignore
475
- object_=_response.json(),
476
- ),
477
- )
478
- if _response.status_code == 422:
479
- raise UnprocessableEntityError(
480
- typing.cast(
481
- HttpValidationError,
482
- construct_type(
483
- type_=HttpValidationError, # type: ignore
484
- object_=_response.json(),
485
- ),
486
- )
487
- )
488
- _response_json = _response.json()
489
- except JSONDecodeError:
490
- raise ApiError(status_code=_response.status_code, body=_response.text)
491
- raise ApiError(status_code=_response.status_code, body=_response_json)
492
-
493
- def detach(
494
- self, source_id: str, *, agent_id: str, request_options: typing.Optional[RequestOptions] = None
495
- ) -> Source:
496
- """
497
- Detach a data source from an existing agent.
498
-
499
- Parameters
500
- ----------
501
- source_id : str
502
-
503
- agent_id : str
504
- The unique identifier of the agent to detach the source from.
505
-
506
- request_options : typing.Optional[RequestOptions]
507
- Request-specific configuration.
508
-
509
- Returns
510
- -------
511
- Source
512
- Successful Response
513
-
514
- Examples
515
- --------
516
- from letta_client import Letta
517
-
518
- client = Letta(
519
- token="YOUR_TOKEN",
520
- )
521
- client.sources.detach(
522
- source_id="source_id",
523
- agent_id="agent_id",
524
- )
525
- """
526
- _response = self._client_wrapper.httpx_client.request(
527
- f"v1/sources/{jsonable_encoder(source_id)}/detach",
528
- method="POST",
529
- params={
530
- "agent_id": agent_id,
531
- },
532
- request_options=request_options,
533
- )
534
- try:
535
- if 200 <= _response.status_code < 300:
536
- return typing.cast(
537
- Source,
538
- construct_type(
539
- type_=Source, # type: ignore
540
- object_=_response.json(),
541
- ),
542
- )
543
- if _response.status_code == 422:
544
- raise UnprocessableEntityError(
545
- typing.cast(
546
- HttpValidationError,
547
- construct_type(
548
- type_=HttpValidationError, # type: ignore
549
- object_=_response.json(),
550
- ),
551
- )
552
- )
553
- _response_json = _response.json()
554
- except JSONDecodeError:
555
- raise ApiError(status_code=_response.status_code, body=_response.text)
556
- raise ApiError(status_code=_response.status_code, body=_response_json)
557
-
558
428
 
559
429
  class AsyncSourcesClient:
560
430
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
@@ -562,7 +432,7 @@ class AsyncSourcesClient:
562
432
  self.files = AsyncFilesClient(client_wrapper=self._client_wrapper)
563
433
  self.passages = AsyncPassagesClient(client_wrapper=self._client_wrapper)
564
434
 
565
- async def get(self, source_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Source:
435
+ async def retrieve(self, source_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> Source:
566
436
  """
567
437
  Get all sources
568
438
 
@@ -590,7 +460,7 @@ class AsyncSourcesClient:
590
460
 
591
461
 
592
462
  async def main() -> None:
593
- await client.sources.get(
463
+ await client.sources.retrieve(
594
464
  source_id="source_id",
595
465
  )
596
466
 
@@ -692,7 +562,7 @@ class AsyncSourcesClient:
692
562
  raise ApiError(status_code=_response.status_code, body=_response.text)
693
563
  raise ApiError(status_code=_response.status_code, body=_response_json)
694
564
 
695
- async def update(
565
+ async def modify(
696
566
  self,
697
567
  source_id: str,
698
568
  *,
@@ -741,7 +611,7 @@ class AsyncSourcesClient:
741
611
 
742
612
 
743
613
  async def main() -> None:
744
- await client.sources.update(
614
+ await client.sources.modify(
745
615
  source_id="source_id",
746
616
  )
747
617
 
@@ -754,7 +624,7 @@ class AsyncSourcesClient:
754
624
  json={
755
625
  "name": name,
756
626
  "description": description,
757
- "metadata_": metadata,
627
+ "metadata": metadata,
758
628
  "embedding_config": convert_and_respect_annotation_metadata(
759
629
  object_=embedding_config, annotation=EmbeddingConfig, direction="write"
760
630
  ),
@@ -975,7 +845,7 @@ class AsyncSourcesClient:
975
845
  object_=embedding_config, annotation=EmbeddingConfig, direction="write"
976
846
  ),
977
847
  "description": description,
978
- "metadata_": metadata,
848
+ "metadata": metadata,
979
849
  },
980
850
  headers={
981
851
  "content-type": "application/json",
@@ -1006,149 +876,3 @@ class AsyncSourcesClient:
1006
876
  except JSONDecodeError:
1007
877
  raise ApiError(status_code=_response.status_code, body=_response.text)
1008
878
  raise ApiError(status_code=_response.status_code, body=_response_json)
1009
-
1010
- async def attach(
1011
- self, source_id: str, *, agent_id: str, request_options: typing.Optional[RequestOptions] = None
1012
- ) -> Source:
1013
- """
1014
- Attach a data source to an existing agent.
1015
-
1016
- Parameters
1017
- ----------
1018
- source_id : str
1019
-
1020
- agent_id : str
1021
- The unique identifier of the agent to attach the source to.
1022
-
1023
- request_options : typing.Optional[RequestOptions]
1024
- Request-specific configuration.
1025
-
1026
- Returns
1027
- -------
1028
- Source
1029
- Successful Response
1030
-
1031
- Examples
1032
- --------
1033
- import asyncio
1034
-
1035
- from letta_client import AsyncLetta
1036
-
1037
- client = AsyncLetta(
1038
- token="YOUR_TOKEN",
1039
- )
1040
-
1041
-
1042
- async def main() -> None:
1043
- await client.sources.attach(
1044
- source_id="source_id",
1045
- agent_id="agent_id",
1046
- )
1047
-
1048
-
1049
- asyncio.run(main())
1050
- """
1051
- _response = await self._client_wrapper.httpx_client.request(
1052
- f"v1/sources/{jsonable_encoder(source_id)}/attach",
1053
- method="POST",
1054
- params={
1055
- "agent_id": agent_id,
1056
- },
1057
- request_options=request_options,
1058
- )
1059
- try:
1060
- if 200 <= _response.status_code < 300:
1061
- return typing.cast(
1062
- Source,
1063
- construct_type(
1064
- type_=Source, # type: ignore
1065
- object_=_response.json(),
1066
- ),
1067
- )
1068
- if _response.status_code == 422:
1069
- raise UnprocessableEntityError(
1070
- typing.cast(
1071
- HttpValidationError,
1072
- construct_type(
1073
- type_=HttpValidationError, # type: ignore
1074
- object_=_response.json(),
1075
- ),
1076
- )
1077
- )
1078
- _response_json = _response.json()
1079
- except JSONDecodeError:
1080
- raise ApiError(status_code=_response.status_code, body=_response.text)
1081
- raise ApiError(status_code=_response.status_code, body=_response_json)
1082
-
1083
- async def detach(
1084
- self, source_id: str, *, agent_id: str, request_options: typing.Optional[RequestOptions] = None
1085
- ) -> Source:
1086
- """
1087
- Detach a data source from an existing agent.
1088
-
1089
- Parameters
1090
- ----------
1091
- source_id : str
1092
-
1093
- agent_id : str
1094
- The unique identifier of the agent to detach the source from.
1095
-
1096
- request_options : typing.Optional[RequestOptions]
1097
- Request-specific configuration.
1098
-
1099
- Returns
1100
- -------
1101
- Source
1102
- Successful Response
1103
-
1104
- Examples
1105
- --------
1106
- import asyncio
1107
-
1108
- from letta_client import AsyncLetta
1109
-
1110
- client = AsyncLetta(
1111
- token="YOUR_TOKEN",
1112
- )
1113
-
1114
-
1115
- async def main() -> None:
1116
- await client.sources.detach(
1117
- source_id="source_id",
1118
- agent_id="agent_id",
1119
- )
1120
-
1121
-
1122
- asyncio.run(main())
1123
- """
1124
- _response = await self._client_wrapper.httpx_client.request(
1125
- f"v1/sources/{jsonable_encoder(source_id)}/detach",
1126
- method="POST",
1127
- params={
1128
- "agent_id": agent_id,
1129
- },
1130
- request_options=request_options,
1131
- )
1132
- try:
1133
- if 200 <= _response.status_code < 300:
1134
- return typing.cast(
1135
- Source,
1136
- construct_type(
1137
- type_=Source, # type: ignore
1138
- object_=_response.json(),
1139
- ),
1140
- )
1141
- if _response.status_code == 422:
1142
- raise UnprocessableEntityError(
1143
- typing.cast(
1144
- HttpValidationError,
1145
- construct_type(
1146
- type_=HttpValidationError, # type: ignore
1147
- object_=_response.json(),
1148
- ),
1149
- )
1150
- )
1151
- _response_json = _response.json()
1152
- except JSONDecodeError:
1153
- raise ApiError(status_code=_response.status_code, body=_response.text)
1154
- raise ApiError(status_code=_response.status_code, body=_response_json)