langgraph-api 0.12.0.dev14__tar.gz → 0.12.0.dev16__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.12.0.dev14 → langgraph_api-0.12.0.dev16}/Makefile +1 -1
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/PKG-INFO +2 -2
- langgraph_api-0.12.0.dev16/langgraph_api/__init__.py +1 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/config/__init__.py +4 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/ops/__init__.py +19 -4
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/stream.py +20 -1
- langgraph_api-0.12.0.dev16/langgraph_grpc_common/conversion/store.py +208 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/__init__.py +4 -0
- langgraph_api-0.12.0.dev16/langgraph_grpc_common/proto/store_pb2.py +54 -0
- langgraph_api-0.12.0.dev16/langgraph_grpc_common/proto/store_pb2.pyi +246 -0
- langgraph_api-0.12.0.dev16/langgraph_grpc_common/proto/store_pb2_grpc.py +101 -0
- langgraph_api-0.12.0.dev16/langgraph_grpc_common/proto/store_pb2_grpc.pyi +58 -0
- langgraph_api-0.12.0.dev16/langgraph_grpc_common/store.py +109 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/pyproject.toml +1 -1
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/uv.lock +10 -9
- langgraph_api-0.12.0.dev14/langgraph_api/__init__.py +0 -1
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/.gitignore +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/LICENSE +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/README.md +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/.gitignore +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/Makefile +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/README.md +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/assistant.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/benchmarks.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/log-failure.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/meta_workload.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/stream_write.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/thread.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/types.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/benchmark-runners/wait_write.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/clean-cli.js +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/clean.js +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/continuous/README.md +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/continuous/pyproject.toml +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/continuous/runner.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/continuous/uv.lock +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/graphs.js +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/package.json +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/ramp.js +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/reporting/dd_reporting.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/staircase.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/staircase_step_k6.js +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/tsconfig.json +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/update-revision.js +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/benchmark/weather.js +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/constraints.txt +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/custom_store.sql +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/forbidden.txt +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/hatch_build.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/healthcheck.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph-cloud-debugging-20260210132856.zip +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/_checkpointer/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/_checkpointer/_adapter.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/_checkpointer/protocol.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/_factory_utils.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/a2a.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/assistants.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/event_streaming.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/mcp/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/mcp/_constants.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/mcp/_handlers.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/mcp/_models.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/mcp/_routes.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/mcp/_sanitizers.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/profile.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/runs.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/store.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/threads.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/api/ui.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/asgi_transport.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/custom.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/errors.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/cache.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/command.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/config/_parse.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/config/schemas.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/encryption/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/encryption/aes_json.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/encryption/context.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/encryption/custom.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/encryption/middleware.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/encryption/shared.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/capabilities.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/constants.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/event_normalizers.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/namespace.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/service.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/session.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/state_normalizers.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/event_streaming/types.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/feature_flags.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/client.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/ops/assistants.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/ops/cache.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/ops/crons.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/ops/runs.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/ops/threads.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/server.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/servicers/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/servicers/encryption.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/http.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/http_metrics.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/http_metrics_utils.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/.prettierrc +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/build.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/client.http.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/client.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/package.json +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/remote.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/graph.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/load.hooks.mjs +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/preload.mjs +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/utils/files.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/sse.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/traceblock.mts +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/tsconfig.json +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/ui.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/js/yarn.lock +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/lc_security/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/lc_security/exceptions.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/lc_security/policy.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/lc_security/transport.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/metrics_collector.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/metrics_otlp.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/middleware/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/middleware/ensure_store.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/middleware/http_logger.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/middleware/private_network.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/middleware/request_id.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/otel_context.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/queue_entrypoint.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/release_tags.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/route.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/schema.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/self_hosted_logs.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/self_hosted_metrics.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/server.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/sse.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/state.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/store.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/stream_v2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/timing/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/timing/profiler.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/timing/timer.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/traceblock.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/tunneling/cloudflare.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/cache.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/config.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/errors.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/extract.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/future.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/headers.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/network.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/retriable_client.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/stream_codec.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/utils/uuids.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/webhook.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/worker.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/checkpointer.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/conversion/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/conversion/_compat.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/conversion/config.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/conversion/durability.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/conversion/struct.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/conversion/value.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/serde.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/__init__.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/checkpoint.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/database.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/lifespan.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/metrics.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/ops.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/queue.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/retry.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/routes.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_runtime/store.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/logging.json +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/openapi.json +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/scripts/build_wheel.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/scripts/create_license.py +0 -0
- {langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/scripts/run_a2a_tck.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.PHONY: build release lint format test test_watch start start-inmem start-inmem-license-oss start start-js-server build-go-server start-go-server stop-go-server check-version check-base-imports test-a2a-tck test-a2a-tck-mandatory start-test-a2a-tck start-test-a2a-tck-mandatory start-test-a2a-tck-watch test-mcp-conformance start-test-mcp-conformance list-mcp-scenarios test-auth-read-only-assistant
|
|
2
2
|
|
|
3
3
|
# Environment variables
|
|
4
|
-
LANGSERVE_GRAPHS_ALL = '{"agent": {"path": "./tests/graphs/agent.py:graph", "description": "agent"}, "assistant_id_runtime": "./tests/graphs/assistant_id_runtime.py:graph", "custom_lifespan": "./tests/graphs/my_router.py:graph", "single_node": "./tests/graphs/single_node.py:graph", "benchmark": "./tests/graphs/benchmark.py:graph", "config_graph": "./tests/graphs/config_graph.py:graph", "other": "./tests/graphs/other.py:make_graph", "weather": "./tests/graphs/weather.py:mk_weather_graph", "searchy": "./tests/graphs/searchy.py:graph", "agent_simple": "./tests/graphs/agent_simple.py:graph", "simple_runtime": "./tests/graphs/simple_runtime.py:graph", "agent_interrupt": "./tests/graphs/agent_interrupt.py:graph", "agent_parallel_interrupt": "./tests/graphs/agent_parallel_interrupt.py:graph", "message_type_test": "./tests/graphs/message_type_test.py:graph", "remote_subgraph_parent": "./tests/graphs/remote_subgraph_parent.py:graph", "simple_remote": "./tests/graphs/simple_remote.py:graph", "nested_subgraphs": "./tests/graphs/nested_subgraphs.py:graph", "functional_fibonacci": "./tests/graphs/functional_fibonacci.py:fibonacci", "state_graph_fibonacci": "./tests/graphs/state_graph_fibonacci.py:fibonacci", "max_concurrency_graph": "./tests/graphs/max_concurrency_graph.py:graph", "unserializable_subgraph": "./tests/graphs/unserializable_subgraph.py:graph", "agent_interrupt_text": "./tests/graphs/agent_interrupt_text.py:graph", "agent_echo_stream": "./tests/graphs/agent_echo_stream.py:graph", "agent_tool_stream": "./tests/graphs/agent_tool_stream.py:graph", "runtime_graph": "./tests/graphs/runtime_graph.py:graph", "tool_call_chunk_stream": "./tests/graphs/tool_call_chunk_stream.py:graph", "ui_tool_call_stream": "./tests/graphs/ui_tool_call_stream.py:graph", "agent_metrics_stream": "./tests/graphs/agent_metrics_stream.py:graph", "agent_multimodal_stream": "./tests/graphs/agent_multimodal_stream.py:graph", "agent_bedtime_story": "./tests/graphs/agent_bedtime_story.py:graph", "delta_channel": "./tests/graphs/delta_channel.py:graph", "delta_channel_freq": "./tests/graphs/delta_channel_freq.py:graph", "delta_channel_files": "./tests/graphs/delta_channel_files.py:graph", "delta_channel_files_freq": "./tests/graphs/delta_channel_files_freq.py:graph", "delta_channel_legacy": "./tests/graphs/delta_channel_migration.py:graph_legacy", "delta_channel_delta": "./tests/graphs/delta_channel_migration.py:graph_delta", "delta_channel_delta_filter": "./tests/graphs/delta_channel_migration.py:graph_delta_filter", "delta_channel_messages_freq": "./tests/graphs/delta_channel_messages.py:graph_freq", "delta_channel_messages": "./tests/graphs/delta_channel_messages.py:graph", "delta_channel_messages_legacy": "./tests/graphs/delta_channel_messages.py:graph_legacy", "delta_channel_messages_remove": "./tests/graphs/delta_channel_messages.py:graph_remove", "delta_channel_messages_update": "./tests/graphs/delta_channel_messages.py:graph_update", "delta_channel_messages_delta": "./tests/graphs/delta_channel_messages.py:graph_delta"}'
|
|
4
|
+
LANGSERVE_GRAPHS_ALL = '{"agent": {"path": "./tests/graphs/agent.py:graph", "description": "agent"}, "assistant_id_runtime": "./tests/graphs/assistant_id_runtime.py:graph", "custom_lifespan": "./tests/graphs/my_router.py:graph", "single_node": "./tests/graphs/single_node.py:graph", "benchmark": "./tests/graphs/benchmark.py:graph", "config_graph": "./tests/graphs/config_graph.py:graph", "other": "./tests/graphs/other.py:make_graph", "weather": "./tests/graphs/weather.py:mk_weather_graph", "searchy": "./tests/graphs/searchy.py:graph", "agent_simple": "./tests/graphs/agent_simple.py:graph", "simple_runtime": "./tests/graphs/simple_runtime.py:graph", "agent_interrupt": "./tests/graphs/agent_interrupt.py:graph", "agent_parallel_interrupt": "./tests/graphs/agent_parallel_interrupt.py:graph", "message_type_test": "./tests/graphs/message_type_test.py:graph", "remote_subgraph_parent": "./tests/graphs/remote_subgraph_parent.py:graph", "simple_remote": "./tests/graphs/simple_remote.py:graph", "nested_subgraphs": "./tests/graphs/nested_subgraphs.py:graph", "functional_fibonacci": "./tests/graphs/functional_fibonacci.py:fibonacci", "state_graph_fibonacci": "./tests/graphs/state_graph_fibonacci.py:fibonacci", "max_concurrency_graph": "./tests/graphs/max_concurrency_graph.py:graph", "unserializable_subgraph": "./tests/graphs/unserializable_subgraph.py:graph", "agent_interrupt_text": "./tests/graphs/agent_interrupt_text.py:graph", "agent_echo_stream": "./tests/graphs/agent_echo_stream.py:graph", "agent_tool_stream": "./tests/graphs/agent_tool_stream.py:graph", "runtime_graph": "./tests/graphs/runtime_graph.py:graph", "tool_call_chunk_stream": "./tests/graphs/tool_call_chunk_stream.py:graph", "ui_tool_call_stream": "./tests/graphs/ui_tool_call_stream.py:graph", "agent_metrics_stream": "./tests/graphs/agent_metrics_stream.py:graph", "agent_multimodal_stream": "./tests/graphs/agent_multimodal_stream.py:graph", "agent_bedtime_story": "./tests/graphs/agent_bedtime_story.py:graph", "delta_channel": "./tests/graphs/delta_channel.py:graph", "delta_channel_freq": "./tests/graphs/delta_channel_freq.py:graph", "delta_channel_files": "./tests/graphs/delta_channel_files.py:graph", "delta_channel_files_freq": "./tests/graphs/delta_channel_files_freq.py:graph", "delta_channel_legacy": "./tests/graphs/delta_channel_migration.py:graph_legacy", "delta_channel_delta": "./tests/graphs/delta_channel_migration.py:graph_delta", "delta_channel_delta_filter": "./tests/graphs/delta_channel_migration.py:graph_delta_filter", "delta_channel_messages_freq": "./tests/graphs/delta_channel_messages.py:graph_freq", "delta_channel_messages": "./tests/graphs/delta_channel_messages.py:graph", "delta_channel_messages_legacy": "./tests/graphs/delta_channel_messages.py:graph_legacy", "delta_channel_messages_remove": "./tests/graphs/delta_channel_messages.py:graph_remove", "delta_channel_messages_update": "./tests/graphs/delta_channel_messages.py:graph_update", "delta_channel_messages_delta": "./tests/graphs/delta_channel_messages.py:graph_delta", "store_e2e_async": "./tests/graphs/store_e2e.py:graph_async", "store_e2e_sync": "./tests/graphs/store_e2e.py:graph_sync"}'
|
|
5
5
|
LANGSERVE_GRAPHS_AUTH = '{"agent": {"path": "./tests/graphs/agent.py:graph", "description": "agent"}, "assistant_id_runtime": "./tests/graphs/assistant_id_runtime.py:graph", "config_graph": "./tests/graphs/config_graph.py:graph", "other": "./tests/graphs/other.py:make_graph", "weather": "./tests/graphs/weather.py:mk_weather_graph", "searchy": "./tests/graphs/searchy.py:graph", "agent_simple": "./tests/graphs/agent_simple.py:graph", "simple_runtime": "./tests/graphs/simple_runtime.py:graph", "agent_parallel_interrupt": "./tests/graphs/agent_parallel_interrupt.py:graph", "functional_fibonacci": "./tests/graphs/functional_fibonacci.py:fibonacci", "state_graph_fibonacci": "./tests/graphs/state_graph_fibonacci.py:fibonacci", "runtime_graph": "./tests/graphs/runtime_graph.py:graph"}'
|
|
6
6
|
|
|
7
7
|
# Go server management
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: langgraph-api
|
|
3
|
-
Version: 0.12.0.
|
|
3
|
+
Version: 0.12.0.dev16
|
|
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
|
|
@@ -29,7 +29,7 @@ Requires-Dist: prometheus-client>=0.0.1
|
|
|
29
29
|
Requires-Dist: protobuf<7.0.0,>=6.32.1
|
|
30
30
|
Requires-Dist: pyjwt>=2.13.0
|
|
31
31
|
Requires-Dist: sse-starlette<3.4.0,>=2.1.3
|
|
32
|
-
Requires-Dist: starlette>=
|
|
32
|
+
Requires-Dist: starlette>=1.3.1
|
|
33
33
|
Requires-Dist: structlog<26,>=24.1.0
|
|
34
34
|
Requires-Dist: tenacity>=8.0.0
|
|
35
35
|
Requires-Dist: truststore>=0.1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.12.0.dev16"
|
|
@@ -243,6 +243,8 @@ WEBHOOKS_ENABLED = HTTP_CONFIG and HTTP_CONFIG.get("disable_webhooks")
|
|
|
243
243
|
STORE_CONFIG = env(
|
|
244
244
|
"LANGGRAPH_STORE", cast=_parse.parse_schema(StoreConfig), default=None
|
|
245
245
|
)
|
|
246
|
+
LANGGRAPH_STORE_BACKEND = env("LANGGRAPH_STORE_BACKEND", cast=str, default="python")
|
|
247
|
+
USE_GRPC_STORE = LANGGRAPH_STORE_BACKEND == "grpc"
|
|
246
248
|
|
|
247
249
|
|
|
248
250
|
def _validate_mount_prefix(mount_prefix: str | None) -> str | None:
|
|
@@ -668,6 +670,7 @@ __all__ = [
|
|
|
668
670
|
"LANGGRAPH_METRICS_ENDPOINT",
|
|
669
671
|
"LANGGRAPH_METRICS_EXPORT_INTERVAL_MS",
|
|
670
672
|
"LANGGRAPH_POSTGRES_EXTENSIONS",
|
|
673
|
+
"LANGGRAPH_STORE_BACKEND",
|
|
671
674
|
"LANGSMITH_API_KEY",
|
|
672
675
|
"LANGSMITH_AUTH_ENDPOINT",
|
|
673
676
|
"LANGSMITH_AUTH_VERIFY_TENANT_ID",
|
|
@@ -715,6 +718,7 @@ __all__ = [
|
|
|
715
718
|
"USES_STORE_TTL",
|
|
716
719
|
"USES_THREAD_TTL",
|
|
717
720
|
"USE_CUSTOM_CHECKPOINTER",
|
|
721
|
+
"USE_GRPC_STORE",
|
|
718
722
|
"AuthConfig",
|
|
719
723
|
"CheckpointerConfig",
|
|
720
724
|
"CorsConfig",
|
{langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_api/grpc/ops/__init__.py
RENAMED
|
@@ -39,6 +39,7 @@ GRPC_STATUS_TO_HTTP_STATUS = {
|
|
|
39
39
|
StatusCode.INVALID_ARGUMENT: HTTPStatus.UNPROCESSABLE_ENTITY,
|
|
40
40
|
StatusCode.PERMISSION_DENIED: HTTPStatus.FORBIDDEN,
|
|
41
41
|
StatusCode.UNAUTHENTICATED: HTTPStatus.UNAUTHORIZED,
|
|
42
|
+
StatusCode.RESOURCE_EXHAUSTED: HTTPStatus.TOO_MANY_REQUESTS,
|
|
42
43
|
}
|
|
43
44
|
|
|
44
45
|
|
|
@@ -187,19 +188,33 @@ def _handle_grpc_error(error: AioRpcError) -> None:
|
|
|
187
188
|
Always return detail as a string here.
|
|
188
189
|
"""
|
|
189
190
|
error_details = error.details()
|
|
191
|
+
retry_after_seconds = None
|
|
190
192
|
if error_details is not None:
|
|
191
193
|
try:
|
|
192
194
|
details = orjson.loads(error_details)
|
|
193
|
-
|
|
195
|
+
retry_after_seconds = details.get("retry_after_seconds")
|
|
196
|
+
message = details.get("message", "")
|
|
197
|
+
# A string message is the detail verbatim; only re-encode structured
|
|
198
|
+
# (non-string) messages as JSON.
|
|
199
|
+
error_details = (
|
|
200
|
+
message if isinstance(message, str) else orjson.dumps(message).decode()
|
|
201
|
+
)
|
|
194
202
|
except orjson.JSONDecodeError:
|
|
195
203
|
# error details is not json, so just retun it as is
|
|
196
204
|
pass
|
|
197
205
|
|
|
206
|
+
status_code = GRPC_STATUS_TO_HTTP_STATUS.get(
|
|
207
|
+
error.code(), HTTPStatus.INTERNAL_SERVER_ERROR
|
|
208
|
+
)
|
|
209
|
+
headers = None
|
|
210
|
+
if status_code == HTTPStatus.TOO_MANY_REQUESTS and retry_after_seconds:
|
|
211
|
+
# The Go core carries Retry-After as a structured integer (seconds).
|
|
212
|
+
headers = {"Retry-After": str(int(retry_after_seconds))}
|
|
213
|
+
|
|
198
214
|
raise HTTPException(
|
|
199
|
-
status_code=
|
|
200
|
-
error.code(), HTTPStatus.INTERNAL_SERVER_ERROR
|
|
201
|
-
),
|
|
215
|
+
status_code=status_code,
|
|
202
216
|
detail=error_details,
|
|
217
|
+
headers=headers,
|
|
203
218
|
)
|
|
204
219
|
|
|
205
220
|
|
|
@@ -339,7 +339,26 @@ async def astream_state(
|
|
|
339
339
|
):
|
|
340
340
|
yield event["name"], event["data"]
|
|
341
341
|
# TODO support messages-tuple for js graphs
|
|
342
|
-
|
|
342
|
+
# For JS (BaseRemotePregel) with subgraphs=True, subgraph events
|
|
343
|
+
# carry the subgraph's own run_id. Accept them if the chunk is a
|
|
344
|
+
# proper 3-tuple [ns, mode, chunk] — that's the sidecar's
|
|
345
|
+
# normalized format. Limit this bypass to remote graphs only;
|
|
346
|
+
# Python child events must fall through to the raw "events"
|
|
347
|
+
# fallback below when the client requests stream_mode="events".
|
|
348
|
+
_chunk_data = (
|
|
349
|
+
event["data"].get("chunk")
|
|
350
|
+
if event["event"] == "on_chain_stream"
|
|
351
|
+
else None
|
|
352
|
+
)
|
|
353
|
+
if event["event"] == "on_chain_stream" and (
|
|
354
|
+
event["run_id"] == run_id
|
|
355
|
+
or (
|
|
356
|
+
subgraphs
|
|
357
|
+
and is_remote_pregel
|
|
358
|
+
and isinstance(_chunk_data, (list, tuple))
|
|
359
|
+
and len(_chunk_data) == 3
|
|
360
|
+
)
|
|
361
|
+
):
|
|
343
362
|
if subgraphs:
|
|
344
363
|
ns, mode, chunk = event["data"]["chunk"]
|
|
345
364
|
else:
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"""Marshal langgraph.store.base GetOp/PutOp/Item/Result to and from store.proto."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from datetime import datetime
|
|
6
|
+
from typing import TYPE_CHECKING, Any, cast
|
|
7
|
+
|
|
8
|
+
import orjson
|
|
9
|
+
from google.protobuf import empty_pb2
|
|
10
|
+
from langgraph.store.base import (
|
|
11
|
+
GetOp,
|
|
12
|
+
IndexConfig,
|
|
13
|
+
Item,
|
|
14
|
+
Op,
|
|
15
|
+
PutOp,
|
|
16
|
+
Result,
|
|
17
|
+
ensure_embeddings,
|
|
18
|
+
get_text_at_path,
|
|
19
|
+
tokenize_path,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
from langgraph_grpc_common.proto import store_pb2
|
|
23
|
+
|
|
24
|
+
if TYPE_CHECKING:
|
|
25
|
+
from collections.abc import Sequence
|
|
26
|
+
|
|
27
|
+
from langchain_core.embeddings import Embeddings
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def _ensure_index_config(
|
|
31
|
+
index_config: IndexConfig,
|
|
32
|
+
) -> tuple[Embeddings | None, IndexConfig]:
|
|
33
|
+
# Vendored from langgraph.store.postgres.base so grpc_common_py stays
|
|
34
|
+
# backend-agnostic (no langgraph-checkpoint-postgres / psycopg dependency).
|
|
35
|
+
index_config = index_config.copy()
|
|
36
|
+
tokenized: list[tuple[str, str | list[str]]] = []
|
|
37
|
+
tot = 0
|
|
38
|
+
fields = index_config.get("fields") or ["$"]
|
|
39
|
+
if isinstance(fields, str):
|
|
40
|
+
fields = [fields]
|
|
41
|
+
if not isinstance(fields, list):
|
|
42
|
+
raise ValueError(f"Text fields must be a list or a string. Got {fields}")
|
|
43
|
+
for p in fields:
|
|
44
|
+
if p == "$":
|
|
45
|
+
tokenized.append((p, "$"))
|
|
46
|
+
tot += 1
|
|
47
|
+
else:
|
|
48
|
+
toks = tokenize_path(p)
|
|
49
|
+
tokenized.append((p, toks))
|
|
50
|
+
tot += len(toks)
|
|
51
|
+
index_config["__tokenized_fields"] = tokenized # ty: ignore[invalid-key]
|
|
52
|
+
index_config["__estimated_num_vectors"] = tot # ty: ignore[invalid-key]
|
|
53
|
+
embeddings = ensure_embeddings(index_config.get("embed"))
|
|
54
|
+
return embeddings, index_config
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _ttl_to_proto_minutes(ttl: float | None) -> int:
|
|
58
|
+
if ttl is None:
|
|
59
|
+
return 0
|
|
60
|
+
if ttl != int(ttl):
|
|
61
|
+
raise ValueError(
|
|
62
|
+
f"gRPC store only supports integer-minute TTL; got fractional ttl={ttl}"
|
|
63
|
+
)
|
|
64
|
+
return int(ttl)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def op_to_proto(
|
|
68
|
+
op: Op,
|
|
69
|
+
*,
|
|
70
|
+
vectors: Sequence[store_pb2.VectorValue] | None = None,
|
|
71
|
+
) -> store_pb2.Op:
|
|
72
|
+
if isinstance(op, GetOp):
|
|
73
|
+
return store_pb2.Op(
|
|
74
|
+
get=store_pb2.GetOp(
|
|
75
|
+
namespace=list(op.namespace),
|
|
76
|
+
key=str(op.key),
|
|
77
|
+
refreshTTL=op.refresh_ttl,
|
|
78
|
+
)
|
|
79
|
+
)
|
|
80
|
+
if isinstance(op, PutOp):
|
|
81
|
+
if op.value is None:
|
|
82
|
+
raise TypeError(
|
|
83
|
+
"PutOp with value=None (delete) is not supported by gRPC store"
|
|
84
|
+
)
|
|
85
|
+
put_kwargs: dict[str, Any] = {
|
|
86
|
+
"namespace": list(op.namespace),
|
|
87
|
+
"key": str(op.key),
|
|
88
|
+
"value_json": orjson.dumps(op.value),
|
|
89
|
+
"ttlMinutes": _ttl_to_proto_minutes(op.ttl),
|
|
90
|
+
}
|
|
91
|
+
if vectors is not None:
|
|
92
|
+
put_kwargs["vectors"] = list(vectors)
|
|
93
|
+
return store_pb2.Op(put=store_pb2.PutOp(**put_kwargs))
|
|
94
|
+
raise TypeError(f"unsupported op: {type(op).__name__}")
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def op_from_proto(msg: store_pb2.Op) -> Op:
|
|
98
|
+
kind = msg.WhichOneof("op")
|
|
99
|
+
if kind == "get":
|
|
100
|
+
g = msg.get
|
|
101
|
+
return GetOp(
|
|
102
|
+
namespace=tuple(g.namespace),
|
|
103
|
+
key=g.key,
|
|
104
|
+
refresh_ttl=g.refreshTTL,
|
|
105
|
+
)
|
|
106
|
+
if kind == "put":
|
|
107
|
+
p = msg.put
|
|
108
|
+
ttl: float | None = None
|
|
109
|
+
if p.ttlMinutes:
|
|
110
|
+
ttl = float(p.ttlMinutes)
|
|
111
|
+
return PutOp(
|
|
112
|
+
namespace=tuple(p.namespace),
|
|
113
|
+
key=p.key,
|
|
114
|
+
value=orjson.loads(p.value_json),
|
|
115
|
+
ttl=ttl,
|
|
116
|
+
)
|
|
117
|
+
raise ValueError("empty Op message (no oneof set)")
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def result_to_proto(result: Result, op: Op) -> store_pb2.OpResult:
|
|
121
|
+
if isinstance(op, GetOp):
|
|
122
|
+
if result is None:
|
|
123
|
+
return store_pb2.OpResult(none=empty_pb2.Empty())
|
|
124
|
+
if not isinstance(result, Item):
|
|
125
|
+
raise TypeError(
|
|
126
|
+
f"expected Item for GetOp result, got {type(result).__name__}"
|
|
127
|
+
)
|
|
128
|
+
return store_pb2.OpResult(item=_item_to_proto(result))
|
|
129
|
+
if isinstance(op, PutOp):
|
|
130
|
+
return store_pb2.OpResult(none=empty_pb2.Empty())
|
|
131
|
+
raise TypeError(f"unsupported op for result encoding: {type(op).__name__}")
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
def result_from_proto(msg: store_pb2.OpResult) -> Result:
|
|
135
|
+
kind = msg.WhichOneof("result")
|
|
136
|
+
if kind == "none":
|
|
137
|
+
return None
|
|
138
|
+
if kind == "item":
|
|
139
|
+
return _item_from_proto(msg.item)
|
|
140
|
+
raise ValueError("empty OpResult message (no oneof set)")
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def _item_to_proto(item: Item) -> store_pb2.Item:
|
|
144
|
+
return store_pb2.Item(
|
|
145
|
+
namespace=list(item.namespace),
|
|
146
|
+
key=item.key,
|
|
147
|
+
value_json=orjson.dumps(item.value),
|
|
148
|
+
created_at=_format_dt(item.created_at),
|
|
149
|
+
updated_at=_format_dt(item.updated_at),
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
def _item_from_proto(msg: store_pb2.Item) -> Item:
|
|
154
|
+
return Item(
|
|
155
|
+
namespace=tuple(msg.namespace),
|
|
156
|
+
key=msg.key,
|
|
157
|
+
value=orjson.loads(msg.value_json),
|
|
158
|
+
created_at=datetime.fromisoformat(msg.created_at),
|
|
159
|
+
updated_at=datetime.fromisoformat(msg.updated_at),
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def _format_dt(dt: datetime) -> str:
|
|
164
|
+
return dt.isoformat()
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
async def vectors_for_put_op(
|
|
168
|
+
op: PutOp,
|
|
169
|
+
index_config: IndexConfig,
|
|
170
|
+
embeddings: Embeddings,
|
|
171
|
+
) -> list[store_pb2.VectorValue]:
|
|
172
|
+
if op.index is False or op.value is None:
|
|
173
|
+
return []
|
|
174
|
+
|
|
175
|
+
value = op.value
|
|
176
|
+
if op.index is None:
|
|
177
|
+
paths = cast(
|
|
178
|
+
"list[tuple[str, str | list[str]]]",
|
|
179
|
+
index_config["__tokenized_fields"], # ty: ignore[invalid-key]
|
|
180
|
+
)
|
|
181
|
+
else:
|
|
182
|
+
paths = [(ix, tokenize_path(ix)) for ix in op.index]
|
|
183
|
+
|
|
184
|
+
texts: list[str] = []
|
|
185
|
+
pathnames: list[str] = []
|
|
186
|
+
for path, tokenized_path in paths:
|
|
187
|
+
extracted = get_text_at_path(value, tokenized_path)
|
|
188
|
+
for i, text in enumerate(extracted):
|
|
189
|
+
pathname = f"{path}.{i}" if len(extracted) > 1 else path
|
|
190
|
+
pathnames.append(pathname)
|
|
191
|
+
texts.append(text)
|
|
192
|
+
|
|
193
|
+
if not texts:
|
|
194
|
+
return []
|
|
195
|
+
|
|
196
|
+
vectors = await embeddings.aembed_documents(texts)
|
|
197
|
+
return [
|
|
198
|
+
store_pb2.VectorValue(valuePath=pathname, embedding=vector)
|
|
199
|
+
for pathname, vector in zip(pathnames, vectors, strict=False)
|
|
200
|
+
]
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
def normalize_index_config(
|
|
204
|
+
index: IndexConfig | None,
|
|
205
|
+
) -> tuple[Embeddings | None, IndexConfig | None]:
|
|
206
|
+
if not index:
|
|
207
|
+
return None, None
|
|
208
|
+
return _ensure_index_config(index)
|
{langgraph_api-0.12.0.dev14 → langgraph_api-0.12.0.dev16}/langgraph_grpc_common/proto/__init__.py
RENAMED
|
@@ -15,6 +15,8 @@ from . import engine_common_pb2
|
|
|
15
15
|
from . import engine_common_pb2_grpc
|
|
16
16
|
from . import checkpointer_pb2
|
|
17
17
|
from . import checkpointer_pb2_grpc
|
|
18
|
+
from . import store_pb2
|
|
19
|
+
from . import store_pb2_grpc
|
|
18
20
|
from . import encryption_pb2
|
|
19
21
|
from . import encryption_pb2_grpc
|
|
20
22
|
from . import errors_pb2
|
|
@@ -27,6 +29,8 @@ __all__ = [
|
|
|
27
29
|
"engine_common_pb2_grpc",
|
|
28
30
|
"checkpointer_pb2",
|
|
29
31
|
"checkpointer_pb2_grpc",
|
|
32
|
+
"store_pb2",
|
|
33
|
+
"store_pb2_grpc",
|
|
30
34
|
"encryption_pb2",
|
|
31
35
|
"encryption_pb2_grpc",
|
|
32
36
|
"errors_pb2",
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: store.proto
|
|
5
|
+
# Protobuf Python Version: 6.31.1
|
|
6
|
+
"""Generated protocol buffer code."""
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
9
|
+
from google.protobuf import runtime_version as _runtime_version
|
|
10
|
+
from google.protobuf import symbol_database as _symbol_database
|
|
11
|
+
from google.protobuf.internal import builder as _builder
|
|
12
|
+
_runtime_version.ValidateProtobufRuntimeVersion(
|
|
13
|
+
_runtime_version.Domain.PUBLIC,
|
|
14
|
+
6,
|
|
15
|
+
31,
|
|
16
|
+
1,
|
|
17
|
+
'',
|
|
18
|
+
'store.proto'
|
|
19
|
+
)
|
|
20
|
+
# @@protoc_insertion_point(imports)
|
|
21
|
+
|
|
22
|
+
_sym_db = _symbol_database.Default()
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bstore.proto\x12\x05store\x1a\x1bgoogle/protobuf/empty.proto\"&\n\x0c\x42\x61tchRequest\x12\x16\n\x03ops\x18\x01 \x03(\x0b\x32\t.store.Op\"1\n\rBatchResponse\x12 \n\x07results\x18\x01 \x03(\x0b\x32\x0f.store.OpResult\"D\n\x02Op\x12\x1b\n\x03get\x18\x01 \x01(\x0b\x32\x0c.store.GetOpH\x00\x12\x1b\n\x03put\x18\x02 \x01(\x0b\x32\x0c.store.PutOpH\x00\x42\x04\n\x02op\";\n\x05GetOp\x12\x11\n\tnamespace\x18\x01 \x03(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x12\n\nrefreshTTL\x18\x03 \x01(\x08\"3\n\x0bVectorValue\x12\x11\n\tvaluePath\x18\x01 \x01(\t\x12\x11\n\tembedding\x18\x02 \x03(\x02\"t\n\x05PutOp\x12\x11\n\tnamespace\x18\x01 \x03(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x12\n\nvalue_json\x18\x03 \x01(\x0c\x12\x12\n\nttlMinutes\x18\x04 \x01(\x05\x12#\n\x07vectors\x18\x05 \x03(\x0b\x32\x12.store.VectorValue\"Y\n\x08OpResult\x12\x1b\n\x04item\x18\x01 \x01(\x0b\x32\x0b.store.ItemH\x00\x12&\n\x04none\x18\x02 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00\x42\x08\n\x06result\"b\n\x04Item\x12\x11\n\tnamespace\x18\x01 \x03(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\x12\x12\n\nvalue_json\x18\x03 \x01(\x0c\x12\x12\n\ncreated_at\x18\x04 \x01(\t\x12\x12\n\nupdated_at\x18\x05 \x01(\t2;\n\x05Store\x12\x32\n\x05\x42\x61tch\x12\x13.store.BatchRequest\x1a\x14.store.BatchResponseB?Z=github.com/langchain-ai/langgraph-api/core/internal/engine/pbb\x06proto3')
|
|
29
|
+
|
|
30
|
+
_globals = globals()
|
|
31
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
32
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'store_pb2', _globals)
|
|
33
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
34
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
35
|
+
_globals['DESCRIPTOR']._serialized_options = b'Z=github.com/langchain-ai/langgraph-api/core/internal/engine/pb'
|
|
36
|
+
_globals['_BATCHREQUEST']._serialized_start=51
|
|
37
|
+
_globals['_BATCHREQUEST']._serialized_end=89
|
|
38
|
+
_globals['_BATCHRESPONSE']._serialized_start=91
|
|
39
|
+
_globals['_BATCHRESPONSE']._serialized_end=140
|
|
40
|
+
_globals['_OP']._serialized_start=142
|
|
41
|
+
_globals['_OP']._serialized_end=210
|
|
42
|
+
_globals['_GETOP']._serialized_start=212
|
|
43
|
+
_globals['_GETOP']._serialized_end=271
|
|
44
|
+
_globals['_VECTORVALUE']._serialized_start=273
|
|
45
|
+
_globals['_VECTORVALUE']._serialized_end=324
|
|
46
|
+
_globals['_PUTOP']._serialized_start=326
|
|
47
|
+
_globals['_PUTOP']._serialized_end=442
|
|
48
|
+
_globals['_OPRESULT']._serialized_start=444
|
|
49
|
+
_globals['_OPRESULT']._serialized_end=533
|
|
50
|
+
_globals['_ITEM']._serialized_start=535
|
|
51
|
+
_globals['_ITEM']._serialized_end=633
|
|
52
|
+
_globals['_STORE']._serialized_start=635
|
|
53
|
+
_globals['_STORE']._serialized_end=694
|
|
54
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from collections import abc as _abc
|
|
7
|
+
from google.protobuf import descriptor as _descriptor
|
|
8
|
+
from google.protobuf import empty_pb2 as _empty_pb2
|
|
9
|
+
from google.protobuf import message as _message
|
|
10
|
+
from google.protobuf.internal import containers as _containers
|
|
11
|
+
import builtins as _builtins
|
|
12
|
+
import sys
|
|
13
|
+
import typing as _typing
|
|
14
|
+
|
|
15
|
+
if sys.version_info >= (3, 11):
|
|
16
|
+
from typing import TypeAlias as _TypeAlias, Never as _Never
|
|
17
|
+
else:
|
|
18
|
+
from typing_extensions import TypeAlias as _TypeAlias, Never as _Never
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR: _descriptor.FileDescriptor
|
|
21
|
+
|
|
22
|
+
@_typing.final
|
|
23
|
+
class BatchRequest(_message.Message):
|
|
24
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
25
|
+
|
|
26
|
+
OPS_FIELD_NUMBER: _builtins.int
|
|
27
|
+
@_builtins.property
|
|
28
|
+
def ops(self) -> _containers.RepeatedCompositeFieldContainer[Global___Op]: ...
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
*,
|
|
32
|
+
ops: _abc.Iterable[Global___Op] | None = ...,
|
|
33
|
+
) -> None: ...
|
|
34
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
35
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
36
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["ops", b"ops"] # noqa: Y015
|
|
37
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
38
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
39
|
+
|
|
40
|
+
Global___BatchRequest: _TypeAlias = BatchRequest # noqa: Y015
|
|
41
|
+
|
|
42
|
+
@_typing.final
|
|
43
|
+
class BatchResponse(_message.Message):
|
|
44
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
45
|
+
|
|
46
|
+
RESULTS_FIELD_NUMBER: _builtins.int
|
|
47
|
+
@_builtins.property
|
|
48
|
+
def results(self) -> _containers.RepeatedCompositeFieldContainer[Global___OpResult]:
|
|
49
|
+
"""Same length as BatchRequest.ops, same order."""
|
|
50
|
+
|
|
51
|
+
def __init__(
|
|
52
|
+
self,
|
|
53
|
+
*,
|
|
54
|
+
results: _abc.Iterable[Global___OpResult] | None = ...,
|
|
55
|
+
) -> None: ...
|
|
56
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
57
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
58
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["results", b"results"] # noqa: Y015
|
|
59
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
60
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
61
|
+
|
|
62
|
+
Global___BatchResponse: _TypeAlias = BatchResponse # noqa: Y015
|
|
63
|
+
|
|
64
|
+
@_typing.final
|
|
65
|
+
class Op(_message.Message):
|
|
66
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
67
|
+
|
|
68
|
+
GET_FIELD_NUMBER: _builtins.int
|
|
69
|
+
PUT_FIELD_NUMBER: _builtins.int
|
|
70
|
+
@_builtins.property
|
|
71
|
+
def get(self) -> Global___GetOp: ...
|
|
72
|
+
@_builtins.property
|
|
73
|
+
def put(self) -> Global___PutOp: ...
|
|
74
|
+
def __init__(
|
|
75
|
+
self,
|
|
76
|
+
*,
|
|
77
|
+
get: Global___GetOp | None = ...,
|
|
78
|
+
put: Global___PutOp | None = ...,
|
|
79
|
+
) -> None: ...
|
|
80
|
+
_HasFieldArgType: _TypeAlias = _typing.Literal["get", b"get", "op", b"op", "put", b"put"] # noqa: Y015
|
|
81
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
82
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["get", b"get", "op", b"op", "put", b"put"] # noqa: Y015
|
|
83
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
84
|
+
_WhichOneofReturnType_op: _TypeAlias = _typing.Literal["get", "put"] # noqa: Y015
|
|
85
|
+
_WhichOneofArgType_op: _TypeAlias = _typing.Literal["op", b"op"] # noqa: Y015
|
|
86
|
+
def WhichOneof(self, oneof_group: _WhichOneofArgType_op) -> _WhichOneofReturnType_op | None: ...
|
|
87
|
+
|
|
88
|
+
Global___Op: _TypeAlias = Op # noqa: Y015
|
|
89
|
+
|
|
90
|
+
@_typing.final
|
|
91
|
+
class GetOp(_message.Message):
|
|
92
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
93
|
+
|
|
94
|
+
NAMESPACE_FIELD_NUMBER: _builtins.int
|
|
95
|
+
KEY_FIELD_NUMBER: _builtins.int
|
|
96
|
+
REFRESHTTL_FIELD_NUMBER: _builtins.int
|
|
97
|
+
key: _builtins.str
|
|
98
|
+
refreshTTL: _builtins.bool
|
|
99
|
+
@_builtins.property
|
|
100
|
+
def namespace(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]:
|
|
101
|
+
"""Hierarchical namespace path, e.g. ["users", "profiles"]."""
|
|
102
|
+
|
|
103
|
+
def __init__(
|
|
104
|
+
self,
|
|
105
|
+
*,
|
|
106
|
+
namespace: _abc.Iterable[_builtins.str] | None = ...,
|
|
107
|
+
key: _builtins.str = ...,
|
|
108
|
+
refreshTTL: _builtins.bool = ...,
|
|
109
|
+
) -> None: ...
|
|
110
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
111
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
112
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "namespace", b"namespace", "refreshTTL", b"refreshTTL"] # noqa: Y015
|
|
113
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
114
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
115
|
+
|
|
116
|
+
Global___GetOp: _TypeAlias = GetOp # noqa: Y015
|
|
117
|
+
|
|
118
|
+
@_typing.final
|
|
119
|
+
class VectorValue(_message.Message):
|
|
120
|
+
"""Vector value for embedding support"""
|
|
121
|
+
|
|
122
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
123
|
+
|
|
124
|
+
VALUEPATH_FIELD_NUMBER: _builtins.int
|
|
125
|
+
EMBEDDING_FIELD_NUMBER: _builtins.int
|
|
126
|
+
valuePath: _builtins.str
|
|
127
|
+
"""path to the value in the document"""
|
|
128
|
+
@_builtins.property
|
|
129
|
+
def embedding(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]:
|
|
130
|
+
"""embedding vector"""
|
|
131
|
+
|
|
132
|
+
def __init__(
|
|
133
|
+
self,
|
|
134
|
+
*,
|
|
135
|
+
valuePath: _builtins.str = ...,
|
|
136
|
+
embedding: _abc.Iterable[_builtins.float] | None = ...,
|
|
137
|
+
) -> None: ...
|
|
138
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
139
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
140
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["embedding", b"embedding", "valuePath", b"valuePath"] # noqa: Y015
|
|
141
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
142
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
143
|
+
|
|
144
|
+
Global___VectorValue: _TypeAlias = VectorValue # noqa: Y015
|
|
145
|
+
|
|
146
|
+
@_typing.final
|
|
147
|
+
class PutOp(_message.Message):
|
|
148
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
149
|
+
|
|
150
|
+
NAMESPACE_FIELD_NUMBER: _builtins.int
|
|
151
|
+
KEY_FIELD_NUMBER: _builtins.int
|
|
152
|
+
VALUE_JSON_FIELD_NUMBER: _builtins.int
|
|
153
|
+
TTLMINUTES_FIELD_NUMBER: _builtins.int
|
|
154
|
+
VECTORS_FIELD_NUMBER: _builtins.int
|
|
155
|
+
key: _builtins.str
|
|
156
|
+
value_json: _builtins.bytes
|
|
157
|
+
"""JSON-encoded value (orjson)."""
|
|
158
|
+
ttlMinutes: _builtins.int
|
|
159
|
+
@_builtins.property
|
|
160
|
+
def namespace(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
|
|
161
|
+
@_builtins.property
|
|
162
|
+
def vectors(self) -> _containers.RepeatedCompositeFieldContainer[Global___VectorValue]:
|
|
163
|
+
"""array of vector values for embedding support"""
|
|
164
|
+
|
|
165
|
+
def __init__(
|
|
166
|
+
self,
|
|
167
|
+
*,
|
|
168
|
+
namespace: _abc.Iterable[_builtins.str] | None = ...,
|
|
169
|
+
key: _builtins.str = ...,
|
|
170
|
+
value_json: _builtins.bytes = ...,
|
|
171
|
+
ttlMinutes: _builtins.int = ...,
|
|
172
|
+
vectors: _abc.Iterable[Global___VectorValue] | None = ...,
|
|
173
|
+
) -> None: ...
|
|
174
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
175
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
176
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "namespace", b"namespace", "ttlMinutes", b"ttlMinutes", "value_json", b"value_json", "vectors", b"vectors"] # noqa: Y015
|
|
177
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
178
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
179
|
+
|
|
180
|
+
Global___PutOp: _TypeAlias = PutOp # noqa: Y015
|
|
181
|
+
|
|
182
|
+
@_typing.final
|
|
183
|
+
class OpResult(_message.Message):
|
|
184
|
+
"""Result corresponds to langgraph.store.base.Result.
|
|
185
|
+
Kind is derived from the originating op:
|
|
186
|
+
GetOp -> item (or none if missing)
|
|
187
|
+
PutOp -> none
|
|
188
|
+
"""
|
|
189
|
+
|
|
190
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
191
|
+
|
|
192
|
+
ITEM_FIELD_NUMBER: _builtins.int
|
|
193
|
+
NONE_FIELD_NUMBER: _builtins.int
|
|
194
|
+
@_builtins.property
|
|
195
|
+
def item(self) -> Global___Item: ...
|
|
196
|
+
@_builtins.property
|
|
197
|
+
def none(self) -> _empty_pb2.Empty: ...
|
|
198
|
+
def __init__(
|
|
199
|
+
self,
|
|
200
|
+
*,
|
|
201
|
+
item: Global___Item | None = ...,
|
|
202
|
+
none: _empty_pb2.Empty | None = ...,
|
|
203
|
+
) -> None: ...
|
|
204
|
+
_HasFieldArgType: _TypeAlias = _typing.Literal["item", b"item", "none", b"none", "result", b"result"] # noqa: Y015
|
|
205
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
206
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["item", b"item", "none", b"none", "result", b"result"] # noqa: Y015
|
|
207
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
208
|
+
_WhichOneofReturnType_result: _TypeAlias = _typing.Literal["item", "none"] # noqa: Y015
|
|
209
|
+
_WhichOneofArgType_result: _TypeAlias = _typing.Literal["result", b"result"] # noqa: Y015
|
|
210
|
+
def WhichOneof(self, oneof_group: _WhichOneofArgType_result) -> _WhichOneofReturnType_result | None: ...
|
|
211
|
+
|
|
212
|
+
Global___OpResult: _TypeAlias = OpResult # noqa: Y015
|
|
213
|
+
|
|
214
|
+
@_typing.final
|
|
215
|
+
class Item(_message.Message):
|
|
216
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
217
|
+
|
|
218
|
+
NAMESPACE_FIELD_NUMBER: _builtins.int
|
|
219
|
+
KEY_FIELD_NUMBER: _builtins.int
|
|
220
|
+
VALUE_JSON_FIELD_NUMBER: _builtins.int
|
|
221
|
+
CREATED_AT_FIELD_NUMBER: _builtins.int
|
|
222
|
+
UPDATED_AT_FIELD_NUMBER: _builtins.int
|
|
223
|
+
key: _builtins.str
|
|
224
|
+
value_json: _builtins.bytes
|
|
225
|
+
"""JSON-encoded value (orjson)."""
|
|
226
|
+
created_at: _builtins.str
|
|
227
|
+
"""RFC 3339 / ISO 8601 strings, matching Item.dict()."""
|
|
228
|
+
updated_at: _builtins.str
|
|
229
|
+
@_builtins.property
|
|
230
|
+
def namespace(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
|
|
231
|
+
def __init__(
|
|
232
|
+
self,
|
|
233
|
+
*,
|
|
234
|
+
namespace: _abc.Iterable[_builtins.str] | None = ...,
|
|
235
|
+
key: _builtins.str = ...,
|
|
236
|
+
value_json: _builtins.bytes = ...,
|
|
237
|
+
created_at: _builtins.str = ...,
|
|
238
|
+
updated_at: _builtins.str = ...,
|
|
239
|
+
) -> None: ...
|
|
240
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
241
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
242
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["created_at", b"created_at", "key", b"key", "namespace", b"namespace", "updated_at", b"updated_at", "value_json", b"value_json"] # noqa: Y015
|
|
243
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
244
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
245
|
+
|
|
246
|
+
Global___Item: _TypeAlias = Item # noqa: Y015
|