beamlit 0.0.34rc78__tar.gz → 0.0.34rc79__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 (298) hide show
  1. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/PKG-INFO +19 -2
  2. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/pyproject.toml +19 -2
  3. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/instrumentation.py +146 -8
  4. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/serve/app.py +0 -10
  5. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/uv.lock +62 -312
  6. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/.gitignore +0 -0
  7. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/README.md +0 -0
  8. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/beamlit.yaml +0 -0
  9. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/__init__.py +0 -0
  10. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/agents/__init__.py +0 -0
  11. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/agents/chain.py +0 -0
  12. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/agents/chat.py +0 -0
  13. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/agents/decorator.py +0 -0
  14. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/agents/thread.py +0 -0
  15. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/__init__.py +0 -0
  16. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/__init__.py +0 -0
  17. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/create_agent.py +0 -0
  18. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/create_agent_release.py +0 -0
  19. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/delete_agent.py +0 -0
  20. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/delete_agent_history.py +0 -0
  21. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/get_agent.py +0 -0
  22. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/get_agent_environment_logs.py +0 -0
  23. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/get_agent_history.py +0 -0
  24. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/get_agent_metrics.py +0 -0
  25. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/get_agent_trace_ids.py +0 -0
  26. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/list_agent_history.py +0 -0
  27. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/list_agents.py +0 -0
  28. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/put_agent_history.py +0 -0
  29. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/agents/update_agent.py +0 -0
  30. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/configurations/__init__.py +0 -0
  31. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/configurations/get_configuration.py +0 -0
  32. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/default/__init__.py +0 -0
  33. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/default/get_trace.py +0 -0
  34. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/default/get_trace_ids.py +0 -0
  35. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/default/get_trace_logs.py +0 -0
  36. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/environments/__init__.py +0 -0
  37. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/environments/create_environment.py +0 -0
  38. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/environments/delete_environment.py +0 -0
  39. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/environments/get_environment.py +0 -0
  40. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/environments/get_environment_metrics.py +0 -0
  41. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/environments/list_environments.py +0 -0
  42. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/environments/update_environment.py +0 -0
  43. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/__init__.py +0 -0
  44. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/create_function.py +0 -0
  45. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/create_function_release.py +0 -0
  46. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/delete_function.py +0 -0
  47. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/get_function.py +0 -0
  48. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/get_function_environment_logs.py +0 -0
  49. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/get_function_metrics.py +0 -0
  50. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/get_function_trace_ids.py +0 -0
  51. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/list_functions.py +0 -0
  52. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/functions/update_function.py +0 -0
  53. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/history/__init__.py +0 -0
  54. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/history/get_agents_history.py +0 -0
  55. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/history/list_agents_history.py +0 -0
  56. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/__init__.py +0 -0
  57. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/create_integration_connection.py +0 -0
  58. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/delete_integration_connection.py +0 -0
  59. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/get_integration.py +0 -0
  60. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/get_integration_connection.py +0 -0
  61. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/get_integration_connection_model.py +0 -0
  62. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/get_integration_model.py +0 -0
  63. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/list_integration_connection_models.py +0 -0
  64. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/list_integration_connections.py +0 -0
  65. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/list_integration_models.py +0 -0
  66. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/integrations/update_integration_connection.py +0 -0
  67. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/invitations/__init__.py +0 -0
  68. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/invitations/list_all_pending_invitations.py +0 -0
  69. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/locations/__init__.py +0 -0
  70. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/locations/list_locations.py +0 -0
  71. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/metrics/__init__.py +0 -0
  72. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/metrics/get_metrics.py +0 -0
  73. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/model_providers/__init__.py +0 -0
  74. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/model_providers/create_model_provider.py +0 -0
  75. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/model_providers/delete_model_provider.py +0 -0
  76. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/model_providers/get_model_provider.py +0 -0
  77. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/model_providers/list_model_providers.py +0 -0
  78. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/model_providers/update_model_provider.py +0 -0
  79. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/__init__.py +0 -0
  80. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/create_model.py +0 -0
  81. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/delete_model.py +0 -0
  82. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/get_model.py +0 -0
  83. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/get_model_environment_logs.py +0 -0
  84. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/get_model_metrics.py +0 -0
  85. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/get_model_trace_ids.py +0 -0
  86. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/list_models.py +0 -0
  87. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/release_model.py +0 -0
  88. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/models/update_model.py +0 -0
  89. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/policies/__init__.py +0 -0
  90. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/policies/create_policy.py +0 -0
  91. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/policies/delete_policy.py +0 -0
  92. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/policies/get_policy.py +0 -0
  93. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/policies/list_policies.py +0 -0
  94. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/policies/update_policy.py +0 -0
  95. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/__init__.py +0 -0
  96. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/create_private_cluster.py +0 -0
  97. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/delete_private_cluster.py +0 -0
  98. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/get_private_cluster.py +0 -0
  99. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/get_private_cluster_health.py +0 -0
  100. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/list_private_clusters.py +0 -0
  101. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/update_private_cluster.py +0 -0
  102. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/privateclusters/update_private_cluster_health.py +0 -0
  103. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/__init__.py +0 -0
  104. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/create_api_key_for_service_account.py +0 -0
  105. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/create_workspace_service_account.py +0 -0
  106. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/delete_api_key_for_service_account.py +0 -0
  107. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/delete_workspace_service_account.py +0 -0
  108. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/get_workspace_service_accounts.py +0 -0
  109. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/list_api_keys_for_service_account.py +0 -0
  110. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/service_accounts/update_workspace_service_account.py +0 -0
  111. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/store/__init__.py +0 -0
  112. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/store/get_store_agent.py +0 -0
  113. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/store/get_store_function.py +0 -0
  114. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/store/list_store_agents.py +0 -0
  115. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/store/list_store_functions.py +0 -0
  116. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/__init__.py +0 -0
  117. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/accept_workspace_invitation.py +0 -0
  118. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/create_worspace.py +0 -0
  119. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/decline_workspace_invitation.py +0 -0
  120. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/delete_workspace.py +0 -0
  121. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/get_workspace.py +0 -0
  122. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/invite_workspace_user.py +0 -0
  123. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/leave_workspace.py +0 -0
  124. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/list_workspace_users.py +0 -0
  125. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/list_workspaces.py +0 -0
  126. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/remove_workspace_user.py +0 -0
  127. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/update_workspace.py +0 -0
  128. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/api/workspaces/update_workspace_user_role.py +0 -0
  129. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/authentication/__init__.py +0 -0
  130. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/authentication/apikey.py +0 -0
  131. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/authentication/authentication.py +0 -0
  132. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/authentication/clientcredentials.py +0 -0
  133. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/authentication/credentials.py +0 -0
  134. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/authentication/device_mode.py +0 -0
  135. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/client.py +0 -0
  136. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/__init__.py +0 -0
  137. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/error.py +0 -0
  138. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/logger.py +0 -0
  139. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/secrets.py +0 -0
  140. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/settings.py +0 -0
  141. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/slugify.py +0 -0
  142. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/common/utils.py +0 -0
  143. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/deploy/__init__.py +0 -0
  144. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/deploy/deploy.py +0 -0
  145. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/deploy/format.py +0 -0
  146. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/deploy/parser.py +0 -0
  147. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/errors.py +0 -0
  148. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/__init__.py +0 -0
  149. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/decorator.py +0 -0
  150. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/github/__init__.py +0 -0
  151. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/github/github.py +0 -0
  152. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/github/kit/__init__.py +0 -0
  153. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/github/kit/pull_request.py +0 -0
  154. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/math/__init__.py +0 -0
  155. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/math/math.py +0 -0
  156. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/mcp/mcp.py +0 -0
  157. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/remote/remote.py +0 -0
  158. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/search/__init__.py +0 -0
  159. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/functions/search/search.py +0 -0
  160. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/__init__.py +0 -0
  161. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/acl.py +0 -0
  162. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent.py +0 -0
  163. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent_chain.py +0 -0
  164. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent_history.py +0 -0
  165. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent_history_event.py +0 -0
  166. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent_metadata.py +0 -0
  167. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent_release.py +0 -0
  168. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent_render.py +0 -0
  169. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/agent_spec.py +0 -0
  170. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/api_key.py +0 -0
  171. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/configuration.py +0 -0
  172. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/continent.py +0 -0
  173. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/core_event.py +0 -0
  174. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/core_spec.py +0 -0
  175. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/core_spec_configurations.py +0 -0
  176. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/core_status.py +0 -0
  177. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/country.py +0 -0
  178. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/create_api_key_for_service_account_body.py +0 -0
  179. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/create_workspace_service_account_body.py +0 -0
  180. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/create_workspace_service_account_response_200.py +0 -0
  181. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/delete_workspace_service_account_response_200.py +0 -0
  182. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/environment.py +0 -0
  183. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/environment_metadata.py +0 -0
  184. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/environment_metrics.py +0 -0
  185. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/environment_spec.py +0 -0
  186. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/flavor.py +0 -0
  187. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/function.py +0 -0
  188. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/function_kit.py +0 -0
  189. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/function_metadata.py +0 -0
  190. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/function_release.py +0 -0
  191. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/function_render.py +0 -0
  192. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/function_spec.py +0 -0
  193. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/get_trace_ids_response_200.py +0 -0
  194. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/get_trace_logs_response_200.py +0 -0
  195. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/get_trace_response_200.py +0 -0
  196. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/get_workspace_service_accounts_response_200_item.py +0 -0
  197. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/histogram_bucket.py +0 -0
  198. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/histogram_stats.py +0 -0
  199. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/increase_and_rate_metric.py +0 -0
  200. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/integration_config.py +0 -0
  201. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/integration_connection.py +0 -0
  202. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/integration_connection_config.py +0 -0
  203. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/integration_connection_secret.py +0 -0
  204. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/integration_connection_spec.py +0 -0
  205. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/integration_model.py +0 -0
  206. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/integration_repository.py +0 -0
  207. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/invite_workspace_user_body.py +0 -0
  208. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/last_n_requests_metric.py +0 -0
  209. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/latency_metric.py +0 -0
  210. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/location_response.py +0 -0
  211. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/metadata.py +0 -0
  212. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/metadata_labels.py +0 -0
  213. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/metric.py +0 -0
  214. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/metrics.py +0 -0
  215. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/metrics_models.py +0 -0
  216. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/metrics_request_total_per_code.py +0 -0
  217. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/metrics_rps_per_code.py +0 -0
  218. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/model.py +0 -0
  219. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/model_metadata.py +0 -0
  220. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/model_private_cluster.py +0 -0
  221. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/model_provider.py +0 -0
  222. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/model_release.py +0 -0
  223. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/model_render.py +0 -0
  224. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/model_spec.py +0 -0
  225. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/owner_fields.py +0 -0
  226. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/pending_invitation.py +0 -0
  227. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/pending_invitation_accept.py +0 -0
  228. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/pending_invitation_render.py +0 -0
  229. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/pending_invitation_render_invited_by.py +0 -0
  230. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/pending_invitation_render_workspace.py +0 -0
  231. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/pending_invitation_workspace_details.py +0 -0
  232. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/pod_template_spec.py +0 -0
  233. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/policy.py +0 -0
  234. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/policy_location.py +0 -0
  235. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/policy_spec.py +0 -0
  236. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/private_cluster.py +0 -0
  237. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/private_location.py +0 -0
  238. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/provider_config.py +0 -0
  239. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/qps.py +0 -0
  240. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/repository.py +0 -0
  241. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/repository_type_0.py +0 -0
  242. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_duration_over_time_metric.py +0 -0
  243. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_duration_over_time_metrics.py +0 -0
  244. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_total_by_origin_metric.py +0 -0
  245. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_total_by_origin_metric_request_total_by_origin.py +0 -0
  246. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +0 -0
  247. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_total_metric.py +0 -0
  248. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_total_metric_request_total_per_code.py +0 -0
  249. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/request_total_metric_rps_per_code.py +0 -0
  250. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_deployment_metrics.py +0 -0
  251. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_deployment_metrics_inference_per_second_per_region.py +0 -0
  252. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_deployment_metrics_query_per_second_per_region_per_code.py +0 -0
  253. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_environment_metrics.py +0 -0
  254. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_environment_metrics_inference_per_region.py +0 -0
  255. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_environment_metrics_inference_per_second_per_region.py +0 -0
  256. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_environment_metrics_query_per_region_per_code.py +0 -0
  257. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_environment_metrics_query_per_second_per_region_per_code.py +0 -0
  258. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_environment_metrics_request_total_per_code.py +0 -0
  259. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_environment_metrics_rps_per_code.py +0 -0
  260. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_log.py +0 -0
  261. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/resource_metrics.py +0 -0
  262. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/runtime.py +0 -0
  263. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/runtime_readiness_probe.py +0 -0
  264. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/runtime_resources.py +0 -0
  265. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/serverless_config.py +0 -0
  266. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/spec_configuration.py +0 -0
  267. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_agent.py +0 -0
  268. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_agent_labels.py +0 -0
  269. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_configuration.py +0 -0
  270. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_configuration_option.py +0 -0
  271. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_function.py +0 -0
  272. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_function_kit.py +0 -0
  273. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_function_labels.py +0 -0
  274. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/store_function_parameter.py +0 -0
  275. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/time_fields.py +0 -0
  276. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/token_rate_metric.py +0 -0
  277. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/token_rate_metrics.py +0 -0
  278. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/token_total_metric.py +0 -0
  279. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/trace_ids_response.py +0 -0
  280. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/update_workspace_service_account_body.py +0 -0
  281. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/update_workspace_service_account_response_200.py +0 -0
  282. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/update_workspace_user_role_body.py +0 -0
  283. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/websocket_channel.py +0 -0
  284. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/workspace.py +0 -0
  285. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/workspace_labels.py +0 -0
  286. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/models/workspace_user.py +0 -0
  287. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/py.typed +0 -0
  288. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/run.py +0 -0
  289. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/serve/middlewares/__init__.py +0 -0
  290. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/serve/middlewares/accesslog.py +0 -0
  291. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/serve/middlewares/processtime.py +0 -0
  292. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/beamlit/types.py +0 -0
  293. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/integrationtest/agent.py +0 -0
  294. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/integrationtest/beamlit.yaml +0 -0
  295. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/integrationtest/functions/helloworld.py +0 -0
  296. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/integrationtest/main.py +0 -0
  297. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/integrationtest/pyproject.toml +0 -0
  298. {beamlit-0.0.34rc78 → beamlit-0.0.34rc79}/src/integrationtest/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: beamlit
