langgraph-api 0.14.0.dev5__tar.gz → 0.14.0.dev7__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 (291) hide show
  1. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/PKG-INFO +1 -1
  2. langgraph_api-0.14.0.dev7/langgraph_api/__init__.py +1 -0
  3. langgraph_api-0.14.0.dev7/langgraph_api/beacon_data_plane_jwt_auth.py +71 -0
  4. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/config/__init__.py +16 -1
  5. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/self_hosted_logs.py +52 -23
  6. langgraph_api-0.14.0.dev5/langgraph_api/__init__.py +0 -1
  7. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/.gitignore +0 -0
  8. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/LICENSE +0 -0
  9. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/Makefile +0 -0
  10. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/README.md +0 -0
  11. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/.gitignore +0 -0
  12. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/Makefile +0 -0
  13. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/README.md +0 -0
  14. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/assistant.ts +0 -0
  15. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
  16. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
  17. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/benchmarks.ts +0 -0
  18. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
  19. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
  20. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/log-failure.ts +0 -0
  21. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/meta_workload.ts +0 -0
  22. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/store.ts +0 -0
  23. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/stream_write.ts +0 -0
  24. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/thread.ts +0 -0
  25. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
  26. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
  27. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/types.ts +0 -0
  28. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/benchmark-runners/wait_write.ts +0 -0
  29. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/capacity-ci.js +0 -0
  30. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/clean-cli.js +0 -0
  31. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/clean.js +0 -0
  32. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/continuous/README.md +0 -0
  33. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/continuous/pyproject.toml +0 -0
  34. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/continuous/runner.py +0 -0
  35. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/continuous/uv.lock +0 -0
  36. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/graphs.js +0 -0
  37. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/host-v2.js +0 -0
  38. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/package.json +0 -0
  39. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/ramp.js +0 -0
  40. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/reporting/dd_reporting.py +0 -0
  41. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/staircase.py +0 -0
  42. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/staircase_step_k6.js +0 -0
  43. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/tsconfig.json +0 -0
  44. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/update-revision.js +0 -0
  45. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/weather.js +0 -0
  46. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/benchmark/yarn.lock +0 -0
  47. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/constraints.txt +0 -0
  48. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/custom_store.sql +0 -0
  49. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/forbidden.txt +0 -0
  50. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/hatch_build.py +0 -0
  51. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/healthcheck.py +0 -0
  52. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph-cloud-debugging-20260210132856.zip +0 -0
  53. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/_checkpointer/__init__.py +0 -0
  54. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/_checkpointer/_adapter.py +0 -0
  55. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/_checkpointer/protocol.py +0 -0
  56. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/_factory_utils.py +0 -0
  57. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/__init__.py +0 -0
  58. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/a2a.py +0 -0
  59. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/assistants.py +0 -0
  60. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/event_streaming.py +0 -0
  61. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/mcp/__init__.py +0 -0
  62. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/mcp/_constants.py +0 -0
  63. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/mcp/_handlers.py +0 -0
  64. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/mcp/_models.py +0 -0
  65. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/mcp/_routes.py +0 -0
  66. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/mcp/_sanitizers.py +0 -0
  67. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/meta.py +0 -0
  68. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/openapi.py +0 -0
  69. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/profile.py +0 -0
  70. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/runs.py +0 -0
  71. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/store.py +0 -0
  72. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/threads.py +0 -0
  73. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/api/ui.py +0 -0
  74. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/asgi_transport.py +0 -0
  75. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/asyncio.py +0 -0
  76. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/__init__.py +0 -0
  77. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/custom.py +0 -0
  78. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/errors.py +0 -0
  79. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/langsmith/__init__.py +0 -0
  80. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/langsmith/backend.py +0 -0
  81. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/langsmith/client.py +0 -0
  82. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/middleware.py +0 -0
  83. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/noop.py +0 -0
  84. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/auth/studio_user.py +0 -0
  85. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/cache.py +0 -0
  86. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/cli.py +0 -0
  87. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/command.py +0 -0
  88. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/config/_parse.py +0 -0
  89. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/config/schemas.py +0 -0
  90. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/cron_scheduler.py +0 -0
  91. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/encryption/__init__.py +0 -0
  92. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/encryption/aes_json.py +0 -0
  93. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/encryption/context.py +0 -0
  94. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/encryption/custom.py +0 -0
  95. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/encryption/middleware.py +0 -0
  96. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/encryption/shared.py +0 -0
  97. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/errors.py +0 -0
  98. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/__init__.py +0 -0
  99. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/capabilities.py +0 -0
  100. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/constants.py +0 -0
  101. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/event_normalizers.py +0 -0
  102. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/namespace.py +0 -0
  103. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/service.py +0 -0
  104. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/session.py +0 -0
  105. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/state_normalizers.py +0 -0
  106. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/event_streaming/types.py +0 -0
  107. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/feature_flags.py +0 -0
  108. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/graph.py +0 -0
  109. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/__init__.py +0 -0
  110. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/client.py +0 -0
  111. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
  112. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/ops/__init__.py +0 -0
  113. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/ops/assistants.py +0 -0
  114. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/ops/cache.py +0 -0
  115. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/ops/crons.py +0 -0
  116. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/ops/runs.py +0 -0
  117. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/ops/threads.py +0 -0
  118. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/server.py +0 -0
  119. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/servicers/__init__.py +0 -0
  120. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
  121. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/grpc/servicers/encryption.py +0 -0
  122. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/http.py +0 -0
  123. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/http_metrics.py +0 -0
  124. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/http_metrics_utils.py +0 -0
  125. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/.gitignore +0 -0
  126. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/.prettierrc +0 -0
  127. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/.yarnclean +0 -0
  128. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/__init__.py +0 -0
  129. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/base.py +0 -0
  130. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/build.mts +0 -0
  131. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/client.http.mts +0 -0
  132. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/client.mts +0 -0
  133. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/errors.py +0 -0
  134. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/global.d.ts +0 -0
  135. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/package.json +0 -0
  136. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/remote.py +0 -0
  137. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/schema.py +0 -0
  138. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/graph.mts +0 -0
  139. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/load.hooks.mjs +0 -0
  140. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/preload.mjs +0 -0
  141. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
  142. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/utils/files.mts +0 -0
  143. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/utils/importMap.mts +0 -0
  144. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  145. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/src/utils/serde.mts +0 -0
  146. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/sse.py +0 -0
  147. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/traceblock.mts +0 -0
  148. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/tsconfig.json +0 -0
  149. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/ui.py +0 -0
  150. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/js/yarn.lock +0 -0
  151. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/lc_security/__init__.py +0 -0
  152. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/lc_security/exceptions.py +0 -0
  153. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/lc_security/policy.py +0 -0
  154. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/lc_security/transport.py +0 -0
  155. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/logging.py +0 -0
  156. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/metadata.py +0 -0
  157. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/metrics_collector.py +0 -0
  158. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/metrics_otlp.py +0 -0
  159. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/middleware/__init__.py +0 -0
  160. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/middleware/ensure_store.py +0 -0
  161. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/middleware/http_logger.py +0 -0
  162. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/middleware/private_network.py +0 -0
  163. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/middleware/request_id.py +0 -0
  164. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/models/__init__.py +0 -0
  165. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/models/run.py +0 -0
  166. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/otel_context.py +0 -0
  167. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/patch.py +0 -0
  168. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/queue_entrypoint.py +0 -0
  169. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/release_tags.py +0 -0
  170. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/route.py +0 -0
  171. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/schema.py +0 -0
  172. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/self_hosted_metrics.py +0 -0
  173. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/serde.py +0 -0
  174. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/server.py +0 -0
  175. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/sse.py +0 -0
  176. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/state.py +0 -0
  177. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/store.py +0 -0
  178. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/stream.py +0 -0
  179. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/stream_v2.py +0 -0
  180. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/timing/__init__.py +0 -0
  181. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/timing/profiler.py +0 -0
  182. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/timing/timer.py +0 -0
  183. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/traceblock.py +0 -0
  184. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/tracing_session.py +0 -0
  185. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/tunneling/cloudflare.py +0 -0
  186. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/__init__.py +0 -0
  187. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/cache.py +0 -0
  188. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/config.py +0 -0
  189. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/errors.py +0 -0
  190. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/extract.py +0 -0
  191. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/future.py +0 -0
  192. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/headers.py +0 -0
  193. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/network.py +0 -0
  194. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/retriable_client.py +0 -0
  195. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/stream_codec.py +0 -0
  196. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/utils/uuids.py +0 -0
  197. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/validation.py +0 -0
  198. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/webhook.py +0 -0
  199. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_api/worker.py +0 -0
  200. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/__init__.py +0 -0
  201. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/checkpointer.py +0 -0
  202. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/__init__.py +0 -0
  203. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/_compat.py +0 -0
  204. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
  205. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/config.py +0 -0
  206. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/durability.py +0 -0
  207. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/store.py +0 -0
  208. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/struct.py +0 -0
  209. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/conversion/value.py +0 -0
  210. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/__init__.py +0 -0
  211. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
  212. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
  213. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
  214. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
  215. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
  216. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
  217. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
  218. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
  219. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
  220. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
  221. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
  222. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
  223. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
  224. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
  225. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
  226. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
  227. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
  228. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
  229. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
  230. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
  231. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
  232. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
  233. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
  234. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
  235. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
  236. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
  237. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
  238. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
  239. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
  240. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
  241. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
  242. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
  243. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
  244. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
  245. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
  246. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
  247. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
  248. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
  249. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
  250. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
  251. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
  252. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
  253. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
  254. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
  255. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
  256. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
  257. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
  258. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
  259. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
  260. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
  261. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
  262. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
  263. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
  264. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
  265. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
  266. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
  267. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/store_pb2.py +0 -0
  268. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
  269. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
  270. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
  271. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/serde.py +0 -0
  272. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_grpc_common/store.py +0 -0
  273. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_license/__init__.py +0 -0
  274. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_license/validation.py +0 -0
  275. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/__init__.py +0 -0
  276. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/checkpoint.py +0 -0
  277. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/database.py +0 -0
  278. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/lifespan.py +0 -0
  279. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/metrics.py +0 -0
  280. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/ops.py +0 -0
  281. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/queue.py +0 -0
  282. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/retry.py +0 -0
  283. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/routes.py +0 -0
  284. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/langgraph_runtime/store.py +0 -0
  285. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/logging.json +0 -0
  286. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/openapi.json +0 -0
  287. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/pyproject.toml +0 -0
  288. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/scripts/build_wheel.py +0 -0
  289. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/scripts/create_license.py +0 -0
  290. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/scripts/run_a2a_tck.py +0 -0
  291. {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev7}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-api
