langtrace-python-sdk 3.8.3__tar.gz → 3.8.5__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.
Files changed (311) hide show
  1. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/PKG-INFO +3 -2
  2. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/pyproject.toml +2 -1
  3. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/__init__.py +2 -0
  4. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/agno/instrumentation.py +6 -3
  5. langtrace_python_sdk-3.8.5/src/langtrace_python_sdk/instrumentation/agno/patch.py +363 -0
  6. langtrace_python_sdk-3.8.5/src/langtrace_python_sdk/instrumentation/openai_agents/__init__.py +5 -0
  7. langtrace_python_sdk-3.8.5/src/langtrace_python_sdk/instrumentation/openai_agents/instrumentation.py +52 -0
  8. langtrace_python_sdk-3.8.5/src/langtrace_python_sdk/instrumentation/openai_agents/patch.py +533 -0
  9. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/phidata/instrumentation.py +6 -3
  10. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/langtrace.py +4 -3
  11. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/llm.py +151 -1
  12. langtrace_python_sdk-3.8.5/src/langtrace_python_sdk/version.py +1 -0
  13. langtrace_python_sdk-3.8.3/src/langtrace_python_sdk/instrumentation/agno/patch.py +0 -315
  14. langtrace_python_sdk-3.8.3/src/langtrace_python_sdk/version.py +0 -1
  15. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/.gitignore +0 -0
  16. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/LICENSE +0 -0
  17. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/README.md +0 -0
  18. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/__init__.py +0 -0
  19. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/__init__.py +0 -0
  20. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/anthropic_example/__init__.py +0 -0
  21. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/anthropic_example/completion.py +0 -0
  22. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/autogen_example/__init__.py +0 -0
  23. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/autogen_example/main.py +0 -0
  24. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/awsbedrock_examples/__init__.py +0 -0
  25. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/awsbedrock_examples/converse.py +0 -0
  26. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/azureopenai_example/__init__.py +0 -0
  27. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/azureopenai_example/completion.py +0 -0
  28. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cerebras_example/__init__.py +0 -0
  29. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cerebras_example/main.py +0 -0
  30. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/chroma_example/__init__.py +0 -0
  31. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/chroma_example/basic.py +0 -0
  32. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cleanlab_example/simple.py +0 -0
  33. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/__init__.py +0 -0
  34. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/chat.py +0 -0
  35. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/chat_stream.py +0 -0
  36. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/chat_streamv2.py +0 -0
  37. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/chatv2.py +0 -0
  38. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/embed.py +0 -0
  39. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/rerank.py +0 -0
  40. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/rerankv2.py +0 -0
  41. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/cohere_example/tools.py +0 -0
  42. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/__init__.py +0 -0
  43. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/basic.py +0 -0
  44. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/instagram_post/__init__.py +0 -0
  45. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/instagram_post/agents.py +0 -0
  46. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/instagram_post/main.py +0 -0
  47. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/instagram_post/tasks.py +0 -0
  48. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/instagram_post/tools/__init__.py +0 -0
  49. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/instagram_post/tools/browser_tools.py +0 -0
  50. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/simple_agent/__init__.py +0 -0
  51. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/simple_agent/agents.py +0 -0
  52. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/simple_agent/main.py +0 -0
  53. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/simple_agent/tasks.py +0 -0
  54. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/trip_planner/__init__.py +0 -0
  55. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/trip_planner/agents.py +0 -0
  56. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/trip_planner/main.py +0 -0
  57. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/trip_planner/tasks.py +0 -0
  58. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/trip_planner/tools/calculator.py +0 -0
  59. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/crewai_example/trip_planner/tools/search_tools.py +0 -0
  60. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/QA_basic.py +0 -0
  61. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/QA_basic_with_chain_of_thought.py +0 -0
  62. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/QA_basic_with_signature.py +0 -0
  63. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/QA_multi_step_with_chain_of_thought.py +0 -0
  64. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/math_problems_cot.py +0 -0
  65. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/math_problems_cot_parallel.py +0 -0
  66. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/optimizers/bootstrap_fewshot.py +0 -0
  67. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/program_of_thought_basic.py +0 -0
  68. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/quiz_gen.py +0 -0
  69. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/dspy_example/react.py +0 -0
  70. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/embedchain_example/simple.py +0 -0
  71. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/fastapi_example/__init__.py +0 -0
  72. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/fastapi_example/basic_route.py +0 -0
  73. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/gemini_example/__init__.py +0 -0
  74. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/gemini_example/function_tools.py +0 -0
  75. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/gemini_example/main.py +0 -0
  76. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/google_genai_example/__init__.py +0 -0
  77. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/google_genai_example/main.py +0 -0
  78. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/graphlit_example/__init__.py +0 -0
  79. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/graphlit_example/conversation.py +0 -0
  80. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/hiveagent_example/basic.py +0 -0
  81. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/inspect_ai_example/basic_eval.py +0 -0
  82. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/__init__.py +0 -0
  83. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/basic.py +0 -0
  84. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/groq_example.py +0 -0
  85. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/langchain_google_example.py +0 -0
  86. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/langgraph_example.py +0 -0
  87. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/langgraph_example_tools.py +0 -0
  88. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/sagemaker.py +0 -0
  89. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langchain_example/tool.py +0 -0
  90. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/langgraph_example/main.py +0 -0
  91. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/litellm_example/basic.py +0 -0
  92. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/litellm_example/config.yaml +0 -0
  93. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/litellm_example/proxy_basic.py +0 -0
  94. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/llamaindex_example/__init__.py +0 -0
  95. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/llamaindex_example/agent.py +0 -0
  96. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/llamaindex_example/basic.py +0 -0
  97. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/llamaindex_example/data/abramov.txt +0 -0
  98. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/milvus_example/main.py +0 -0
  99. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/mistral_example/__init__.py +0 -0
  100. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/mistral_example/complete.py +0 -0
  101. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/mistral_example/complete_async.py +0 -0
  102. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/mistral_example/embeddings.py +0 -0
  103. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/mongo_vector_search_example/main.py +0 -0
  104. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/ollama_example/__init__.py +0 -0
  105. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/ollama_example/basic.py +0 -0
  106. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/__init__.py +0 -0
  107. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/async_tool_calling_nonstreaming.py +0 -0
  108. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/async_tool_calling_streaming.py +0 -0
  109. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/chat_completion.py +0 -0
  110. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/chat_completion_tool_choice.py +0 -0
  111. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/embeddings_create.py +0 -0
  112. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/function_calling.py +0 -0
  113. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/images_edit.py +0 -0
  114. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/images_generate.py +0 -0
  115. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/resources/lounge_flamingo.png +0 -0
  116. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/resources/mask.png +0 -0
  117. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/send_user_feedback.py +0 -0
  118. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/tool_calling.py +0 -0
  119. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/tool_calling_nonstreaming.py +0 -0
  120. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/openai_example/tool_calling_streaming.py +0 -0
  121. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/otlp_example/otlp_basic.py +0 -0
  122. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/otlp_example/otlp_with_langtrace.py +0 -0
  123. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/perplexity_example/basic.py +0 -0
  124. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/phidata_example/__init__.py +0 -0
  125. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/phidata_example/agent.py +0 -0
  126. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/pinecone_example/__init__.py +0 -0
  127. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/pinecone_example/basic.py +0 -0
  128. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/qdrant_example/__init__.py +0 -0
  129. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/qdrant_example/basic.py +0 -0
  130. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/routellm_example/basic.py +0 -0
  131. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/vertexai_example/__init__.py +0 -0
  132. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/vertexai_example/main.py +0 -0
  133. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/weaviate_example/__init__.py +0 -0
  134. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/examples/weaviate_example/query_text.py +0 -0
  135. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/__init__.py +0 -0
  136. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/__init__.py +0 -0
  137. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/exporter/langtrace_exporter.py +0 -0
  138. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/__init__.py +0 -0
  139. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/anthropic.py +0 -0
  140. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/aws_bedrock.py +0 -0
  141. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/chroma.py +0 -0
  142. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/cohere.py +0 -0
  143. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/common.py +0 -0
  144. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/embedchain.py +0 -0
  145. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/gemini.py +0 -0
  146. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/groq.py +0 -0
  147. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/litellm.py +0 -0
  148. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/milvus.py +0 -0
  149. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/mistral.py +0 -0
  150. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/ollama.py +0 -0
  151. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/openai.py +0 -0
  152. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/pinecone.py +0 -0
  153. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/pymongo.py +0 -0
  154. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/qdrant.py +0 -0
  155. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/vertexai.py +0 -0
  156. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/constants/instrumentation/weaviate.py +0 -0
  157. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/extensions/__init__.py +0 -0
  158. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/extensions/langtrace_exporter.py +0 -0
  159. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/extensions/langtrace_filesystem.py +0 -0
  160. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/agno/__init__.py +0 -0
  161. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/anthropic/__init__.py +0 -0
  162. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/anthropic/instrumentation.py +0 -0
  163. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/anthropic/patch.py +0 -0
  164. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/anthropic/types.py +0 -0
  165. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/autogen/__init__.py +0 -0
  166. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/autogen/instrumentation.py +0 -0
  167. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/autogen/patch.py +0 -0
  168. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/aws_bedrock/__init__.py +0 -0
  169. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/aws_bedrock/bedrock_streaming_wrapper.py +0 -0
  170. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/aws_bedrock/instrumentation.py +0 -0
  171. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/aws_bedrock/patch.py +0 -0
  172. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/aws_bedrock/stream_body_wrapper.py +0 -0
  173. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cerebras/__init__.py +0 -0
  174. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cerebras/instrumentation.py +0 -0
  175. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cerebras/patch.py +0 -0
  176. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/chroma/__init__.py +0 -0
  177. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/chroma/instrumentation.py +0 -0
  178. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/chroma/patch.py +0 -0
  179. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cleanlab/__init__.py +0 -0
  180. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cleanlab/instrumentation.py +0 -0
  181. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cleanlab/patch.py +0 -0
  182. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cohere/__init__.py +0 -0
  183. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cohere/instrumentation.py +0 -0
  184. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/cohere/patch.py +0 -0
  185. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/crewai/__init__.py +0 -0
  186. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/crewai/instrumentation.py +0 -0
  187. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/crewai/patch.py +0 -0
  188. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/crewai_tools/__init__.py +0 -0
  189. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/crewai_tools/instrumentation.py +0 -0
  190. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/crewai_tools/patch.py +0 -0
  191. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/dspy/__init__.py +0 -0
  192. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/dspy/instrumentation.py +0 -0
  193. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/dspy/patch.py +0 -0
  194. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/embedchain/__init__.py +0 -0
  195. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/embedchain/instrumentation.py +0 -0
  196. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/embedchain/patch.py +0 -0
  197. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/gemini/__init__.py +0 -0
  198. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/gemini/instrumentation.py +0 -0
  199. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/gemini/patch.py +0 -0
  200. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/google_genai/__init__.py +0 -0
  201. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/google_genai/instrumentation.py +0 -0
  202. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/google_genai/patch.py +0 -0
  203. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/graphlit/__init__.py +0 -0
  204. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/graphlit/instrumentation.py +0 -0
  205. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/graphlit/patch.py +0 -0
  206. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/groq/__init__.py +0 -0
  207. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/groq/instrumentation.py +0 -0
  208. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/groq/patch.py +0 -0
  209. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain/__init__.py +0 -0
  210. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain/instrumentation.py +0 -0
  211. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain/patch.py +0 -0
  212. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain_community/__init__.py +0 -0
  213. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain_community/instrumentation.py +0 -0
  214. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain_community/patch.py +0 -0
  215. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain_core/__init__.py +0 -0
  216. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain_core/instrumentation.py +0 -0
  217. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langchain_core/patch.py +0 -0
  218. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langgraph/__init__.py +0 -0
  219. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langgraph/instrumentation.py +0 -0
  220. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/langgraph/patch.py +0 -0
  221. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/litellm/__init__.py +0 -0
  222. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/litellm/instrumentation.py +0 -0
  223. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/litellm/patch.py +0 -0
  224. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/litellm/types.py +0 -0
  225. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/llamaindex/__init__.py +0 -0
  226. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/llamaindex/instrumentation.py +0 -0
  227. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/llamaindex/patch.py +0 -0
  228. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/milvus/__init__.py +0 -0
  229. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/milvus/instrumentation.py +0 -0
  230. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/milvus/patch.py +0 -0
  231. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/mistral/__init__.py +0 -0
  232. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/mistral/instrumentation.py +0 -0
  233. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/mistral/patch.py +0 -0
  234. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/ollama/__init__.py +0 -0
  235. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/ollama/instrumentation.py +0 -0
  236. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/ollama/patch.py +0 -0
  237. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/openai/__init__.py +0 -0
  238. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/openai/instrumentation.py +0 -0
  239. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/openai/patch.py +0 -0
  240. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/openai/types.py +0 -0
  241. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/phidata/__init__.py +0 -0
  242. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/phidata/patch.py +0 -0
  243. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/pinecone/__init__.py +0 -0
  244. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/pinecone/instrumentation.py +0 -0
  245. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/pinecone/patch.py +0 -0
  246. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/pymongo/__init__.py +0 -0
  247. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/pymongo/instrumentation.py +0 -0
  248. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/pymongo/patch.py +0 -0
  249. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/qdrant/__init__.py +0 -0
  250. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/qdrant/instrumentation.py +0 -0
  251. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/qdrant/patch.py +0 -0
  252. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/vertexai/__init__.py +0 -0
  253. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/vertexai/instrumentation.py +0 -0
  254. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/vertexai/patch.py +0 -0
  255. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/weaviate/__init__.py +0 -0
  256. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/weaviate/instrumentation.py +0 -0
  257. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/instrumentation/weaviate/patch.py +0 -0
  258. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/types/__init__.py +0 -0
  259. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/__init__.py +0 -0
  260. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/langtrace_sampler.py +0 -0
  261. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/misc.py +0 -0
  262. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/prompt_registry.py +0 -0
  263. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/sdk_version_checker.py +0 -0
  264. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/silently_fail.py +0 -0
  265. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/types.py +0 -0
  266. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/langtrace_python_sdk/utils/with_root_span.py +0 -0
  267. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/run_example.py +0 -0
  268. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/__init__.py +0 -0
  269. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/anthropic/cassettes/test_anthropic.yaml +0 -0
  270. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/anthropic/cassettes/test_anthropic_streaming.yaml +0 -0
  271. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/anthropic/cassettes/test_async_anthropic_streaming.yaml +0 -0
  272. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/anthropic/conftest.py +0 -0
  273. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/anthropic/test_anthropic.py +0 -0
  274. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/chroma/conftest.py +0 -0
  275. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/chroma/test_chroma.py +0 -0
  276. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/cassettes/test_cohere_chat.yaml +0 -0
  277. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/cassettes/test_cohere_chat_streaming.yaml +0 -0
  278. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/cassettes/test_cohere_embed.yaml +0 -0
  279. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/cassettes/test_cohere_rerank.yaml +0 -0
  280. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/conftest.py +0 -0
  281. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/test_cohere_chat.py +0 -0
  282. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/test_cohere_embed.py +0 -0
  283. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/cohere/test_cohere_rerank.py +0 -0
  284. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/conftest.py +0 -0
  285. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/groq/cassettes/test_async_chat_completion.yaml +0 -0
  286. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/groq/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  287. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/groq/cassettes/test_chat_completion.yaml +0 -0
  288. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/groq/cassettes/test_chat_completion_streaming.yaml +0 -0
  289. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/groq/conftest.py +0 -0
  290. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/groq/test_groq.py +0 -0
  291. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/langchain/cassettes/test_langchain.yaml +0 -0
  292. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/langchain/conftest.py +0 -0
  293. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/langchain/test_langchain.py +0 -0
  294. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/cassettes/test_async_chat_completion_streaming.yaml +0 -0
  295. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/cassettes/test_async_image_generation.yaml +0 -0
  296. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/cassettes/test_chat_completion.yaml +0 -0
  297. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/cassettes/test_chat_completion_streaming.yaml +0 -0
  298. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/cassettes/test_embeddings_base_url.yaml +0 -0
  299. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/cassettes/test_image_generation.yaml +0 -0
  300. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/conftest.py +0 -0
  301. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/test_chat_completion.py +0 -0
  302. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/test_embeddings.py +0 -0
  303. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/openai/test_image_generation.py +0 -0
  304. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/pinecone/cassettes/test_query.yaml +0 -0
  305. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/pinecone/cassettes/test_upsert.yaml +0 -0
  306. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/pinecone/conftest.py +0 -0
  307. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/pinecone/test_pinecone.py +0 -0
  308. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/qdrant/conftest.py +0 -0
  309. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/qdrant/test_qdrant.py +0 -0
  310. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/test_session_id.py +0 -0
  311. {langtrace_python_sdk-3.8.3 → langtrace_python_sdk-3.8.5}/src/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langtrace-python-sdk