3
- Version: 0.0.34rc78
3
+ Version: 0.0.34rc79
4
4
  Summary: Add your description here
5
5
  Author-email: cploujoux <ch.ploujoux@gmail.com>
6
6
  Requires-Python: >=3.12
@@ -15,9 +15,27 @@ Requires-Dist: langgraph<0.3.0,>=0.2.40
15
15
  Requires-Dist: mcp>=1.1.2
16
16
  Requires-Dist: opentelemetry-api>=1.28.2
17
17
  Requires-Dist: opentelemetry-exporter-otlp>=1.28.2
18
+ Requires-Dist: opentelemetry-instrumentation-anthropic>=0.35.0
19
+ Requires-Dist: opentelemetry-instrumentation-chromadb>=0.35.0
20
+ Requires-Dist: opentelemetry-instrumentation-cohere>=0.35.0
18
21
  Requires-Dist: opentelemetry-instrumentation-fastapi>=0.49b2
22
+ Requires-Dist: opentelemetry-instrumentation-groq>=0.35.0
19
23
  Requires-Dist: opentelemetry-instrumentation-httpx>=0.49b2
24
+ Requires-Dist: opentelemetry-instrumentation-lancedb>=0.35.0
25
+ Requires-Dist: opentelemetry-instrumentation-langchain>=0.35.0
26
+ Requires-Dist: opentelemetry-instrumentation-llamaindex>=0.35.0
27
+ Requires-Dist: opentelemetry-instrumentation-marqo>=0.35.0
28
+ Requires-Dist: opentelemetry-instrumentation-milvus>=0.35.0
29
+ Requires-Dist: opentelemetry-instrumentation-mistralai>=0.35.0
30
+ Requires-Dist: opentelemetry-instrumentation-ollama>=0.35.0
31
+ Requires-Dist: opentelemetry-instrumentation-openai>=0.35.0
32
+ Requires-Dist: opentelemetry-instrumentation-pinecone>=0.35.0
33
+ Requires-Dist: opentelemetry-instrumentation-qdrant>=0.35.0
34
+ Requires-Dist: opentelemetry-instrumentation-replicate>=0.35.0
20
35
  Requires-Dist: opentelemetry-instrumentation-system-metrics>=0.50b0