3
- Version: 0.14.0.dev5
3
+ Version: 0.14.0.dev7
4
4
  Author-email: Will Fu-Hinthorn <will@langchain.dev>, Josh Rogers <josh@langchain.dev>, Parker Rule <parker@langchain.dev>
5
5
  License: Elastic-2.0
6
6
  License-File: LICENSE
@@ -0,0 +1 @@
1
+ __version__ = "0.14.0.dev7"
@@ -0,0 +1,71 @@
1
+ """Data-plane JWT authentication for Beacon OTLP exports."""
2
+
3
+ import time
4
+ from datetime import UTC, datetime, timedelta
5
+ from typing import Any
6
+
7
+ import jwt
8
+ from requests.sessions import Session
9
+
10
+ DATA_PLANE_AUTH_HEADER = "X-Data-Plane-Auth"
11
+ BEACON_OTEL_COLLECTOR_PURPOSE = "beacon-otel-collector"
12
+
13
+ _BEACON_OTEL_JWT_TTL_SECONDS = 60 * 60
14
+ _BEACON_OTEL_JWT_REFRESH_BEFORE_SECONDS = 60
15
+
16
+
17
+ def sign_data_plane_jwt(data_plane_id: str, organization_id: str, secret: str) -> str:
18
+ now = datetime.now(UTC)
19
+ return jwt.encode(
20
+ {
21
+ "data_plane_id": data_plane_id,
22
+ "organization_id": organization_id,
23
+ "purpose": BEACON_OTEL_COLLECTOR_PURPOSE,
24
+ "iat": now,
25
+ "exp": now + timedelta(seconds=_BEACON_OTEL_JWT_TTL_SECONDS),
26
+ },
27
+ secret,
28
+ algorithm="HS256",
29
+ )
30
+
31
+
32
+ class _BeaconOtelJWTCache:
33
+ def __init__(self, data_plane_id: str, organization_id: str, secret: str) -> None:
34
+ self._data_plane_id = data_plane_id
35
+ self._organization_id = organization_id
36
+ self._secret = secret
37
+ self._cached_token: tuple[str, float] | None = None
38
+
39
+ def get(self) -> str:
40
+ cached_token = self._cached_token
41
+ if cached_token is not None:
42
+ token, refresh_at = cached_token
43
+ if time.monotonic() < refresh_at:
44
+ return token
45
+
46
+ token = sign_data_plane_jwt(
47
+ self._data_plane_id, self._organization_id, self._secret
48
+ )
49
+ refresh_at = time.monotonic() + (
50
+ _BEACON_OTEL_JWT_TTL_SECONDS - _BEACON_OTEL_JWT_REFRESH_BEFORE_SECONDS
51
+ )
52
+ self._cached_token = (token, refresh_at)
53
+ return token
54
+
55
+
56
+ class _DataPlaneAuthSession(Session):
57
+ def __init__(self, cache: _BeaconOtelJWTCache) -> None:
58
+ super().__init__()
59
+ self._cache = cache
60
+
61
+ def request(self, method: str, url: str, **kwargs: Any):
62
+ headers = dict(kwargs.pop("headers", None) or {})
63
+ headers[DATA_PLANE_AUTH_HEADER] = self._cache.get()
64
+ return super().request(method, url, headers=headers, **kwargs)
65
+
66
+
67
+ def beacon_otel_session(
68
+ data_plane_id: str, organization_id: str, secret: str
69
+ ) -> Session:
70
+ cache = _BeaconOtelJWTCache(data_plane_id, organization_id, secret)
71
+ return _DataPlaneAuthSession(cache)
@@ -614,6 +614,14 @@ DATADOG_METRICS_ENABLED = bool(LSD_DD_API_KEY)
614
614
  EXPOSE_INTERNAL_METRICS_PROMETHEUS = env(
615
615
  "EXPOSE_INTERNAL_METRICS_PROMETHEUS", cast=bool, default=False
616
616
  )
