agenta 0.64.1__tar.gz → 0.74.0__tar.gz
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.
- {agenta-0.64.1 → agenta-0.74.0}/PKG-INFO +16 -22
- {agenta-0.64.1 → agenta-0.74.0}/agenta/__init__.py +73 -37
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/testset_output_response.py +1 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/__init__.py +2 -4
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/agenta_init.py +88 -63
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/assets.py +73 -10
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/decorators/serving.py +61 -26
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/decorators/tracing.py +51 -30
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/inline.py +8 -1
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/processors.py +23 -12
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/tracing.py +2 -2
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/metrics.py +3 -3
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/preview/evaluate.py +36 -8
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/runs.py +2 -1
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/litellm/litellm.py +38 -30
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/litellm/mockllm.py +2 -2
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/config.py +3 -1
- agenta-0.74.0/agenta/sdk/managers/testsets.py +357 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/auth.py +19 -4
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/config.py +3 -1
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/otel.py +3 -4
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/vault.py +20 -5
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/routing/otel.py +1 -1
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/running/vault.py +1 -1
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/evaluations.py +11 -3
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/shared.py +1 -1
- agenta-0.74.0/agenta/sdk/router.py +33 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/exporters.py +1 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/inline.py +8 -1
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/processors.py +48 -40
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/propagation.py +9 -12
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/tracing.py +91 -2
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/types.py +19 -20
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/client.py +10 -9
- agenta-0.74.0/agenta/sdk/utils/lazy.py +318 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/workflows/configurations.py +1 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/workflows/handlers.py +223 -80
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/workflows/interfaces.py +47 -0
- agenta-0.74.0/agenta/sdk/workflows/runners/__init__.py +3 -0
- agenta-0.74.0/agenta/sdk/workflows/runners/base.py +30 -0
- agenta-0.74.0/agenta/sdk/workflows/runners/daytona.py +272 -0
- agenta-0.74.0/agenta/sdk/workflows/runners/local.py +109 -0
- agenta-0.74.0/agenta/sdk/workflows/runners/registry.py +48 -0
- agenta-0.74.0/agenta/sdk/workflows/sandbox.py +55 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/workflows/utils.py +6 -0
- agenta-0.74.0/pyproject.toml +64 -0
- agenta-0.64.1/agenta/config.py +0 -25
- agenta-0.64.1/agenta/config.toml +0 -4
- agenta-0.64.1/agenta/sdk/managers/testsets.py +0 -441
- agenta-0.64.1/agenta/sdk/router.py +0 -8
- agenta-0.64.1/agenta/sdk/workflows/sandbox.py +0 -118
- agenta-0.64.1/pyproject.toml +0 -68
- {agenta-0.64.1 → agenta-0.74.0}/README.md +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/Readme.md +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/access_control/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/access_control/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/access_control/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/admin/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/admin/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/admin/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/api_keys/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/api_keys/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/api_keys/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/apps/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/apps/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/apps/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/bases/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/bases/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/bases/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/billing/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/billing/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/billing/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/configs/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/configs/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/configs/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/containers/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/containers/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/containers/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/api_error.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/client_wrapper.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/datetime_utils.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/file.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/force_multipart.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/http_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/http_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/jsonable_encoder.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/pydantic_utilities.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/query_encoder.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/request_options.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/core/serialization.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/environment.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/environments/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/environments/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/environments/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/errors/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evals/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evals/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evals/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evaluations/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evaluations/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evaluations/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evaluators/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evaluators/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/evaluators/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/human_evaluations/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/human_evaluations/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/human_evaluations/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/types/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/types/fetch_trace_by_id_request_trace_id.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/types/fetch_trace_by_id_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/types/query_analytics_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/observability/types/query_traces_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/organization/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/organization/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/organization/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/scopes/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/scopes/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/scopes/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/testsets/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/testsets/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/testsets/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/testsets/types/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/testsets/types/create_testset_from_file_request_file_type.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/testsets/types/fetch_testset_to_file_request_file_type.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/testsets/types/update_testset_from_file_request_file_type.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/tracing/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/tracing/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/tracing/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/tracing/types/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/tracing/types/fetch_trace_request_trace_id.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/tracing/types/remove_trace_request_trace_id.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/account_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/account_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/agenta_node_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/agenta_node_dto_nodes_value.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/agenta_nodes_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/agenta_root_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/agenta_roots_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/agenta_tree_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/agenta_trees_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/aggregated_result.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/analytics_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_create.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_edit.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_kind.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_link.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_link_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_query.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_query_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_reference.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_references.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotation_source.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/annotations_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/app.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/app_variant_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/app_variant_revision.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/artifact.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/base_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/body_fetch_workflow_revision.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/body_import_testset.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/bucket_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/collect_status_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/config_db.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/config_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/config_response_model.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/correct_answer.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/create_app_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/custom_model_settings_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/custom_provider_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/custom_provider_kind.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/custom_provider_settings_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/data.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/delete_evaluation.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/environment_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/environment_output_extended.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/environment_revision.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/error.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluation.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluation_scenario.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluation_type.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_config.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_flags.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_mapping_output_interface.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_output_interface.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_query.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_query_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluator_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/evaluators_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/exception_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/extended_o_tel_tracing_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/focus.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/format.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/full_json_input.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/full_json_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/get_config_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/header.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/http_validation_error.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/human_evaluation.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/invite_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_analytics_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_data_point.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_evaluator.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_scope_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_scopes_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_subscription_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_user_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/legacy_user_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/lifecycle_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/link_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/list_api_keys_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/meta_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/metrics_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/new_testset.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/node_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/node_type.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_context_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_event.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_event_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_extra_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_flat_span.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_flat_span_input_end_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_flat_span_input_start_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_flat_span_output_end_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_flat_span_output_start_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_link.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_link_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_links_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_input_end_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_input_spans_value.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_input_start_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_kind.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_output_end_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_output_spans_value.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_span_output_start_time.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_spans_tree.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_spans_tree_input_spans_value.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_spans_tree_output_spans_value.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_status_code.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_tracing_data_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_tracing_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/o_tel_tracing_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/organization.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/organization_details.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/organization_membership_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/organization_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/organization_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/parent_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/permission.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/plan.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/project_membership_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/project_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/project_scope.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/projects_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/recursive_types.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/reference.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/reference_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/reference_request_model.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/result.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/role.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/root_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/scopes_response_model.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/score.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/secret_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/secret_kind.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/secret_response_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/span_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/span_dto_nodes_value.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/standard_provider_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/standard_provider_kind.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/standard_provider_settings_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/status_code.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/status_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/tags_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/testcase_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/testset.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/testset_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/testset_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/testset_simple_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/testsets_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/time_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/timestamp.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/tree_dto.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/tree_type.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/update_app_output.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/user_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/validation_error.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_artifact.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_data.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_flags.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_revision.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_revision_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_revision_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_revisions_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_variant.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_variant_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_variant_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflow_variants_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workflows_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace_member_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace_membership_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace_permission.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace_request.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace_role.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/types/workspace_role_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/variants/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/variants/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/variants/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/variants/types/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/vault/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/vault/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/vault/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/workflows/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/workflows/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/workflows/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/workspace/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/workspace/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/backend/workspace/raw_client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/client.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/types/provider_key_dto.py~HEAD +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/types/provider_key_dto.py~feat_model-registry +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/types/provider_kind.py~HEAD +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/types/provider_kind.py~feat_model-registry +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/client/types.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/context/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/context/running.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/context/serving.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/context/tracing.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/contexts/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/contexts/routing.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/contexts/running.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/contexts/tracing.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/decorators/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/decorators/routing.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/decorators/running.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/running/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/running/registry.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/running/utils.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/attributes.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/conventions.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/exporters.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/propagation.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/engines/tracing/spans.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/preview/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/preview/utils.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/results.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/evaluations/scenarios.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/litellm/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/litellm/mocks/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/applications.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/apps.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/deployment.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/evaluations.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/evaluators.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/secrets.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/shared.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/variant.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/managers/vault.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/cors.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/inline.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middleware/mock.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/routing/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/routing/auth.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/routing/cors.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/running/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/running/normalizer.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/middlewares/running/resolver.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/blobs.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/git.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/testsets.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/tracing.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/models/workflows.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/attributes.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/conventions.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/tracing/spans.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/cache.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/constants.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/costs.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/exceptions.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/globals.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/helpers.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/logging.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/otel.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/preinit.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/references.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/singleton.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/utils/timing.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/workflows/__init__.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/workflows/builtin.py +0 -0
- {agenta-0.64.1 → agenta-0.74.0}/agenta/sdk/workflows/errors.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agenta
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.74.0
|
|
4
4
|
Summary: The SDK for agenta is an open-source LLMOps platform.
|
|
5
5
|
Keywords: LLMOps,LLM,evaluation,prompt engineering
|
|
6
6
|
Author: Mahmoud Mabrouk
|
|
@@ -15,28 +15,22 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.14
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.9
|
|
17
17
|
Classifier: Topic :: Software Development :: Libraries
|
|
18
|
-
Requires-Dist:
|
|
19
|
-
Requires-Dist: fastapi (>=0.
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
23
|
-
Requires-Dist:
|
|
24
|
-
Requires-Dist:
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.27.0,<2.0.0)
|
|
30
|
-
Requires-Dist: opentelemetry-instrumentation (>=0.56b0)
|
|
31
|
-
Requires-Dist: opentelemetry-sdk (>=1.27.0,<2.0.0)
|
|
18
|
+
Requires-Dist: daytona (>=0.128,<0.129)
|
|
19
|
+
Requires-Dist: fastapi (>=0.127)
|
|
20
|
+
Requires-Dist: httpx (>=0.28,<0.29)
|
|
21
|
+
Requires-Dist: jinja2 (>=3,<4)
|
|
22
|
+
Requires-Dist: litellm (>=1,<2)
|
|
23
|
+
Requires-Dist: openai (>=2,<3)
|
|
24
|
+
Requires-Dist: opentelemetry-api (>=1,<2)
|
|
25
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1,<2)
|
|
26
|
+
Requires-Dist: opentelemetry-instrumentation (>=0.60b1,<0.61)
|
|
27
|
+
Requires-Dist: opentelemetry-sdk (>=1,<2)
|
|
28
|
+
Requires-Dist: orjson (>=3,<4)
|
|
32
29
|
Requires-Dist: pydantic (>=2,<3)
|
|
33
|
-
Requires-Dist: python-
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist:
|
|
36
|
-
Requires-Dist:
|
|
37
|
-
Requires-Dist: structlog (>=25.2.0,<26.0.0)
|
|
38
|
-
Requires-Dist: tiktoken (==0.11.0)
|
|
39
|
-
Requires-Dist: toml (>=0.10.2,<0.11.0)
|
|
30
|
+
Requires-Dist: python-jsonpath (>=2,<3)
|
|
31
|
+
Requires-Dist: pyyaml (>=6,<7)
|
|
32
|
+
Requires-Dist: restrictedpython (>=8,<9) ; python_version >= "3.11" and python_version < "3.14"
|
|
33
|
+
Requires-Dist: structlog (>=25,<26)
|
|
40
34
|
Project-URL: Documentation, https://agenta.ai/docs/
|
|
41
35
|
Project-URL: Homepage, https://agenta.ai
|
|
42
36
|
Project-URL: Repository, https://github.com/agenta-ai/agenta
|
|
@@ -1,54 +1,50 @@
|
|
|
1
1
|
from typing import Any, Callable, Optional
|
|
2
2
|
|
|
3
|
-
from .sdk.utils.preinit import PreInitObject
|
|
4
|
-
|
|
5
|
-
from agenta.client import AgentaApi, AsyncAgentaApi
|
|
6
3
|
import agenta.client.backend.types as client_types # pylint: disable=wrong-import-order
|
|
4
|
+
from agenta.client import AgentaApi, AsyncAgentaApi
|
|
5
|
+
|
|
6
|
+
from .sdk import assets as assets
|
|
7
7
|
|
|
8
|
+
# evaluations
|
|
9
|
+
from .sdk import testsets as testsets
|
|
10
|
+
from .sdk import tracer
|
|
11
|
+
from .sdk.agenta_init import AgentaSingleton
|
|
12
|
+
from .sdk.agenta_init import init as _init
|
|
13
|
+
from .sdk.context.running import workflow_mode_enabled
|
|
14
|
+
from .sdk.decorators.running import (
|
|
15
|
+
application,
|
|
16
|
+
evaluator,
|
|
17
|
+
workflow,
|
|
18
|
+
)
|
|
19
|
+
from .sdk.decorators.serving import app, route
|
|
20
|
+
from .sdk.decorators.tracing import instrument
|
|
21
|
+
from .sdk.managers.apps import AppManager
|
|
22
|
+
from .sdk.managers.config import ConfigManager
|
|
23
|
+
from .sdk.managers.deployment import DeploymentManager
|
|
24
|
+
from .sdk.managers.secrets import SecretsManager
|
|
25
|
+
from .sdk.managers.variant import VariantManager
|
|
26
|
+
from .sdk.managers.vault import VaultManager
|
|
27
|
+
from .sdk.tracing import Tracing, get_tracer
|
|
28
|
+
from .sdk.tracing.conventions import Reference
|
|
8
29
|
from .sdk.types import (
|
|
9
|
-
|
|
30
|
+
BinaryParam,
|
|
10
31
|
DictInput,
|
|
11
|
-
|
|
32
|
+
FileInputURL,
|
|
12
33
|
FloatParam,
|
|
13
|
-
IntParam,
|
|
14
|
-
MultipleChoiceParam,
|
|
15
34
|
GroupedMultipleChoiceParam,
|
|
35
|
+
IntParam,
|
|
36
|
+
MCField,
|
|
16
37
|
MessagesInput,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
BinaryParam,
|
|
38
|
+
MultipleChoice,
|
|
39
|
+
MultipleChoiceParam,
|
|
20
40
|
Prompt,
|
|
21
41
|
PromptTemplate,
|
|
42
|
+
TextParam,
|
|
22
43
|
)
|
|
23
|
-
|
|
24
|
-
from .sdk.agenta_init import Config, AgentaSingleton, init as _init
|
|
25
|
-
from .sdk.utils.logging import get_module_logger
|
|
26
44
|
from .sdk.utils.costs import calculate_token_usage
|
|
27
|
-
from .sdk.
|
|
28
|
-
from .sdk.
|
|
29
|
-
from .sdk.decorators.tracing import instrument
|
|
30
|
-
from .sdk.decorators.running import (
|
|
31
|
-
workflow,
|
|
32
|
-
application,
|
|
33
|
-
evaluator,
|
|
34
|
-
)
|
|
35
|
-
from .sdk.decorators.serving import route, app
|
|
36
|
-
from .sdk.context.running import workflow_mode_enabled
|
|
37
|
-
from .sdk.litellm import litellm as callbacks
|
|
38
|
-
from .sdk.managers.apps import AppManager
|
|
39
|
-
from .sdk.managers.vault import VaultManager
|
|
40
|
-
from .sdk.managers.secrets import SecretsManager
|
|
41
|
-
from .sdk.managers.config import ConfigManager
|
|
42
|
-
from .sdk.managers.variant import VariantManager
|
|
43
|
-
from .sdk.managers.deployment import DeploymentManager
|
|
44
|
-
from .sdk import assets as assets
|
|
45
|
-
from .sdk import tracer
|
|
46
|
-
|
|
47
|
-
# evaluations
|
|
48
|
-
from .sdk import testsets as testsets
|
|
49
|
-
|
|
45
|
+
from .sdk.utils.logging import get_module_logger
|
|
46
|
+
from .sdk.utils.preinit import PreInitObject
|
|
50
47
|
|
|
51
|
-
config = PreInitObject("agenta.config", Config)
|
|
52
48
|
DEFAULT_AGENTA_SINGLETON_INSTANCE = AgentaSingleton()
|
|
53
49
|
|
|
54
50
|
types = client_types
|
|
@@ -60,6 +56,14 @@ tracing = DEFAULT_AGENTA_SINGLETON_INSTANCE.tracing # type: ignore
|
|
|
60
56
|
tracer = get_tracer(tracing)
|
|
61
57
|
|
|
62
58
|
|
|
59
|
+
def __getattr__(name: str):
|
|
60
|
+
if name == "callbacks":
|
|
61
|
+
from .sdk.litellm import litellm as callbacks
|
|
62
|
+
|
|
63
|
+
return callbacks
|
|
64
|
+
raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
|
|
65
|
+
|
|
66
|
+
|
|
63
67
|
def init(
|
|
64
68
|
host: Optional[str] = None,
|
|
65
69
|
api_url: Optional[str] = None,
|
|
@@ -88,3 +92,35 @@ def init(
|
|
|
88
92
|
|
|
89
93
|
tracing = DEFAULT_AGENTA_SINGLETON_INSTANCE.tracing # type: ignore
|
|
90
94
|
tracer = get_tracer(tracing)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def get_trace_url(trace_id: Optional[str] = None) -> str:
|
|
98
|
+
"""
|
|
99
|
+
Build a URL to view the current trace in the Agenta UI.
|
|
100
|
+
|
|
101
|
+
Automatically extracts the trace ID from the current tracing context.
|
|
102
|
+
Can also accept an explicit trace_id if needed.
|
|
103
|
+
|
|
104
|
+
Args:
|
|
105
|
+
trace_id: Optional trace ID (hex string format). If not provided,
|
|
106
|
+
it will be automatically extracted from the current trace context.
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
The full URL to view the trace in the observability dashboard
|
|
110
|
+
|
|
111
|
+
Raises:
|
|
112
|
+
RuntimeError: If the SDK is not initialized, no active trace context exists,
|
|
113
|
+
or scope info cannot be fetched
|
|
114
|
+
|
|
115
|
+
Example:
|
|
116
|
+
>>> import agenta as ag
|
|
117
|
+
>>> ag.init(api_key="xxx")
|
|
118
|
+
>>>
|
|
119
|
+
>>> @ag.instrument()
|
|
120
|
+
>>> def my_function():
|
|
121
|
+
>>> # Get URL for the current trace
|
|
122
|
+
>>> url = ag.tracing.get_trace_url()
|
|
123
|
+
>>> print(url)
|
|
124
|
+
>>> return "result"
|
|
125
|
+
"""
|
|
126
|
+
return DEFAULT_AGENTA_SINGLETON_INSTANCE.tracing.get_trace_url(trace_id)
|
|
@@ -73,7 +73,7 @@ from agenta.sdk.decorators.running import (
|
|
|
73
73
|
)
|
|
74
74
|
from agenta.sdk.decorators.serving import route, app
|
|
75
75
|
from .tracing.conventions import Reference
|
|
76
|
-
from .agenta_init import
|
|
76
|
+
from .agenta_init import AgentaSingleton, init as _init
|
|
77
77
|
from .utils.costs import calculate_token_usage
|
|
78
78
|
from .managers.apps import AppManager
|
|
79
79
|
from .managers.vault import VaultManager
|
|
@@ -83,9 +83,7 @@ from .managers.variant import VariantManager
|
|
|
83
83
|
from .managers.deployment import DeploymentManager
|
|
84
84
|
from .managers import testsets as testsets
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
config = PreInitObject("agenta.config", Config)
|
|
88
|
-
DEFAULT_AGENTA_SINGLETON_INSTANCE = AgentaSingleton()
|
|
86
|
+
DEFAULT_AGENTA_SINGLETON_INSTANCE: AgentaSingleton = AgentaSingleton()
|
|
89
87
|
|
|
90
88
|
types = client_types
|
|
91
89
|
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import toml
|
|
2
|
-
from os import getenv
|
|
3
|
-
from typing import Optional, Callable, Any
|
|
4
1
|
from importlib.metadata import version
|
|
2
|
+
from os import getenv
|
|
3
|
+
from typing import Any, Callable, Optional
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
from agenta.sdk.utils.globals import set_global
|
|
8
|
-
from agenta.sdk.utils.logging import get_module_logger
|
|
5
|
+
import httpx
|
|
9
6
|
from agenta.client.client import AgentaApi, AsyncAgentaApi
|
|
10
|
-
|
|
11
|
-
from agenta.sdk.tracing import Tracing
|
|
12
7
|
from agenta.sdk.contexts.routing import RoutingContext
|
|
13
|
-
|
|
8
|
+
from agenta.sdk.tracing import Tracing
|
|
9
|
+
from agenta.sdk.utils.globals import set_global
|
|
10
|
+
from agenta.sdk.utils.helpers import parse_url
|
|
11
|
+
from agenta.sdk.utils.logging import get_module_logger
|
|
14
12
|
|
|
15
13
|
log = get_module_logger(__name__)
|
|
16
14
|
|
|
@@ -19,6 +17,7 @@ class AgentaSingleton:
|
|
|
19
17
|
"""Singleton class to save all the "global variables" for the sdk."""
|
|
20
18
|
|
|
21
19
|
_instance = None
|
|
20
|
+
_initialized = False
|
|
22
21
|
config = None
|
|
23
22
|
tracing = None
|
|
24
23
|
|
|
@@ -26,6 +25,11 @@ class AgentaSingleton:
|
|
|
26
25
|
async_api = None
|
|
27
26
|
|
|
28
27
|
def __init__(self):
|
|
28
|
+
# Only initialize once
|
|
29
|
+
if AgentaSingleton._initialized:
|
|
30
|
+
return
|
|
31
|
+
|
|
32
|
+
AgentaSingleton._initialized = True
|
|
29
33
|
self.host = None
|
|
30
34
|
self.api_url = None
|
|
31
35
|
self.api_key = None
|
|
@@ -33,6 +37,11 @@ class AgentaSingleton:
|
|
|
33
37
|
self.scope_type = None
|
|
34
38
|
self.scope_id = None
|
|
35
39
|
|
|
40
|
+
# Cached scope information for URL building
|
|
41
|
+
self.organization_id: Optional[str] = None
|
|
42
|
+
self.workspace_id: Optional[str] = None
|
|
43
|
+
self.project_id: Optional[str] = None
|
|
44
|
+
|
|
36
45
|
def __new__(cls):
|
|
37
46
|
if not cls._instance:
|
|
38
47
|
cls._instance = super(AgentaSingleton, cls).__new__(cls)
|
|
@@ -70,24 +79,19 @@ class AgentaSingleton:
|
|
|
70
79
|
|
|
71
80
|
"""
|
|
72
81
|
|
|
73
|
-
|
|
82
|
+
# Idempotency check: if already initialized, skip re-initialization
|
|
83
|
+
if self.tracing and self.api and self.async_api:
|
|
84
|
+
return
|
|
74
85
|
|
|
75
|
-
|
|
76
|
-
if config_fname:
|
|
77
|
-
config = toml.load(config_fname)
|
|
86
|
+
log.info("Agenta - SDK ver: %s", version("agenta"))
|
|
78
87
|
|
|
79
|
-
_host = (
|
|
80
|
-
host
|
|
81
|
-
or getenv("AGENTA_HOST")
|
|
82
|
-
or config.get("host")
|
|
83
|
-
or "https://cloud.agenta.ai"
|
|
84
|
-
)
|
|
88
|
+
_host = host or getenv("AGENTA_HOST") or "https://cloud.agenta.ai"
|
|
85
89
|
|
|
86
90
|
_api_url = (
|
|
87
91
|
api_url
|
|
92
|
+
#
|
|
88
93
|
or getenv("AGENTA_API_INTERNAL_URL")
|
|
89
94
|
or getenv("AGENTA_API_URL")
|
|
90
|
-
or config.get("api_url")
|
|
91
95
|
or None # NO FALLBACK
|
|
92
96
|
)
|
|
93
97
|
|
|
@@ -100,7 +104,7 @@ class AgentaSingleton:
|
|
|
100
104
|
|
|
101
105
|
try:
|
|
102
106
|
assert _api_url and isinstance(_api_url, str), (
|
|
103
|
-
"API URL is required. Please
|
|
107
|
+
"API URL is required. Please set AGENTA_API_URL environment variable or pass api_url parameter in ag.init()."
|
|
104
108
|
)
|
|
105
109
|
self.host = _host
|
|
106
110
|
self.api_url = _api_url
|
|
@@ -113,24 +117,29 @@ class AgentaSingleton:
|
|
|
113
117
|
|
|
114
118
|
self.api_key = (
|
|
115
119
|
api_key
|
|
120
|
+
#
|
|
116
121
|
or getenv("AGENTA_API_KEY")
|
|
117
|
-
or config.get("api_key")
|
|
118
122
|
or None # NO FALLBACK
|
|
119
123
|
)
|
|
120
124
|
|
|
121
|
-
|
|
125
|
+
if self.api_key is None:
|
|
126
|
+
log.warning(
|
|
127
|
+
"API key is required (in most cases). Please set AGENTA_API_KEY environment variable or pass api_key parameter in ag.init()."
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
log.info("Agenta - API URL: %s", self.api_url)
|
|
122
131
|
|
|
123
132
|
self.scope_type = (
|
|
124
133
|
scope_type
|
|
134
|
+
#
|
|
125
135
|
or getenv("AGENTA_SCOPE_TYPE")
|
|
126
|
-
or config.get("scope_type")
|
|
127
136
|
or None # NO FALLBACK
|
|
128
137
|
)
|
|
129
138
|
|
|
130
139
|
self.scope_id = (
|
|
131
140
|
scope_id
|
|
141
|
+
#
|
|
132
142
|
or getenv("AGENTA_SCOPE_ID")
|
|
133
|
-
or config.get("scope_id")
|
|
134
143
|
or None # NO FALLBACK
|
|
135
144
|
)
|
|
136
145
|
|
|
@@ -154,43 +163,62 @@ class AgentaSingleton:
|
|
|
154
163
|
api_key=self.api_key if self.api_key else "",
|
|
155
164
|
)
|
|
156
165
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
def set_default(self, **kwargs):
|
|
171
|
-
self.default_parameters.update(kwargs)
|
|
172
|
-
|
|
173
|
-
def get_default(self):
|
|
174
|
-
return self.default_parameters
|
|
175
|
-
|
|
176
|
-
def __getattr__(self, key):
|
|
177
|
-
context = RoutingContext.get()
|
|
178
|
-
|
|
179
|
-
parameters = context.parameters
|
|
180
|
-
|
|
181
|
-
if not parameters:
|
|
166
|
+
# Reset cached scope info on re-init
|
|
167
|
+
self.organization_id = None
|
|
168
|
+
self.workspace_id = None
|
|
169
|
+
self.project_id = None
|
|
170
|
+
|
|
171
|
+
def resolve_scopes(self) -> Optional[tuple[str, str, str]]:
|
|
172
|
+
"""Fetch and cache workspace_id and project_id from the API."""
|
|
173
|
+
if (
|
|
174
|
+
self.organization_id is not None
|
|
175
|
+
and self.workspace_id is not None
|
|
176
|
+
and self.project_id is not None
|
|
177
|
+
):
|
|
182
178
|
return None
|
|
183
179
|
|
|
184
|
-
if
|
|
185
|
-
|
|
180
|
+
if self.api_url is None or self.api_key is None:
|
|
181
|
+
log.error("API URL or API key is not set. Please call ag.init() first.")
|
|
182
|
+
return None
|
|
186
183
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
184
|
+
try:
|
|
185
|
+
with httpx.Client() as client:
|
|
186
|
+
response = client.get(
|
|
187
|
+
f"{self.api_url}/projects/current",
|
|
188
|
+
headers={"Authorization": f"ApiKey {self.api_key}"},
|
|
189
|
+
timeout=10,
|
|
190
|
+
)
|
|
191
|
+
response.raise_for_status()
|
|
192
|
+
project_info = response.json()
|
|
193
|
+
|
|
194
|
+
if not project_info:
|
|
195
|
+
log.error(
|
|
196
|
+
"No project context found. Please ensure your API key is valid."
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
self.organization_id = project_info.get("organization_id")
|
|
200
|
+
self.workspace_id = project_info.get("workspace_id")
|
|
201
|
+
self.project_id = project_info.get("project_id")
|
|
202
|
+
|
|
203
|
+
if (
|
|
204
|
+
not self.organization_id
|
|
205
|
+
and not self.workspace_id
|
|
206
|
+
or not self.project_id
|
|
207
|
+
):
|
|
208
|
+
log.error(
|
|
209
|
+
"Could not determine organization/workspace/project from API response."
|
|
210
|
+
)
|
|
190
211
|
|
|
191
|
-
|
|
212
|
+
except Exception as e:
|
|
213
|
+
log.error(f"Failed to fetch scope information: {e}")
|
|
214
|
+
return None
|
|
192
215
|
|
|
193
|
-
|
|
216
|
+
if self.organization_id and self.workspace_id and self.project_id:
|
|
217
|
+
return (
|
|
218
|
+
self.organization_id,
|
|
219
|
+
self.workspace_id,
|
|
220
|
+
self.project_id,
|
|
221
|
+
)
|
|
194
222
|
|
|
195
223
|
return None
|
|
196
224
|
|
|
@@ -199,11 +227,12 @@ def init(
|
|
|
199
227
|
host: Optional[str] = None,
|
|
200
228
|
api_url: Optional[str] = None,
|
|
201
229
|
api_key: Optional[str] = None,
|
|
202
|
-
config_fname: Optional[str] = None,
|
|
203
230
|
redact: Optional[Callable[..., Any]] = None,
|
|
204
231
|
redact_on_error: Optional[bool] = True,
|
|
205
232
|
scope_type: Optional[str] = None,
|
|
206
233
|
scope_id: Optional[str] = None,
|
|
234
|
+
# DEPRECATED
|
|
235
|
+
config_fname: Optional[str] = None,
|
|
207
236
|
):
|
|
208
237
|
"""Main function to initialize the agenta sdk.
|
|
209
238
|
|
|
@@ -228,14 +257,10 @@ def init(
|
|
|
228
257
|
host=host,
|
|
229
258
|
api_url=api_url,
|
|
230
259
|
api_key=api_key,
|
|
231
|
-
config_fname=config_fname,
|
|
232
260
|
redact=redact,
|
|
233
261
|
redact_on_error=redact_on_error,
|
|
234
262
|
scope_type=scope_type,
|
|
235
263
|
scope_id=scope_id,
|
|
236
264
|
)
|
|
237
265
|
|
|
238
|
-
set_global(
|
|
239
|
-
config=singleton.config,
|
|
240
|
-
tracing=singleton.tracing,
|
|
241
|
-
)
|
|
266
|
+
set_global(tracing=singleton.tracing)
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
from typing import Dict, Optional, Tuple
|
|
2
|
+
|
|
3
|
+
from litellm import cost_calculator
|
|
4
|
+
|
|
5
|
+
|
|
1
6
|
supported_llm_models = {
|
|
2
7
|
"anthropic": [
|
|
3
8
|
"anthropic/claude-sonnet-4-5",
|
|
@@ -28,6 +33,7 @@ supported_llm_models = {
|
|
|
28
33
|
],
|
|
29
34
|
"gemini": [
|
|
30
35
|
"gemini/gemini-3-pro-preview",
|
|
36
|
+
"gemini/gemini-3-flash-preview",
|
|
31
37
|
"gemini/gemini-2.5-pro",
|
|
32
38
|
"gemini/gemini-2.5-pro-preview-05-06",
|
|
33
39
|
"gemini/gemini-2.5-flash",
|
|
@@ -64,21 +70,26 @@ supported_llm_models = {
|
|
|
64
70
|
"mistral/mistral-large-latest",
|
|
65
71
|
],
|
|
66
72
|
"openai": [
|
|
67
|
-
"gpt-5",
|
|
73
|
+
"gpt-5.2-pro",
|
|
74
|
+
"gpt-5.2-chat-latest",
|
|
75
|
+
"gpt-5.2",
|
|
76
|
+
"gpt-5.1-chat-latest",
|
|
68
77
|
"gpt-5.1",
|
|
69
|
-
"gpt-5-
|
|
78
|
+
"gpt-5-pro",
|
|
70
79
|
"gpt-5-nano",
|
|
80
|
+
"gpt-5-mini",
|
|
81
|
+
"gpt-5",
|
|
82
|
+
"o4-mini",
|
|
71
83
|
"gpt-4.5-preview",
|
|
72
|
-
"gpt-
|
|
73
|
-
"gpt-
|
|
74
|
-
"gpt-4",
|
|
75
|
-
"gpt-4o",
|
|
84
|
+
"gpt-4.1-nano",
|
|
85
|
+
"gpt-4.1-mini",
|
|
86
|
+
"gpt-4.1",
|
|
76
87
|
"gpt-4o-mini",
|
|
88
|
+
"gpt-4o",
|
|
77
89
|
"gpt-4-1106-preview",
|
|
78
|
-
"gpt-4
|
|
79
|
-
"gpt-
|
|
80
|
-
"gpt-
|
|
81
|
-
"o4-mini",
|
|
90
|
+
"gpt-4",
|
|
91
|
+
"gpt-3.5-turbo-1106",
|
|
92
|
+
"gpt-3.5-turbo",
|
|
82
93
|
],
|
|
83
94
|
"openrouter": [
|
|
84
95
|
"openrouter/qwen/qwen3-235b-a22b",
|
|
@@ -200,6 +211,58 @@ supported_llm_models = {
|
|
|
200
211
|
|
|
201
212
|
providers_list = list(supported_llm_models.keys())
|
|
202
213
|
|
|
214
|
+
|
|
215
|
+
def _get_model_costs(model: str) -> Optional[Tuple[float, float]]:
|
|
216
|
+
"""
|
|
217
|
+
Get the input and output costs per 1M tokens for a model.
|
|
218
|
+
|
|
219
|
+
Uses litellm's cost_calculator (same as tracing/inline.py) for consistency.
|
|
220
|
+
|
|
221
|
+
Args:
|
|
222
|
+
model: The model name (e.g., "gpt-4o" or "anthropic/claude-3-opus-20240229")
|
|
223
|
+
|
|
224
|
+
Returns:
|
|
225
|
+
Tuple of (input_cost, output_cost) per 1M tokens, or None if not found.
|
|
226
|
+
"""
|
|
227
|
+
try:
|
|
228
|
+
costs = cost_calculator.cost_per_token(
|
|
229
|
+
model=model,
|
|
230
|
+
prompt_tokens=1_000_000,
|
|
231
|
+
completion_tokens=1_000_000,
|
|
232
|
+
)
|
|
233
|
+
if costs:
|
|
234
|
+
input_cost, output_cost = costs
|
|
235
|
+
if input_cost > 0 or output_cost > 0:
|
|
236
|
+
return (input_cost, output_cost)
|
|
237
|
+
except Exception:
|
|
238
|
+
pass
|
|
239
|
+
return None
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
def _build_model_metadata() -> Dict[str, Dict[str, Dict[str, float]]]:
|
|
243
|
+
"""
|
|
244
|
+
Build metadata dictionary with costs for all supported models.
|
|
245
|
+
|
|
246
|
+
Returns:
|
|
247
|
+
Nested dict: {provider: {model: {"input": cost, "output": cost}}}
|
|
248
|
+
"""
|
|
249
|
+
metadata: Dict[str, Dict[str, Dict[str, float]]] = {}
|
|
250
|
+
|
|
251
|
+
for provider, models in supported_llm_models.items():
|
|
252
|
+
metadata[provider] = {}
|
|
253
|
+
for model in models:
|
|
254
|
+
costs = _get_model_costs(model)
|
|
255
|
+
if costs:
|
|
256
|
+
metadata[provider][model] = {
|
|
257
|
+
"input": costs[0],
|
|
258
|
+
"output": costs[1],
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
return metadata
|
|
262
|
+
|
|
263
|
+
|
|
264
|
+
model_metadata = _build_model_metadata()
|
|
265
|
+
|
|
203
266
|
model_to_provider_mapping = {
|
|
204
267
|
model: provider
|
|
205
268
|
for provider, models in supported_llm_models.items()
|