langgraph-api 0.14.0.dev5__tar.gz → 0.14.0.dev6__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.
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/PKG-INFO +1 -1
- langgraph_api-0.14.0.dev6/langgraph_api/__init__.py +1 -0
- langgraph_api-0.14.0.dev6/langgraph_api/beacon_data_plane_jwt_auth.py +71 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/config/__init__.py +13 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/self_hosted_logs.py +52 -23
- langgraph_api-0.14.0.dev5/langgraph_api/__init__.py +0 -1
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/.gitignore +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/LICENSE +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/Makefile +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/README.md +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/.gitignore +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/Makefile +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/README.md +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/assistant.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/benchmarks.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/log-failure.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/meta_workload.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/store.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/stream_write.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/thread.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/types.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/wait_write.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/capacity-ci.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/clean-cli.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/clean.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/continuous/README.md +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/continuous/pyproject.toml +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/continuous/runner.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/continuous/uv.lock +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/graphs.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/host-v2.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/package.json +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/ramp.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/reporting/dd_reporting.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/staircase.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/staircase_step_k6.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/tsconfig.json +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/update-revision.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/weather.js +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/yarn.lock +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/constraints.txt +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/custom_store.sql +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/forbidden.txt +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/hatch_build.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/healthcheck.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph-cloud-debugging-20260210132856.zip +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/_checkpointer/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/_checkpointer/_adapter.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/_checkpointer/protocol.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/_factory_utils.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/a2a.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/assistants.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/event_streaming.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/mcp/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/mcp/_constants.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/mcp/_handlers.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/mcp/_models.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/mcp/_routes.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/mcp/_sanitizers.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/profile.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/runs.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/store.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/threads.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/ui.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/asgi_transport.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/custom.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/errors.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/cache.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/command.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/config/_parse.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/config/schemas.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/aes_json.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/context.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/custom.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/middleware.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/shared.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/capabilities.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/constants.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/event_normalizers.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/namespace.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/service.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/session.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/state_normalizers.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/types.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/feature_flags.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/client.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/ops/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/ops/assistants.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/ops/cache.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/ops/crons.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/ops/runs.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/ops/threads.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/server.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/servicers/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/servicers/encryption.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/http.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/http_metrics.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/http_metrics_utils.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/.prettierrc +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/.yarnclean +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/build.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/client.http.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/client.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/package.json +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/remote.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/graph.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/load.hooks.mjs +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/preload.mjs +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/files.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/sse.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/traceblock.mts +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/tsconfig.json +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/ui.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/yarn.lock +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/lc_security/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/lc_security/exceptions.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/lc_security/policy.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/lc_security/transport.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/metrics_collector.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/metrics_otlp.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/middleware/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/middleware/ensure_store.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/middleware/http_logger.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/middleware/private_network.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/middleware/request_id.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/otel_context.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/queue_entrypoint.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/release_tags.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/route.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/schema.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/self_hosted_metrics.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/server.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/sse.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/state.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/store.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/stream.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/stream_v2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/timing/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/timing/profiler.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/timing/timer.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/traceblock.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/tracing_session.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/tunneling/cloudflare.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/cache.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/config.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/errors.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/extract.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/future.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/headers.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/network.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/retriable_client.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/stream_codec.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/utils/uuids.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/webhook.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/worker.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/checkpointer.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/_compat.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/config.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/durability.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/store.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/struct.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/conversion/value.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/store_pb2.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/serde.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_grpc_common/store.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/__init__.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/checkpoint.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/database.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/lifespan.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/metrics.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/ops.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/queue.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/retry.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/routes.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_runtime/store.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/logging.json +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/openapi.json +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/pyproject.toml +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/scripts/build_wheel.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/scripts/create_license.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/scripts/run_a2a_tck.py +0 -0
- {langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.14.0.dev6"
|
|
@@ -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
|
|
|
@@ -660,6 +668,8 @@ __all__ = [
|
|
|
660
668
|
"BG_JOB_MAX_RETRIES",
|
|
661
669
|
"BG_JOB_SHUTDOWN_GRACE_PERIOD_SECS",
|
|
662
670
|
"BG_JOB_TIMEOUT_SECS",
|
|
671
|
+
"BYOC_ENV",
|
|
672
|
+
"BYOC_HOST",
|
|
663
673
|
"CHECKPOINTER_CONFIG",
|
|
664
674
|
"CHECKPOINTER_POSTGRES_POOL_MIN_SIZE",
|
|
665
675
|
"CHECKPOINTER_POSTGRES_POOL_TIMEOUT_SECONDS",
|
|
@@ -670,6 +680,9 @@ __all__ = [
|
|
|
670
680
|
"CRON_SCHEDULER_SLEEP_TIME",
|
|
671
681
|
"DATABASE_URI",
|
|
672
682
|
"DATADOG_METRICS_ENABLED",
|
|
683
|
+
"DATA_PLANE_ID",
|
|
684
|
+
"DATA_PLANE_JWT_SECRET",
|
|
685
|
+
"DATA_PLANE_ORG_ID",
|
|
673
686
|
"DB_MIGRATION_BY_CORE_API",
|
|
674
687
|
"EXPOSE_INTERNAL_METRICS_PROMETHEUS",
|
|
675
688
|
"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
|
-
#
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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=
|
|
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"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/assistant.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/benchmarks.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/log-failure.ts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/meta_workload.ts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/store.ts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/stream_write.ts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/thread.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/types.ts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/benchmark/benchmark-runners/wait_write.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph-cloud-debugging-20260210132856.zip
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/_checkpointer/__init__.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/_checkpointer/_adapter.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/_checkpointer/protocol.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/event_streaming.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/api/mcp/_sanitizers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/langsmith/__init__.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/langsmith/backend.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/auth/langsmith/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/__init__.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/aes_json.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/encryption/middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/constants.py
RENAMED
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/namespace.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/service.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/session.py
RENAMED
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/event_streaming/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/ops/assistants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/servicers/__init__.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/servicers/checkpointer.py
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/grpc/servicers/encryption.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/files.mts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/importMap.mts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/pythonSchemas.mts
RENAMED
|
File without changes
|
{langgraph_api-0.14.0.dev5 → langgraph_api-0.14.0.dev6}/langgraph_api/js/src/utils/serde.mts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|