letta-client 0.1.319__py3-none-any.whl → 0.1.321__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 +39 -8
- 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 +39 -8
- 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 +16 -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 +16 -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 +16 -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.321.dist-info}/METADATA +9 -9
- {letta_client-0.1.319.dist-info → letta_client-0.1.321.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.321.dist-info}/WHEEL +0 -0
|
@@ -12,6 +12,7 @@ from ..core.serialization import convert_and_respect_annotation_metadata
|
|
|
12
12
|
from ..core.unchecked_base_model import construct_type
|
|
13
13
|
from ..errors.bad_request_error import BadRequestError
|
|
14
14
|
from ..errors.conflict_error import ConflictError
|
|
15
|
+
from ..errors.internal_server_error import InternalServerError
|
|
15
16
|
from ..errors.not_found_error import NotFoundError
|
|
16
17
|
from ..types.conflict_error_body import ConflictErrorBody
|
|
17
18
|
from .types.templates_create_template_request import TemplatesCreateTemplateRequest
|
|
@@ -22,8 +23,10 @@ from .types.templates_get_template_snapshot_response import TemplatesGetTemplate
|
|
|
22
23
|
from .types.templates_list_request_sort_by import TemplatesListRequestSortBy
|
|
23
24
|
from .types.templates_list_response import TemplatesListResponse
|
|
24
25
|
from .types.templates_list_template_versions_response import TemplatesListTemplateVersionsResponse
|
|
26
|
+
from .types.templates_migrate_deployment_response import TemplatesMigrateDeploymentResponse
|
|
25
27
|
from .types.templates_rename_template_response import TemplatesRenameTemplateResponse
|
|
26
28
|
from .types.templates_save_template_version_response import TemplatesSaveTemplateVersionResponse
|
|
29
|
+
from .types.templates_set_current_template_from_snapshot_response import TemplatesSetCurrentTemplateFromSnapshotResponse
|
|
27
30
|
from .types.templates_update_template_description_response import TemplatesUpdateTemplateDescriptionResponse
|
|
28
31
|
|
|
29
32
|
# this is used as the default value for optional parameters
|
|
@@ -299,6 +302,93 @@ class RawTemplatesClient:
|
|
|
299
302
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
300
303
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
301
304
|
|
|
305
|
+
def setcurrenttemplatefromsnapshot(
|
|
306
|
+
self,
|
|
307
|
+
project: str,
|
|
308
|
+
template_version: str,
|
|
309
|
+
*,
|
|
310
|
+
request: typing.Optional[typing.Any] = None,
|
|
311
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
312
|
+
) -> HttpResponse[TemplatesSetCurrentTemplateFromSnapshotResponse]:
|
|
313
|
+
"""
|
|
314
|
+
Updates the current working version of a template from a snapshot
|
|
315
|
+
|
|
316
|
+
Parameters
|
|
317
|
+
----------
|
|
318
|
+
project : str
|
|
319
|
+
The project slug
|
|
320
|
+
|
|
321
|
+
template_version : str
|
|
322
|
+
The template name with :current version (e.g., my-template:current)
|
|
323
|
+
|
|
324
|
+
request : typing.Optional[typing.Any]
|
|
325
|
+
|
|
326
|
+
request_options : typing.Optional[RequestOptions]
|
|
327
|
+
Request-specific configuration.
|
|
328
|
+
|
|
329
|
+
Returns
|
|
330
|
+
-------
|
|
331
|
+
HttpResponse[TemplatesSetCurrentTemplateFromSnapshotResponse]
|
|
332
|
+
200
|
|
333
|
+
"""
|
|
334
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
335
|
+
f"v1/templates/{jsonable_encoder(project)}/{jsonable_encoder(template_version)}/snapshot",
|
|
336
|
+
method="PUT",
|
|
337
|
+
json=request,
|
|
338
|
+
headers={
|
|
339
|
+
"content-type": "application/json",
|
|
340
|
+
},
|
|
341
|
+
request_options=request_options,
|
|
342
|
+
omit=OMIT,
|
|
343
|
+
)
|
|
344
|
+
try:
|
|
345
|
+
if 200 <= _response.status_code < 300:
|
|
346
|
+
_data = typing.cast(
|
|
347
|
+
TemplatesSetCurrentTemplateFromSnapshotResponse,
|
|
348
|
+
construct_type(
|
|
349
|
+
type_=TemplatesSetCurrentTemplateFromSnapshotResponse, # type: ignore
|
|
350
|
+
object_=_response.json(),
|
|
351
|
+
),
|
|
352
|
+
)
|
|
353
|
+
return HttpResponse(response=_response, data=_data)
|
|
354
|
+
if _response.status_code == 400:
|
|
355
|
+
raise BadRequestError(
|
|
356
|
+
headers=dict(_response.headers),
|
|
357
|
+
body=typing.cast(
|
|
358
|
+
typing.Optional[typing.Any],
|
|
359
|
+
construct_type(
|
|
360
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
361
|
+
object_=_response.json(),
|
|
362
|
+
),
|
|
363
|
+
),
|
|
364
|
+
)
|
|
365
|
+
if _response.status_code == 404:
|
|
366
|
+
raise NotFoundError(
|
|
367
|
+
headers=dict(_response.headers),
|
|
368
|
+
body=typing.cast(
|
|
369
|
+
typing.Optional[typing.Any],
|
|
370
|
+
construct_type(
|
|
371
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
372
|
+
object_=_response.json(),
|
|
373
|
+
),
|
|
374
|
+
),
|
|
375
|
+
)
|
|
376
|
+
if _response.status_code == 500:
|
|
377
|
+
raise InternalServerError(
|
|
378
|
+
headers=dict(_response.headers),
|
|
379
|
+
body=typing.cast(
|
|
380
|
+
typing.Optional[typing.Any],
|
|
381
|
+
construct_type(
|
|
382
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
383
|
+
object_=_response.json(),
|
|
384
|
+
),
|
|
385
|
+
),
|
|
386
|
+
)
|
|
387
|
+
_response_json = _response.json()
|
|
388
|
+
except JSONDecodeError:
|
|
389
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
390
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
391
|
+
|
|
302
392
|
def forktemplate(
|
|
303
393
|
self,
|
|
304
394
|
project: str,
|
|
@@ -666,6 +756,115 @@ class RawTemplatesClient:
|
|
|
666
756
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
667
757
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
668
758
|
|
|
759
|
+
def migratedeployment(
|
|
760
|
+
self,
|
|
761
|
+
project: str,
|
|
762
|
+
template_name: str,
|
|
763
|
+
deployment_id: str,
|
|
764
|
+
*,
|
|
765
|
+
version: str,
|
|
766
|
+
preserve_tool_variables: typing.Optional[bool] = OMIT,
|
|
767
|
+
preserve_core_memories: typing.Optional[bool] = OMIT,
|
|
768
|
+
memory_variables: typing.Optional[typing.Dict[str, str]] = OMIT,
|
|
769
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
770
|
+
) -> HttpResponse[TemplatesMigrateDeploymentResponse]:
|
|
771
|
+
"""
|
|
772
|
+
Migrates a deployment to a specific template version
|
|
773
|
+
|
|
774
|
+
Parameters
|
|
775
|
+
----------
|
|
776
|
+
project : str
|
|
777
|
+
The project slug
|
|
778
|
+
|
|
779
|
+
template_name : str
|
|
780
|
+
The template name (without version)
|
|
781
|
+
|
|
782
|
+
deployment_id : str
|
|
783
|
+
The deployment ID to migrate
|
|
784
|
+
|
|
785
|
+
version : str
|
|
786
|
+
The target template version to migrate to
|
|
787
|
+
|
|
788
|
+
preserve_tool_variables : typing.Optional[bool]
|
|
789
|
+
Whether to preserve existing tool variables during migration
|
|
790
|
+
|
|
791
|
+
preserve_core_memories : typing.Optional[bool]
|
|
792
|
+
Whether to preserve existing core memories during migration
|
|
793
|
+
|
|
794
|
+
memory_variables : typing.Optional[typing.Dict[str, str]]
|
|
795
|
+
Additional memory variables to apply during migration
|
|
796
|
+
|
|
797
|
+
request_options : typing.Optional[RequestOptions]
|
|
798
|
+
Request-specific configuration.
|
|
799
|
+
|
|
800
|
+
Returns
|
|
801
|
+
-------
|
|
802
|
+
HttpResponse[TemplatesMigrateDeploymentResponse]
|
|
803
|
+
200
|
|
804
|
+
"""
|
|
805
|
+
_response = self._client_wrapper.httpx_client.request(
|
|
806
|
+
f"v1/templates/{jsonable_encoder(project)}/{jsonable_encoder(template_name)}/deployments/{jsonable_encoder(deployment_id)}/migrate",
|
|
807
|
+
method="POST",
|
|
808
|
+
json={
|
|
809
|
+
"version": version,
|
|
810
|
+
"preserve_tool_variables": preserve_tool_variables,
|
|
811
|
+
"preserve_core_memories": preserve_core_memories,
|
|
812
|
+
"memory_variables": memory_variables,
|
|
813
|
+
},
|
|
814
|
+
headers={
|
|
815
|
+
"content-type": "application/json",
|
|
816
|
+
},
|
|
817
|
+
request_options=request_options,
|
|
818
|
+
omit=OMIT,
|
|
819
|
+
)
|
|
820
|
+
try:
|
|
821
|
+
if 200 <= _response.status_code < 300:
|
|
822
|
+
_data = typing.cast(
|
|
823
|
+
TemplatesMigrateDeploymentResponse,
|
|
824
|
+
construct_type(
|
|
825
|
+
type_=TemplatesMigrateDeploymentResponse, # type: ignore
|
|
826
|
+
object_=_response.json(),
|
|
827
|
+
),
|
|
828
|
+
)
|
|
829
|
+
return HttpResponse(response=_response, data=_data)
|
|
830
|
+
if _response.status_code == 400:
|
|
831
|
+
raise BadRequestError(
|
|
832
|
+
headers=dict(_response.headers),
|
|
833
|
+
body=typing.cast(
|
|
834
|
+
typing.Optional[typing.Any],
|
|
835
|
+
construct_type(
|
|
836
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
837
|
+
object_=_response.json(),
|
|
838
|
+
),
|
|
839
|
+
),
|
|
840
|
+
)
|
|
841
|
+
if _response.status_code == 404:
|
|
842
|
+
raise NotFoundError(
|
|
843
|
+
headers=dict(_response.headers),
|
|
844
|
+
body=typing.cast(
|
|
845
|
+
typing.Optional[typing.Any],
|
|
846
|
+
construct_type(
|
|
847
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
848
|
+
object_=_response.json(),
|
|
849
|
+
),
|
|
850
|
+
),
|
|
851
|
+
)
|
|
852
|
+
if _response.status_code == 500:
|
|
853
|
+
raise InternalServerError(
|
|
854
|
+
headers=dict(_response.headers),
|
|
855
|
+
body=typing.cast(
|
|
856
|
+
typing.Optional[typing.Any],
|
|
857
|
+
construct_type(
|
|
858
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
859
|
+
object_=_response.json(),
|
|
860
|
+
),
|
|
861
|
+
),
|
|
862
|
+
)
|
|
863
|
+
_response_json = _response.json()
|
|
864
|
+
except JSONDecodeError:
|
|
865
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
866
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
867
|
+
|
|
669
868
|
|
|
670
869
|
class AsyncRawTemplatesClient:
|
|
671
870
|
def __init__(self, *, client_wrapper: AsyncClientWrapper):
|
|
@@ -936,6 +1135,93 @@ class AsyncRawTemplatesClient:
|
|
|
936
1135
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
937
1136
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
938
1137
|
|
|
1138
|
+
async def setcurrenttemplatefromsnapshot(
|
|
1139
|
+
self,
|
|
1140
|
+
project: str,
|
|
1141
|
+
template_version: str,
|
|
1142
|
+
*,
|
|
1143
|
+
request: typing.Optional[typing.Any] = None,
|
|
1144
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1145
|
+
) -> AsyncHttpResponse[TemplatesSetCurrentTemplateFromSnapshotResponse]:
|
|
1146
|
+
"""
|
|
1147
|
+
Updates the current working version of a template from a snapshot
|
|
1148
|
+
|
|
1149
|
+
Parameters
|
|
1150
|
+
----------
|
|
1151
|
+
project : str
|
|
1152
|
+
The project slug
|
|
1153
|
+
|
|
1154
|
+
template_version : str
|
|
1155
|
+
The template name with :current version (e.g., my-template:current)
|
|
1156
|
+
|
|
1157
|
+
request : typing.Optional[typing.Any]
|
|
1158
|
+
|
|
1159
|
+
request_options : typing.Optional[RequestOptions]
|
|
1160
|
+
Request-specific configuration.
|
|
1161
|
+
|
|
1162
|
+
Returns
|
|
1163
|
+
-------
|
|
1164
|
+
AsyncHttpResponse[TemplatesSetCurrentTemplateFromSnapshotResponse]
|
|
1165
|
+
200
|
|
1166
|
+
"""
|
|
1167
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1168
|
+
f"v1/templates/{jsonable_encoder(project)}/{jsonable_encoder(template_version)}/snapshot",
|
|
1169
|
+
method="PUT",
|
|
1170
|
+
json=request,
|
|
1171
|
+
headers={
|
|
1172
|
+
"content-type": "application/json",
|
|
1173
|
+
},
|
|
1174
|
+
request_options=request_options,
|
|
1175
|
+
omit=OMIT,
|
|
1176
|
+
)
|
|
1177
|
+
try:
|
|
1178
|
+
if 200 <= _response.status_code < 300:
|
|
1179
|
+
_data = typing.cast(
|
|
1180
|
+
TemplatesSetCurrentTemplateFromSnapshotResponse,
|
|
1181
|
+
construct_type(
|
|
1182
|
+
type_=TemplatesSetCurrentTemplateFromSnapshotResponse, # type: ignore
|
|
1183
|
+
object_=_response.json(),
|
|
1184
|
+
),
|
|
1185
|
+
)
|
|
1186
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1187
|
+
if _response.status_code == 400:
|
|
1188
|
+
raise BadRequestError(
|
|
1189
|
+
headers=dict(_response.headers),
|
|
1190
|
+
body=typing.cast(
|
|
1191
|
+
typing.Optional[typing.Any],
|
|
1192
|
+
construct_type(
|
|
1193
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1194
|
+
object_=_response.json(),
|
|
1195
|
+
),
|
|
1196
|
+
),
|
|
1197
|
+
)
|
|
1198
|
+
if _response.status_code == 404:
|
|
1199
|
+
raise NotFoundError(
|
|
1200
|
+
headers=dict(_response.headers),
|
|
1201
|
+
body=typing.cast(
|
|
1202
|
+
typing.Optional[typing.Any],
|
|
1203
|
+
construct_type(
|
|
1204
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1205
|
+
object_=_response.json(),
|
|
1206
|
+
),
|
|
1207
|
+
),
|
|
1208
|
+
)
|
|
1209
|
+
if _response.status_code == 500:
|
|
1210
|
+
raise InternalServerError(
|
|
1211
|
+
headers=dict(_response.headers),
|
|
1212
|
+
body=typing.cast(
|
|
1213
|
+
typing.Optional[typing.Any],
|
|
1214
|
+
construct_type(
|
|
1215
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1216
|
+
object_=_response.json(),
|
|
1217
|
+
),
|
|
1218
|
+
),
|
|
1219
|
+
)
|
|
1220
|
+
_response_json = _response.json()
|
|
1221
|
+
except JSONDecodeError:
|
|
1222
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1223
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1224
|
+
|
|
939
1225
|
async def forktemplate(
|
|
940
1226
|
self,
|
|
941
1227
|
project: str,
|
|
@@ -1302,3 +1588,112 @@ class AsyncRawTemplatesClient:
|
|
|
1302
1588
|
except JSONDecodeError:
|
|
1303
1589
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1304
1590
|
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
1591
|
+
|
|
1592
|
+
async def migratedeployment(
|
|
1593
|
+
self,
|
|
1594
|
+
project: str,
|
|
1595
|
+
template_name: str,
|
|
1596
|
+
deployment_id: str,
|
|
1597
|
+
*,
|
|
1598
|
+
version: str,
|
|
1599
|
+
preserve_tool_variables: typing.Optional[bool] = OMIT,
|
|
1600
|
+
preserve_core_memories: typing.Optional[bool] = OMIT,
|
|
1601
|
+
memory_variables: typing.Optional[typing.Dict[str, str]] = OMIT,
|
|
1602
|
+
request_options: typing.Optional[RequestOptions] = None,
|
|
1603
|
+
) -> AsyncHttpResponse[TemplatesMigrateDeploymentResponse]:
|
|
1604
|
+
"""
|
|
1605
|
+
Migrates a deployment to a specific template version
|
|
1606
|
+
|
|
1607
|
+
Parameters
|
|
1608
|
+
----------
|
|
1609
|
+
project : str
|
|
1610
|
+
The project slug
|
|
1611
|
+
|
|
1612
|
+
template_name : str
|
|
1613
|
+
The template name (without version)
|
|
1614
|
+
|
|
1615
|
+
deployment_id : str
|
|
1616
|
+
The deployment ID to migrate
|
|
1617
|
+
|
|
1618
|
+
version : str
|
|
1619
|
+
The target template version to migrate to
|
|
1620
|
+
|
|
1621
|
+
preserve_tool_variables : typing.Optional[bool]
|
|
1622
|
+
Whether to preserve existing tool variables during migration
|
|
1623
|
+
|
|
1624
|
+
preserve_core_memories : typing.Optional[bool]
|
|
1625
|
+
Whether to preserve existing core memories during migration
|
|
1626
|
+
|
|
1627
|
+
memory_variables : typing.Optional[typing.Dict[str, str]]
|
|
1628
|
+
Additional memory variables to apply during migration
|
|
1629
|
+
|
|
1630
|
+
request_options : typing.Optional[RequestOptions]
|
|
1631
|
+
Request-specific configuration.
|
|
1632
|
+
|
|
1633
|
+
Returns
|
|
1634
|
+
-------
|
|
1635
|
+
AsyncHttpResponse[TemplatesMigrateDeploymentResponse]
|
|
1636
|
+
200
|
|
1637
|
+
"""
|
|
1638
|
+
_response = await self._client_wrapper.httpx_client.request(
|
|
1639
|
+
f"v1/templates/{jsonable_encoder(project)}/{jsonable_encoder(template_name)}/deployments/{jsonable_encoder(deployment_id)}/migrate",
|
|
1640
|
+
method="POST",
|
|
1641
|
+
json={
|
|
1642
|
+
"version": version,
|
|
1643
|
+
"preserve_tool_variables": preserve_tool_variables,
|
|
1644
|
+
"preserve_core_memories": preserve_core_memories,
|
|
1645
|
+
"memory_variables": memory_variables,
|
|
1646
|
+
},
|
|
1647
|
+
headers={
|
|
1648
|
+
"content-type": "application/json",
|
|
1649
|
+
},
|
|
1650
|
+
request_options=request_options,
|
|
1651
|
+
omit=OMIT,
|
|
1652
|
+
)
|
|
1653
|
+
try:
|
|
1654
|
+
if 200 <= _response.status_code < 300:
|
|
1655
|
+
_data = typing.cast(
|
|
1656
|
+
TemplatesMigrateDeploymentResponse,
|
|
1657
|
+
construct_type(
|
|
1658
|
+
type_=TemplatesMigrateDeploymentResponse, # type: ignore
|
|
1659
|
+
object_=_response.json(),
|
|
1660
|
+
),
|
|
1661
|
+
)
|
|
1662
|
+
return AsyncHttpResponse(response=_response, data=_data)
|
|
1663
|
+
if _response.status_code == 400:
|
|
1664
|
+
raise BadRequestError(
|
|
1665
|
+
headers=dict(_response.headers),
|
|
1666
|
+
body=typing.cast(
|
|
1667
|
+
typing.Optional[typing.Any],
|
|
1668
|
+
construct_type(
|
|
1669
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1670
|
+
object_=_response.json(),
|
|
1671
|
+
),
|
|
1672
|
+
),
|
|
1673
|
+
)
|
|
1674
|
+
if _response.status_code == 404:
|
|
1675
|
+
raise NotFoundError(
|
|
1676
|
+
headers=dict(_response.headers),
|
|
1677
|
+
body=typing.cast(
|
|
1678
|
+
typing.Optional[typing.Any],
|
|
1679
|
+
construct_type(
|
|
1680
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1681
|
+
object_=_response.json(),
|
|
1682
|
+
),
|
|
1683
|
+
),
|
|
1684
|
+
)
|
|
1685
|
+
if _response.status_code == 500:
|
|
1686
|
+
raise InternalServerError(
|
|
1687
|
+
headers=dict(_response.headers),
|
|
1688
|
+
body=typing.cast(
|
|
1689
|
+
typing.Optional[typing.Any],
|
|
1690
|
+
construct_type(
|
|
1691
|
+
type_=typing.Optional[typing.Any], # type: ignore
|
|
1692
|
+
object_=_response.json(),
|
|
1693
|
+
),
|
|
1694
|
+
),
|
|
1695
|
+
)
|
|
1696
|
+
_response_json = _response.json()
|
|
1697
|
+
except JSONDecodeError:
|
|
1698
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
|
|
1699
|
+
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
|
|
@@ -66,14 +66,19 @@ from .templates_get_template_snapshot_response_agents_item_tool_variables_data_i
|
|
|
66
66
|
)
|
|
67
67
|
from .templates_get_template_snapshot_response_blocks_item import TemplatesGetTemplateSnapshotResponseBlocksItem
|
|
68
68
|
from .templates_get_template_snapshot_response_configuration import TemplatesGetTemplateSnapshotResponseConfiguration
|
|
69
|
+
from .templates_get_template_snapshot_response_relationships_item import (
|
|
70
|
+
TemplatesGetTemplateSnapshotResponseRelationshipsItem,
|
|
71
|
+
)
|
|
69
72
|
from .templates_get_template_snapshot_response_type import TemplatesGetTemplateSnapshotResponseType
|
|
70
73
|
from .templates_list_request_sort_by import TemplatesListRequestSortBy
|
|
71
74
|
from .templates_list_response import TemplatesListResponse
|
|
72
75
|
from .templates_list_response_templates_item import TemplatesListResponseTemplatesItem
|
|
73
76
|
from .templates_list_template_versions_response import TemplatesListTemplateVersionsResponse
|
|
74
77
|
from .templates_list_template_versions_response_versions_item import TemplatesListTemplateVersionsResponseVersionsItem
|
|
78
|
+
from .templates_migrate_deployment_response import TemplatesMigrateDeploymentResponse
|
|
75
79
|
from .templates_rename_template_response import TemplatesRenameTemplateResponse
|
|
76
80
|
from .templates_save_template_version_response import TemplatesSaveTemplateVersionResponse
|
|
81
|
+
from .templates_set_current_template_from_snapshot_response import TemplatesSetCurrentTemplateFromSnapshotResponse
|
|
77
82
|
from .templates_update_template_description_response import TemplatesUpdateTemplateDescriptionResponse
|
|
78
83
|
|
|
79
84
|
__all__ = [
|
|
@@ -105,13 +110,16 @@ __all__ = [
|
|
|
105
110
|
"TemplatesGetTemplateSnapshotResponseAgentsItemToolVariablesDataItem",
|
|
106
111
|
"TemplatesGetTemplateSnapshotResponseBlocksItem",
|
|
107
112
|
"TemplatesGetTemplateSnapshotResponseConfiguration",
|
|
113
|
+
"TemplatesGetTemplateSnapshotResponseRelationshipsItem",
|
|
108
114
|
"TemplatesGetTemplateSnapshotResponseType",
|
|
109
115
|
"TemplatesListRequestSortBy",
|
|
110
116
|
"TemplatesListResponse",
|
|
111
117
|
"TemplatesListResponseTemplatesItem",
|
|
112
118
|
"TemplatesListTemplateVersionsResponse",
|
|
113
119
|
"TemplatesListTemplateVersionsResponseVersionsItem",
|
|
120
|
+
"TemplatesMigrateDeploymentResponse",
|
|
114
121
|
"TemplatesRenameTemplateResponse",
|
|
115
122
|
"TemplatesSaveTemplateVersionResponse",
|
|
123
|
+
"TemplatesSetCurrentTemplateFromSnapshotResponse",
|
|
116
124
|
"TemplatesUpdateTemplateDescriptionResponse",
|
|
117
125
|
]
|
|
@@ -8,12 +8,16 @@ from ...core.unchecked_base_model import UncheckedBaseModel
|
|
|
8
8
|
from .templates_get_template_snapshot_response_agents_item import TemplatesGetTemplateSnapshotResponseAgentsItem
|
|
9
9
|
from .templates_get_template_snapshot_response_blocks_item import TemplatesGetTemplateSnapshotResponseBlocksItem
|
|
10
10
|
from .templates_get_template_snapshot_response_configuration import TemplatesGetTemplateSnapshotResponseConfiguration
|
|
11
|
+
from .templates_get_template_snapshot_response_relationships_item import (
|
|
12
|
+
TemplatesGetTemplateSnapshotResponseRelationshipsItem,
|
|
13
|
+
)
|
|
11
14
|
from .templates_get_template_snapshot_response_type import TemplatesGetTemplateSnapshotResponseType
|
|
12
15
|
|
|
13
16
|
|
|
14
17
|
class TemplatesGetTemplateSnapshotResponse(UncheckedBaseModel):
|
|
15
18
|
agents: typing.List[TemplatesGetTemplateSnapshotResponseAgentsItem]
|
|
16
19
|
blocks: typing.List[TemplatesGetTemplateSnapshotResponseBlocksItem]
|
|
20
|
+
relationships: typing.List[TemplatesGetTemplateSnapshotResponseRelationshipsItem]
|
|
17
21
|
configuration: TemplatesGetTemplateSnapshotResponseConfiguration
|
|
18
22
|
type: TemplatesGetTemplateSnapshotResponseType
|
|
19
23
|
version: str
|
|
@@ -10,6 +10,7 @@ from ...core.unchecked_base_model import UncheckedBaseModel
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class TemplatesGetTemplateSnapshotResponseBlocksItem(UncheckedBaseModel):
|
|
13
|
+
entity_id: typing_extensions.Annotated[str, FieldMetadata(alias="entityId")]
|
|
13
14
|
label: str
|
|
14
15
|
value: str
|
|
15
16
|
limit: float
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# This file was auto-generated by Fern from our API Definition.
|
|
2
|
+
|
|
3
|
+
import typing
|
|
4
|
+
|
|
5
|
+
import pydantic
|
|
6
|
+
import typing_extensions
|
|
7
|
+
from ...core.pydantic_utilities import IS_PYDANTIC_V2
|
|
8
|
+
from ...core.serialization import FieldMetadata
|
|
9
|
+
from ...core.unchecked_base_model import UncheckedBaseModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class TemplatesGetTemplateSnapshotResponseRelationshipsItem(UncheckedBaseModel):
|
|
13
|
+
agent_entity_id: typing_extensions.Annotated[str, FieldMetadata(alias="agentEntityId")]
|
|
14
|
+
block_entity_id: typing_extensions.Annotated[str, FieldMetadata(alias="blockEntityId")]
|
|
15
|
+
|
|
16
|
+
if IS_PYDANTIC_V2:
|
|
17
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
18
|
+
else:
|
|
19
|
+
|
|
20
|
+
class Config:
|
|
21
|
+
frozen = True
|
|
22
|
+
smart_union = True
|
|
23
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
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 TemplatesMigrateDeploymentResponse(UncheckedBaseModel):
|
|
11
|
+
success: bool
|
|
12
|
+
message: typing.Optional[str] = None
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
|
@@ -0,0 +1,21 @@
|
|
|
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 TemplatesSetCurrentTemplateFromSnapshotResponse(UncheckedBaseModel):
|
|
11
|
+
success: bool
|
|
12
|
+
message: typing.Optional[str] = None
|
|
13
|
+
|
|
14
|
+
if IS_PYDANTIC_V2:
|
|
15
|
+
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
|
|
16
|
+
else:
|
|
17
|
+
|
|
18
|
+
class Config:
|
|
19
|
+
frozen = True
|
|
20
|
+
smart_union = True
|
|
21
|
+
extra = pydantic.Extra.allow
|
letta_client/tools/__init__.py
CHANGED
|
@@ -11,6 +11,7 @@ from .types import (
|
|
|
11
11
|
ListMcpServersResponseValue,
|
|
12
12
|
StreamingResponse,
|
|
13
13
|
TestMcpServerRequest,
|
|
14
|
+
ToolsListRequestOrder,
|
|
14
15
|
UpdateMcpServerRequest,
|
|
15
16
|
UpdateMcpServerResponse,
|
|
16
17
|
)
|
|
@@ -24,6 +25,7 @@ __all__ = [
|
|
|
24
25
|
"ListMcpServersResponseValue",
|
|
25
26
|
"StreamingResponse",
|
|
26
27
|
"TestMcpServerRequest",
|
|
28
|
+
"ToolsListRequestOrder",
|
|
27
29
|
"UpdateMcpServerRequest",
|
|
28
30
|
"UpdateMcpServerResponse",
|
|
29
31
|
]
|