agenta 0.33.8__tar.gz → 0.34.3__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.

Potentially problematic release.


This version of agenta might be problematic. Click here for more details.

Files changed (269) hide show
  1. {agenta-0.33.8 → agenta-0.34.3}/PKG-INFO +14 -13
  2. {agenta-0.33.8 → agenta-0.34.3}/README.md +13 -12
  3. agenta-0.34.3/agenta/docker/docker-assets/Dockerfile.template +13 -0
  4. {agenta-0.33.8 → agenta-0.34.3}/agenta/docker/docker_utils.py +3 -3
  5. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/assets.py +3 -0
  6. {agenta-0.33.8 → agenta-0.34.3}/pyproject.toml +1 -1
  7. agenta-0.33.8/agenta/cli/evaluation_commands.py +0 -22
  8. agenta-0.33.8/agenta/templates/compose_email/README.md +0 -9
  9. agenta-0.33.8/agenta/templates/compose_email/app.py +0 -63
  10. agenta-0.33.8/agenta/templates/compose_email/env.example +0 -2
  11. agenta-0.33.8/agenta/templates/compose_email/requirements.txt +0 -3
  12. agenta-0.33.8/agenta/templates/compose_email/template.toml +0 -1
  13. agenta-0.33.8/agenta/templates/extract_data_to_json/README.md +0 -9
  14. agenta-0.33.8/agenta/templates/extract_data_to_json/app.py +0 -53
  15. agenta-0.33.8/agenta/templates/extract_data_to_json/env.example +0 -2
  16. agenta-0.33.8/agenta/templates/extract_data_to_json/requirements.txt +0 -3
  17. agenta-0.33.8/agenta/templates/extract_data_to_json/template.toml +0 -1
  18. agenta-0.33.8/agenta/templates/simple_prompt/README.md +0 -9
  19. agenta-0.33.8/agenta/templates/simple_prompt/app.py +0 -24
  20. agenta-0.33.8/agenta/templates/simple_prompt/env.example +0 -2
  21. agenta-0.33.8/agenta/templates/simple_prompt/requirements.txt +0 -3
  22. agenta-0.33.8/agenta/templates/simple_prompt/template.toml +0 -1
  23. {agenta-0.33.8 → agenta-0.34.3}/agenta/__init__.py +0 -0
  24. {agenta-0.33.8 → agenta-0.34.3}/agenta/cli/helper.py +0 -0
  25. {agenta-0.33.8 → agenta-0.34.3}/agenta/cli/main.py +0 -0
  26. {agenta-0.33.8 → agenta-0.34.3}/agenta/cli/telemetry.py +0 -0
  27. {agenta-0.33.8 → agenta-0.34.3}/agenta/cli/variant_commands.py +0 -0
  28. {agenta-0.33.8 → agenta-0.34.3}/agenta/cli/variant_configs.py +0 -0
  29. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/Readme.md +0 -0
  30. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/__init__.py +0 -0
  31. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/api.py +0 -0
  32. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/api_models.py +0 -0
  33. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/__init__.py +0 -0
  34. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/access_control/__init__.py +0 -0
  35. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/access_control/client.py +0 -0
  36. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/admin/__init__.py +0 -0
  37. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/admin/client.py +0 -0
  38. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/apps/__init__.py +0 -0
  39. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/apps/client.py +0 -0
  40. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/bases/__init__.py +0 -0
  41. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/bases/client.py +0 -0
  42. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/client.py +0 -0
  43. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/configs/__init__.py +0 -0
  44. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/configs/client.py +0 -0
  45. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/containers/__init__.py +0 -0
  46. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/containers/client.py +0 -0
  47. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/containers/types/__init__.py +0 -0
  48. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/containers/types/container_templates_response.py +0 -0
  49. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/__init__.py +0 -0
  50. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/api_error.py +0 -0
  51. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/client_wrapper.py +0 -0
  52. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/datetime_utils.py +0 -0
  53. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/file.py +0 -0
  54. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/http_client.py +0 -0
  55. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/jsonable_encoder.py +0 -0
  56. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/pydantic_utilities.py +0 -0
  57. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/query_encoder.py +0 -0
  58. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
  59. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/request_options.py +0 -0
  60. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/core/serialization.py +0 -0
  61. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/environments/__init__.py +0 -0
  62. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/environments/client.py +0 -0
  63. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/errors/__init__.py +0 -0
  64. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
  65. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/evaluations/__init__.py +0 -0
  66. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/evaluations/client.py +0 -0
  67. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/evaluators/__init__.py +0 -0
  68. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/evaluators/client.py +0 -0
  69. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/human_evaluations/__init__.py +0 -0
  70. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/human_evaluations/client.py +0 -0
  71. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/observability/__init__.py +0 -0
  72. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/observability/client.py +0 -0
  73. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/observability/types/__init__.py +0 -0
  74. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/observability/types/format.py +0 -0
  75. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/observability/types/query_analytics_response.py +0 -0
  76. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/observability/types/query_traces_response.py +0 -0
  77. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/scopes/__init__.py +0 -0
  78. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/scopes/client.py +0 -0
  79. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/testsets/__init__.py +0 -0
  80. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/testsets/client.py +0 -0
  81. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/__init__.py +0 -0
  82. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/account_response.py +0 -0
  83. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/agenta_node_dto.py +0 -0
  84. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/agenta_node_dto_nodes_value.py +0 -0
  85. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/agenta_nodes_response.py +0 -0
  86. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/agenta_root_dto.py +0 -0
  87. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/agenta_roots_response.py +0 -0
  88. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/agenta_tree_dto.py +0 -0
  89. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/agenta_trees_response.py +0 -0
  90. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/aggregated_result.py +0 -0
  91. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
  92. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/analytics_response.py +0 -0
  93. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/app.py +0 -0
  94. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/app_variant_response.py +0 -0
  95. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/app_variant_revision.py +0 -0
  96. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/base_output.py +0 -0
  97. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/body_import_testset.py +0 -0
  98. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/bucket_dto.py +0 -0
  99. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/collect_status_response.py +0 -0
  100. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/config_db.py +0 -0
  101. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/config_dto.py +0 -0
  102. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/config_response_model.py +0 -0
  103. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/correct_answer.py +0 -0
  104. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/create_app_output.py +0 -0
  105. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/delete_evaluation.py +0 -0
  106. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/docker_env_vars.py +0 -0
  107. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/environment_output.py +0 -0
  108. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/environment_output_extended.py +0 -0
  109. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/environment_revision.py +0 -0
  110. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/error.py +0 -0
  111. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluation.py +0 -0
  112. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluation_scenario.py +0 -0
  113. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
  114. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
  115. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
  116. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
  117. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluation_type.py +0 -0
  118. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluator.py +0 -0
  119. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluator_config.py +0 -0
  120. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluator_mapping_output_interface.py +0 -0
  121. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/evaluator_output_interface.py +0 -0
  122. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/exception_dto.py +0 -0
  123. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/get_config_response.py +0 -0
  124. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/header_dto.py +0 -0
  125. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/http_validation_error.py +0 -0
  126. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/human_evaluation.py +0 -0
  127. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
  128. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
  129. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
  130. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/image.py +0 -0
  131. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/invite_request.py +0 -0
  132. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/legacy_analytics_response.py +0 -0
  133. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/legacy_data_point.py +0 -0
  134. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/legacy_scope_request.py +0 -0
  135. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/legacy_scopes_response.py +0 -0
  136. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/legacy_user_request.py +0 -0
  137. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/legacy_user_response.py +0 -0
  138. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/lifecycle_dto.py +0 -0
  139. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/link_dto.py +0 -0
  140. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/list_api_keys_response.py +0 -0
  141. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
  142. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/metrics_dto.py +0 -0
  143. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/new_testset.py +0 -0
  144. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/node_dto.py +0 -0
  145. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/node_type.py +0 -0
  146. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_context_dto.py +0 -0
  147. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_event_dto.py +0 -0
  148. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_extra_dto.py +0 -0
  149. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_link_dto.py +0 -0
  150. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_span_dto.py +0 -0
  151. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_span_kind.py +0 -0
  152. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_spans_response.py +0 -0
  153. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/o_tel_status_code.py +0 -0
  154. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/organization.py +0 -0
  155. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/organization_membership_request.py +0 -0
  156. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/organization_output.py +0 -0
  157. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/organization_request.py +0 -0
  158. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/parent_dto.py +0 -0
  159. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/permission.py +0 -0
  160. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/project_membership_request.py +0 -0
  161. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/project_request.py +0 -0
  162. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/project_scope.py +0 -0
  163. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/projects_response.py +0 -0
  164. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/provider_key_dto.py +0 -0
  165. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/provider_kind.py +0 -0
  166. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/reference.py +0 -0
  167. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/reference_dto.py +0 -0
  168. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/reference_request_model.py +0 -0
  169. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/result.py +0 -0
  170. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/role.py +0 -0
  171. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/root_dto.py +0 -0
  172. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/scopes_response_model.py +0 -0
  173. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/score.py +0 -0
  174. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/secret_dto.py +0 -0
  175. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/secret_kind.py +0 -0
  176. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/secret_response_dto.py +0 -0
  177. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
  178. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/span_dto.py +0 -0
  179. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/span_dto_nodes_value.py +0 -0
  180. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/status_code.py +0 -0
  181. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/status_dto.py +0 -0
  182. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/template.py +0 -0
  183. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/template_image_info.py +0 -0
  184. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/test_set_output_response.py +0 -0
  185. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/test_set_simple_response.py +0 -0
  186. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/time_dto.py +0 -0
  187. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/tree_dto.py +0 -0
  188. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/tree_type.py +0 -0
  189. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/update_app_output.py +0 -0
  190. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/uri.py +0 -0
  191. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/user_request.py +0 -0
  192. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/validation_error.py +0 -0
  193. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
  194. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/variant_action.py +0 -0
  195. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/variant_action_enum.py +0 -0
  196. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/workspace_member_response.py +0 -0
  197. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/workspace_membership_request.py +0 -0
  198. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/workspace_permission.py +0 -0
  199. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/workspace_request.py +0 -0
  200. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/workspace_response.py +0 -0
  201. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/workspace_role.py +0 -0
  202. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/types/workspace_role_response.py +0 -0
  203. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/variants/__init__.py +0 -0
  204. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/variants/client.py +0 -0
  205. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/variants/types/__init__.py +0 -0
  206. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +0 -0
  207. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/vault/__init__.py +0 -0
  208. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/backend/vault/client.py +0 -0
  209. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/client.py +0 -0
  210. {agenta-0.33.8 → agenta-0.34.3}/agenta/client/exceptions.py +0 -0
  211. {agenta-0.33.8 → agenta-0.34.3}/agenta/config.py +0 -0
  212. {agenta-0.33.8 → agenta-0.34.3}/agenta/config.toml +0 -0
  213. {agenta-0.33.8 → agenta-0.34.3}/agenta/docker/docker-assets/Dockerfile.cloud.template +0 -0
  214. /agenta-0.33.8/agenta/docker/docker-assets/Dockerfile.template → /agenta-0.34.3/agenta/docker/docker-assets/Dockerfile.oss.template +0 -0
  215. {agenta-0.33.8 → agenta-0.34.3}/agenta/docker/docker-assets/README.md +0 -0
  216. {agenta-0.33.8 → agenta-0.34.3}/agenta/docker/docker-assets/entrypoint.sh +0 -0
  217. {agenta-0.33.8 → agenta-0.34.3}/agenta/docker/docker-assets/lambda_function.py +0 -0
  218. {agenta-0.33.8 → agenta-0.34.3}/agenta/docker/docker-assets/main.py +0 -0
  219. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/__init__.py +0 -0
  220. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/agenta_init.py +0 -0
  221. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/client.py +0 -0
  222. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/context/__init__.py +0 -0
  223. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/context/exporting.py +0 -0
  224. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/context/routing.py +0 -0
  225. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/context/tracing.py +0 -0
  226. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/decorators/__init__.py +0 -0
  227. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/decorators/routing.py +0 -0
  228. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/decorators/tracing.py +0 -0
  229. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/litellm/__init__.py +0 -0
  230. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/litellm/litellm.py +0 -0
  231. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/litellm/mockllm.py +0 -0
  232. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/litellm/mocks/__init__.py +0 -0
  233. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/__init__.py +0 -0
  234. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/apps.py +0 -0
  235. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/config.py +0 -0
  236. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/deployment.py +0 -0
  237. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/secrets.py +0 -0
  238. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/shared.py +0 -0
  239. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/variant.py +0 -0
  240. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/managers/vault.py +0 -0
  241. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/__init__.py +0 -0
  242. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/auth.py +0 -0
  243. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/cache.py +0 -0
  244. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/config.py +0 -0
  245. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/cors.py +0 -0
  246. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/inline.py +0 -0
  247. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/mock.py +0 -0
  248. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/otel.py +0 -0
  249. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/middleware/vault.py +0 -0
  250. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/router.py +0 -0
  251. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/__init__.py +0 -0
  252. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/attributes.py +0 -0
  253. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/conventions.py +0 -0
  254. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/exporters.py +0 -0
  255. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/inline.py +0 -0
  256. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/processors.py +0 -0
  257. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/spans.py +0 -0
  258. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/tracing/tracing.py +0 -0
  259. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/types.py +0 -0
  260. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/__init__.py +0 -0
  261. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/constants.py +0 -0
  262. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/costs.py +0 -0
  263. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/exceptions.py +0 -0
  264. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/globals.py +0 -0
  265. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/helpers.py +0 -0
  266. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/logging.py +0 -0
  267. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/preinit.py +0 -0
  268. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/singleton.py +0 -0
  269. {agenta-0.33.8 → agenta-0.34.3}/agenta/sdk/utils/timing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agenta