36
+ Requires-Dist: opentelemetry-instrumentation-together>=0.35.0
37
+ Requires-Dist: opentelemetry-instrumentation-watsonx>=0.35.0
38
+ Requires-Dist: opentelemetry-instrumentation-weaviate>=0.35.0
21
39
  Requires-Dist: opentelemetry-sdk>=1.28.2
22
40
  Requires-Dist: pydantic-settings<2.7.0,>=2.6.1
23
41
  Requires-Dist: pydantic<2.11.0,>=2.10.3
@@ -25,7 +43,6 @@ Requires-Dist: pyjwt>=2.10.1
25
43
  Requires-Dist: python-dateutil>=2.8.0
26
44
  Requires-Dist: pyyaml<6.1.0,>=6.0.2
27
45
  Requires-Dist: requests<2.33.0,>=2.32.3
28
- Requires-Dist: traceloop-sdk>=0.33.12
29
46
  Description-Content-Type: text/markdown
30
47
 
31
48
  # beamlit
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "beamlit"
3
- version = "0.0.34.pre-78"
3
+ version = "0.0.34.pre-79"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -26,7 +26,6 @@ dependencies = [
26
26
  "fastapi[standard]>=0.115.4,<0.116.0",
27
27
  "asgi-correlation-id>=4.3.4,<5.0.0",
28
28
  "mcp>=1.1.2",
29
- "traceloop-sdk>=0.33.12",
30
29
  "opentelemetry-sdk>=1.28.2",
31
30
  "opentelemetry-exporter-otlp>=1.28.2",
32
31
  "opentelemetry-api>=1.28.2",
@@ -34,6 +33,24 @@ dependencies = [
34
33
  "opentelemetry-instrumentation-httpx>=0.49b2",
35
34
  "opentelemetry-instrumentation-system-metrics>=0.50b0",
36
35
  "pyjwt>=2.10.1",
36
+ "opentelemetry-instrumentation-anthropic>=0.35.0",
37
+ "opentelemetry-instrumentation-chromadb>=0.35.0",
38
+ "opentelemetry-instrumentation-cohere>=0.35.0",
39
+ "opentelemetry-instrumentation-groq>=0.35.0",
40
+ "opentelemetry-instrumentation-lancedb>=0.35.0",
41
+ "opentelemetry-instrumentation-langchain>=0.35.0",
42
+ "opentelemetry-instrumentation-llamaindex>=0.35.0",
43
+ "opentelemetry-instrumentation-marqo>=0.35.0",
44
+ "opentelemetry-instrumentation-milvus>=0.35.0",
45
+ "opentelemetry-instrumentation-mistralai>=0.35.0",
46
+ "opentelemetry-instrumentation-ollama>=0.35.0",
47
+ "opentelemetry-instrumentation-openai>=0.35.0",
48
+ "opentelemetry-instrumentation-pinecone>=0.35.0",
49
+ "opentelemetry-instrumentation-qdrant>=0.35.0",
50
+ "opentelemetry-instrumentation-replicate>=0.35.0",
51
+ "opentelemetry-instrumentation-together>=0.35.0",
52
+ "opentelemetry-instrumentation-watsonx>=0.35.0",
53
+ "opentelemetry-instrumentation-weaviate>=0.35.0",
37
54
  ]
38
55
  [dependency-groups]
39
56
  dev = [
@@ -1,5 +1,6 @@
1
+ import importlib
1
2
  import logging
2
- from typing import Any
3
+ from typing import Any, Optional, Type
3
4
 
4
5
  from fastapi import FastAPI
5
6
  from opentelemetry import _logs, metrics, trace
@@ -13,8 +14,9 @@ from opentelemetry.exporter.otlp.proto.http.metric_exporter import (
13
14
  from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
14
15
  OTLPSpanExporter,
15
16
  )
16
- from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor
17
- from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor
17
+ from opentelemetry.instrumentation.fastapi import ( # type: ignore
18
+ FastAPIInstrumentor,
19
+ )
18
20
  from opentelemetry.metrics import NoOpMeterProvider
19
21
  from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
20
22
  from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
@@ -34,6 +36,8 @@ tracer: trace.Tracer | None = None
34
36
  meter: metrics.Meter | None = None
35
37
  logger: LoggerProvider | None = None
36
38
 
39
+ log = logging.getLogger(__name__)
40
+
37
41
 
38
42
  def auth_headers() -> Dict[str, str]:
39
43
  settings = get_settings()
@@ -82,6 +86,121 @@ def get_log_exporter() -> OTLPLogExporter | None:
82
86
  return OTLPLogExporter(headers=auth_headers())
83
87
 
84
88
 
89
+ def _import_class(module_path: str, class_name: str) -> Optional[Type]: # type: ignore
90
+ """Dynamically import a class from a module path."""
91
+ try:
92
+ module = importlib.import_module(module_path)
93
+ return getattr(module, class_name)
94
+ except (ImportError, AttributeError) as e:
95
+ log.error(f"Could not import {class_name} from {module_path}: {str(e)}")
96
+ return None
97
+
98
+
99
+ # Define mapping of instrumentor info: (module path, class name, required package)
100
+ INSTRUMENTOR_CONFIGS = {
101
+ "httpx": (
102
+ "opentelemetry.instrumentation.httpx",
103
+ "HTTPXClientInstrumentor",
104
+ "httpx",
105
+ ),
106
+ "anthropic": (
107
+ "opentelemetry.instrumentation.anthropic",
108
+ "AnthropicInstrumentor",
109
+ "anthropic",
110
+ ),
111
+ "chroma": (
112
+ "opentelemetry.instrumentation.chroma",
113
+ "ChromaInstrumentor",
114
+ "chromadb",
115
+ ),
116
+ "cohere": (
117
+ "opentelemetry.instrumentation.cohere",
118
+ "CohereInstrumentor",
119
+ "cohere",
120
+ ),
121
+ "groq": ("opentelemetry.instrumentation.groq", "GroqInstrumentor", "groq"),
122
+ "lance": (
123
+ "opentelemetry.instrumentation.lance",
124
+ "LanceInstrumentor",
125
+ "pylance",
126
+ ),
127
+ "langchain": (
128
+ "opentelemetry.instrumentation.langchain",
129
+ "LangchainInstrumentor",
130
+ "langchain",
131
+ ),
132
+ "llama_index": (
133
+ "opentelemetry.instrumentation.llama_index",
134
+ "LlamaIndexInstrumentor",
135
+ "llama_index",
136
+ ),
137
+ "marqo": (
138
+ "opentelemetry.instrumentation.marqo",
139
+ "MarqoInstrumentor",
140
+ "marqo",
141
+ ),
142
+ "milvus": (
143
+ "opentelemetry.instrumentation.milvus",
144
+ "MilvusInstrumentor",
145
+ "pymilvus",
146
+ ),
147
+ "mistralai": (
148
+ "opentelemetry.instrumentation.mistralai",
149
+ "MistralAiInstrumentor",
150
+ "mistralai",
151
+ ),
152
+ "ollama": (
153
+ "opentelemetry.instrumentation.ollama",
154
+ "OllamaInstrumentor",
155
+ "ollama",
156
+ ),
157
+ "openai": (
158
+ "opentelemetry.instrumentation.openai",
159
+ "OpenAIInstrumentor",
160
+ "openai",
161
+ ),
162
+ "pinecone": (
163
+ "opentelemetry.instrumentation.pinecone",
164
+ "PineconeInstrumentor",
165
+ "pinecone",
166
+ ),
167
+ "qdrant": (
168
+ "opentelemetry.instrumentation.qdrant",
169
+ "QdrantInstrumentor",
170
+ "qdrant_client",
171
+ ),
172
+ "replicate": (
173
+ "opentelemetry.instrumentation.replicate",
174
+ "ReplicateInstrumentor",
175
+ "replicate",
176
+ ),
177
+ "together": (
178
+ "opentelemetry.instrumentation.together",
179
+ "TogetherAiInstrumentor",
180
+ "together",
181
+ ),
182
+ "watsonx": (
183
+ "opentelemetry.instrumentation.watsonx",
184
+ "WatsonxInstrumentor",
185
+ "ibm_watson_machine_learning",
186
+ ),
187
+ "weaviate": (
188
+ "opentelemetry.instrumentation.weaviate",
189
+ "WeaviateInstrumentor",
190
+ "weaviate",
191
+ ),
192
+ }
193
+
194
+
195
+ def _is_package_installed(package_name: str) -> bool:
196
+ """Check if a package is installed."""
197
+ try:
198
+ importlib.import_module(package_name)
199
+ return True
200
+ except (ImportError, ModuleNotFoundError):
201
+ return False
202
+
203
+
85
204
  def instrument_app(app: FastAPI):
86
205
  global tracer
87
206
  global meter
@@ -106,7 +225,7 @@ def instrument_app(app: FastAPI):
106
225
  # Set up the TracerProvider if not already set
107
226
  if not isinstance(trace.get_tracer_provider(), TracerProvider):
108
227
  trace_provider = TracerProvider(resource=resource)
109
- span_processor = BatchSpanProcessor(get_span_exporter())
228
+ span_processor = BatchSpanProcessor(get_span_exporter()) # type: ignore
110
229
  trace_provider.add_span_processor(span_processor)
111
230
  trace.set_tracer_provider(trace_provider)
112
231
  tracer = trace_provider.get_tracer(__name__)
@@ -115,7 +234,7 @@ def instrument_app(app: FastAPI):
115
234
 
116
235
  # Set up the MeterProvider if not already set
117
236
  if not isinstance(metrics.get_meter_provider(), MeterProvider):
118
- metrics_exporter = PeriodicExportingMetricReader(get_metrics_exporter())
237
+ metrics_exporter = PeriodicExportingMetricReader(get_metrics_exporter()) # type: ignore
119
238
  meter_provider = MeterProvider(
120
239
  resource=resource, metric_readers=[metrics_exporter]
121
240
  )
@@ -128,7 +247,7 @@ def instrument_app(app: FastAPI):
128
247
  logger_provider = LoggerProvider(resource=resource)
129
248
  set_logger_provider(logger_provider)
130
249
  logger_provider.add_log_record_processor(
131
- BatchLogRecordProcessor(get_log_exporter())
250
+ BatchLogRecordProcessor(get_log_exporter()) # type: ignore
132
251
  )
133
252
  handler = LoggingHandler(
134
253
  level=logging.NOTSET, logger_provider=logger_provider
@@ -138,8 +257,27 @@ def instrument_app(app: FastAPI):
138
257
  logger_provider = _logs.get_logger_provider()
139
258
 
140
259
  # Only instrument the app when OpenTelemetry is enabled
141
- FastAPIInstrumentor.instrument_app(app)
142
- HTTPXClientInstrumentor().instrument()
260
+ FastAPIInstrumentor.instrument_app(app) # type: ignore
261
+
262
+ for name, (
263
+ module_path,
264
+ class_name,
265
+ required_package,
266
+ ) in INSTRUMENTOR_CONFIGS.items():
267
+ if _is_package_installed(required_package):
268
+ instrumentor_class = _import_class(module_path, class_name) # type: ignore
269
+ if instrumentor_class:
270
+ try:
271
+ instrumentor_class().instrument()
272
+ log.info(f"Successfully instrumented {name}")
273
+ except Exception as e:
274
+ log.error(f"Failed to instrument {name}: {str(e)}")
275
+ else:
276
+ log.error(f"Could not load instrumentor for {name}")
277
+ else:
278
+ log.debug(
279
+ f"Skipping {name} instrumentation - required package '{required_package}' not installed"
280
+ )
143
281
 
144
282
 
145
283
  def shutdown_instrumentation():
@@ -10,12 +10,9 @@ from uuid import uuid4
10
10
  from asgi_correlation_id import CorrelationIdMiddleware
11
11
  from fastapi import FastAPI, Request, Response
12
12
  from fastapi.responses import JSONResponse
13
- from traceloop.sdk import Traceloop
14
13
 
15
14
  from beamlit.common import HTTPError, get_settings, init
16
15
  from beamlit.common.instrumentation import (
17
- get_resource_attributes,
18
- get_span_exporter,
19
16
  instrument_app,
20
17
  shutdown_instrumentation,
21
18
  )
@@ -58,13 +55,6 @@ app.add_middleware(
58
55
  app.add_middleware(AddProcessTimeHeader)
59
56
  app.add_middleware(AccessLogMiddleware)
60
57
  instrument_app(app)
61
- if settings.enable_opentelemetry:
62
- Traceloop.init(
63
- app_name=settings.name,
64
- exporter=get_span_exporter(),
65
- resource_attributes=get_resource_attributes(),
66
- should_enrich_metrics=os.getenv("ENRICHED_METRICS", "false") == "true",
67
- )
68
58
 
69
59
 
70
60
  @app.get("/health")