langgraph-api 0.8.0__tar.gz → 0.8.2__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.8.0 → langgraph_api-0.8.2}/PKG-INFO +2 -2
- langgraph_api-0.8.2/langgraph_api/__init__.py +1 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/runs.py +5 -5
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/threads.py +2 -2
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/config/__init__.py +13 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/threads.py +44 -4
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/package.json +1 -1
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/yarn.lock +9 -13
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/queue_entrypoint.py +4 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/worker.py +3 -10
- langgraph_api-0.8.2/langgraph_grpc_common/proto/core_api_pb2.py +272 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/core_api_pb2.pyi +16 -2
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/pyproject.toml +1 -1
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/uv.lock +19 -6
- langgraph_api-0.8.0/langgraph_api/__init__.py +0 -1
- langgraph_api-0.8.0/langgraph_grpc_common/proto/core_api_pb2.py +0 -272
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/.gitignore +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/LICENSE +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/Makefile +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/README.md +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/.gitignore +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/Makefile +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/README.md +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/assistant.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/benchmarks.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/log-failure.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/meta_workload.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/stream_write.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/thread.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/types.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/wait_write.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_dd_report.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_k6.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_runner.mjs +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_slack_report.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_urls.mjs +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/clean-cli.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/clean.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/README.md +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/pyproject.toml +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/runner.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/uv.lock +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/graphs.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/mixed_workload_k6.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/mixed_workload_runner.mjs +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/package.json +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/ramp.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/reporting/dd_reporting.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/reporting/slack_slowest_runs.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/reporting/slack_summary.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/run_local.sh +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/staircase.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/staircase_step_k6.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/tsconfig.json +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/update-revision.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/weather.js +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/constraints.txt +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/custom_store.sql +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/forbidden.txt +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/hatch_build.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/healthcheck.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph-cloud-debugging-20260210132856.zip +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_checkpointer/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_checkpointer/_adapter.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_checkpointer/protocol.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_factory_utils.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/a2a.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/assistants.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_constants.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_handlers.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_models.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_routes.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_sanitizers.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/profile.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/store.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/ui.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/asgi_transport.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/custom.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/errors.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/cache.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/command.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/config/_parse.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/config/schemas.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/aes_json.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/context.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/custom.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/middleware.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/shared.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/executor_entrypoint.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/feature_flags.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/client.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/assistants.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/cache.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/crons.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/runs.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/server.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/servicers/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/servicers/encryption.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/http.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/http_metrics.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/http_metrics_utils.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/.prettierrc +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/build.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/client.http.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/client.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/remote.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/graph.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/load.hooks.mjs +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/preload.mjs +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/files.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/sse.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/traceblock.mts +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/tsconfig.json +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/ui.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/exceptions.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/policy.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/transport.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/metrics_datadog.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/ensure_store.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/http_logger.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/private_network.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/request_id.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/otel_context.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/route.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/schema.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/self_hosted_logs.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/self_hosted_metrics.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/server.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/sse.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/state.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/store.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/stream.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/timing/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/timing/profiler.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/timing/timer.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/traceblock.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/tunneling/cloudflare.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/cache.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/config.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/errors.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/extract.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/future.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/headers.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/network.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/retriable_client.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/stream_codec.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/uuids.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/webhook.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/checkpointer.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/_compat.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/channel.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/config.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/durability.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/exception.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/graph.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/interrupt.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/messages.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/orchestrator_response.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/runopts.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/stream_mode.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/struct.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/task.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/value.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2_grpc.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2_grpc.pyi +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/sanitize.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/serde.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/__init__.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/checkpoint.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/database.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/lifespan.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/metrics.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/ops.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/queue.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/retry.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/routes.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/store.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/logging.json +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/openapi.json +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/scripts/build_wheel.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/scripts/create_license.py +0 -0
- {langgraph_api-0.8.0 → langgraph_api-0.8.2}/scripts/run_a2a_tck.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: langgraph-api
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.2
|
|
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
|
|
@@ -15,7 +15,7 @@ Requires-Dist: httpx>=0.25.0
|
|
|
15
15
|
Requires-Dist: jsonschema-rs<0.45,>=0.20.0
|
|
16
16
|
Requires-Dist: langchain-core>=0.3.64
|
|
17
17
|
Requires-Dist: langgraph-checkpoint<5,>=3.0.1
|
|
18
|
-
Requires-Dist: langgraph-runtime-inmem<0.
|
|
18
|
+
Requires-Dist: langgraph-runtime-inmem<0.29.0,>=0.28.0
|
|
19
19
|
Requires-Dist: langgraph-sdk>=0.3.5
|
|
20
20
|
Requires-Dist: langgraph<2,>=0.4.10
|
|
21
21
|
Requires-Dist: langsmith[otel]>=0.6.3
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.8.2"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from collections.abc import AsyncIterator, Awaitable, Callable
|
|
3
3
|
from typing import Any, Literal, cast
|
|
4
|
-
from uuid import UUID
|
|
4
|
+
from uuid import UUID
|
|
5
5
|
|
|
6
6
|
import orjson
|
|
7
7
|
import structlog
|
|
@@ -374,7 +374,7 @@ async def stream_run_stateless(
|
|
|
374
374
|
payload["if_not_exists"] = "create"
|
|
375
375
|
on_disconnect = payload.get("on_disconnect", "continue")
|
|
376
376
|
run_id = uuid7()
|
|
377
|
-
thread_id =
|
|
377
|
+
thread_id = uuid7()
|
|
378
378
|
|
|
379
379
|
sub = await Runs.Stream.subscribe(run_id, thread_id)
|
|
380
380
|
try:
|
|
@@ -468,7 +468,7 @@ async def wait_run_stateless(request: ApiRequest):
|
|
|
468
468
|
payload["if_not_exists"] = "create"
|
|
469
469
|
on_disconnect = payload.get("on_disconnect", "continue")
|
|
470
470
|
run_id = uuid7()
|
|
471
|
-
thread_id =
|
|
471
|
+
thread_id = uuid7()
|
|
472
472
|
|
|
473
473
|
sub = await Runs.Stream.subscribe(run_id, thread_id)
|
|
474
474
|
try:
|
|
@@ -533,7 +533,7 @@ async def list_runs(
|
|
|
533
533
|
|
|
534
534
|
async with connect() as conn:
|
|
535
535
|
thread, runs = await asyncio.gather(
|
|
536
|
-
Threads.get(conn, thread_id),
|
|
536
|
+
Threads.get(conn, thread_id, read_mask_paths=[]),
|
|
537
537
|
Runs.search(
|
|
538
538
|
conn,
|
|
539
539
|
thread_id,
|
|
@@ -562,7 +562,7 @@ async def get_run(request: ApiRequest):
|
|
|
562
562
|
|
|
563
563
|
async with connect() as conn:
|
|
564
564
|
thread, run = await asyncio.gather(
|
|
565
|
-
Threads.get(conn, thread_id),
|
|
565
|
+
Threads.get(conn, thread_id, read_mask_paths=[]),
|
|
566
566
|
Runs.get(
|
|
567
567
|
conn,
|
|
568
568
|
run_id,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from typing import get_args
|
|
2
|
-
from uuid import uuid4
|
|
3
2
|
|
|
4
3
|
from starlette.exceptions import HTTPException
|
|
5
4
|
from starlette.responses import Response
|
|
@@ -26,6 +25,7 @@ from langgraph_api.state import state_snapshot_to_thread_state
|
|
|
26
25
|
from langgraph_api.utils import (
|
|
27
26
|
fetchone,
|
|
28
27
|
get_pagination_headers,
|
|
28
|
+
uuid7,
|
|
29
29
|
validate_select_columns,
|
|
30
30
|
validate_stream_id,
|
|
31
31
|
validate_uuid,
|
|
@@ -69,7 +69,7 @@ async def create_thread(
|
|
|
69
69
|
["metadata"],
|
|
70
70
|
)
|
|
71
71
|
|
|
72
|
-
thread_id = thread_id or str(
|
|
72
|
+
thread_id = thread_id or str(uuid7())
|
|
73
73
|
supersteps = payload.get("supersteps")
|
|
74
74
|
|
|
75
75
|
if IS_POSTGRES_OR_GRPC_BACKEND and not supersteps:
|
|
@@ -45,6 +45,17 @@ DATABASE_URI = env("DATABASE_URI", cast=str, default=getenv("POSTGRES_URI", unde
|
|
|
45
45
|
# Not in public docs: infrastructure, set by platform
|
|
46
46
|
MIGRATIONS_PATH = env("MIGRATIONS_PATH", cast=str, default="/storage/migrations")
|
|
47
47
|
POSTGRES_POOL_MAX_SIZE = env("LANGGRAPH_POSTGRES_POOL_MAX_SIZE", cast=int, default=150)
|
|
48
|
+
|
|
49
|
+
# Checkpoint ingestion batch controls
|
|
50
|
+
# Go defaults (core/config/config.go): CHECKPOINT_MAX_BATCH_SIZE=1000, CHECKPOINT_BATCH_DELAY=0.005 (5ms)
|
|
51
|
+
# CHECKPOINT_BATCH_DELAY uses float seconds to match Go's time.Duration env parsing convention.
|
|
52
|
+
# storage_postgres/Makefile sets these to the Go defaults for CI/local dev.
|
|
53
|
+
# TODO(braa): flip these to match Go defaults once validated in production (LSD-1404)
|
|
54
|
+
CHECKPOINT_MAX_BATCH_SIZE: int | None = env(
|
|
55
|
+
"CHECKPOINT_MAX_BATCH_SIZE", cast=int, default=None
|
|
56
|
+
)
|
|
57
|
+
CHECKPOINT_BATCH_DELAY: float = env("CHECKPOINT_BATCH_DELAY", cast=float, default=0.0)
|
|
58
|
+
|
|
48
59
|
RESUMABLE_STREAM_TTL_SECONDS = env(
|
|
49
60
|
"RESUMABLE_STREAM_TTL_SECONDS",
|
|
50
61
|
cast=int,
|
|
@@ -579,6 +590,8 @@ __all__ = [
|
|
|
579
590
|
"BG_JOB_SHUTDOWN_GRACE_PERIOD_SECS",
|
|
580
591
|
"BG_JOB_TIMEOUT_SECS",
|
|
581
592
|
"CHECKPOINTER_CONFIG",
|
|
593
|
+
"CHECKPOINT_BATCH_DELAY",
|
|
594
|
+
"CHECKPOINT_MAX_BATCH_SIZE",
|
|
582
595
|
"CORS_ALLOW_ORIGINS",
|
|
583
596
|
"CORS_CONFIG",
|
|
584
597
|
"CRON_SCHEDULER_SLEEP_TIME",
|
|
@@ -64,6 +64,12 @@ if TYPE_CHECKING:
|
|
|
64
64
|
logger = structlog.stdlib.get_logger(__name__)
|
|
65
65
|
|
|
66
66
|
|
|
67
|
+
# Read-mask preset for Threads.get callers that need metadata/config but not
|
|
68
|
+
# the large "values" column. Used by state get/update/bulk/history which
|
|
69
|
+
# only need graph_id (from metadata) and the thread config.
|
|
70
|
+
THREAD_METADATA_READ_MASK_PATHS: list[str] = ["metadata", "config"]
|
|
71
|
+
|
|
72
|
+
|
|
67
73
|
THREAD_STATUS_TO_PB = {
|
|
68
74
|
"idle": enum_thread_status.idle,
|
|
69
75
|
"busy": enum_thread_status.busy,
|
|
@@ -471,6 +477,7 @@ class Threads(Authenticated):
|
|
|
471
477
|
ctx: Auth.types.BaseAuthContext | None = None,
|
|
472
478
|
filters: Auth.types.FilterType | list[pb.AuthFilter] | None = None,
|
|
473
479
|
include_ttl: bool = False,
|
|
480
|
+
read_mask_paths: list[str] | None = None,
|
|
474
481
|
) -> AsyncIterator[Thread]:
|
|
475
482
|
"""Get a thread by ID.
|
|
476
483
|
|
|
@@ -482,6 +489,11 @@ class Threads(Authenticated):
|
|
|
482
489
|
Accepts either raw dict filters (FilterType) or pre-processed
|
|
483
490
|
proto filters (list[pb.AuthFilter]).
|
|
484
491
|
include_ttl: When True, include TTL information in the response.
|
|
492
|
+
read_mask_paths: Optional list of field names to fetch from the DB.
|
|
493
|
+
None (default) fetches all columns. When set, only those columns
|
|
494
|
+
(plus always-included identity/status columns) are queried.
|
|
495
|
+
Use ["metadata", "config"] to skip the large "values" column, or
|
|
496
|
+
[] for an auth/existence check that discards the thread body.
|
|
485
497
|
"""
|
|
486
498
|
auth_filters = await Threads.handle_event(
|
|
487
499
|
ctx, "read", {"thread_id": str(thread_id)}
|
|
@@ -496,10 +508,16 @@ class Threads(Authenticated):
|
|
|
496
508
|
# Raw dict format, convert to proto
|
|
497
509
|
auth_filters = (auth_filters or []) + _filters_to_proto(filters)
|
|
498
510
|
|
|
511
|
+
read_mask = (
|
|
512
|
+
field_mask_pb2.FieldMask(paths=read_mask_paths)
|
|
513
|
+
if read_mask_paths is not None
|
|
514
|
+
else None
|
|
515
|
+
)
|
|
499
516
|
request = pb.GetThreadRequest(
|
|
500
517
|
thread_id=pb.UUID(value=_normalize_uuid(thread_id)),
|
|
501
518
|
filters=auth_filters,
|
|
502
519
|
include_ttl=include_ttl if include_ttl else None,
|
|
520
|
+
read_mask=read_mask,
|
|
503
521
|
)
|
|
504
522
|
client = await get_shared_client()
|
|
505
523
|
response = await client.threads.Get(request)
|
|
@@ -974,7 +992,12 @@ class Threads(Authenticated):
|
|
|
974
992
|
|
|
975
993
|
async with conn.pipeline():
|
|
976
994
|
thread, checkpoint_iter, graph_id = await asyncio.gather(
|
|
977
|
-
Threads.get(
|
|
995
|
+
Threads.get(
|
|
996
|
+
conn,
|
|
997
|
+
thread_id,
|
|
998
|
+
ctx=ctx,
|
|
999
|
+
read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
|
|
1000
|
+
),
|
|
978
1001
|
checkpointer.aget_iter(config),
|
|
979
1002
|
Threads.get_graph_id(thread_id),
|
|
980
1003
|
)
|
|
@@ -1037,7 +1060,13 @@ class Threads(Authenticated):
|
|
|
1037
1060
|
|
|
1038
1061
|
async with conn.pipeline():
|
|
1039
1062
|
thread, checkpoint_iter, graph_id, run_count = await asyncio.gather(
|
|
1040
|
-
Threads.get(
|
|
1063
|
+
Threads.get(
|
|
1064
|
+
conn,
|
|
1065
|
+
thread_id,
|
|
1066
|
+
ctx=ctx,
|
|
1067
|
+
filters=filters,
|
|
1068
|
+
read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
|
|
1069
|
+
),
|
|
1041
1070
|
checkpointer.aget_iter(config),
|
|
1042
1071
|
Threads.get_graph_id(thread_id),
|
|
1043
1072
|
Runs.count(thread_id=thread_id, statuses=["pending", "running"]),
|
|
@@ -1130,7 +1159,13 @@ class Threads(Authenticated):
|
|
|
1130
1159
|
|
|
1131
1160
|
async with conn.pipeline():
|
|
1132
1161
|
thread, graph_id = await asyncio.gather(
|
|
1133
|
-
Threads.get(
|
|
1162
|
+
Threads.get(
|
|
1163
|
+
conn,
|
|
1164
|
+
thread_id,
|
|
1165
|
+
ctx=ctx,
|
|
1166
|
+
filters=filters,
|
|
1167
|
+
read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
|
|
1168
|
+
),
|
|
1134
1169
|
Threads.get_graph_id(config["configurable"]["thread_id"]),
|
|
1135
1170
|
)
|
|
1136
1171
|
thread = await fetchone(thread)
|
|
@@ -1218,7 +1253,12 @@ class Threads(Authenticated):
|
|
|
1218
1253
|
"""Get the history of a thread."""
|
|
1219
1254
|
async with conn.pipeline():
|
|
1220
1255
|
thread, graph_id = await asyncio.gather(
|
|
1221
|
-
Threads.get(
|
|
1256
|
+
Threads.get(
|
|
1257
|
+
conn,
|
|
1258
|
+
config["configurable"]["thread_id"],
|
|
1259
|
+
ctx=ctx,
|
|
1260
|
+
read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
|
|
1261
|
+
),
|
|
1222
1262
|
Threads.get_graph_id(config["configurable"]["thread_id"]),
|
|
1223
1263
|
)
|
|
1224
1264
|
thread = await fetchone(thread)
|
|
@@ -1655,19 +1655,10 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
|
|
|
1655
1655
|
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
|
1656
1656
|
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
|
1657
1657
|
|
|
1658
|
-
postcss@^8.4.41, postcss@^8.5.1, postcss@^8.5.3:
|
|
1659
|
-
version "8.5.
|
|
1660
|
-
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.
|
|
1661
|
-
integrity sha512-
|
|
1662
|
-
dependencies:
|
|
1663
|
-
nanoid "^3.3.11"
|
|
1664
|
-
picocolors "^1.1.1"
|
|
1665
|
-
source-map-js "^1.2.1"
|
|
1666
|
-
|
|
1667
|
-
postcss@^8.5.6:
|
|
1668
|
-
version "8.5.9"
|
|
1669
|
-
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.9.tgz#f6ee9e0b94f0f19c97d2f172bfbd7fc71fe1cca4"
|
|
1670
|
-
integrity sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==
|
|
1658
|
+
postcss@^8.4.41, postcss@^8.5.1, postcss@^8.5.3, postcss@^8.5.6:
|
|
1659
|
+
version "8.5.10"
|
|
1660
|
+
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.10.tgz#8992d8c30acf3f12169e7c09514a12fed7e48356"
|
|
1661
|
+
integrity sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==
|
|
1671
1662
|
dependencies:
|
|
1672
1663
|
nanoid "^3.3.11"
|
|
1673
1664
|
picocolors "^1.1.1"
|
|
@@ -1950,6 +1941,11 @@ uuid@^13.0.0:
|
|
|
1950
1941
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-13.0.0.tgz#263dc341b19b4d755eb8fe36b78d95a6b65707e8"
|
|
1951
1942
|
integrity sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==
|
|
1952
1943
|
|
|
1944
|
+
uuid@^14.0.0:
|
|
1945
|
+
version "14.0.0"
|
|
1946
|
+
resolved "https://registry.yarnpkg.com/uuid/-/uuid-14.0.0.tgz#0af883220163d264ffe0c084f6b8a89b9666966d"
|
|
1947
|
+
integrity sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==
|
|
1948
|
+
|
|
1953
1949
|
"vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^6.4.2:
|
|
1954
1950
|
version "6.4.2"
|
|
1955
1951
|
resolved "https://registry.yarnpkg.com/vite/-/vite-6.4.2.tgz#a4e548ca3a90ca9f3724582cab35e1ba15efc6f2"
|
|
@@ -34,11 +34,15 @@ shutdown_reason: str | None = None
|
|
|
34
34
|
|
|
35
35
|
def _ensure_port_available(host: str, port: int) -> None:
|
|
36
36
|
host = normalize_host(host)
|
|
37
|
+
# Pin AF_INET6 for IPv6 literals: glibc's getaddrinfo can return EAI_ADDRFAMILY
|
|
38
|
+
# on IPv6-only hosts when the family is unspecified.
|
|
39
|
+
family = socket.AF_INET6 if ":" in host else socket.AF_UNSPEC
|
|
37
40
|
last_error: OSError | None = None
|
|
38
41
|
try:
|
|
39
42
|
addrinfos = socket.getaddrinfo(
|
|
40
43
|
host,
|
|
41
44
|
port,
|
|
45
|
+
family=family,
|
|
42
46
|
type=socket.SOCK_STREAM,
|
|
43
47
|
flags=socket.AI_PASSIVE,
|
|
44
48
|
)
|
|
@@ -15,7 +15,6 @@ from typing_extensions import TypedDict
|
|
|
15
15
|
import langgraph_api.logging as lg_logging
|
|
16
16
|
from langgraph_api.auth.custom import SimpleUser, normalize_user
|
|
17
17
|
from langgraph_api.config import (
|
|
18
|
-
BG_JOB_ISOLATED_LOOPS,
|
|
19
18
|
BG_JOB_MAX_RETRIES,
|
|
20
19
|
BG_JOB_TIMEOUT_SECS,
|
|
21
20
|
USE_CUSTOM_CHECKPOINTER,
|
|
@@ -238,17 +237,11 @@ async def worker(
|
|
|
238
237
|
|
|
239
238
|
error_message = (
|
|
240
239
|
f"Run {run['run_id']} exceeded max attempts ({BG_JOB_MAX_RETRIES}).\n\n"
|
|
241
|
-
"This
|
|
242
|
-
"
|
|
240
|
+
"This usually means the pod processing the run became unhealthy and the run was re-queued repeatedly. "
|
|
241
|
+
"Check for OOM kills, pod restarts, liveness/readiness probe failures, or other signs of pod instability "
|
|
242
|
+
"in your deployment's logs and metrics.\n\n"
|
|
243
243
|
)
|
|
244
244
|
|
|
245
|
-
if not BG_JOB_ISOLATED_LOOPS:
|
|
246
|
-
error_message += (
|
|
247
|
-
"Also consider setting BG_JOB_ISOLATED_LOOPS=true in your environment. This will isolate I/O-bound operations to avoid"
|
|
248
|
-
" blocking the main API server.\n\n"
|
|
249
|
-
"See: https://langchain-ai.github.io/langgraph/cloud/reference/env_var/#bg_job_isolated_loops\n\n"
|
|
250
|
-
)
|
|
251
|
-
|
|
252
245
|
raise RuntimeError(error_message)
|
|
253
246
|
configurable = run["kwargs"].get("config", {}).get("configurable", {})
|
|
254
247
|
async with set_auth_ctx_for_run(run["kwargs"]):
|