3
- Version: 3.8.3
3
+ Version: 3.8.5
4
4
  Summary: Python SDK for LangTrace
5
5
  Project-URL: Homepage, https://github.com/Scale3-Labs/langtrace-python-sdk
6
6
  Author-email: Scale3 Labs <engineering@scale3labs.com>
@@ -41,7 +41,8 @@ Requires-Dist: langchain-openai; extra == 'dev'
41
41
  Requires-Dist: litellm==1.48.7; extra == 'dev'
42
42
  Requires-Dist: mistralai; extra == 'dev'
43
43
  Requires-Dist: ollama; extra == 'dev'
44
- Requires-Dist: openai==1.60.0; extra == 'dev'
44
+ Requires-Dist: openai-agents>=0.0.3; extra == 'dev'
45
+ Requires-Dist: openai>=1.60.0; extra == 'dev'
45
46
  Requires-Dist: phidata; extra == 'dev'
46
47
  Requires-Dist: pinecone; extra == 'dev'
47
48
  Requires-Dist: python-dotenv; extra == 'dev'
@@ -40,7 +40,8 @@ requires-python = ">=3.9"
40
40
 
41
41
  [project.optional-dependencies]
42
42
  dev = [
43
- "openai==1.60.0",
43
+ "openai>=1.60.0",
44
+ "openai-agents>=0.0.3",
44
45
  "anthropic",
45
46
  "chromadb",
46
47
  "qdrant-client",
@@ -24,6 +24,7 @@ from .milvus import MilvusInstrumentation
24
24
  from .mistral import MistralInstrumentation
25
25
  from .ollama import OllamaInstrumentor
26
26
  from .openai import OpenAIInstrumentation
27
+ from .openai_agents import OpenAIAgentsInstrumentation
27
28
  from .phidata import PhiDataInstrumentation
28
29
  from .pinecone import PineconeInstrumentation
29
30
  from .pymongo import PyMongoInstrumentation
@@ -64,4 +65,5 @@ __all__ = [
64
65
  "PhiDataInstrumentation",
65
66
  "AgnoInstrumentation",
66
67
  "CleanLabInstrumentation",
68
+ "OpenAIAgentsInstrumentation",
67
69
  ]
@@ -1,5 +1,5 @@
1
1
  """
2
- Copyright (c) 2024 Scale3 Labs
2
+ Copyright (c) 2025 Scale3 Labs
3
3
 
4
4
  Licensed under the Apache License, Version 2.0 (the "License");
5
5
  you may not use this file except in compliance with the License.
@@ -14,13 +14,16 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  """
16
16
 
17
+ from typing import Collection
18
+
19
+ from importlib_metadata import version as v
17
20
  from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
18
21
  from opentelemetry.trace import get_tracer
19
22
  from wrapt import wrap_function_wrapper as _W
20
- from typing import Collection
21
- from importlib_metadata import version as v
23
+
22
24
  from .patch import patch_agent, patch_memory
23
25
 
26
+
24
27
  class AgnoInstrumentation(BaseInstrumentor):
25
28
  def instrumentation_dependencies(self) -> Collection[str]:
26
29
  return ["agno >= 1.1.4"]
@@ -0,0 +1,363 @@
1
+ """
2
+ Copyright (c) 2025 Scale3 Labs
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ """
16
+
17
+ import json
18
+ import time
19
+ from typing import Any
20
+
21
+ from importlib_metadata import version as v
22
+ from langtrace.trace_attributes import FrameworkSpanAttributes
23
+ from opentelemetry import baggage
24
+ from opentelemetry.trace import Span, SpanKind, Tracer
25
+ from opentelemetry.trace.status import Status, StatusCode
26
+
27
+ from langtrace_python_sdk.constants import LANGTRACE_SDK_NAME
28
+ from langtrace_python_sdk.constants.instrumentation.common import (
29
+ LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY,
30
+ SERVICE_PROVIDERS,
31
+ )
32
+ from langtrace_python_sdk.utils import set_span_attribute
33
+ from langtrace_python_sdk.utils.llm import get_span_name, set_span_attributes
34
+ from langtrace_python_sdk.utils.misc import serialize_args, serialize_kwargs
35
+
36
+
37
+ def patch_agent(operation_name, version, tracer: Tracer):
38
+ def traced_method(wrapped, instance, args, kwargs):
39
+ service_provider = SERVICE_PROVIDERS.get("AGNO", "agno")
40
+ extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
41
+
42
+ span_attributes = {
43
+ "langtrace.sdk.name": "langtrace-python-sdk",
44
+ "langtrace.service.name": service_provider,
45
+ "langtrace.service.type": "framework",
46
+ "langtrace.service.version": version,
47
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
48
+ **(extra_attributes if extra_attributes is not None else {}),
49
+ }
50
+
51
+ inputs = {}
52
+ if len(args) > 0:
53
+ inputs["args"] = serialize_args(*args)
54
+ if len(kwargs) > 0:
55
+ inputs["kwargs"] = serialize_kwargs(**kwargs)
56
+ span_attributes["agno.agent.inputs"] = json.dumps(inputs)
57
+ attributes = FrameworkSpanAttributes(**span_attributes)
58
+
59
+ with tracer.start_as_current_span(
60
+ get_span_name(operation_name), kind=SpanKind.CLIENT
61
+ ) as span:
62
+ try:
63
+ set_span_attributes(span, attributes)
64
+ AgnoSpanAttributes(span=span, instance=instance)
65
+
66
+ result = wrapped(*args, **kwargs)
67
+
68
+ span.set_status(Status(StatusCode.OK))
69
+
70
+ if operation_name in ["Agent._run", "Agent._arun", "Agent.run", "Agent.arun", "Agent.print_response"]:
71
+ try:
72
+ if hasattr(instance, "run_response") and instance.run_response:
73
+ if hasattr(instance.run_response, "run_id") and instance.run_response.run_id:
74
+ set_span_attribute(span, "agno.agent.run_id", instance.run_response.run_id)
75
+
76
+ if hasattr(instance.run_response, "created_at") and instance.run_response.created_at:
77
+ set_span_attribute(span, "agno.agent.timestamp", instance.run_response.created_at)
78
+
79
+ if hasattr(instance.run_response, "content") and instance.run_response.content:
80
+ content = str(instance.run_response.content)
81
+ set_span_attribute(span, "agno.agent.response_content", content)
82
+
83
+ # Capture any tools that were used
84
+ if hasattr(instance.run_response, "tools") and instance.run_response.tools:
85
+ tools = instance.run_response.tools
86
+ tool_summary = []
87
+ for tool in tools:
88
+ if 'tool_name' in tool:
89
+ tool_summary.append(tool['tool_name'])
90
+ elif 'function' in tool and 'name' in tool['function']:
91
+ tool_summary.append(tool['function']['name'])
92
+ set_span_attribute(span, "agno.agent.tools_used", json.dumps(tool_summary))
93
+
94
+ if hasattr(instance.run_response, "metrics") and instance.run_response.metrics:
95
+ metrics = instance.run_response.metrics
96
+ for metric_name, metric_values in metrics.items():
97
+ if isinstance(metric_values, list):
98
+
99
+ if all(isinstance(v, (int, float)) for v in metric_values):
100
+ set_span_attribute(
101
+ span,
102
+ f"agno.agent.metrics.{metric_name}",
103
+ sum(metric_values) / len(metric_values) if metric_values else 0
104
+ )
105
+ elif len(metric_values) > 0:
106
+ set_span_attribute(
107
+ span,
108
+ f"agno.agent.metrics.{metric_name}",
109
+ str(metric_values[-1])
110
+ )
111
+ else:
112
+ set_span_attribute(
113
+ span,
114
+ f"agno.agent.metrics.{metric_name}",
115
+ str(metric_values)
116
+ )
117
+
118
+ if 'input_tokens' in metrics:
119
+ if isinstance(metrics['input_tokens'], list) and metrics['input_tokens']:
120
+ set_span_attribute(span, "agno.agent.token_usage.input",
121
+ sum(metrics['input_tokens']))
122
+ else:
123
+ set_span_attribute(span, "agno.agent.token_usage.input",
124
+ metrics['input_tokens'])
125
+
126
+ if 'output_tokens' in metrics:
127
+ if isinstance(metrics['output_tokens'], list) and metrics['output_tokens']:
128
+ set_span_attribute(span, "agno.agent.token_usage.output",
129
+ sum(metrics['output_tokens']))
130
+ else:
131
+ set_span_attribute(span, "agno.agent.token_usage.output",
132
+ metrics['output_tokens'])
133
+
134
+ if 'total_tokens' in metrics:
135
+ if isinstance(metrics['total_tokens'], list) and metrics['total_tokens']:
136
+ set_span_attribute(span, "agno.agent.token_usage.total",
137
+ sum(metrics['total_tokens']))
138
+ else:
139
+ set_span_attribute(span, "agno.agent.token_usage.total",
140
+ metrics['total_tokens'])
141
+ except Exception as err:
142
+ set_span_attribute(span, "agno.agent.run_response_error", str(err))
143
+
144
+ return result
145
+
146
+ except Exception as err:
147
+ span.record_exception(err)
148
+ span.set_status(Status(StatusCode.ERROR, str(err)))
149
+ raise
150
+
151
+ return traced_method
152
+
153
+
154
+ def patch_memory(operation_name, version, tracer: Tracer):
155
+ """
156
+ Apply instrumentation patches to AgentMemory class methods.
157
+
158
+ Args:
159
+ operation_name: The name of the operation
160
+ version: The version of Agno
161
+ tracer: The OpenTelemetry tracer
162
+ """
163
+ def traced_method(wrapped, instance, args, kwargs):
164
+ service_provider = SERVICE_PROVIDERS.get("AGNO", "agno")
165
+ extra_attributes = baggage.get_baggage(LANGTRACE_ADDITIONAL_SPAN_ATTRIBUTES_KEY)
166
+
167
+ # Collect basic span attributes
168
+ span_attributes = {
169
+ "langtrace.sdk.name": "langtrace-python-sdk",
170
+ "langtrace.service.name": service_provider,
171
+ "langtrace.service.type": "framework",
172
+ "langtrace.service.version": version,
173
+ "langtrace.version": v(LANGTRACE_SDK_NAME),
174
+ **(extra_attributes if extra_attributes is not None else {}),
175
+ }
176
+
177
+ # Collect inputs
178
+ inputs = {}
179
+ if len(args) > 0:
180
+ inputs["args"] = serialize_args(*args)
181
+ if len(kwargs) > 0:
182
+ inputs["kwargs"] = serialize_kwargs(**kwargs)
183
+
184
+ span_attributes["agno.memory.inputs"] = json.dumps(inputs)
185
+
186
+ if hasattr(instance, "messages"):
187
+ span_attributes["agno.memory.messages_count_before"] = len(instance.messages)
188
+ if hasattr(instance, "runs"):
189
+ span_attributes["agno.memory.runs_count_before"] = len(instance.runs)
190
+ if hasattr(instance, "memories") and instance.memories:
191
+ span_attributes["agno.memory.memories_count_before"] = len(instance.memories)
192
+
193
+ attributes = FrameworkSpanAttributes(**span_attributes)
194
+
195
+ with tracer.start_as_current_span(
196
+ get_span_name(operation_name), kind=SpanKind.CLIENT
197
+ ) as span:
198
+ start_time = time.time()
199
+ try:
200
+ # Set attributes
201
+ set_span_attributes(span, attributes)
202
+
203
+ # Execute the wrapped method
204
+ result = wrapped(*args, **kwargs)
205
+
206
+ # Add memory stats after operation
207
+ if hasattr(instance, "messages"):
208
+ set_span_attribute(span, "agno.memory.messages_count_after", len(instance.messages))
209
+ if hasattr(instance, "runs"):
210
+ set_span_attribute(span, "agno.memory.runs_count_after", len(instance.runs))
211
+ if hasattr(instance, "memories") and instance.memories:
212
+ set_span_attribute(span, "agno.memory.memories_count_after", len(instance.memories))
213
+
214
+ # Record execution time
215
+ set_span_attribute(span, "agno.memory.execution_time_ms", int((time.time() - start_time) * 1000))
216
+
217
+ # Record success status
218
+ span.set_status(Status(StatusCode.OK))
219
+
220
+ # Add result if relevant
221
+ if result is not None:
222
+ set_span_attribute(span, "agno.memory.result", str(result))
223
+
224
+ return result
225
+
226
+ except Exception as err:
227
+ # Record the exception
228
+ span.record_exception(err)
229
+ span.set_status(Status(StatusCode.ERROR, str(err)))
230
+ raise
231
+
232
+ return traced_method
233
+
234
+
235
+ class AgnoSpanAttributes:
236
+ """
237
+ Helper class to extract and set Agno Agent attributes on spans.
238
+ """
239
+
240
+ def __init__(self, span: Span, instance: Any) -> None:
241
+ """
242
+ Initialize with a span and Agno instance.
243
+
244
+ Args:
245
+ span: OpenTelemetry span to update
246
+ instance: Agno Agent instance
247
+ """
248
+ self.span = span
249
+ self.instance = instance
250
+ self.agent_data = {}
251
+
252
+ self.run()
253
+
254
+ def run(self) -> None:
255
+ """Process the instance attributes and add them to the span."""
256
+ # Collect basic agent attributes
257
+ self.collect_agent_attributes()
258
+
259
+ # Add attributes to span
260
+ for key, value in self.agent_data.items():
261
+ if value is not None:
262
+ set_span_attribute(
263
+ self.span,
264
+ f"agno.agent.{key}",
265
+ str(value) if not isinstance(value, (int, float, bool)) else value
266
+ )
267
+
268
+ def collect_agent_attributes(self) -> None:
269
+ """Collect important attributes from the Agent instance."""
270
+ # Extract basic agent information
271
+ if hasattr(self.instance, "agent_id"):
272
+ self.agent_data["id"] = self.instance.agent_id
273
+
274
+ if hasattr(self.instance, "name"):
275
+ self.agent_data["name"] = self.instance.name
276
+
277
+ if hasattr(self.instance, "session_id"):
278
+ self.agent_data["session_id"] = self.instance.session_id
279
+
280
+ if hasattr(self.instance, "user_id"):
281
+ self.agent_data["user_id"] = self.instance.user_id
282
+
283
+ if hasattr(self.instance, "run_id"):
284
+ self.agent_data["run_id"] = self.instance.run_id
285
+
286
+ # Extract model information
287
+ if hasattr(self.instance, "model") and self.instance.model:
288
+ model = self.instance.model
289
+ model_info = {}
290
+
291
+ if hasattr(model, "id"):
292
+ model_info["id"] = model.id
293
+
294
+ if hasattr(model, "name"):
295
+ model_info["name"] = model.name
296
+
297
+ if hasattr(model, "provider"):
298
+ model_info["provider"] = model.provider
299
+
300
+ # Add temperature if available
301
+ if hasattr(model, "temperature") and model.temperature is not None:
302
+ model_info["temperature"] = model.temperature
303
+
304
+ # Add max_tokens if available
305
+ if hasattr(model, "max_tokens") and model.max_tokens is not None:
306
+ model_info["max_tokens"] = model.max_tokens
307
+
308
+ self.agent_data["model"] = json.dumps(model_info)
309
+
310
+ # Extract tool information
311
+ if hasattr(self.instance, "tools") and self.instance.tools:
312
+ tool_info = []
313
+ for tool in self.instance.tools:
314
+ tool_data = {}
315
+
316
+ # Handle different types of tools
317
+ if hasattr(tool, "name"):
318
+ tool_data["name"] = tool.name
319
+
320
+ # Handle DuckDuckGoTools and similar toolkits
321
+ if hasattr(tool, "functions") and isinstance(tool.functions, dict):
322
+ tool_data["functions"] = list(tool.functions.keys())
323
+
324
+ elif hasattr(tool, "__name__"):
325
+ tool_data["name"] = tool.__name__
326
+ else:
327
+ tool_data["name"] = str(tool)
328
+
329
+ # Add functions if available
330
+ if not "functions" in tool_data and hasattr(tool, "functions"):
331
+ if callable(getattr(tool, "functions")):
332
+ try:
333
+ tool_functions = tool.functions()
334
+ if isinstance(tool_functions, list):
335
+ tool_data["functions"] = [f.__name__ if hasattr(f, "__name__") else str(f)
336
+ for f in tool_functions]
337
+ except:
338
+ pass
339
+
340
+ tool_info.append(tool_data)
341
+
342
+ self.agent_data["tools"] = json.dumps(tool_info)
343
+
344
+ # Extract reasoning settings
345
+ if hasattr(self.instance, "reasoning") and self.instance.reasoning:
346
+ self.agent_data["reasoning_enabled"] = True
347
+
348
+ if hasattr(self.instance, "reasoning_model") and self.instance.reasoning_model:
349
+ self.agent_data["reasoning_model"] = str(self.instance.reasoning_model.id)
350
+
351
+ if hasattr(self.instance, "reasoning_min_steps"):
352
+ self.agent_data["reasoning_min_steps"] = self.instance.reasoning_min_steps
353
+
354
+ if hasattr(self.instance, "reasoning_max_steps"):
355
+ self.agent_data["reasoning_max_steps"] = self.instance.reasoning_max_steps
356
+
357
+ # Extract knowledge settings
358
+ if hasattr(self.instance, "knowledge") and self.instance.knowledge:
359
+ self.agent_data["knowledge_enabled"] = True
360
+
361
+ # Extract streaming settings
362
+ if hasattr(self.instance, "stream"):
363
+ self.agent_data["stream"] = self.instance.stream
@@ -0,0 +1,5 @@
1
+ from .instrumentation import OpenAIAgentsInstrumentation
2
+
3
+ __all__ = [
4
+ "OpenAIAgentsInstrumentation",
5
+ ]
@@ -0,0 +1,52 @@
1
+ """
2
+ Copyright (c) 2025 Scale3 Labs
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+ http://www.apache.org/licenses/LICENSE-2.0
7
+ Unless required by applicable law or agreed to in writing, software
8
+ distributed under the License is distributed on an "AS IS" BASIS,
9
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ See the License for the specific language governing permissions and
11
+ limitations under the License.
12
+ """
13
+
14
+ import importlib.metadata
15
+ import logging
16
+ from typing import Any, Collection, Optional
17
+
18
+ from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
19
+ from opentelemetry.trace import TracerProvider, get_tracer
20
+ from wrapt import wrap_function_wrapper
21
+
22
+ from langtrace_python_sdk.instrumentation.openai_agents.patch import \
23
+ get_new_response
24
+
25
+ logging.basicConfig(level=logging.FATAL)
26
+
27
+
28
+ class OpenAIAgentsInstrumentation(BaseInstrumentor): # type: ignore
29
+
30
+ def instrumentation_dependencies(self) -> Collection[str]:
31
+ return ["openai-agents >= 0.0.3", "trace-attributes >= 4.0.5"]
32
+
33
+ def _instrument(self, **kwargs: Any) -> None:
34
+ tracer_provider: Optional[TracerProvider] = kwargs.get("tracer_provider")
35
+ tracer = get_tracer(__name__, "", tracer_provider)
36
+ version: str = importlib.metadata.version("openai")
37
+
38
+ # TODO(Karthik): This is adding a lot of noise to the trace.
39
+ # wrap_function_wrapper(
40
+ # "agents.run",
41
+ # "Runner._get_handoffs",
42
+ # get_handoffs(version, tracer),
43
+ # )
44
+
45
+ wrap_function_wrapper(
46
+ "agents.run",
47
+ "Runner._get_new_response",
48
+ get_new_response(version, tracer),
49
+ )
50
+
51
+ def _uninstrument(self, **kwargs: Any) -> None:
52
+ pass