agenta 0.44.3__tar.gz → 0.45.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.

Potentially problematic release.


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

Files changed (255) hide show
  1. {agenta-0.44.3 → agenta-0.45.0}/PKG-INFO +1 -1
  2. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/decorators/routing.py +41 -11
  3. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/decorators/tracing.py +3 -5
  4. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/apps.py +0 -5
  5. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/inline.py +10 -2
  6. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/processors.py +25 -1
  7. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/tracing.py +62 -1
  8. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/types.py +2 -0
  9. {agenta-0.44.3 → agenta-0.45.0}/pyproject.toml +1 -1
  10. {agenta-0.44.3 → agenta-0.45.0}/README.md +0 -0
  11. {agenta-0.44.3 → agenta-0.45.0}/agenta/__init__.py +0 -0
  12. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/Readme.md +0 -0
  13. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/__init__.py +0 -0
  14. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/access_control/__init__.py +0 -0
  15. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/access_control/client.py +0 -0
  16. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/admin/__init__.py +0 -0
  17. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/admin/client.py +0 -0
  18. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/api_keys/__init__.py +0 -0
  19. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/api_keys/client.py +0 -0
  20. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/apps/__init__.py +0 -0
  21. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/apps/client.py +0 -0
  22. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/bases/__init__.py +0 -0
  23. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/bases/client.py +0 -0
  24. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/configs/__init__.py +0 -0
  25. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/configs/client.py +0 -0
  26. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/containers/__init__.py +0 -0
  27. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/containers/client.py +0 -0
  28. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/containers/types/__init__.py +0 -0
  29. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/containers/types/container_templates_response.py +0 -0
  30. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/__init__.py +0 -0
  31. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/api_error.py +0 -0
  32. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/client_wrapper.py +0 -0
  33. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/datetime_utils.py +0 -0
  34. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/file.py +0 -0
  35. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/http_client.py +0 -0
  36. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/jsonable_encoder.py +0 -0
  37. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/pydantic_utilities.py +0 -0
  38. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/query_encoder.py +0 -0
  39. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
  40. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/request_options.py +0 -0
  41. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/core/serialization.py +0 -0
  42. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/environments/__init__.py +0 -0
  43. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/environments/client.py +0 -0
  44. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/errors/__init__.py +0 -0
  45. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
  46. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/evaluations/__init__.py +0 -0
  47. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/evaluations/client.py +0 -0
  48. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/evaluators/__init__.py +0 -0
  49. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/evaluators/client.py +0 -0
  50. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/human_evaluations/__init__.py +0 -0
  51. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/human_evaluations/client.py +0 -0
  52. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/observability/__init__.py +0 -0
  53. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/observability/client.py +0 -0
  54. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/observability/types/__init__.py +0 -0
  55. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/observability/types/format.py +0 -0
  56. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/observability/types/query_analytics_response.py +0 -0
  57. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/observability/types/query_traces_response.py +0 -0
  58. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/organization/__init__.py +0 -0
  59. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/organization/client.py +0 -0
  60. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/scopes/__init__.py +0 -0
  61. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/scopes/client.py +0 -0
  62. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/testsets/__init__.py +0 -0
  63. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/testsets/client.py +0 -0
  64. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/__init__.py +0 -0
  65. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/account_response.py +0 -0
  66. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/agenta_node_dto.py +0 -0
  67. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/agenta_node_dto_nodes_value.py +0 -0
  68. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/agenta_nodes_response.py +0 -0
  69. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/agenta_root_dto.py +0 -0
  70. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/agenta_roots_response.py +0 -0
  71. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/agenta_tree_dto.py +0 -0
  72. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/agenta_trees_response.py +0 -0
  73. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/aggregated_result.py +0 -0
  74. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
  75. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/analytics_response.py +0 -0
  76. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/app.py +0 -0
  77. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/app_variant_response.py +0 -0
  78. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/app_variant_revision.py +0 -0
  79. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/base_output.py +0 -0
  80. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/body_import_testset.py +0 -0
  81. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/bucket_dto.py +0 -0
  82. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/collect_status_response.py +0 -0
  83. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/config_db.py +0 -0
  84. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/config_dto.py +0 -0
  85. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/config_response_model.py +0 -0
  86. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/correct_answer.py +0 -0
  87. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/create_app_output.py +0 -0
  88. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/custom_model_settings_dto.py +0 -0
  89. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/custom_provider_dto.py +0 -0
  90. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/custom_provider_kind.py +0 -0
  91. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/custom_provider_settings_dto.py +0 -0
  92. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/data.py +0 -0
  93. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/delete_evaluation.py +0 -0
  94. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/docker_env_vars.py +0 -0
  95. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/environment_output.py +0 -0
  96. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/environment_output_extended.py +0 -0
  97. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/environment_revision.py +0 -0
  98. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/error.py +0 -0
  99. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluation.py +0 -0
  100. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluation_scenario.py +0 -0
  101. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
  102. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
  103. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
  104. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
  105. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluation_type.py +0 -0
  106. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluator.py +0 -0
  107. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluator_config.py +0 -0
  108. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluator_mapping_output_interface.py +0 -0
  109. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/evaluator_output_interface.py +0 -0
  110. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/exception_dto.py +0 -0
  111. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/get_config_response.py +0 -0
  112. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/header_dto.py +0 -0
  113. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/http_validation_error.py +0 -0
  114. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/human_evaluation.py +0 -0
  115. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
  116. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
  117. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
  118. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/image.py +0 -0
  119. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/invite_request.py +0 -0
  120. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/legacy_analytics_response.py +0 -0
  121. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/legacy_data_point.py +0 -0
  122. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/legacy_scope_request.py +0 -0
  123. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/legacy_scopes_response.py +0 -0
  124. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/legacy_user_request.py +0 -0
  125. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/legacy_user_response.py +0 -0
  126. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/lifecycle_dto.py +0 -0
  127. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/link_dto.py +0 -0
  128. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/list_api_keys_response.py +0 -0
  129. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
  130. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/metrics_dto.py +0 -0
  131. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/new_testset.py +0 -0
  132. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/node_dto.py +0 -0
  133. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/node_type.py +0 -0
  134. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_context_dto.py +0 -0
  135. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_event_dto.py +0 -0
  136. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_extra_dto.py +0 -0
  137. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_link_dto.py +0 -0
  138. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_span_dto.py +0 -0
  139. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_span_kind.py +0 -0
  140. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_spans_response.py +0 -0
  141. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/o_tel_status_code.py +0 -0
  142. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/organization.py +0 -0
  143. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/organization_details.py +0 -0
  144. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/organization_membership_request.py +0 -0
  145. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/organization_output.py +0 -0
  146. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/organization_request.py +0 -0
  147. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/parent_dto.py +0 -0
  148. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/permission.py +0 -0
  149. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/project_membership_request.py +0 -0
  150. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/project_request.py +0 -0
  151. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/project_scope.py +0 -0
  152. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/projects_response.py +0 -0
  153. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/provider_key_dto.py +0 -0
  154. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/provider_kind.py +0 -0
  155. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/reference.py +0 -0
  156. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/reference_dto.py +0 -0
  157. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/reference_request_model.py +0 -0
  158. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/result.py +0 -0
  159. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/role.py +0 -0
  160. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/root_dto.py +0 -0
  161. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/scopes_response_model.py +0 -0
  162. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/score.py +0 -0
  163. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/secret_dto.py +0 -0
  164. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/secret_kind.py +0 -0
  165. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/secret_response_dto.py +0 -0
  166. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
  167. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/span_dto.py +0 -0
  168. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/span_dto_nodes_value.py +0 -0
  169. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/standard_provider_dto.py +0 -0
  170. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/standard_provider_kind.py +0 -0
  171. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/standard_provider_settings_dto.py +0 -0
  172. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/status_code.py +0 -0
  173. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/status_dto.py +0 -0
  174. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/template.py +0 -0
  175. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/template_image_info.py +0 -0
  176. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/test_set_output_response.py +0 -0
  177. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/test_set_simple_response.py +0 -0
  178. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/time_dto.py +0 -0
  179. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/tree_dto.py +0 -0
  180. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/tree_type.py +0 -0
  181. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/update_app_output.py +0 -0
  182. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/uri.py +0 -0
  183. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/user_request.py +0 -0
  184. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/validation_error.py +0 -0
  185. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
  186. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/variant_action.py +0 -0
  187. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/variant_action_enum.py +0 -0
  188. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace.py +0 -0
  189. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace_member_response.py +0 -0
  190. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace_membership_request.py +0 -0
  191. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace_permission.py +0 -0
  192. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace_request.py +0 -0
  193. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace_response.py +0 -0
  194. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace_role.py +0 -0
  195. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/types/workspace_role_response.py +0 -0
  196. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/variants/__init__.py +0 -0
  197. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/variants/client.py +0 -0
  198. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/variants/types/__init__.py +0 -0
  199. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +0 -0
  200. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/vault/__init__.py +0 -0
  201. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/vault/client.py +0 -0
  202. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/workspace/__init__.py +0 -0
  203. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/backend/workspace/client.py +0 -0
  204. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/client.py +0 -0
  205. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/types/provider_key_dto.py~HEAD +0 -0
  206. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/types/provider_key_dto.py~feat_model-registry +0 -0
  207. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/types/provider_kind.py~HEAD +0 -0
  208. {agenta-0.44.3 → agenta-0.45.0}/agenta/client/types/provider_kind.py~feat_model-registry +0 -0
  209. {agenta-0.44.3 → agenta-0.45.0}/agenta/config.py +0 -0
  210. {agenta-0.44.3 → agenta-0.45.0}/agenta/config.toml +0 -0
  211. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/__init__.py +0 -0
  212. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/agenta_init.py +0 -0
  213. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/assets.py +0 -0
  214. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/context/__init__.py +0 -0
  215. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/context/exporting.py +0 -0
  216. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/context/routing.py +0 -0
  217. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/context/tracing.py +0 -0
  218. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/decorators/__init__.py +0 -0
  219. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/litellm/__init__.py +0 -0
  220. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/litellm/litellm.py +0 -0
  221. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/litellm/mockllm.py +0 -0
  222. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/litellm/mocks/__init__.py +0 -0
  223. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/__init__.py +0 -0
  224. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/config.py +0 -0
  225. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/deployment.py +0 -0
  226. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/secrets.py +0 -0
  227. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/shared.py +0 -0
  228. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/variant.py +0 -0
  229. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/managers/vault.py +0 -0
  230. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/__init__.py +0 -0
  231. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/auth.py +0 -0
  232. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/config.py +0 -0
  233. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/cors.py +0 -0
  234. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/inline.py +0 -0
  235. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/mock.py +0 -0
  236. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/otel.py +0 -0
  237. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/middleware/vault.py +0 -0
  238. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/router.py +0 -0
  239. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/__init__.py +0 -0
  240. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/attributes.py +0 -0
  241. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/conventions.py +0 -0
  242. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/exporters.py +0 -0
  243. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/propagation.py +0 -0
  244. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/tracing/spans.py +0 -0
  245. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/__init__.py +0 -0
  246. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/cache.py +0 -0
  247. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/constants.py +0 -0
  248. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/costs.py +0 -0
  249. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/exceptions.py +0 -0
  250. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/globals.py +0 -0
  251. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/helpers.py +0 -0
  252. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/logging.py +0 -0
  253. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/preinit.py +0 -0
  254. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/singleton.py +0 -0
  255. {agenta-0.44.3 → agenta-0.45.0}/agenta/sdk/utils/timing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agenta
3
- Version: 0.44.3
3
+ Version: 0.45.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
@@ -363,20 +363,44 @@ class entrypoint:
363
363
  tree = None
364
364
  content_type = "text/plain"
365
365
  tree_id = None
366
+ trace_id = None
367
+ span_id = None
366
368
 
367
369
  with suppress():
368
370
  if isinstance(result, (dict, list)):
369
371
  content_type = "application/json"
370
372
  data = self.patch_result(result)
371
373
 
372
- tree, tree_id = await self.fetch_inline_trace(inline)
374
+ (
375
+ tree,
376
+ tree_id,
377
+ trace_id,
378
+ span_id,
379
+ ) = await self.fetch_inline_trace(inline)
373
380
 
374
381
  try:
375
382
  return BaseResponse(
376
- data=data, tree=tree, content_type=content_type, tree_id=tree_id
383
+ data=data,
384
+ tree=tree,
385
+ content_type=content_type,
386
+ tree_id=tree_id,
387
+ trace_id=trace_id,
388
+ span_id=span_id,
377
389
  )
378
390
  except: # pylint: disable=bare-except
379
- return BaseResponse(data=data, content_type=content_type)
391
+ try:
392
+ return BaseResponse(
393
+ data=data,
394
+ content_type=content_type,
395
+ tree_id=tree_id,
396
+ trace_id=trace_id,
397
+ span_id=span_id,
398
+ )
399
+ except: # pylint: disable=bare-except
400
+ return BaseResponse(
401
+ data=data,
402
+ content_type=content_type,
403
+ )
380
404
 
381
405
  def handle_failure(
382
406
  self,
@@ -444,8 +468,10 @@ class entrypoint:
444
468
 
445
469
  link = context.link
446
470
 
447
- _tree_id = link.get("tree_id") if link else None # in int format
448
- tree_id = str(UUID(int=_tree_id)) if _tree_id else None # in uuid_as_str format
471
+ _trace_id = link.get("trace_id") if link else None # in int format
472
+ tree_id = (
473
+ str(UUID(int=_trace_id)) if _trace_id else None
474
+ ) # in uuid_as_str format
449
475
 
450
476
  return tree_id
451
477
 
@@ -461,24 +487,28 @@ class entrypoint:
461
487
 
462
488
  link = context.link
463
489
 
490
+ _trace_id = link.get("trace_id") if link else None # in int format
491
+ _span_id = link.get("span_id") if link else None # in int format
492
+
464
493
  tree = None
465
- _tree_id = link.get("tree_id") if link else None # in int format
466
- tree_id = str(UUID(int=_tree_id)) if _tree_id else None # in uuid_as_str format
494
+ tree_id = str(UUID(int=_trace_id)) if _trace_id else None
495
+ trace_id = UUID(int=_trace_id).hex if _trace_id else None
496
+ span_id = UUID(int=_span_id).hex[16:] if _span_id else None
467
497
 
468
- if _tree_id is not None:
498
+ if _trace_id is not None:
469
499
  if inline:
470
500
  remaining_steps = NOFSTEPS
471
501
  while (
472
- not ag.tracing.is_inline_trace_ready(_tree_id)
502
+ not ag.tracing.is_inline_trace_ready(_trace_id)
473
503
  and remaining_steps > 0
474
504
  ):
475
505
  await sleep(TIMESTEP)
476
506
 
477
507
  remaining_steps -= 1
478
508
 
479
- tree = ag.tracing.get_inline_trace(_tree_id)
509
+ tree = ag.tracing.get_inline_trace(_trace_id)
480
510
 
481
- return tree, tree_id
511
+ return tree, tree_id, trace_id, span_id
482
512
 
483
513
  # --- OpenAPI --- #
484
514
 
@@ -131,8 +131,8 @@ class instrument: # pylint: disable=invalid-name
131
131
 
132
132
  if not context.link:
133
133
  context.link = {
134
- "tree_id": span.get_span_context().trace_id,
135
- "node_id": span.get_span_context().span_id,
134
+ "trace_id": span.get_span_context().trace_id,
135
+ "span_id": span.get_span_context().span_id,
136
136
  }
137
137
 
138
138
  tracing_context.set(context)
@@ -297,9 +297,7 @@ class instrument: # pylint: disable=invalid-name
297
297
  not in (
298
298
  ignore
299
299
  if isinstance(ignore, list)
300
- else io.keys()
301
- if ignore is True
302
- else []
300
+ else io.keys() if ignore is True else []
303
301
  )
304
302
  }
305
303
 
@@ -12,11 +12,6 @@ AppType = Literal["SERVICE:completion", "SERVICE:chat", "CUSTOM"]
12
12
  DEFAULT_APP_TYPE = "SERVICE:completion"
13
13
 
14
14
 
15
- AppType = Literal["SERVICE:completion", "SERVICE:chat", "CUSTOM"]
16
-
17
- DEFAULT_APP_TYPE = "SERVICE:completion"
18
-
19
-
20
15
  class AppManager:
21
16
  @classmethod
22
17
  @handle_exceptions()
@@ -160,6 +160,9 @@ class OTelExtraDTO(BaseModel):
160
160
 
161
161
 
162
162
  class SpanDTO(BaseModel):
163
+ trace_id: str
164
+ span_id: str
165
+
163
166
  scope: Optional[ProjectScopeDTO] = None
164
167
 
165
168
  lifecycle: Optional[LifecycleDTO] = None
@@ -792,6 +795,9 @@ def _parse_from_attributes(
792
795
  def parse_from_otel_span_dto(
793
796
  otel_span_dto: OTelSpanDTO,
794
797
  ) -> SpanDTO:
798
+ trace_id = str(otel_span_dto.context.trace_id[2:])
799
+ span_id = str(otel_span_dto.context.span_id[2:])
800
+
795
801
  lifecyle = LifecycleDTO(
796
802
  created_at=datetime.now(),
797
803
  )
@@ -800,7 +806,7 @@ def parse_from_otel_span_dto(
800
806
 
801
807
  types = _parse_from_types(otel_span_dto)
802
808
 
803
- tree_id = UUID(otel_span_dto.context.trace_id[2:])
809
+ tree_id = UUID(trace_id)
804
810
 
805
811
  tree_type: str = types.get("tree")
806
812
 
@@ -809,7 +815,7 @@ def parse_from_otel_span_dto(
809
815
  type=tree_type.lower() if tree_type else None,
810
816
  )
811
817
 
812
- node_id = UUID(tree_id.hex[16:] + otel_span_dto.context.span_id[2:])
818
+ node_id = UUID(trace_id[16:] + span_id)
813
819
 
814
820
  node_type = NodeType.TASK
815
821
  try:
@@ -871,6 +877,8 @@ def parse_from_otel_span_dto(
871
877
  )
872
878
 
873
879
  span_dto = SpanDTO(
880
+ trace_id=trace_id,
881
+ span_id=span_id,
874
882
  lifecycle=lifecyle,
875
883
  root=root,
876
884
  tree=tree,
@@ -1,8 +1,9 @@
1
1
  from typing import Optional, Dict, List
2
+ from threading import Lock
2
3
 
3
4
  from opentelemetry.baggage import get_all as get_baggage
4
5
  from opentelemetry.context import Context
5
- from opentelemetry.sdk.trace import Span
6
+ from opentelemetry.sdk.trace import Span, SpanProcessor
6
7
  from opentelemetry.sdk.trace.export import (
7
8
  SpanExporter,
8
9
  ReadableSpan,
@@ -154,3 +155,26 @@ class TraceProcessor(BatchSpanProcessor):
154
155
  # --- INLINE
155
156
 
156
157
  return trace
158
+
159
+
160
+ invocation_link = {}
161
+ invocation_link_lock = Lock()
162
+
163
+
164
+ class InvocationLinkHook(SpanProcessor):
165
+ def on_end(self, span):
166
+ # Only capture root spans if you want
167
+ if span.parent is None:
168
+ ctx = span.get_span_context()
169
+
170
+ with invocation_link_lock:
171
+ invocation_link["trace_id"] = ctx.trace_id
172
+ invocation_link["span_id"] = ctx.span_id
173
+
174
+
175
+ def use_invocation_link() -> Optional[Dict[str, str]]:
176
+ with invocation_link_lock:
177
+ if invocation_link:
178
+ return invocation_link.copy()
179
+ else:
180
+ return None
@@ -1,8 +1,11 @@
1
1
  from typing import Optional, Any, Dict, Callable
2
2
  from enum import Enum
3
+ from uuid import UUID
3
4
 
5
+ from pydantic import BaseModel
4
6
  from httpx import get as check
5
7
 
8
+
6
9
  from opentelemetry.trace import (
7
10
  get_current_span,
8
11
  set_tracer_provider,
@@ -10,13 +13,19 @@ from opentelemetry.trace import (
10
13
  Status,
11
14
  StatusCode,
12
15
  )
16
+ from opentelemetry.sdk import trace
13
17
  from opentelemetry.sdk.trace import Span, Tracer, TracerProvider
14
18
  from opentelemetry.sdk.resources import Resource
15
19
 
20
+
16
21
  from agenta.sdk.utils.singleton import Singleton
17
22
  from agenta.sdk.utils.exceptions import suppress
18
23
  from agenta.sdk.utils.logging import get_module_logger
19
- from agenta.sdk.tracing.processors import TraceProcessor
24
+ from agenta.sdk.tracing.processors import (
25
+ TraceProcessor,
26
+ InvocationLinkHook,
27
+ use_invocation_link,
28
+ )
20
29
  from agenta.sdk.tracing.exporters import InlineExporter, OTLPExporter
21
30
  from agenta.sdk.tracing.spans import CustomSpan
22
31
  from agenta.sdk.tracing.inline import parse_inline_trace
@@ -24,9 +33,27 @@ from agenta.sdk.tracing.conventions import Reference, is_valid_attribute_key
24
33
  from agenta.sdk.tracing.propagation import extract, inject
25
34
  from agenta.sdk.utils.cache import TTLLRUCache
26
35
 
36
+ from agenta.sdk.context.tracing import tracing_context
37
+
27
38
  log = get_module_logger(__name__)
28
39
 
29
40
 
41
+ _original_init = trace.TracerProvider.__init__
42
+
43
+
44
+ def patched_init(self, *args, **kwargs):
45
+ _original_init(self, *args, **kwargs)
46
+ self.add_span_processor(InvocationLinkHook())
47
+
48
+
49
+ trace.TracerProvider.__init__ = patched_init
50
+
51
+
52
+ class Link(BaseModel):
53
+ trace_id: str
54
+ span_id: str
55
+
56
+
30
57
  class Tracing(metaclass=Singleton):
31
58
  VERSION = "0.1.0"
32
59
 
@@ -242,6 +269,40 @@ class Tracing(metaclass=Singleton):
242
269
  ):
243
270
  return inject(*args, **kwargs)
244
271
 
272
+ def get_invocation_link(self) -> Optional[Link]:
273
+ with suppress():
274
+ link = tracing_context.get().link
275
+
276
+ trace_id = None
277
+ span_id = None
278
+
279
+ if link:
280
+ trace_id = UUID(int=link.get("trace_id")).hex if link else None
281
+ span_id = UUID(int=link.get("span_id")).hex[16:] if link else None
282
+
283
+ if trace_id and span_id:
284
+ return Link(
285
+ trace_id=trace_id,
286
+ span_id=span_id,
287
+ )
288
+
289
+ link = use_invocation_link()
290
+
291
+ trace_id = None
292
+ span_id = None
293
+
294
+ if link:
295
+ trace_id = UUID(int=link.get("trace_id")).hex if link else None
296
+ span_id = UUID(int=link.get("span_id")).hex[16:] if link else None
297
+
298
+ if trace_id and span_id:
299
+ return Link(
300
+ trace_id=trace_id,
301
+ span_id=span_id,
302
+ )
303
+
304
+ return None
305
+
245
306
 
246
307
  def get_tracer(
247
308
  tracing: Tracing,
@@ -39,6 +39,8 @@ class BaseResponse(BaseModel):
39
39
  content_type: Optional[str] = "string"
40
40
  tree: Optional[AgentaNodesResponse] = None
41
41
  tree_id: Optional[str] = None
42
+ trace_id: Optional[str] = None
43
+ span_id: Optional[str] = None
42
44
 
43
45
  model_config = ConfigDict(use_enum_values=True, exclude_none=True)
44
46
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agenta"
3
- version = "0.44.3"
3
+ version = "0.45.0"
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>"]
File without changes
File without changes
File without changes