lumenova-beacon 2.5.3.dev2__tar.gz → 2.5.3.dev3__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 (136) hide show
  1. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/PKG-INFO +1 -1
  2. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/integrations/langchain.py +2 -8
  3. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/.gitignore +0 -0
  4. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/.gitlab-ci.yml +0 -0
  5. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/CHANGELOG.md +0 -0
  6. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/LICENSE +0 -0
  7. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/README.md +0 -0
  8. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/core_tracing/decorator_usage.py +0 -0
  9. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/core_tracing/delayed_span_example.py +0 -0
  10. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/core_tracing/manual_spans.py +0 -0
  11. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/core_tracing/nested_spans.py +0 -0
  12. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/core_tracing/project_session_usage.py +0 -0
  13. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/datastores/redis_integration.py +0 -0
  14. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/http_clients/fastapi_integration.py +0 -0
  15. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/http_clients/httpx_integration.py +0 -0
  16. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/http_clients/requests_integration.py +0 -0
  17. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/anthropic_integration.py +0 -0
  18. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/azure_openai_integration.py +0 -0
  19. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/crewai_integration.py +0 -0
  20. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/gemini_integration.py +0 -0
  21. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_agent.py +0 -0
  22. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_basic.py +0 -0
  23. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_builtin_agent.py +0 -0
  24. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_governance_agent.py +0 -0
  25. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_governance_basic.py +0 -0
  26. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_governance_custom_parser.py +0 -0
  27. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_interrupt_resume.py +0 -0
  28. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_rag.py +0 -0
  29. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/langchain/langchain_streaming_graph.py +0 -0
  30. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/litellm_native_integration.py +0 -0
  31. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/llamaindex_integration.py +0 -0
  32. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/openai_integration.py +0 -0
  33. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/llm_integrations/strands_integration.py +0 -0
  34. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/management/dataset_usage.py +0 -0
  35. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/management/evaluations_usage.py +0 -0
  36. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/management/experiments_usage.py +0 -0
  37. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/management/prompts_usage.py +0 -0
  38. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/masking/beacon_guardrails.py +0 -0
  39. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/masking/beacon_guardrails_nested.py +0 -0
  40. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/masking/custom_function.py +0 -0
  41. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/masking/custom_function_nested.py +0 -0
  42. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/examples/prompt_linking/complete_guide.py +0 -0
  43. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/__init__.py +0 -0
  44. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/core/__init__.py +0 -0
  45. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/core/client.py +0 -0
  46. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/core/config.py +0 -0
  47. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/core/secrets.py +0 -0
  48. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/core/transport.py +0 -0
  49. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/datasets/__init__.py +0 -0
  50. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/datasets/models.py +0 -0
  51. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/datasets/types.py +0 -0
  52. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/evaluations/__init__.py +0 -0
  53. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/evaluations/models.py +0 -0
  54. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/evaluations/types.py +0 -0
  55. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/exceptions.py +0 -0
  56. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/experiments/__init__.py +0 -0
  57. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/experiments/_progress.py +0 -0
  58. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/experiments/models.py +0 -0
  59. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/experiments/types.py +0 -0
  60. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/governance/__init__.py +0 -0
  61. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/governance/_helpers.py +0 -0
  62. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/governance/client.py +0 -0
  63. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/governance/config.py +0 -0
  64. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/governance/decorators.py +0 -0
  65. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/governance/integrations/__init__.py +0 -0
  66. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/governance/integrations/langchain.py +0 -0
  67. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/guardrails/__init__.py +0 -0
  68. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/guardrails/models.py +0 -0
  69. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/llm_configs/__init__.py +0 -0
  70. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/llm_configs/models.py +0 -0
  71. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/llm_configs/types.py +0 -0
  72. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/masking/__init__.py +0 -0
  73. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/masking/engine.py +0 -0
  74. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/masking/integrations/__init__.py +0 -0
  75. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/masking/integrations/beacon_guardrails.py +0 -0
  76. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/masking/types.py +0 -0
  77. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/masking/utils.py +0 -0
  78. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/prompts/__init__.py +0 -0
  79. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/prompts/models.py +0 -0
  80. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/prompts/rendering.py +0 -0
  81. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/prompts/types.py +0 -0
  82. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/providers/__init__.py +0 -0
  83. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/__init__.py +0 -0
  84. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/decorators.py +0 -0
  85. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/exporters/__init__.py +0 -0
  86. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/exporters/opentelemetry.py +0 -0
  87. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/integrations/__init__.py +0 -0
  88. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/integrations/crewai.py +0 -0
  89. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/integrations/litellm.py +0 -0
  90. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/integrations/strands.py +0 -0
  91. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/span.py +0 -0
  92. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/tracing/trace.py +0 -0
  93. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/types.py +0 -0
  94. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/__init__.py +0 -0
  95. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/client_helpers.py +0 -0
  96. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/config.py +0 -0
  97. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/datetime.py +0 -0
  98. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/http_errors.py +0 -0
  99. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/ids.py +0 -0
  100. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/serialization.py +0 -0
  101. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/spans.py +0 -0
  102. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/lumenova_beacon/utils/timestamps.py +0 -0
  103. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/pyproject.toml +0 -0
  104. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/__init__.py +0 -0
  105. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/conftest.py +0 -0
  106. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/core/__init__.py +0 -0
  107. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/core/test_client.py +0 -0
  108. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/core/test_config.py +0 -0
  109. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/core/test_secrets.py +0 -0
  110. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/core/test_transport.py +0 -0
  111. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/experiments/__init__.py +0 -0
  112. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/experiments/test_experiment_model.py +0 -0
  113. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/experiments/test_types.py +0 -0
  114. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/governance/__init__.py +0 -0
  115. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/governance/test_governance_decorator.py +0 -0
  116. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/governance/test_governance_handler.py +0 -0
  117. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/masking/__init__.py +0 -0
  118. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/masking/test_masking_integration.py +0 -0
  119. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/test_crewai_integration.py +0 -0
  120. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/test_exceptions.py +0 -0
  121. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/test_langchain_integration.py +0 -0
  122. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/test_langgraph_beacon_config.py +0 -0
  123. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/test_strands_integration.py +0 -0
  124. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/tracing/__init__.py +0 -0
  125. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/tracing/test_decorators.py +0 -0
  126. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/tracing/test_handoff.py +0 -0
  127. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/tracing/test_resume.py +0 -0
  128. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/tracing/test_span.py +0 -0
  129. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/tracing/test_span_export.py +0 -0
  130. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/tracing/test_trace.py +0 -0
  131. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/utils/__init__.py +0 -0
  132. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/utils/test_datetime.py +0 -0
  133. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/utils/test_ids.py +0 -0
  134. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/utils/test_serialization.py +0 -0
  135. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/tests/utils/test_timestamps.py +0 -0
  136. {lumenova_beacon-2.5.3.dev2 → lumenova_beacon-2.5.3.dev3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lumenova-beacon
3
- Version: 2.5.3.dev2
3
+ Version: 2.5.3.dev3
4
4
  Summary: Lumenova Beacon SDK - A Python SDK for observability tracing with OpenTelemetry-compatible span export
5
5
  Project-URL: Homepage, https://lumenova.ai
6
6
  Author-email: Lumenova AI <support@lumenova.ai>
@@ -2335,15 +2335,9 @@ class BeaconLangGraphHandler(BaseCallbackHandler):
2335
2335
  """Handle LLM end event."""
2336
2336
  try:
2337
2337
  # DEBUG: Token usage investigation for structured output
2338
- _gen = response.generations[0][0] if response.generations and response.generations[0] else None
2339
- _msg = getattr(_gen, "message", None) if _gen else None
2340
- _usage_meta = getattr(_msg, "usage_metadata", "NO_ATTR") if _msg else "NO_MESSAGE"
2341
- _streaming_usage = self._state.runs.get(str(run_id), {}).get("streaming_usage") if hasattr(self, "_state") else "NO_STATE"
2342
2338
  logger.warning(
2343
- f"[BEACON DEBUG] on_llm_end run_id={run_id} "
2344
- f"llm_output={response.llm_output} "
2345
- f"usage_metadata={_usage_meta} "
2346
- f"streaming_usage={_streaming_usage}"
2339
+ f"\n\n[BEACON DEBUG] on_llm_end run_id={run_id} "
2340
+ f"response={response}\n\n"
2347
2341
  )
2348
2342
  self._ensure_auto_handoff_context(run_id, parent_run_id)
2349
2343
  s = _StateAccessor(self)