3
- Version: 0.33.8
3
+ Version: 0.34.3
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
@@ -154,24 +154,25 @@ The easiest way to get started is through Agenta Cloud. It is free to signup, an
154
154
 
155
155
  ### Self-hosting Agenta
156
156
 
157
- #### Quick Setup (Port 80)
157
+ 1. Clone Agenta:
158
158
  ```bash
159
- mkdir agenta && cd agenta
160
- curl -L https://raw.githubusercontent.com/agenta-ai/agenta/main/docker-compose.gh.yml -o docker-compose.gh.yml
161
- echo "OPENAI_API_KEY=sk-xxx" > .env
162
- docker compose -f docker-compose.gh.yml --env-file .env up -d --pull always
159
+ git clone https://github.com/Agenta-AI/agenta && cd agenta
163
160
  ```
164
161
 
165
- #### Deployment Options
166
- - To use a different port or customize your deployment, see our [deployment documentation](https://docs.agenta.ai/self-host/host-locally?utm_source=github&utm_medium=referral&utm_campaign=readme)
167
- - For deploying on cloud platforms, refer to our guides for [AWS](https://docs.agenta.ai/self-host/deploy_remotly/host-on-aws?utm_source=github&utm_medium=referral&utm_campaign=readme), [GCP](https://docs.agenta.ai/self-host/deploy_remotly/host-on-gcp?utm_source=github&utm_medium=referral&utm_campaign=readme), or [other remote hosting options](https://docs.agenta.ai/self-host/deploy_remotly/host-remotely?utm_source=github&utm_medium=referral&utm_campaign=readme)
162
+ 2. Edit `hosting/docker-compose/oss/.env.oss.gh` and add your LLM provider API keys.
168
163
 
169
- ## Disabling Anonymized Tracking
164
+ 3. Start Agenta services:
165
+ ```bash
166
+ docker compose -f hosting/docker-compose/oss/docker-compose.gh.yml --env-file hosting/docker-compose/oss/.env.oss.gh --profile with-web up -d
167
+ ```
170
168
 
171
- By default, Agenta automatically reports anonymized basic usage statistics. This helps us understand how Agenta is used and track its overall usage and growth. This data does not include any sensitive information. To disable anonymized telemetry, follow these steps:
169
+ 4. Access Agenta at `http://localhost`.
170
+
171
+ For deploying on a remote host, or using different ports refers to our [self-hosting](https://docs.agenta.ai/self-host/host-locally?utm_source=github&utm_medium=referral&utm_campaign=readme) and [remote deployment documentation](https://docs.agenta.ai/self-host/host-remotely?utm_source=github&utm_medium=referral&utm_campaign=readme).
172
+
173
+ ## Disabling Anonymized Tracking
172
174
 
173
- - For web: Set `TELEMETRY_TRACKING_ENABLED` to `false` in your `agenta-web/.env` file.
174
- - For CLI: Set `telemetry_tracking_enabled` to `false` in your `~/.agenta/config.toml` file.
175
+ By default, Agenta automatically reports anonymized basic usage statistics. This helps us understand how Agenta is used and track its overall usage and growth. This data does not include any sensitive information. To disable anonymized telemetry set `TELEMETRY_ENABLED` to `false` in your `.env` file.
175
176
 
176
177
 
177
178
  ## Contributing
@@ -116,24 +116,25 @@ The easiest way to get started is through Agenta Cloud. It is free to signup, an
116
116
 
117
117
  ### Self-hosting Agenta
118
118
 
119
- #### Quick Setup (Port 80)
119
+ 1. Clone Agenta:
120
120
  ```bash
121
- mkdir agenta && cd agenta
122
- curl -L https://raw.githubusercontent.com/agenta-ai/agenta/main/docker-compose.gh.yml -o docker-compose.gh.yml
123
- echo "OPENAI_API_KEY=sk-xxx" > .env
124
- docker compose -f docker-compose.gh.yml --env-file .env up -d --pull always
121
+ git clone https://github.com/Agenta-AI/agenta && cd agenta
125
122
  ```
126
123
 
127
- #### Deployment Options
128
- - To use a different port or customize your deployment, see our [deployment documentation](https://docs.agenta.ai/self-host/host-locally?utm_source=github&utm_medium=referral&utm_campaign=readme)
129
- - For deploying on cloud platforms, refer to our guides for [AWS](https://docs.agenta.ai/self-host/deploy_remotly/host-on-aws?utm_source=github&utm_medium=referral&utm_campaign=readme), [GCP](https://docs.agenta.ai/self-host/deploy_remotly/host-on-gcp?utm_source=github&utm_medium=referral&utm_campaign=readme), or [other remote hosting options](https://docs.agenta.ai/self-host/deploy_remotly/host-remotely?utm_source=github&utm_medium=referral&utm_campaign=readme)
124
+ 2. Edit `hosting/docker-compose/oss/.env.oss.gh` and add your LLM provider API keys.
130
125
 
131
- ## Disabling Anonymized Tracking
126
+ 3. Start Agenta services:
127
+ ```bash
128
+ docker compose -f hosting/docker-compose/oss/docker-compose.gh.yml --env-file hosting/docker-compose/oss/.env.oss.gh --profile with-web up -d
129
+ ```
132
130
 
133
- By default, Agenta automatically reports anonymized basic usage statistics. This helps us understand how Agenta is used and track its overall usage and growth. This data does not include any sensitive information. To disable anonymized telemetry, follow these steps:
131
+ 4. Access Agenta at `http://localhost`.
132
+
133
+ For deploying on a remote host, or using different ports refers to our [self-hosting](https://docs.agenta.ai/self-host/host-locally?utm_source=github&utm_medium=referral&utm_campaign=readme) and [remote deployment documentation](https://docs.agenta.ai/self-host/host-remotely?utm_source=github&utm_medium=referral&utm_campaign=readme).
134
+
135
+ ## Disabling Anonymized Tracking
134
136
 
135
- - For web: Set `TELEMETRY_TRACKING_ENABLED` to `false` in your `agenta-web/.env` file.
136
- - For CLI: Set `telemetry_tracking_enabled` to `false` in your `~/.agenta/config.toml` file.
137
+ By default, Agenta automatically reports anonymized basic usage statistics. This helps us understand how Agenta is used and track its overall usage and growth. This data does not include any sensitive information. To disable anonymized telemetry set `TELEMETRY_ENABLED` to `false` in your `.env` file.
137
138
 
138
139
 
139
140
  ## Contributing
@@ -0,0 +1,13 @@
1
+ FROM agentaai/templates_v2:main
2
+
3
+ WORKDIR /app
4
+
5
+ COPY . .
6
+
7
+ RUN pip install --no-cache-dir --disable-pip-version-check -U agenta
8
+ RUN pip install --no-cache-dir --disable-pip-version-check -r requirements.txt
9
+
10
+ EXPOSE 80
11
+
12
+ RUN ["chmod", "+x", "./entrypoint.sh"]
13
+ CMD ["./entrypoint.sh"]
@@ -20,14 +20,14 @@ def create_dockerfile(out_folder: Path) -> Path:
20
20
  """
21
21
  assert Path(out_folder).exists(), f"Folder {out_folder} does not exist."
22
22
  dockerfile_template = (
23
- Path(__file__).parent / "docker-assets" / "Dockerfile.template"
23
+ Path(__file__).parent / "docker-assets" / "Dockerfile.oss.template"
24
24
  )
25
- dockerfile_path = out_folder / "Dockerfile"
25
+ dockerfile_path = out_folder / "Dockerfile.oss.agenta"
26
26
  shutil.copy(dockerfile_template, dockerfile_path)
27
27
  dockerfile_template = (
28
28
  Path(__file__).parent / "docker-assets" / "Dockerfile.cloud.template"
29
29
  )
30
- dockerfile_path = out_folder / "Dockerfile.cloud"
30
+ dockerfile_path = out_folder / "Dockerfile.cloud.agenta"
31
31
  shutil.copy(dockerfile_template, dockerfile_path)
32
32
 
33
33
  return dockerfile_path
@@ -1,5 +1,6 @@
1
1
  supported_llm_models = {
2
2
  "Anthropic": [
3
+ "anthropic/claude-3-7-sonnet-20250219",
3
4
  "anthropic/claude-3-5-sonnet-20241022",
4
5
  "anthropic/claude-3-5-sonnet-20240620",
5
6
  "anthropic/claude-3-5-haiku-20241022",
@@ -50,6 +51,7 @@ supported_llm_models = {
50
51
  "mistral/mistral-large-latest",
51
52
  ],
52
53
  "OpenAI": [
54
+ "gpt-4.5-preview",
53
55
  "gpt-3.5-turbo-1106",
54
56
  "gpt-3.5-turbo",
55
57
  "gpt-4",
@@ -65,6 +67,7 @@ supported_llm_models = {
65
67
  "openrouter/anthropic/claude-3.5-haiku-20241022:beta",
66
68
  "openrouter/anthropic/claude-3.5-haiku:beta",
67
69
  "openrouter/anthropic/claude-3.5-sonnet",
70
+ "openrouter/anthropic/claude-3.7-sonnet",
68
71
  "openrouter/anthropic/claude-3.5-sonnet-20240620",
69
72
  "openrouter/anthropic/claude-3.5-sonnet-20240620:beta",
70
73
  "openrouter/anthropic/claude-3.5-sonnet:beta",
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agenta"
3
- version = "0.33.8"
3
+ version = "0.34.3"
4
4
  description = "The SDK for agenta is an open-source LLMOps platform."
5
5
  readme = "README.md"
6
6
  authors = ["Mahmoud Mabrouk <mahmoud@agenta.ai>"]
@@ -1,22 +0,0 @@
1
- import click
2
- from agenta.client import client
3
-
4
-
5
- @click.group()
6
- def evaluation():
7
- """Commands for evaluations."""
8
- pass
9
-
10
-
11
- # TODO: Remove hardcoded values
12
- @evaluation.command(name="run")
13
- def run_evaluation_cli():
14
- """Run an evaluation."""
15
-
16
- try:
17
- client.run_evaluation(
18
- app_name="sss",
19
- host="http://localhost",
20
- )
21
- except Exception as ex:
22
- click.echo(click.style(f"Error while running evaluation: {ex}", fg="red"))
@@ -1,9 +0,0 @@
1
- # Using this template
2
-
3
- Please make sure to create a `.env` file with your OpenAI API key before running the app.
4
- OPENAI_API_KEY=sk-xxxxxxx
5
-
6
- You can find your keys here:
7
- https://platform.openai.com/account/api-keys
8
-
9
- Go back to the [Getting started tutorial](https://docs.agenta.ai/getting-started) to continue
@@ -1,63 +0,0 @@
1
- import agenta as ag
2
- from langchain.chains import LLMChain
3
- from langchain.llms import OpenAI
4
- from langchain.prompts import PromptTemplate
5
-
6
- default_prompt = """
7
- **Write an email** from {from_sender} to {to_receiver} with the designated tone and style: {email_style}. The primary content of the email is: {email_content}.
8
-
9
- Use the following format:
10
- Subject: <subject>
11
-
12
- <body>
13
-
14
- **Procedure**:
15
-
16
- **(1) Determine the primary talking points of the email:**
17
- 1. Identify the central theme of the provided content.
18
- 2. Extract secondary messages or supporting points.
19
-
20
- **(2) Frame sentences for each talking point, keeping in mind the given tone and style {{ style }}:**
21
- 3. Create a compelling opening sentence that sets the tone and introduces the main theme.
22
- 4. Formulate sentences that add depth or context to each of the previously identified talking points.
23
-
24
- **(3) Draft the initial version of the email:**
25
- Use the sentences crafted in the previous step to compose a coherent and engaging email. Ensure that the flow feels natural and that each sentence transitions smoothly to the next.
26
-
27
- **(4) Analyze the email and list ways to refine it:**
28
- 5. Identify areas where the message might be unclear or could benefit from additional information.
29
- 6. Consider places where the language or tone might be enhanced to be more persuasive or emotive.
30
- 7. Evaluate if the email adheres to the style directive and, if not, identify deviations.
31
-
32
- **(5) Re-write the email by applying the insights gained:**
33
- Rework the initial draft, incorporating the improvements identified in the previous step. Aim to present the message as effectively as possible while strictly adhering to the prescribed tone and style.
34
-
35
- """
36
-
37
- ag.init()
38
- ag.config.default(
39
- temperature=ag.FloatParam(0.9), prompt_template=ag.TextParam(default_prompt)
40
- )
41
-
42
-
43
- @ag.entrypoint
44
- def generate(
45
- from_sender: str,
46
- to_receiver: str,
47
- email_style: str,
48
- email_content: str,
49
- ) -> str:
50
- llm = OpenAI(temperature=ag.config.temperature)
51
- prompt = PromptTemplate(
52
- input_variables=["from_sender", "to_receiver", "email_style", "email_content"],
53
- template=ag.config.prompt_template,
54
- )
55
- chain = LLMChain(llm=llm, prompt=prompt)
56
- output = chain.run(
57
- from_sender=from_sender,
58
- to_receiver=to_receiver,
59
- email_style=email_style,
60
- email_content=email_content,
61
- )
62
-
63
- return output
@@ -1,2 +0,0 @@
1
- # Rename this file to .env
2
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
@@ -1,3 +0,0 @@
1
- langchain
2
- openai
3
- agenta
@@ -1 +0,0 @@
1
- short_desc="Simple app that composes an email."
@@ -1,9 +0,0 @@
1
- # Using this template
2
-
3
- Please make sure to create a `.env` file with your OpenAI API key before running the app.
4
- OPENAI_API_KEY=sk-xxxxxxx
5
-
6
- You can find your keys here:
7
- https://platform.openai.com/account/api-keys
8
-
9
- Go back to the [Getting started tutorial](https://docs.agenta.ai/getting-started) to continue
@@ -1,53 +0,0 @@
1
- import agenta as ag
2
- from openai import OpenAI
3
-
4
- client = OpenAI()
5
- import json
6
-
7
- default_prompt = """You are a world class algorithm for extracting information in structured formats. Extract information and create a valid JSON from the following input: {text}"""
8
- function_json_string = """
9
- {
10
- "name": "extract_information",
11
- "description": "Extract information from user-provided text",
12
- "parameters": {
13
- "type": "object",
14
- "properties": {
15
- "text": {
16
- "type": "string",
17
- "description": "The text to extract information from"
18
- }
19
- }
20
- }
21
- }
22
- """
23
-
24
- ag.init()
25
- ag.config.default(
26
- temperature=ag.FloatParam(0.9),
27
- prompt_template=ag.TextParam(default_prompt),
28
- function_json=ag.TextParam(function_json_string),
29
- )
30
-
31
-
32
- @ag.entrypoint
33
- def generate(
34
- text: str,
35
- ) -> str:
36
- messages = [
37
- {
38
- "role": "user",
39
- "content": ag.config.prompt_template.format(text=text),
40
- },
41
- ]
42
-
43
- function = json.loads(ag.config.function_json)
44
-
45
- response = client.chat.completions.create(
46
- model="gpt-3.5-turbo-0613",
47
- messages=messages,
48
- temperature=ag.config.temperature,
49
- functions=[function],
50
- )
51
-
52
- output = str(response["choices"][0]["message"]["function_call"])
53
- return output
@@ -1,2 +0,0 @@
1
- # Rename this file to .env
2
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
@@ -1,3 +0,0 @@
1
- langchain
2
- openai
3
- agenta
@@ -1 +0,0 @@
1
- short_desc="Simple app that extracts data to JSON from text"
@@ -1,9 +0,0 @@
1
- # Using this template
2
-
3
- Please make sure to create a `.env` file with your OpenAI API key before running the app.
4
- OPENAI_API_KEY=sk-xxxxxxx
5
-
6
- You can find your keys here:
7
- https://platform.openai.com/account/api-keys
8
-
9
- Go back to the [Getting started tutorial](https://docs.agenta.ai/getting-started) to continue
@@ -1,24 +0,0 @@
1
- import agenta as ag
2
- from langchain.chains import LLMChain
3
- from langchain.llms import OpenAI
4
- from langchain.prompts import PromptTemplate
5
-
6
- default_prompt = "What is a good name for a company that makes {product}?"
7
-
8
- ag.init()
9
- ag.config.default(
10
- temperature=ag.FloatParam(0.9),
11
- prompt_template=ag.TextParam(default_prompt),
12
- )
13
-
14
-
15
- @ag.entrypoint
16
- def generate(product: str) -> str:
17
- llm = OpenAI(temperature=ag.config.temperature)
18
- prompt = PromptTemplate(
19
- input_variables=["product"], template=ag.config.prompt_template
20
- )
21
- chain = LLMChain(llm=llm, prompt=prompt)
22
- output = chain.run(product=product)
23
-
24
- return output
@@ -1,2 +0,0 @@
1
- # Rename this file to .env
2
- OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
@@ -1,3 +0,0 @@
1
- langchain
2
- openai
3
- agenta
@@ -1 +0,0 @@
1
- short_desc="Simple app that uses one prompt using langchain"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes