agenta 0.51.4__tar.gz → 0.51.6__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 (371) hide show
  1. {agenta-0.51.4 → agenta-0.51.6}/PKG-INFO +1 -1
  2. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/decorators/serving.py +44 -1
  3. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/decorators/tracing.py +34 -48
  4. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/types.py +39 -0
  5. agenta-0.51.6/agenta/sdk/utils/otel.py +21 -0
  6. {agenta-0.51.4 → agenta-0.51.6}/pyproject.toml +1 -1
  7. {agenta-0.51.4 → agenta-0.51.6}/README.md +0 -0
  8. {agenta-0.51.4 → agenta-0.51.6}/agenta/__init__.py +0 -0
  9. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/Readme.md +0 -0
  10. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/__init__.py +0 -0
  11. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/__init__.py +0 -0
  12. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/access_control/__init__.py +0 -0
  13. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/access_control/client.py +0 -0
  14. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/access_control/raw_client.py +0 -0
  15. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/admin/__init__.py +0 -0
  16. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/admin/client.py +0 -0
  17. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/admin/raw_client.py +0 -0
  18. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/api_keys/__init__.py +0 -0
  19. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/api_keys/client.py +0 -0
  20. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/api_keys/raw_client.py +0 -0
  21. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/apps/__init__.py +0 -0
  22. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/apps/client.py +0 -0
  23. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/apps/raw_client.py +0 -0
  24. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/bases/__init__.py +0 -0
  25. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/bases/client.py +0 -0
  26. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/bases/raw_client.py +0 -0
  27. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/billing/__init__.py +0 -0
  28. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/billing/client.py +0 -0
  29. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/billing/raw_client.py +0 -0
  30. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/client.py +0 -0
  31. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/configs/__init__.py +0 -0
  32. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/configs/client.py +0 -0
  33. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/configs/raw_client.py +0 -0
  34. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/containers/__init__.py +0 -0
  35. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/containers/client.py +0 -0
  36. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/containers/raw_client.py +0 -0
  37. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/__init__.py +0 -0
  38. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/api_error.py +0 -0
  39. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/client_wrapper.py +0 -0
  40. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/datetime_utils.py +0 -0
  41. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/file.py +0 -0
  42. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/force_multipart.py +0 -0
  43. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/http_client.py +0 -0
  44. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/http_response.py +0 -0
  45. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/jsonable_encoder.py +0 -0
  46. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/pydantic_utilities.py +0 -0
  47. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/query_encoder.py +0 -0
  48. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/remove_none_from_dict.py +0 -0
  49. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/request_options.py +0 -0
  50. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/core/serialization.py +0 -0
  51. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/environment.py +0 -0
  52. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/environments/__init__.py +0 -0
  53. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/environments/client.py +0 -0
  54. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/environments/raw_client.py +0 -0
  55. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/errors/__init__.py +0 -0
  56. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/errors/unprocessable_entity_error.py +0 -0
  57. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evals/__init__.py +0 -0
  58. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evals/client.py +0 -0
  59. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evals/raw_client.py +0 -0
  60. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evaluations/__init__.py +0 -0
  61. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evaluations/client.py +0 -0
  62. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evaluations/raw_client.py +0 -0
  63. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evaluators/__init__.py +0 -0
  64. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evaluators/client.py +0 -0
  65. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/evaluators/raw_client.py +0 -0
  66. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/human_evaluations/__init__.py +0 -0
  67. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/human_evaluations/client.py +0 -0
  68. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/human_evaluations/raw_client.py +0 -0
  69. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/__init__.py +0 -0
  70. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/client.py +0 -0
  71. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/raw_client.py +0 -0
  72. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/types/__init__.py +0 -0
  73. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/types/fetch_trace_by_id_request_trace_id.py +0 -0
  74. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/types/fetch_trace_by_id_response.py +0 -0
  75. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/types/query_analytics_response.py +0 -0
  76. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/observability/types/query_traces_response.py +0 -0
  77. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/organization/__init__.py +0 -0
  78. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/organization/client.py +0 -0
  79. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/organization/raw_client.py +0 -0
  80. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/raw_client.py +0 -0
  81. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/scopes/__init__.py +0 -0
  82. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/scopes/client.py +0 -0
  83. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/scopes/raw_client.py +0 -0
  84. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/testsets/__init__.py +0 -0
  85. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/testsets/client.py +0 -0
  86. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/testsets/raw_client.py +0 -0
  87. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/testsets/types/__init__.py +0 -0
  88. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/testsets/types/create_testset_from_file_request_file_type.py +0 -0
  89. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/testsets/types/fetch_testset_to_file_request_file_type.py +0 -0
  90. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/testsets/types/update_testset_from_file_request_file_type.py +0 -0
  91. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/tracing/__init__.py +0 -0
  92. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/tracing/client.py +0 -0
  93. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/tracing/raw_client.py +0 -0
  94. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/tracing/types/__init__.py +0 -0
  95. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/tracing/types/fetch_trace_request_trace_id.py +0 -0
  96. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/tracing/types/remove_trace_request_trace_id.py +0 -0
  97. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/__init__.py +0 -0
  98. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/account_request.py +0 -0
  99. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/account_response.py +0 -0
  100. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/agenta_node_dto.py +0 -0
  101. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/agenta_node_dto_nodes_value.py +0 -0
  102. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/agenta_nodes_response.py +0 -0
  103. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/agenta_root_dto.py +0 -0
  104. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/agenta_roots_response.py +0 -0
  105. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/agenta_tree_dto.py +0 -0
  106. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/agenta_trees_response.py +0 -0
  107. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/aggregated_result.py +0 -0
  108. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/aggregated_result_evaluator_config.py +0 -0
  109. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/analytics_response.py +0 -0
  110. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation.py +0 -0
  111. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_create.py +0 -0
  112. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_edit.py +0 -0
  113. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_kind.py +0 -0
  114. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_link.py +0 -0
  115. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_link_response.py +0 -0
  116. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_query.py +0 -0
  117. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_query_request.py +0 -0
  118. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_reference.py +0 -0
  119. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_references.py +0 -0
  120. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_response.py +0 -0
  121. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotation_source.py +0 -0
  122. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/annotations_response.py +0 -0
  123. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/app.py +0 -0
  124. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/app_variant_response.py +0 -0
  125. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/app_variant_revision.py +0 -0
  126. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/artifact.py +0 -0
  127. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/base_output.py +0 -0
  128. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/body_fetch_workflow_revision.py +0 -0
  129. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/body_import_testset.py +0 -0
  130. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/bucket_dto.py +0 -0
  131. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/collect_status_response.py +0 -0
  132. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/config_db.py +0 -0
  133. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/config_dto.py +0 -0
  134. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/config_response_model.py +0 -0
  135. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/correct_answer.py +0 -0
  136. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/create_app_output.py +0 -0
  137. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/custom_model_settings_dto.py +0 -0
  138. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/custom_provider_dto.py +0 -0
  139. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/custom_provider_kind.py +0 -0
  140. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/custom_provider_settings_dto.py +0 -0
  141. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/data.py +0 -0
  142. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/delete_evaluation.py +0 -0
  143. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/environment_output.py +0 -0
  144. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/environment_output_extended.py +0 -0
  145. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/environment_revision.py +0 -0
  146. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/error.py +0 -0
  147. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluation.py +0 -0
  148. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluation_scenario.py +0 -0
  149. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluation_scenario_input.py +0 -0
  150. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluation_scenario_output.py +0 -0
  151. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluation_scenario_result.py +0 -0
  152. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluation_status_enum.py +0 -0
  153. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluation_type.py +0 -0
  154. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator.py +0 -0
  155. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_config.py +0 -0
  156. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_flags.py +0 -0
  157. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_mapping_output_interface.py +0 -0
  158. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_output_interface.py +0 -0
  159. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_query.py +0 -0
  160. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_query_request.py +0 -0
  161. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_request.py +0 -0
  162. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluator_response.py +0 -0
  163. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/evaluators_response.py +0 -0
  164. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/exception_dto.py +0 -0
  165. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/extended_o_tel_tracing_response.py +0 -0
  166. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/focus.py +0 -0
  167. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/format.py +0 -0
  168. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/full_json_input.py +0 -0
  169. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/full_json_output.py +0 -0
  170. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/get_config_response.py +0 -0
  171. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/header.py +0 -0
  172. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/http_validation_error.py +0 -0
  173. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/human_evaluation.py +0 -0
  174. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/human_evaluation_scenario.py +0 -0
  175. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/human_evaluation_scenario_input.py +0 -0
  176. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/human_evaluation_scenario_output.py +0 -0
  177. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/invite_request.py +0 -0
  178. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_analytics_response.py +0 -0
  179. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_data_point.py +0 -0
  180. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_evaluator.py +0 -0
  181. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_scope_request.py +0 -0
  182. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_scopes_response.py +0 -0
  183. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_subscription_request.py +0 -0
  184. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_user_request.py +0 -0
  185. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/legacy_user_response.py +0 -0
  186. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/lifecycle_dto.py +0 -0
  187. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/link_dto.py +0 -0
  188. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/list_api_keys_response.py +0 -0
  189. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/llm_run_rate_limit.py +0 -0
  190. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/meta_request.py +0 -0
  191. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/metrics_dto.py +0 -0
  192. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/new_testset.py +0 -0
  193. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/node_dto.py +0 -0
  194. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/node_type.py +0 -0
  195. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_context_dto.py +0 -0
  196. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_event.py +0 -0
  197. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_event_dto.py +0 -0
  198. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_extra_dto.py +0 -0
  199. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_flat_span.py +0 -0
  200. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_flat_span_input_end_time.py +0 -0
  201. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_flat_span_input_start_time.py +0 -0
  202. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_flat_span_output_end_time.py +0 -0
  203. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_flat_span_output_start_time.py +0 -0
  204. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_link.py +0 -0
  205. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_link_dto.py +0 -0
  206. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_links_response.py +0 -0
  207. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span.py +0 -0
  208. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_dto.py +0 -0
  209. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_input_end_time.py +0 -0
  210. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_input_spans_value.py +0 -0
  211. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_input_start_time.py +0 -0
  212. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_kind.py +0 -0
  213. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_output_end_time.py +0 -0
  214. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_output_spans_value.py +0 -0
  215. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_span_output_start_time.py +0 -0
  216. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_spans_tree.py +0 -0
  217. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_spans_tree_input_spans_value.py +0 -0
  218. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_spans_tree_output_spans_value.py +0 -0
  219. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_status_code.py +0 -0
  220. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_tracing_data_response.py +0 -0
  221. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_tracing_request.py +0 -0
  222. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/o_tel_tracing_response.py +0 -0
  223. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/organization.py +0 -0
  224. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/organization_details.py +0 -0
  225. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/organization_membership_request.py +0 -0
  226. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/organization_output.py +0 -0
  227. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/organization_request.py +0 -0
  228. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/parent_dto.py +0 -0
  229. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/permission.py +0 -0
  230. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/plan.py +0 -0
  231. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/project_membership_request.py +0 -0
  232. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/project_request.py +0 -0
  233. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/project_scope.py +0 -0
  234. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/projects_response.py +0 -0
  235. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/recursive_types.py +0 -0
  236. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/reference.py +0 -0
  237. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/reference_dto.py +0 -0
  238. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/reference_request_model.py +0 -0
  239. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/result.py +0 -0
  240. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/role.py +0 -0
  241. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/root_dto.py +0 -0
  242. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/scopes_response_model.py +0 -0
  243. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/score.py +0 -0
  244. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/secret_dto.py +0 -0
  245. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/secret_kind.py +0 -0
  246. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/secret_response_dto.py +0 -0
  247. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/simple_evaluation_output.py +0 -0
  248. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/span_dto.py +0 -0
  249. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/span_dto_nodes_value.py +0 -0
  250. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/standard_provider_dto.py +0 -0
  251. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/standard_provider_kind.py +0 -0
  252. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/standard_provider_settings_dto.py +0 -0
  253. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/status_code.py +0 -0
  254. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/status_dto.py +0 -0
  255. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/tags_request.py +0 -0
  256. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/test_set_output_response.py +0 -0
  257. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/test_set_simple_response.py +0 -0
  258. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/testcase_response.py +0 -0
  259. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/testset.py +0 -0
  260. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/testset_request.py +0 -0
  261. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/testset_response.py +0 -0
  262. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/testsets_response.py +0 -0
  263. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/time_dto.py +0 -0
  264. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/timestamp.py +0 -0
  265. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/tree_dto.py +0 -0
  266. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/tree_type.py +0 -0
  267. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/update_app_output.py +0 -0
  268. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/user_request.py +0 -0
  269. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/validation_error.py +0 -0
  270. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/validation_error_loc_item.py +0 -0
  271. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_artifact.py +0 -0
  272. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_data.py +0 -0
  273. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_flags.py +0 -0
  274. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_request.py +0 -0
  275. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_response.py +0 -0
  276. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_revision.py +0 -0
  277. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_revision_request.py +0 -0
  278. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_revision_response.py +0 -0
  279. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_revisions_response.py +0 -0
  280. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_variant.py +0 -0
  281. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_variant_request.py +0 -0
  282. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_variant_response.py +0 -0
  283. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflow_variants_response.py +0 -0
  284. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workflows_response.py +0 -0
  285. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace.py +0 -0
  286. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace_member_response.py +0 -0
  287. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace_membership_request.py +0 -0
  288. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace_permission.py +0 -0
  289. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace_request.py +0 -0
  290. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace_response.py +0 -0
  291. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace_role.py +0 -0
  292. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/types/workspace_role_response.py +0 -0
  293. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/variants/__init__.py +0 -0
  294. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/variants/client.py +0 -0
  295. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/variants/raw_client.py +0 -0
  296. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/variants/types/__init__.py +0 -0
  297. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +0 -0
  298. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/vault/__init__.py +0 -0
  299. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/vault/client.py +0 -0
  300. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/vault/raw_client.py +0 -0
  301. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/workflows/__init__.py +0 -0
  302. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/workflows/client.py +0 -0
  303. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/workflows/raw_client.py +0 -0
  304. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/workspace/__init__.py +0 -0
  305. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/workspace/client.py +0 -0
  306. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/backend/workspace/raw_client.py +0 -0
  307. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/client.py +0 -0
  308. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/types/provider_key_dto.py~HEAD +0 -0
  309. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/types/provider_key_dto.py~feat_model-registry +0 -0
  310. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/types/provider_kind.py~HEAD +0 -0
  311. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/types/provider_kind.py~feat_model-registry +0 -0
  312. {agenta-0.51.4 → agenta-0.51.6}/agenta/client/types.py +0 -0
  313. {agenta-0.51.4 → agenta-0.51.6}/agenta/config.py +0 -0
  314. {agenta-0.51.4 → agenta-0.51.6}/agenta/config.toml +0 -0
  315. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/__init__.py +0 -0
  316. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/agenta_init.py +0 -0
  317. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/assets.py +0 -0
  318. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/context/__init__.py +0 -0
  319. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/context/running.py +0 -0
  320. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/context/serving.py +0 -0
  321. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/context/tracing.py +0 -0
  322. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/decorators/__init__.py +0 -0
  323. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/decorators/running.py +0 -0
  324. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/litellm/__init__.py +0 -0
  325. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/litellm/litellm.py +0 -0
  326. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/litellm/mockllm.py +0 -0
  327. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/litellm/mocks/__init__.py +0 -0
  328. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/__init__.py +0 -0
  329. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/apps.py +0 -0
  330. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/config.py +0 -0
  331. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/deployment.py +0 -0
  332. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/secrets.py +0 -0
  333. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/shared.py +0 -0
  334. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/variant.py +0 -0
  335. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/managers/vault.py +0 -0
  336. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/__init__.py +0 -0
  337. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/adapt.py +0 -0
  338. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/auth.py +0 -0
  339. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/base.py +0 -0
  340. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/config.py +0 -0
  341. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/cors.py +0 -0
  342. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/flags.py +0 -0
  343. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/inline.py +0 -0
  344. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/mock.py +0 -0
  345. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/otel.py +0 -0
  346. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/middleware/vault.py +0 -0
  347. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/router.py +0 -0
  348. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/__init__.py +0 -0
  349. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/attributes.py +0 -0
  350. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/conventions.py +0 -0
  351. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/exporters.py +0 -0
  352. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/inline.py +0 -0
  353. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/processors.py +0 -0
  354. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/propagation.py +0 -0
  355. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/spans.py +0 -0
  356. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/tracing/tracing.py +0 -0
  357. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/__init__.py +0 -0
  358. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/cache.py +0 -0
  359. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/constants.py +0 -0
  360. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/costs.py +0 -0
  361. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/exceptions.py +0 -0
  362. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/globals.py +0 -0
  363. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/helpers.py +0 -0
  364. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/logging.py +0 -0
  365. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/preinit.py +0 -0
  366. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/singleton.py +0 -0
  367. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/utils/timing.py +0 -0
  368. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/workflows/__init__.py +0 -0
  369. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/workflows/registry.py +0 -0
  370. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/workflows/types.py +0 -0
  371. {agenta-0.51.4 → agenta-0.51.6}/agenta/sdk/workflows/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agenta
3
- Version: 0.51.4
3
+ Version: 0.51.6
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
@@ -1,5 +1,12 @@
1
1
  from typing import Type, Any, Callable, Dict, Optional, Tuple, List
2
- from inspect import signature, iscoroutinefunction, Signature, Parameter
2
+ from inspect import (
3
+ iscoroutinefunction,
4
+ isgenerator,
5
+ isasyncgen,
6
+ signature,
7
+ Signature,
8
+ Parameter,
9
+ )
3
10
  from functools import wraps
4
11
  from traceback import format_exception
5
12
  from asyncio import sleep
@@ -7,6 +14,10 @@ from uuid import UUID
7
14
  from pydantic import BaseModel, HttpUrl, ValidationError
8
15
  from os import environ
9
16
 
17
+ from starlette.responses import (
18
+ Response as StarletteResponse,
19
+ StreamingResponse,
20
+ )
10
21
  from fastapi import Body, FastAPI, HTTPException, Request
11
22
 
12
23
  from agenta.sdk.middleware.mock import MockMiddleware
@@ -33,6 +44,7 @@ from agenta.sdk.utils.helpers import get_current_version
33
44
  from agenta.sdk.types import (
34
45
  MultipleChoice,
35
46
  BaseResponse,
47
+ StreamResponse,
36
48
  MCField,
37
49
  )
38
50
 
@@ -380,6 +392,37 @@ class entrypoint:
380
392
  span_id,
381
393
  ) = await self.fetch_inline_trace(inline)
382
394
 
395
+ try:
396
+ if isinstance(result, StarletteResponse):
397
+ result.headers.setdefault("X-ag-version", "3.0")
398
+ if content_type:
399
+ result.headers.setdefault("X-ag-content-type", content_type)
400
+ if tree_id:
401
+ result.headers.setdefault("X-ag-tree-id", tree_id)
402
+ if trace_id:
403
+ result.headers.setdefault("X-ag-trace-id", trace_id)
404
+ if span_id:
405
+ result.headers.setdefault("X-ag-span-id", span_id)
406
+
407
+ return result
408
+ except:
409
+ return result
410
+
411
+ try:
412
+ if isasyncgen(result) or isgenerator(result):
413
+ return StreamResponse(
414
+ content=result,
415
+ content_type=content_type,
416
+ tree_id=tree_id,
417
+ trace_id=trace_id,
418
+ span_id=span_id,
419
+ )
420
+ except:
421
+ return StreamingResponse(
422
+ result,
423
+ media_type="text/event-stream",
424
+ )
425
+
383
426
  try:
384
427
  return BaseResponse(
385
428
  data=data,
@@ -18,12 +18,12 @@ from opentelemetry import baggage
18
18
  from opentelemetry.context import attach, detach, get_current
19
19
  from opentelemetry.baggage import set_baggage, get_all
20
20
 
21
+ from agenta.sdk.utils.logging import get_module_logger
21
22
  from agenta.sdk.utils.exceptions import suppress
23
+ from agenta.sdk.utils.otel import debug_otel_context
22
24
  from agenta.sdk.context.tracing import tracing_context
23
25
  from agenta.sdk.tracing.conventions import parse_span_kind
24
26
 
25
- from agenta.sdk.utils.logging import get_module_logger
26
-
27
27
  import agenta as ag
28
28
 
29
29
  log = get_module_logger(__name__)
@@ -66,40 +66,43 @@ class instrument: # pylint: disable=invalid-name
66
66
 
67
67
  @wraps(func)
68
68
  def astream_wrapper(*args, **kwargs):
69
- self._parse_type_and_kind()
69
+ # debug_otel_context("[BEFORE STREAM] [BEFORE SETUP]")
70
70
 
71
71
  captured_ctx = otel_context.get_current()
72
- parent_ctx = trace.set_span_in_context(trace.get_current_span())
73
72
 
74
- token = self._attach_baggage()
73
+ self._parse_type_and_kind()
74
+
75
+ self._attach_baggage()
76
+
75
77
  ctx = self._get_traceparent()
76
78
 
77
- agen = func(*args, **kwargs)
79
+ # debug_otel_context("[BEFORE STREAM] [AFTER SETUP]")
78
80
 
79
81
  async def wrapped_generator():
80
- token_ctx = otel_context.attach(captured_ctx)
82
+ # debug_otel_context("[WITHIN STREAM] [BEFORE ATTACH]")
83
+
84
+ otel_token = otel_context.attach(captured_ctx)
85
+
86
+ # debug_otel_context("[WITHIN STREAM] [AFTER ATTACH]")
81
87
 
82
88
  try:
83
89
  with ag.tracer.start_as_current_span(
84
90
  name=func.__name__,
85
91
  kind=self.kind,
86
- context=parent_ctx or ctx,
92
+ context=ctx,
87
93
  ):
88
94
  self._set_link()
89
95
  self._pre_instrument(func, *args, **kwargs)
90
96
 
91
97
  _result = []
92
98
 
93
- try:
94
- while True:
95
- chunk = await agen.__anext__()
99
+ agen = func(*args, **kwargs)
96
100
 
101
+ try:
102
+ async for chunk in agen:
97
103
  _result.append(chunk)
98
104
  yield chunk
99
105
 
100
- except StopAsyncIteration:
101
- pass
102
-
103
106
  finally:
104
107
  if self.aggregate:
105
108
  result = self.aggregate(_result)
@@ -113,9 +116,11 @@ class instrument: # pylint: disable=invalid-name
113
116
  self._post_instrument(result)
114
117
 
115
118
  finally:
116
- otel_context.detach(token_ctx)
119
+ # debug_otel_context("[WITHIN STREAM] [BEFORE DETACH]")
117
120
 
118
- self._detach_baggage(token)
121
+ otel_context.detach(otel_token)
122
+
123
+ # debug_otel_context("[WITHIN STREAM] [AFTER DETACH]")
119
124
 
120
125
  return wrapped_generator()
121
126
 
@@ -128,43 +133,36 @@ class instrument: # pylint: disable=invalid-name
128
133
  def stream_wrapper(*args, **kwargs):
129
134
  self._parse_type_and_kind()
130
135
 
131
- captured_ctx = otel_context.get_current()
132
- parent_ctx = trace.set_span_in_context(trace.get_current_span())
133
-
134
136
  token = self._attach_baggage()
135
- ctx = self._get_traceparent()
136
137
 
137
- agen = func(*args, **kwargs)
138
+ ctx = self._get_traceparent()
138
139
 
139
140
  def wrapped_generator():
140
- token_ctx = otel_context.attach(captured_ctx)
141
-
142
141
  try:
143
142
  with ag.tracer.start_as_current_span(
144
143
  name=func.__name__,
145
144
  kind=self.kind,
146
- context=parent_ctx or ctx,
145
+ context=ctx,
147
146
  ):
148
147
  self._set_link()
148
+
149
149
  self._pre_instrument(func, *args, **kwargs)
150
150
 
151
151
  _result = []
152
152
 
153
+ gen = func(*args, **kwargs)
154
+
153
155
  gen_return = None
154
- stop_iteration_raised = False
155
156
 
156
157
  try:
157
158
  while True:
158
159
  try:
159
- chunk = next(agen)
160
-
160
+ chunk = next(gen)
161
161
  except StopIteration as e:
162
162
  gen_return = e.value
163
- stop_iteration_raised = True
164
163
  break
165
164
 
166
165
  _result.append(chunk)
167
-
168
166
  yield chunk
169
167
 
170
168
  finally:
@@ -179,11 +177,9 @@ class instrument: # pylint: disable=invalid-name
179
177
 
180
178
  self._post_instrument(result)
181
179
 
182
- return gen_return if stop_iteration_raised else None
180
+ return gen_return
183
181
 
184
182
  finally:
185
- otel_context.detach(token_ctx)
186
-
187
183
  self._detach_baggage(token)
188
184
 
189
185
  return wrapped_generator()
@@ -197,21 +193,18 @@ class instrument: # pylint: disable=invalid-name
197
193
  async def awrapper(*args, **kwargs):
198
194
  self._parse_type_and_kind()
199
195
 
200
- captured_ctx = otel_context.get_current()
201
- parent_ctx = trace.set_span_in_context(trace.get_current_span())
202
-
203
196
  token = self._attach_baggage()
204
- ctx = self._get_traceparent()
205
197
 
206
- token_ctx = otel_context.attach(captured_ctx)
198
+ ctx = self._get_traceparent()
207
199
 
208
200
  try:
209
201
  with ag.tracer.start_as_current_span(
210
202
  name=func.__name__,
211
203
  kind=self.kind,
212
- context=parent_ctx or ctx,
204
+ context=ctx,
213
205
  ):
214
206
  self._set_link()
207
+
215
208
  self._pre_instrument(func, *args, **kwargs)
216
209
 
217
210
  result = await func(*args, **kwargs)
@@ -219,8 +212,6 @@ class instrument: # pylint: disable=invalid-name
219
212
  self._post_instrument(result)
220
213
 
221
214
  finally:
222
- otel_context.detach(token_ctx)
223
-
224
215
  self._detach_baggage(token)
225
216
 
226
217
  return result
@@ -232,21 +223,18 @@ class instrument: # pylint: disable=invalid-name
232
223
  def wrapper(*args, **kwargs):
233
224
  self._parse_type_and_kind()
234
225
 
235
- captured_ctx = otel_context.get_current()
236
- parent_ctx = trace.set_span_in_context(trace.get_current_span())
237
-
238
226
  token = self._attach_baggage()
239
- ctx = self._get_traceparent()
240
227
 
241
- token_ctx = otel_context.attach(captured_ctx)
228
+ ctx = self._get_traceparent()
242
229
 
243
230
  try:
244
231
  with ag.tracer.start_as_current_span(
245
232
  name=func.__name__,
246
233
  kind=self.kind,
247
- context=parent_ctx or ctx,
234
+ context=ctx,
248
235
  ):
249
236
  self._set_link()
237
+
250
238
  self._pre_instrument(func, *args, **kwargs)
251
239
 
252
240
  result = func(*args, **kwargs)
@@ -254,8 +242,6 @@ class instrument: # pylint: disable=invalid-name
254
242
  self._post_instrument(result)
255
243
 
256
244
  finally:
257
- otel_context.detach(token_ctx)
258
-
259
245
  self._detach_baggage(token)
260
246
 
261
247
  return result
@@ -5,6 +5,9 @@ from typing import List, Union, Optional, Dict, Literal, Any
5
5
  from pydantic import ConfigDict, BaseModel, HttpUrl
6
6
  from pydantic import BaseModel, Field, model_validator
7
7
 
8
+ from starlette.responses import StreamingResponse
9
+
10
+
8
11
  from agenta.sdk.assets import supported_llm_models
9
12
  from agenta.client.backend.types import AgentaNodesResponse, AgentaNodeDto
10
13
 
@@ -45,6 +48,42 @@ class BaseResponse(BaseModel):
45
48
  model_config = ConfigDict(use_enum_values=True, exclude_none=True)
46
49
 
47
50
 
51
+ class StreamResponse(StreamingResponse):
52
+ def __init__(
53
+ self,
54
+ content,
55
+ media_type: str = "text/event-stream",
56
+ *,
57
+ version: Optional[str] = "3.0",
58
+ tree_id: Optional[str] = None,
59
+ trace_id: Optional[str] = None,
60
+ span_id: Optional[str] = None,
61
+ content_type: Optional[str] = None,
62
+ extra_headers: Optional[Dict[str, str]] = None,
63
+ status_code: int = 200,
64
+ background=None,
65
+ ):
66
+ headers = dict(extra_headers or {})
67
+ if version is not None:
68
+ headers["X-ag-version"] = version
69
+ if content_type:
70
+ headers["X-ag-content-type"] = content_type
71
+ if tree_id:
72
+ headers["X-ag-tree-id"] = tree_id
73
+ if trace_id:
74
+ headers["X-ag-trace-id"] = trace_id
75
+ if span_id:
76
+ headers["X-ag-span-id"] = span_id
77
+
78
+ super().__init__(
79
+ content=content,
80
+ media_type=media_type,
81
+ status_code=status_code,
82
+ headers=headers,
83
+ background=background,
84
+ )
85
+
86
+
48
87
  class DictInput(dict):
49
88
  def __new__(cls, default_keys: Optional[List[str]] = None):
50
89
  instance = super().__new__(cls, default_keys)
@@ -0,0 +1,21 @@
1
+ from opentelemetry import context as otel_context
2
+ from opentelemetry.trace import get_current_span
3
+ from opentelemetry.baggage import get_all as get_all_baggage
4
+
5
+
6
+ def debug_otel_context(label: str = "OTEL CONTEXT"):
7
+ ctx = otel_context.get_current()
8
+ span = get_current_span()
9
+ baggage = get_all_baggage(ctx)
10
+
11
+ print("\n===== {} =====".format(label))
12
+ print("Context object:", ctx)
13
+ print("Baggage:", baggage or "{}")
14
+ if span and span.get_span_context().is_valid:
15
+ print("Current Span:")
16
+ print(" Trace ID:", format(span.get_span_context().trace_id, "032x"))
17
+ print(" Span ID:", format(span.get_span_context().span_id, "016x"))
18
+ # print(" Is Recording:", span.is_recording())
19
+ else:
20
+ print("Current Span: None or Invalid")
21
+ print("=" * 40)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "agenta"
3
- version = "0.51.4"
3
+ version = "0.51.6"
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