617
+
618
+ # These are only set for internal agents (polly/insights/engine/etc..) deployed in byoc so we can fetch logs (see api/langgraph_api/self_hosted_logs.py)
619
+ DATA_PLANE_ID: str | None = env("DATA_PLANE_ID", cast=str, default=None)
620
+ DATA_PLANE_ORG_ID: str | None = env("DATA_PLANE_ORG_ID", cast=str, default=None)
621
+ DATA_PLANE_JWT_SECRET: str | None = env("DATA_PLANE_JWT_SECRET", cast=str, default=None)
622
+ BYOC_HOST = env("BYOC_HOST", cast=str, default="byoc")
623
+ BYOC_ENV = env("BYOC_ENV", cast=str, default="byoc")
624
+
617
625
  LANGGRAPH_LOGS_ENDPOINT = env("LANGGRAPH_LOGS_ENDPOINT", cast=str, default=None)
618
626
  LANGGRAPH_LOGS_ENABLED = env("LANGGRAPH_LOGS_ENABLED", cast=bool, default=False)
619
627
 
@@ -633,7 +641,9 @@ FF_PROFILE_IMPORTS = env("FF_PROFILE_IMPORTS", cast=bool, default=False)
633
641
 
634
642
  JS_READY_TIMEOUT_SECS = env("LANGGRAPH_JS_READY_TIMEOUT_SECS", cast=int, default=120)
635
643
 
636
- SELF_HOSTED_OBSERVABILITY_SERVICE_NAME = "LGP_Self_Hosted"
644
+ SELF_HOSTED_OBSERVABILITY_SERVICE_NAME = env(
645
+ "SELF_HOSTED_OBSERVABILITY_SERVICE_NAME", cast=str, default="LGP_Self_Hosted"
646
+ )
637
647
 
638
648
  IS_QUEUE_ENTRYPOINT = False
639
649
  IS_EXECUTOR_ENTRYPOINT = False
@@ -660,6 +670,8 @@ __all__ = [
660
670
  "BG_JOB_MAX_RETRIES",
661
671
  "BG_JOB_SHUTDOWN_GRACE_PERIOD_SECS",
662
672
  "BG_JOB_TIMEOUT_SECS",
673
+ "BYOC_ENV",
674
+ "BYOC_HOST",
663
675
  "CHECKPOINTER_CONFIG",
664
676
  "CHECKPOINTER_POSTGRES_POOL_MIN_SIZE",
665
677
  "CHECKPOINTER_POSTGRES_POOL_TIMEOUT_SECONDS",
@@ -670,6 +682,9 @@ __all__ = [
670
682
  "CRON_SCHEDULER_SLEEP_TIME",
671
683
  "DATABASE_URI",
672
684
  "DATADOG_METRICS_ENABLED",
685
+ "DATA_PLANE_ID",
686
+ "DATA_PLANE_JWT_SECRET",
687
+ "DATA_PLANE_ORG_ID",
673
688
  "DB_MIGRATION_BY_CORE_API",
674
689
  "EXPOSE_INTERNAL_METRICS_PROMETHEUS",
675
690
  "FF_CRONS_ENABLED",
@@ -10,6 +10,7 @@ from opentelemetry.sdk.resources import SERVICE_NAME, Resource
10
10
  from opentelemetry.util.types import Attributes
11
11
 
12
12
  from langgraph_api import config
13
+ from langgraph_api.beacon_data_plane_jwt_auth import beacon_otel_session
13
14
  from langgraph_api.logging import OTLPFormatter
14
15
 
15
16
  logger = structlog.stdlib.get_logger(__name__)
@@ -45,10 +46,27 @@ def initialize_self_hosted_logs() -> None:
45
46
  raise RuntimeError(
46
47
  "LANGGRAPH_LOGS_ENABLED is true but no LANGGRAPH_LOGS_ENDPOINT is configured"
47
48
  )
49
+ log_endpoint = config.LANGGRAPH_LOGS_ENDPOINT
50
+
51
+ data_plane_settings = (
52
+ ("DATA_PLANE_ID", config.DATA_PLANE_ID),
53
+ ("DATA_PLANE_ORG_ID", config.DATA_PLANE_ORG_ID),
54
+ ("DATA_PLANE_JWT_SECRET", config.DATA_PLANE_JWT_SECRET),
55
+ )
56
+ has_data_plane_settings = any(value for _, value in data_plane_settings)
57
+ missing_data_plane_settings = [
58
+ name for name, value in data_plane_settings if not value
59
+ ]
60
+ if has_data_plane_settings and missing_data_plane_settings:
61
+ raise RuntimeError(
62
+ "LANGGRAPH_LOGS_ENABLED is true but required data plane settings are missing: "
63
+ + ", ".join(missing_data_plane_settings)
64
+ )
48
65
 
49
- # For now, this is only enabled for fully self-hosted customers
50
- # We will need to update the otel collector auth model to support hybrid customers
51
- if not config.LANGGRAPH_CLOUD_LICENSE_KEY:
66
+ # "data-plane" here refers to a BYOC data plane
67
+ is_data_plane = has_data_plane_settings
68
+ # For now, the non-data-plane path is only enabled for fully self-hosted customers.
69
+ if not is_data_plane and not config.LANGGRAPH_CLOUD_LICENSE_KEY:
52
70
  logger.warning(
53
71
  "Self-hosted logs require a license key, and do not work with hybrid deployments yet."
54
72
  )
@@ -58,6 +76,13 @@ def initialize_self_hosted_logs() -> None:
58
76
  resource_attributes = {
59
77
  SERVICE_NAME: config.SELF_HOSTED_OBSERVABILITY_SERVICE_NAME,
60
78
  }
79
+ if is_data_plane:
80
+ resource_attributes["data_plane_id"] = cast("str", config.DATA_PLANE_ID)
81
+ resource_attributes["organization_id"] = cast(
82
+ "str", config.DATA_PLANE_ORG_ID
83
+ )
84
+ resource_attributes["host"] = config.BYOC_HOST
85
+ resource_attributes["env"] = config.BYOC_ENV
61
86
 
62
87
  if config.LANGGRAPH_CLOUD_LICENSE_KEY:
63
88
  try:
@@ -70,43 +95,47 @@ def initialize_self_hosted_logs() -> None:
70
95
  _customer_attributes["customer_id"] = CUSTOMER_ID
71
96
  if CUSTOMER_NAME:
72
97
  _customer_attributes["customer_name"] = CUSTOMER_NAME
73
-
74
- # resolves to pod name in k8s, or container id in docker
75
- instance_id = os.environ.get("HOSTNAME")
76
- if instance_id:
77
- _customer_attributes["instance_id"] = instance_id
78
98
  except ImportError:
79
99
  pass
80
100
  except Exception as e:
81
101
  logger.warning("Failed to get customer info from license", exc_info=e)
82
102
 
103
+ # Resolves to pod name in k8s, or container ID in Docker.
104
+ instance_id = os.environ.get("HOSTNAME")
105
+ if instance_id:
106
+ _customer_attributes["instance_id"] = instance_id
107
+
83
108
  if config.IS_QUEUE_ENTRYPOINT:
84
109
  _customer_attributes["entrypoint"] = "queue"
85
- elif config.IS_EXECUTOR_ENTRYPOINT:
86
- _customer_attributes["entrypoint"] = "executor"
87
110
  else:
88
111
  _customer_attributes["entrypoint"] = "api"
89
112
 
90
- _logger_provider = LoggerProvider(
91
- resource=Resource.create(resource_attributes),
92
- )
93
- _logger_provider.add_log_record_processor(
94
- BatchLogRecordProcessor(
95
- OTLPLogExporter(
96
- endpoint=config.LANGGRAPH_LOGS_ENDPOINT,
97
- headers={
98
- "X-Langchain-License-Key": config.LANGGRAPH_CLOUD_LICENSE_KEY,
99
- },
100
- )
113
+ if is_data_plane:
114
+ exporter = OTLPLogExporter(
115
+ endpoint=log_endpoint,
116
+ session=beacon_otel_session(
117
+ cast("str", config.DATA_PLANE_ID),
118
+ cast("str", config.DATA_PLANE_ORG_ID),
119
+ cast("str", config.DATA_PLANE_JWT_SECRET),
120
+ ),
101
121
  )
102
- )
122
+ else:
123
+ exporter = OTLPLogExporter(
124
+ endpoint=log_endpoint,
125
+ headers={
126
+ "X-Langchain-License-Key": config.LANGGRAPH_CLOUD_LICENSE_KEY,
127
+ },
128
+ )
129
+
130
+ _logger_provider = LoggerProvider(resource=Resource.create(resource_attributes))
131
+ _logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
103
132
  handler = AttrFilteredLoggingHandler(logger_provider=_logger_provider)
104
133
  handler.setFormatter(OTLPFormatter("%(message)s", None, "%"))
105
134
  logging.getLogger().addHandler(handler)
106
135
 
107
136
  logger.info(
108
137
  "Self-hosted logs initialized successfully",
109
- endpoint=config.LANGGRAPH_LOGS_ENDPOINT,
138
+ endpoint=log_endpoint,
110
139
  )
111
140
  except Exception as e:
112
141
  logger.exception("Failed to initialize self-hosted logs", exc_info=e)
@@ -1 +0,0 @@
1
- __version__ = "0.14.0.dev5"