langgraph-api 0.17.0.dev2__tar.gz → 0.17.0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/PKG-INFO +1 -1
- langgraph_api-0.17.0.dev3/langgraph_api/__init__.py +1 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/encryption/aes_json.py +47 -6
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/encryption/custom.py +13 -1
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/store.py +17 -11
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/checkpointer.py +6 -3
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/store.py +8 -6
- langgraph_api-0.17.0.dev3/langgraph_grpc_common/proto/checkpointer_pb2.py +99 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +76 -5
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/store_pb2.py +25 -25
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/store_pb2.pyi +6 -1
- langgraph_api-0.17.0.dev2/langgraph_api/__init__.py +0 -1
- langgraph_api-0.17.0.dev2/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -87
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/.gitignore +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/LICENSE +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/Makefile +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/README.md +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/.gitignore +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/Makefile +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/README.md +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/REPORTS.md +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/assistant.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/benchmarks.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/classify-error.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/classify-error.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/delta-turns-lib.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/delta-turns-lib.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/delta_turns.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/interrupt_resume.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/log-failure.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/meta_workload.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/store.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/stream_write.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/thread.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/types.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/benchmark-runners/wait_write.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/capacity-ci.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/capacity-ci.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/clean-cli.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/clean.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/continuous/README.md +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/continuous/pyproject.toml +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/continuous/runner.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/continuous/uv.lock +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/daily-report.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/daily-report.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/delta-report.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/delta-report.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/graphs.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/history.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/history.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/host-v2.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/host-v2.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/multer.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/package.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/ramp.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/reporting/dd_reporting.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/runner-descriptions.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/server-metrics.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/server-metrics.test.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/slack.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/staircase.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/staircase_step_k6.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/tsconfig.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/update-revision.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/weather.js +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/benchmark/yarn.lock +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/constraints.txt +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/custom_store.sql +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/forbidden.txt +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/hatch_build.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/healthcheck.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph-cloud-debugging-20260210132856.zip +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/_checkpointer/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/_checkpointer/_adapter.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/_checkpointer/protocol.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/_factory_utils.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/a2a.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/a2ui.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/a2ui_schemas/README.md +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/a2ui_schemas/client_capabilities.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/a2ui_schemas/client_data_model.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/a2ui_schemas/client_to_server.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/a2ui_schemas/server_to_client.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/assistants.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/event_streaming.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/mcp/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/mcp/_constants.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/mcp/_handlers.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/mcp/_models.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/mcp/_routes.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/mcp/_sanitizers.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/profile.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/runs.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/store.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/threads.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/api/ui.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/asgi_transport.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/custom.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/errors.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/beacon_data_plane_jwt_auth.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/cache.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/command.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/config/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/config/_parse.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/config/schemas.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/encryption/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/encryption/context.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/encryption/middleware.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/encryption/shared.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/capabilities.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/constants.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/event_normalizers.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/namespace.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/service.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/session.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/state_normalizers.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/event_streaming/types.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/feature_flags.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/client.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/ops/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/ops/assistants.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/ops/cache.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/ops/crons.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/ops/runs.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/ops/threads.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/server.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/servicers/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/grpc/servicers/encryption.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/http.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/http_metrics.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/http_metrics_utils.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/.prettierrc +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/.yarnclean +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/build.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/client.http.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/client.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/package.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/remote.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/auth-mutations.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/graph.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/load.hooks.mjs +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/preload.mjs +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/utils/files.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/sse.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/traceblock.mts +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/tsconfig.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/ui.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/js/yarn.lock +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/lc_security/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/lc_security/exceptions.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/lc_security/policy.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/lc_security/transport.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/metrics_collector.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/metrics_otlp.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/middleware/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/middleware/ensure_store.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/middleware/http_logger.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/middleware/private_network.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/middleware/request_id.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/otel_context.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/queue_entrypoint.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/release_tags.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/route.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/runner/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/runner/__main__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/schema.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/self_hosted_logs.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/self_hosted_metrics.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/server.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/sse.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/state.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/stream.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/stream_v2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/timing/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/timing/profiler.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/timing/timer.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/traceblock.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/tracing_session.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/tunneling/cloudflare.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/cache.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/config.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/errors.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/extract.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/future.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/headers.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/network.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/retriable_client.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/stream_codec.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/utils/uuids.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/webhook.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/worker.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/worker_runtime.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/_compat.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/config.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/durability.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/struct.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/value.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/runner_pb2.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/runner_pb2.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/runner_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/runner_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/serde.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/store.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/__init__.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/checkpoint.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/database.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/encryption.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/lifespan.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/metrics.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/ops.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/queue.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/retry.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/routes.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_runtime/store.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/logging.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/openapi.json +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/pyproject.toml +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/scripts/build_wheel.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/scripts/create_license.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/scripts/run_a2a_tck.py +0 -0
- {langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.17.0.dev3"
|
{langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_api/encryption/aes_json.py
RENAMED
|
@@ -8,6 +8,7 @@ from __future__ import annotations
|
|
|
8
8
|
|
|
9
9
|
import base64
|
|
10
10
|
import functools
|
|
11
|
+
import hashlib
|
|
11
12
|
from typing import TYPE_CHECKING, Any
|
|
12
13
|
|
|
13
14
|
import orjson
|
|
@@ -24,17 +25,57 @@ if TYPE_CHECKING:
|
|
|
24
25
|
from langgraph_api.encryption.custom import ModelType
|
|
25
26
|
|
|
26
27
|
AES_ENCRYPTED_PREFIX = "encrypted.aes:"
|
|
28
|
+
AES_ENVELOPE_MAGIC = b"LGAES-ENVELOPE\x00\x00"
|
|
29
|
+
AES_ENVELOPE_VERSION = 1
|
|
30
|
+
AES_KEY_ID_SIZE = 16
|
|
31
|
+
AES_ENVELOPE_SIZE = len(AES_ENVELOPE_MAGIC) + 1 + AES_KEY_ID_SIZE
|
|
27
32
|
|
|
28
33
|
# Marker key to identify AES encryption in __encryption_context__
|
|
29
34
|
AES_ENCRYPTION_TYPE_KEY = "__langgraph_encryption_type__"
|
|
30
35
|
AES_ENCRYPTION_CONTEXT = {AES_ENCRYPTION_TYPE_KEY: "aes"}
|
|
31
36
|
|
|
32
37
|
|
|
33
|
-
|
|
34
|
-
"""
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
class _EnvelopeAwareAesCipher:
|
|
39
|
+
"""Read Go AES envelopes while preserving legacy Python writes."""
|
|
40
|
+
|
|
41
|
+
def __init__(self, key: bytes, legacy: CipherProtocol) -> None:
|
|
42
|
+
self._key = key
|
|
43
|
+
self._legacy = legacy
|
|
44
|
+
|
|
45
|
+
def encrypt(self, plaintext: bytes) -> tuple[str, bytes]:
|
|
46
|
+
return self._legacy.encrypt(plaintext)
|
|
47
|
+
|
|
48
|
+
def decrypt(self, ciphername: str, ciphertext: bytes) -> bytes:
|
|
49
|
+
if not ciphertext.startswith(AES_ENVELOPE_MAGIC):
|
|
50
|
+
return self._legacy.decrypt(ciphername, ciphertext)
|
|
51
|
+
if len(ciphertext) < AES_ENVELOPE_SIZE:
|
|
52
|
+
raise ValueError("invalid AES envelope: header is truncated")
|
|
53
|
+
|
|
54
|
+
header = ciphertext[:AES_ENVELOPE_SIZE]
|
|
55
|
+
if header[len(AES_ENVELOPE_MAGIC)] != AES_ENVELOPE_VERSION:
|
|
56
|
+
raise ValueError(
|
|
57
|
+
f"unsupported AES envelope version {header[len(AES_ENVELOPE_MAGIC)]}"
|
|
58
|
+
)
|
|
59
|
+
expected_key_id = hashlib.sha256(
|
|
60
|
+
b"langgraph-aes-key-id-v1\x00" + self._key
|
|
61
|
+
).digest()[:AES_KEY_ID_SIZE]
|
|
62
|
+
if header[-AES_KEY_ID_SIZE:] != expected_key_id:
|
|
63
|
+
raise ValueError("AES envelope was encrypted with a different key")
|
|
64
|
+
|
|
65
|
+
from Crypto.Cipher import AES # noqa: PLC0415
|
|
66
|
+
|
|
67
|
+
encrypted = ciphertext[AES_ENVELOPE_SIZE:]
|
|
68
|
+
nonce = encrypted[:16]
|
|
69
|
+
tag = encrypted[16:32]
|
|
70
|
+
cipher = AES.new(self._key, AES.MODE_EAX, nonce=nonce)
|
|
71
|
+
cipher.update(header)
|
|
72
|
+
return cipher.decrypt_and_verify(encrypted[32:], tag)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def get_aes_cipher(key: bytes) -> CipherProtocol:
|
|
76
|
+
"""Return cipher compatible with legacy Python and Go envelope formats."""
|
|
77
|
+
legacy = EncryptedSerializer.from_pycryptodome_aes(key=key).cipher
|
|
78
|
+
return _EnvelopeAwareAesCipher(key, legacy)
|
|
38
79
|
|
|
39
80
|
|
|
40
81
|
def is_aes_encrypted(value: Any) -> bool:
|
|
@@ -72,7 +113,7 @@ class AesEncryptionInstance:
|
|
|
72
113
|
"""
|
|
73
114
|
|
|
74
115
|
def __init__(self, key: bytes, allowlist: frozenset[str]) -> None:
|
|
75
|
-
self._cipher =
|
|
116
|
+
self._cipher = get_aes_cipher(key)
|
|
76
117
|
self._allowlist = allowlist
|
|
77
118
|
|
|
78
119
|
def encrypt_value(self, value: Any) -> str:
|
|
@@ -271,6 +271,7 @@ class JsonEncryptionWrapper:
|
|
|
271
271
|
)
|
|
272
272
|
|
|
273
273
|
custom_decryptor = self._custom.get_json_decryptor(model_type)
|
|
274
|
+
custom_encryptor = self.get_json_encryptor(model_type)
|
|
274
275
|
|
|
275
276
|
async def decryptor(ctx: Any, data: dict[str, Any]) -> dict[str, Any]:
|
|
276
277
|
# No marker → plaintext passthrough
|
|
@@ -287,7 +288,18 @@ class JsonEncryptionWrapper:
|
|
|
287
288
|
f"for {model_type}"
|
|
288
289
|
)
|
|
289
290
|
aes_decryptor = self._aes.get_json_decryptor(model_type)
|
|
290
|
-
|
|
291
|
+
plaintext = await aes_decryptor(ctx, data)
|
|
292
|
+
if with_replacement and custom_encryptor is not None:
|
|
293
|
+
try:
|
|
294
|
+
replacement = await custom_encryptor(ctx, plaintext)
|
|
295
|
+
except Exception:
|
|
296
|
+
await logger.aexception(
|
|
297
|
+
"Failed to create AES-to-custom replacement",
|
|
298
|
+
model=model_type,
|
|
299
|
+
)
|
|
300
|
+
replacement = None
|
|
301
|
+
return DecryptResult(plaintext, replacement)
|
|
302
|
+
return plaintext
|
|
291
303
|
|
|
292
304
|
# Custom marker → use custom decryptor
|
|
293
305
|
if custom_decryptor is None:
|
|
@@ -18,6 +18,7 @@ from langgraph_api.encryption.middleware import (
|
|
|
18
18
|
decrypt_response,
|
|
19
19
|
encrypt_request,
|
|
20
20
|
)
|
|
21
|
+
from langgraph_api.encryption.shared import ENCRYPTION_CONTEXT_KEY
|
|
21
22
|
from langgraph_api.timing import profiled_import
|
|
22
23
|
from langgraph_api.utils.config import run_in_executor
|
|
23
24
|
|
|
@@ -49,6 +50,20 @@ def _bypass_store_encryption() -> bool:
|
|
|
49
50
|
return config.USE_GRPC_STORE or CUSTOM_STORE is not None
|
|
50
51
|
|
|
51
52
|
|
|
53
|
+
def _bypass_store_decryption(item: dict[str, Any]) -> bool:
|
|
54
|
+
if config.USE_GRPC_STORE or CUSTOM_STORE is None:
|
|
55
|
+
return config.USE_GRPC_STORE
|
|
56
|
+
value = item.get("value")
|
|
57
|
+
return not isinstance(value, dict) or ENCRYPTION_CONTEXT_KEY not in value
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
async def _decrypt_store_item(item: Any) -> dict[str, Any]:
|
|
61
|
+
data = item.dict()
|
|
62
|
+
return await decrypt_response(
|
|
63
|
+
data, "store", plaintext_from_core=_bypass_store_decryption(data)
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
|
|
52
67
|
async def put_item(
|
|
53
68
|
namespace: tuple[str, ...],
|
|
54
69
|
key: str,
|
|
@@ -71,9 +86,7 @@ async def get_item(
|
|
|
71
86
|
item = await (await get_store()).aget(namespace, key, refresh_ttl=refresh_ttl)
|
|
72
87
|
if item is None:
|
|
73
88
|
return None
|
|
74
|
-
return await
|
|
75
|
-
item.dict(), "store", plaintext_from_core=_bypass_store_encryption()
|
|
76
|
-
)
|
|
89
|
+
return await _decrypt_store_item(item)
|
|
77
90
|
|
|
78
91
|
|
|
79
92
|
async def search_items(
|
|
@@ -93,14 +106,7 @@ async def search_items(
|
|
|
93
106
|
query=query,
|
|
94
107
|
refresh_ttl=refresh_ttl,
|
|
95
108
|
)
|
|
96
|
-
return await asyncio.gather(
|
|
97
|
-
*(
|
|
98
|
-
decrypt_response(
|
|
99
|
-
item.dict(), "store", plaintext_from_core=_bypass_store_encryption()
|
|
100
|
-
)
|
|
101
|
-
for item in items
|
|
102
|
-
)
|
|
103
|
-
)
|
|
109
|
+
return await asyncio.gather(*(_decrypt_store_item(item) for item in items))
|
|
104
110
|
|
|
105
111
|
|
|
106
112
|
async def exit_store():
|
{langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/checkpointer.py
RENAMED
|
@@ -77,8 +77,8 @@ class GrpcCheckpointer(BaseCheckpointSaver):
|
|
|
77
77
|
``langgraph_grpc_common.conversion.*`` keep using the
|
|
78
78
|
process-wide default
|
|
79
79
|
encryption_context_provider: Optional callable returning the
|
|
80
|
-
request-scoped encryption context, sent with
|
|
81
|
-
server can encrypt blobs with the caller's context. Injected
|
|
80
|
+
request-scoped encryption context, sent with reads and writes
|
|
81
|
+
so the server can encrypt blobs with the caller's context. Injected
|
|
82
82
|
rather than read directly because the context lives in a
|
|
83
83
|
``ContextVar`` owned by ``langgraph_api``, which this package
|
|
84
84
|
does not depend on.
|
|
@@ -146,7 +146,8 @@ class GrpcCheckpointer(BaseCheckpointSaver):
|
|
|
146
146
|
async def aget_tuple(self, config: RunnableConfig) -> CheckpointTuple | None:
|
|
147
147
|
with self._scoped():
|
|
148
148
|
request = checkpointer_pb2.GetTupleRequest(
|
|
149
|
-
config=ckpt_conv.checkpoint_config_to_proto(config)
|
|
149
|
+
config=ckpt_conv.checkpoint_config_to_proto(config),
|
|
150
|
+
encryption_context_json=self._encryption_context_json(),
|
|
150
151
|
)
|
|
151
152
|
|
|
152
153
|
async def _request() -> CheckpointTuple | None:
|
|
@@ -276,6 +277,7 @@ class GrpcCheckpointer(BaseCheckpointSaver):
|
|
|
276
277
|
config=ckpt_conv.checkpoint_config_to_proto(config),
|
|
277
278
|
filter_json=convert_dict_to_json_bytes(filter) or b"",
|
|
278
279
|
before=ckpt_conv.checkpoint_config_to_proto(before),
|
|
280
|
+
encryption_context_json=self._encryption_context_json(),
|
|
279
281
|
)
|
|
280
282
|
if limit is not None:
|
|
281
283
|
request.limit = limit
|
|
@@ -393,6 +395,7 @@ class GrpcCheckpointer(BaseCheckpointSaver):
|
|
|
393
395
|
# Empty checkpoint_id => server resolves the latest checkpoint.
|
|
394
396
|
checkpoint_id=configurable.get("checkpoint_id", "") or "",
|
|
395
397
|
channels=list(channels),
|
|
398
|
+
encryption_context_json=self._encryption_context_json(),
|
|
396
399
|
)
|
|
397
400
|
|
|
398
401
|
async def _request() -> checkpointer_pb2.GetDeltaChannelHistoryResponse:
|
{langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/conversion/store.py
RENAMED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import math
|
|
5
6
|
from datetime import datetime
|
|
6
7
|
from typing import TYPE_CHECKING, Any, cast
|
|
7
8
|
|
|
@@ -61,11 +62,9 @@ def _ensure_index_config(
|
|
|
61
62
|
def _ttl_to_proto_minutes(ttl: float | None) -> int:
|
|
62
63
|
if ttl is None:
|
|
63
64
|
return 0
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
)
|
|
68
|
-
return int(ttl)
|
|
65
|
+
# The API accepts fractional minutes but the store keeps whole minutes;
|
|
66
|
+
# round up so items never expire earlier than requested.
|
|
67
|
+
return math.ceil(ttl)
|
|
69
68
|
|
|
70
69
|
|
|
71
70
|
# Ordered comparisons compare the *text* form of the field (value->>key); $eq/$ne
|
|
@@ -178,6 +177,7 @@ def op_to_proto(
|
|
|
178
177
|
"key": str(op.key),
|
|
179
178
|
"value_json": orjson.dumps(op.value),
|
|
180
179
|
"ttlMinutes": _ttl_to_proto_minutes(op.ttl),
|
|
180
|
+
"ttlMinutesExact": op.ttl or 0.0,
|
|
181
181
|
}
|
|
182
182
|
if vectors is not None:
|
|
183
183
|
put_kwargs["vectors"] = list(vectors)
|
|
@@ -227,7 +227,9 @@ def op_from_proto(msg: store_pb2.Op) -> Op:
|
|
|
227
227
|
if kind == "put":
|
|
228
228
|
p = msg.put
|
|
229
229
|
ttl: float | None = None
|
|
230
|
-
if p.
|
|
230
|
+
if p.ttlMinutesExact:
|
|
231
|
+
ttl = p.ttlMinutesExact
|
|
232
|
+
elif p.ttlMinutes:
|
|
231
233
|
ttl = float(p.ttlMinutes)
|
|
232
234
|
return PutOp(
|
|
233
235
|
namespace=tuple(p.namespace),
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
|
+
# NO CHECKED-IN PROTOBUF GENCODE
|
|
4
|
+
# source: checkpointer.proto
|
|
5
|
+
# Protobuf Python Version: 6.33.5
|
|
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
|
+
33,
|
|
16
|
+
5,
|
|
17
|
+
'',
|
|
18
|
+
'checkpointer.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
|
+
from . import engine_common_pb2 as engine__common__pb2
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x63heckpointer.proto\x12\x0c\x63heckpointer\x1a\x1bgoogle/protobuf/empty.proto\x1a\x13\x65ngine-common.proto\"\xab\x03\n\nPutRequest\x12\x32\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\x12,\n\ncheckpoint\x18\x02 \x01(\x0b\x32\x18.engineCommon.Checkpoint\x12\x32\n\x08metadata\x18\x03 \x01(\x0b\x32 .engineCommon.CheckpointMetadata\x12?\n\x0cnew_versions\x18\x04 \x03(\x0b\x32).checkpointer.PutRequest.NewVersionsEntry\x12T\n\x17\x65ncryption_context_json\x18\x05 \x03(\x0b\x32\x33.checkpointer.PutRequest.EncryptionContextJsonEntry\x1a\x32\n\x10NewVersionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a<\n\x1a\x45ncryptionContextJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xa9\x02\n\x10PutWritesRequest\x12\x32\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\x12#\n\x06writes\x18\x02 \x03(\x0b\x32\x13.engineCommon.Write\x12\x0f\n\x07task_id\x18\x03 \x01(\t\x12\x11\n\ttask_path\x18\x04 \x01(\t\x12Z\n\x17\x65ncryption_context_json\x18\x05 \x03(\x0b\x32\x39.checkpointer.PutWritesRequest.EncryptionContextJsonEntry\x1a<\n\x1a\x45ncryptionContextJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\x86\x01\n\x0c\x43\x61pabilities\x12\x1e\n\x16supports_delete_thread\x18\x01 \x01(\x08\x12\x16\n\x0esupports_prune\x18\x02 \x01(\x08\x12 \n\x18supports_delete_for_runs\x18\x03 \x01(\x08\x12\x1c\n\x14supports_copy_thread\x18\x04 \x01(\x08\"\xbd\x02\n\x0bListRequest\x12\x32\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\x12\x13\n\x0b\x66ilter_json\x18\x02 \x01(\x0c\x12\x32\n\x06\x62\x65\x66ore\x18\x03 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\x12\x12\n\x05limit\x18\x04 \x01(\x03H\x00\x88\x01\x01\x12U\n\x17\x65ncryption_context_json\x18\x05 \x03(\x0b\x32\x34.checkpointer.ListRequest.EncryptionContextJsonEntry\x1a<\n\x1a\x45ncryptionContextJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\x42\x08\n\x06_limit\"(\n\x13\x44\x65leteThreadRequest\x12\x11\n\tthread_id\x18\x01 \x01(\t\"\'\n\x14\x44\x65leteForRunsRequest\x12\x0f\n\x07run_ids\x18\x01 \x03(\t\"A\n\x11\x43opyThreadRequest\x12\x16\n\x0e\x66rom_thread_id\x18\x01 \x01(\t\x12\x14\n\x0cto_thread_id\x18\x02 \x01(\t\"\xa1\x01\n\x0cPruneRequest\x12\x12\n\nthread_ids\x18\x01 \x03(\t\x12:\n\x08strategy\x18\x02 \x01(\x0e\x32(.checkpointer.PruneRequest.PruneStrategy\"A\n\rPruneStrategy\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0f\n\x0bKEEP_LATEST\x10\x01\x12\x0e\n\nDELETE_ALL\x10\x02\"\xde\x01\n\x0fGetTupleRequest\x12\x32\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\x12Y\n\x17\x65ncryption_context_json\x18\x02 \x03(\x0b\x32\x38.checkpointer.GetTupleRequest.EncryptionContextJsonEntry\x1a<\n\x1a\x45ncryptionContextJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"F\n\x0bPutResponse\x12\x37\n\x0bnext_config\x18\x01 \x01(\x0b\x32\".engineCommon.EngineRunnableConfig\"H\n\x0cListResponse\x12\x38\n\x11\x63heckpoint_tuples\x18\x01 \x03(\x0b\x32\x1d.engineCommon.CheckpointTuple\"e\n\x10GetTupleResponse\x12<\n\x10\x63heckpoint_tuple\x18\x01 \x01(\x0b\x32\x1d.engineCommon.CheckpointTupleH\x00\x88\x01\x01\x42\x13\n\x11_checkpoint_tuple\"~\n\x18\x44\x65ltaChannelHistoryEntry\x12-\n\x04seed\x18\x01 \x01(\x0b\x32\x1a.engineCommon.ChannelValueH\x00\x88\x01\x01\x12*\n\x06writes\x18\x02 \x03(\x0b\x32\x1a.engineCommon.PendingWriteB\x07\n\x05_seed\"\x99\x02\n\x1dGetDeltaChannelHistoryRequest\x12\x11\n\tthread_id\x18\x01 \x01(\t\x12\x15\n\rcheckpoint_ns\x18\x02 \x01(\t\x12\x15\n\rcheckpoint_id\x18\x03 \x01(\t\x12\x10\n\x08\x63hannels\x18\x04 \x03(\t\x12g\n\x17\x65ncryption_context_json\x18\x05 \x03(\x0b\x32\x46.checkpointer.GetDeltaChannelHistoryRequest.EncryptionContextJsonEntry\x1a<\n\x1a\x45ncryptionContextJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"\xc4\x01\n\x1eGetDeltaChannelHistoryResponse\x12J\n\x07\x65ntries\x18\x01 \x03(\x0b\x32\x39.checkpointer.GetDeltaChannelHistoryResponse.EntriesEntry\x1aV\n\x0c\x45ntriesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x35\n\x05value\x18\x02 \x01(\x0b\x32&.checkpointer.DeltaChannelHistoryEntry:\x02\x38\x01\x32\xf1\x05\n\x0c\x43heckpointer\x12:\n\x03Put\x12\x18.checkpointer.PutRequest\x1a\x19.checkpointer.PutResponse\x12\x43\n\tPutWrites\x12\x1e.checkpointer.PutWritesRequest\x1a\x16.google.protobuf.Empty\x12\x45\n\x0fGetCapabilities\x12\x16.google.protobuf.Empty\x1a\x1a.checkpointer.Capabilities\x12=\n\x04List\x12\x19.checkpointer.ListRequest\x1a\x1a.checkpointer.ListResponse\x12I\n\x08GetTuple\x12\x1d.checkpointer.GetTupleRequest\x1a\x1e.checkpointer.GetTupleResponse\x12I\n\x0c\x44\x65leteThread\x12!.checkpointer.DeleteThreadRequest\x1a\x16.google.protobuf.Empty\x12K\n\rDeleteForRuns\x12\".checkpointer.DeleteForRunsRequest\x1a\x16.google.protobuf.Empty\x12\x45\n\nCopyThread\x12\x1f.checkpointer.CopyThreadRequest\x1a\x16.google.protobuf.Empty\x12;\n\x05Prune\x12\x1a.checkpointer.PruneRequest\x1a\x16.google.protobuf.Empty\x12s\n\x16GetDeltaChannelHistory\x12+.checkpointer.GetDeltaChannelHistoryRequest\x1a,.checkpointer.GetDeltaChannelHistoryResponseB?Z=github.com/langchain-ai/langgraph-api/core/internal/engine/pbb\x06proto3')
|
|
30
|
+
|
|
31
|
+
_globals = globals()
|
|
32
|
+
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
33
|
+
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'checkpointer_pb2', _globals)
|
|
34
|
+
if not _descriptor._USE_C_DESCRIPTORS:
|
|
35
|
+
_globals['DESCRIPTOR']._loaded_options = None
|
|
36
|
+
_globals['DESCRIPTOR']._serialized_options = b'Z=github.com/langchain-ai/langgraph-api/core/internal/engine/pb'
|
|
37
|
+
_globals['_PUTREQUEST_NEWVERSIONSENTRY']._loaded_options = None
|
|
38
|
+
_globals['_PUTREQUEST_NEWVERSIONSENTRY']._serialized_options = b'8\001'
|
|
39
|
+
_globals['_PUTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._loaded_options = None
|
|
40
|
+
_globals['_PUTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_options = b'8\001'
|
|
41
|
+
_globals['_PUTWRITESREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._loaded_options = None
|
|
42
|
+
_globals['_PUTWRITESREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_options = b'8\001'
|
|
43
|
+
_globals['_LISTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._loaded_options = None
|
|
44
|
+
_globals['_LISTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_options = b'8\001'
|
|
45
|
+
_globals['_GETTUPLEREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._loaded_options = None
|
|
46
|
+
_globals['_GETTUPLEREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_options = b'8\001'
|
|
47
|
+
_globals['_GETDELTACHANNELHISTORYREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._loaded_options = None
|
|
48
|
+
_globals['_GETDELTACHANNELHISTORYREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_options = b'8\001'
|
|
49
|
+
_globals['_GETDELTACHANNELHISTORYRESPONSE_ENTRIESENTRY']._loaded_options = None
|
|
50
|
+
_globals['_GETDELTACHANNELHISTORYRESPONSE_ENTRIESENTRY']._serialized_options = b'8\001'
|
|
51
|
+
_globals['_PUTREQUEST']._serialized_start=87
|
|
52
|
+
_globals['_PUTREQUEST']._serialized_end=514
|
|
53
|
+
_globals['_PUTREQUEST_NEWVERSIONSENTRY']._serialized_start=402
|
|
54
|
+
_globals['_PUTREQUEST_NEWVERSIONSENTRY']._serialized_end=452
|
|
55
|
+
_globals['_PUTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_start=454
|
|
56
|
+
_globals['_PUTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_end=514
|
|
57
|
+
_globals['_PUTWRITESREQUEST']._serialized_start=517
|
|
58
|
+
_globals['_PUTWRITESREQUEST']._serialized_end=814
|
|
59
|
+
_globals['_PUTWRITESREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_start=454
|
|
60
|
+
_globals['_PUTWRITESREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_end=514
|
|
61
|
+
_globals['_CAPABILITIES']._serialized_start=817
|
|
62
|
+
_globals['_CAPABILITIES']._serialized_end=951
|
|
63
|
+
_globals['_LISTREQUEST']._serialized_start=954
|
|
64
|
+
_globals['_LISTREQUEST']._serialized_end=1271
|
|
65
|
+
_globals['_LISTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_start=454
|
|
66
|
+
_globals['_LISTREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_end=514
|
|
67
|
+
_globals['_DELETETHREADREQUEST']._serialized_start=1273
|
|
68
|
+
_globals['_DELETETHREADREQUEST']._serialized_end=1313
|
|
69
|
+
_globals['_DELETEFORRUNSREQUEST']._serialized_start=1315
|
|
70
|
+
_globals['_DELETEFORRUNSREQUEST']._serialized_end=1354
|
|
71
|
+
_globals['_COPYTHREADREQUEST']._serialized_start=1356
|
|
72
|
+
_globals['_COPYTHREADREQUEST']._serialized_end=1421
|
|
73
|
+
_globals['_PRUNEREQUEST']._serialized_start=1424
|
|
74
|
+
_globals['_PRUNEREQUEST']._serialized_end=1585
|
|
75
|
+
_globals['_PRUNEREQUEST_PRUNESTRATEGY']._serialized_start=1520
|
|
76
|
+
_globals['_PRUNEREQUEST_PRUNESTRATEGY']._serialized_end=1585
|
|
77
|
+
_globals['_GETTUPLEREQUEST']._serialized_start=1588
|
|
78
|
+
_globals['_GETTUPLEREQUEST']._serialized_end=1810
|
|
79
|
+
_globals['_GETTUPLEREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_start=454
|
|
80
|
+
_globals['_GETTUPLEREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_end=514
|
|
81
|
+
_globals['_PUTRESPONSE']._serialized_start=1812
|
|
82
|
+
_globals['_PUTRESPONSE']._serialized_end=1882
|
|
83
|
+
_globals['_LISTRESPONSE']._serialized_start=1884
|
|
84
|
+
_globals['_LISTRESPONSE']._serialized_end=1956
|
|
85
|
+
_globals['_GETTUPLERESPONSE']._serialized_start=1958
|
|
86
|
+
_globals['_GETTUPLERESPONSE']._serialized_end=2059
|
|
87
|
+
_globals['_DELTACHANNELHISTORYENTRY']._serialized_start=2061
|
|
88
|
+
_globals['_DELTACHANNELHISTORYENTRY']._serialized_end=2187
|
|
89
|
+
_globals['_GETDELTACHANNELHISTORYREQUEST']._serialized_start=2190
|
|
90
|
+
_globals['_GETDELTACHANNELHISTORYREQUEST']._serialized_end=2471
|
|
91
|
+
_globals['_GETDELTACHANNELHISTORYREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_start=454
|
|
92
|
+
_globals['_GETDELTACHANNELHISTORYREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_end=514
|
|
93
|
+
_globals['_GETDELTACHANNELHISTORYRESPONSE']._serialized_start=2474
|
|
94
|
+
_globals['_GETDELTACHANNELHISTORYRESPONSE']._serialized_end=2670
|
|
95
|
+
_globals['_GETDELTACHANNELHISTORYRESPONSE_ENTRIESENTRY']._serialized_start=2584
|
|
96
|
+
_globals['_GETDELTACHANNELHISTORYRESPONSE_ENTRIESENTRY']._serialized_end=2670
|
|
97
|
+
_globals['_CHECKPOINTER']._serialized_start=2673
|
|
98
|
+
_globals['_CHECKPOINTER']._serialized_end=3426
|
|
99
|
+
# @@protoc_insertion_point(module_scope)
|
|
@@ -24,8 +24,7 @@ DESCRIPTOR: _descriptor.FileDescriptor
|
|
|
24
24
|
class PutRequest(_message.Message):
|
|
25
25
|
"""encryption_context_json: request-scoped encryption context, keyed by name
|
|
26
26
|
with JSON-encoded values (e.g. {"tenant_id": "\\"acme\\""}). Writes must pass
|
|
27
|
-
it because it lives in a Python ContextVar the core server cannot observe
|
|
28
|
-
reads recover it from the stored blob wrapper.
|
|
27
|
+
it because it lives in a Python ContextVar the core server cannot observe.
|
|
29
28
|
"""
|
|
30
29
|
|
|
31
30
|
DESCRIPTOR: _descriptor.Descriptor
|
|
@@ -194,16 +193,39 @@ Global___Capabilities: _TypeAlias = Capabilities # noqa: Y015
|
|
|
194
193
|
class ListRequest(_message.Message):
|
|
195
194
|
DESCRIPTOR: _descriptor.Descriptor
|
|
196
195
|
|
|
196
|
+
@_typing.final
|
|
197
|
+
class EncryptionContextJsonEntry(_message.Message):
|
|
198
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
199
|
+
|
|
200
|
+
KEY_FIELD_NUMBER: _builtins.int
|
|
201
|
+
VALUE_FIELD_NUMBER: _builtins.int
|
|
202
|
+
key: _builtins.str
|
|
203
|
+
value: _builtins.bytes
|
|
204
|
+
def __init__(
|
|
205
|
+
self,
|
|
206
|
+
*,
|
|
207
|
+
key: _builtins.str = ...,
|
|
208
|
+
value: _builtins.bytes = ...,
|
|
209
|
+
) -> None: ...
|
|
210
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
211
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
212
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
|
|
213
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
214
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
215
|
+
|
|
197
216
|
CONFIG_FIELD_NUMBER: _builtins.int
|
|
198
217
|
FILTER_JSON_FIELD_NUMBER: _builtins.int
|
|
199
218
|
BEFORE_FIELD_NUMBER: _builtins.int
|
|
200
219
|
LIMIT_FIELD_NUMBER: _builtins.int
|
|
220
|
+
ENCRYPTION_CONTEXT_JSON_FIELD_NUMBER: _builtins.int
|
|
201
221
|
filter_json: _builtins.bytes
|
|
202
222
|
limit: _builtins.int
|
|
203
223
|
@_builtins.property
|
|
204
224
|
def config(self) -> _engine_common_pb2.EngineRunnableConfig: ...
|
|
205
225
|
@_builtins.property
|
|
206
226
|
def before(self) -> _engine_common_pb2.EngineRunnableConfig: ...
|
|
227
|
+
@_builtins.property
|
|
228
|
+
def encryption_context_json(self) -> _containers.ScalarMap[_builtins.str, _builtins.bytes]: ...
|
|
207
229
|
def __init__(
|
|
208
230
|
self,
|
|
209
231
|
*,
|
|
@@ -211,10 +233,11 @@ class ListRequest(_message.Message):
|
|
|
211
233
|
filter_json: _builtins.bytes = ...,
|
|
212
234
|
before: _engine_common_pb2.EngineRunnableConfig | None = ...,
|
|
213
235
|
limit: _builtins.int | None = ...,
|
|
236
|
+
encryption_context_json: _abc.Mapping[_builtins.str, _builtins.bytes] | None = ...,
|
|
214
237
|
) -> None: ...
|
|
215
238
|
_HasFieldArgType: _TypeAlias = _typing.Literal["_limit", b"_limit", "before", b"before", "config", b"config", "limit", b"limit"] # noqa: Y015
|
|
216
239
|
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
217
|
-
_ClearFieldArgType: _TypeAlias = _typing.Literal["_limit", b"_limit", "before", b"before", "config", b"config", "filter_json", b"filter_json", "limit", b"limit"] # noqa: Y015
|
|
240
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["_limit", b"_limit", "before", b"before", "config", b"config", "encryption_context_json", b"encryption_context_json", "filter_json", b"filter_json", "limit", b"limit"] # noqa: Y015
|
|
218
241
|
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
219
242
|
_WhichOneofReturnType__limit: _TypeAlias = _typing.Literal["limit"] # noqa: Y015
|
|
220
243
|
_WhichOneofArgType__limit: _TypeAlias = _typing.Literal["_limit", b"_limit"] # noqa: Y015
|
|
@@ -330,17 +353,41 @@ Global___PruneRequest: _TypeAlias = PruneRequest # noqa: Y015
|
|
|
330
353
|
class GetTupleRequest(_message.Message):
|
|
331
354
|
DESCRIPTOR: _descriptor.Descriptor
|
|
332
355
|
|
|
356
|
+
@_typing.final
|
|
357
|
+
class EncryptionContextJsonEntry(_message.Message):
|
|
358
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
359
|
+
|
|
360
|
+
KEY_FIELD_NUMBER: _builtins.int
|
|
361
|
+
VALUE_FIELD_NUMBER: _builtins.int
|
|
362
|
+
key: _builtins.str
|
|
363
|
+
value: _builtins.bytes
|
|
364
|
+
def __init__(
|
|
365
|
+
self,
|
|
366
|
+
*,
|
|
367
|
+
key: _builtins.str = ...,
|
|
368
|
+
value: _builtins.bytes = ...,
|
|
369
|
+
) -> None: ...
|
|
370
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
371
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
372
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
|
|
373
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
374
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
375
|
+
|
|
333
376
|
CONFIG_FIELD_NUMBER: _builtins.int
|
|
377
|
+
ENCRYPTION_CONTEXT_JSON_FIELD_NUMBER: _builtins.int
|
|
334
378
|
@_builtins.property
|
|
335
379
|
def config(self) -> _engine_common_pb2.EngineRunnableConfig: ...
|
|
380
|
+
@_builtins.property
|
|
381
|
+
def encryption_context_json(self) -> _containers.ScalarMap[_builtins.str, _builtins.bytes]: ...
|
|
336
382
|
def __init__(
|
|
337
383
|
self,
|
|
338
384
|
*,
|
|
339
385
|
config: _engine_common_pb2.EngineRunnableConfig | None = ...,
|
|
386
|
+
encryption_context_json: _abc.Mapping[_builtins.str, _builtins.bytes] | None = ...,
|
|
340
387
|
) -> None: ...
|
|
341
388
|
_HasFieldArgType: _TypeAlias = _typing.Literal["config", b"config"] # noqa: Y015
|
|
342
389
|
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
343
|
-
_ClearFieldArgType: _TypeAlias = _typing.Literal["config", b"config"] # noqa: Y015
|
|
390
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["config", b"config", "encryption_context_json", b"encryption_context_json"] # noqa: Y015
|
|
344
391
|
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
345
392
|
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
346
393
|
|
|
@@ -446,10 +493,31 @@ Global___DeltaChannelHistoryEntry: _TypeAlias = DeltaChannelHistoryEntry # noqa
|
|
|
446
493
|
class GetDeltaChannelHistoryRequest(_message.Message):
|
|
447
494
|
DESCRIPTOR: _descriptor.Descriptor
|
|
448
495
|
|
|
496
|
+
@_typing.final
|
|
497
|
+
class EncryptionContextJsonEntry(_message.Message):
|
|
498
|
+
DESCRIPTOR: _descriptor.Descriptor
|
|
499
|
+
|
|
500
|
+
KEY_FIELD_NUMBER: _builtins.int
|
|
501
|
+
VALUE_FIELD_NUMBER: _builtins.int
|
|
502
|
+
key: _builtins.str
|
|
503
|
+
value: _builtins.bytes
|
|
504
|
+
def __init__(
|
|
505
|
+
self,
|
|
506
|
+
*,
|
|
507
|
+
key: _builtins.str = ...,
|
|
508
|
+
value: _builtins.bytes = ...,
|
|
509
|
+
) -> None: ...
|
|
510
|
+
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
511
|
+
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
512
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "value", b"value"] # noqa: Y015
|
|
513
|
+
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
514
|
+
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
515
|
+
|
|
449
516
|
THREAD_ID_FIELD_NUMBER: _builtins.int
|
|
450
517
|
CHECKPOINT_NS_FIELD_NUMBER: _builtins.int
|
|
451
518
|
CHECKPOINT_ID_FIELD_NUMBER: _builtins.int
|
|
452
519
|
CHANNELS_FIELD_NUMBER: _builtins.int
|
|
520
|
+
ENCRYPTION_CONTEXT_JSON_FIELD_NUMBER: _builtins.int
|
|
453
521
|
thread_id: _builtins.str
|
|
454
522
|
"""Thread whose delta-channel state to reconstruct."""
|
|
455
523
|
checkpoint_ns: _builtins.str
|
|
@@ -462,6 +530,8 @@ class GetDeltaChannelHistoryRequest(_message.Message):
|
|
|
462
530
|
def channels(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]:
|
|
463
531
|
"""Channels to reconstruct."""
|
|
464
532
|
|
|
533
|
+
@_builtins.property
|
|
534
|
+
def encryption_context_json(self) -> _containers.ScalarMap[_builtins.str, _builtins.bytes]: ...
|
|
465
535
|
def __init__(
|
|
466
536
|
self,
|
|
467
537
|
*,
|
|
@@ -469,10 +539,11 @@ class GetDeltaChannelHistoryRequest(_message.Message):
|
|
|
469
539
|
checkpoint_ns: _builtins.str = ...,
|
|
470
540
|
checkpoint_id: _builtins.str = ...,
|
|
471
541
|
channels: _abc.Iterable[_builtins.str] | None = ...,
|
|
542
|
+
encryption_context_json: _abc.Mapping[_builtins.str, _builtins.bytes] | None = ...,
|
|
472
543
|
) -> None: ...
|
|
473
544
|
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
474
545
|
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
475
|
-
_ClearFieldArgType: _TypeAlias = _typing.Literal["channels", b"channels", "checkpoint_id", b"checkpoint_id", "checkpoint_ns", b"checkpoint_ns", "thread_id", b"thread_id"] # noqa: Y015
|
|
546
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["channels", b"channels", "checkpoint_id", b"checkpoint_id", "checkpoint_ns", b"checkpoint_ns", "encryption_context_json", b"encryption_context_json", "thread_id", b"thread_id"] # noqa: Y015
|
|
476
547
|
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
477
548
|
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
478
549
|
|
{langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/store_pb2.py
RENAMED
|
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
|
|
|
25
25
|
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
|
|
26
26
|
|
|
27
27
|
|
|
28
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bstore.proto\x12\x05store\x1a\x1bgoogle/protobuf/empty.proto\"\xb5\x01\n\x0c\x42\x61tchRequest\x12\x16\n\x03ops\x18\x01 \x03(\x0b\x32\t.store.Op\x12O\n\x17\x65ncryption_context_json\x18\x02 \x03(\x0b\x32..store.BatchRequest.EncryptionContextJsonEntry\x1a<\n\x1a\x45ncryptionContextJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"1\n\rBatchResponse\x12 \n\x07results\x18\x01 \x03(\x0b\x32\x0f.store.OpResult\"\xbe\x01\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\x12!\n\x06\x64\x65lete\x18\x03 \x01(\x0b\x32\x0f.store.DeleteOpH\x00\x12!\n\x06search\x18\x04 \x01(\x0b\x32\x0f.store.SearchOpH\x00\x12\x32\n\x0flist_namespaces\x18\x05 \x01(\x0b\x32\x17.store.ListNamespacesOpH\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\"*\n\x08\x44\x65leteOp\x12\x11\n\tnamespace\x18\x01 \x03(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\"L\n\x0f\x46ilterCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x02op\x18\x02 \x01(\x0e\x32\x0f.store.FilterOp\x12\x0f\n\x07operand\x18\x03 \x01(\t\"\xa4\x01\n\x08SearchOp\x12\x18\n\x10namespace_prefix\x18\x01 \x03(\t\x12&\n\x06\x66ilter\x18\x02 \x03(\x0b\x32\x16.store.FilterCondition\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x12\n\nrefreshTTL\x18\x06 \x01(\x08\x12#\n\x06vector\x18\x07 \x01(\x0b\x32\x13.store.VectorSearch\"\x94\x01\n\x0cVectorSearch\x12\x17\n\x0fquery_embedding\x18\x01 \x03(\x02\x12*\n\rdistance_type\x18\x02 \x01(\x0e\x32\x13.store.DistanceType\x12\x17\n\x0fvectors_per_doc\x18\x03 \x01(\x05\x12&\n\x0bvector_type\x18\x04 \x01(\x0e\x32\x11.store.VectorType\"D\n\x0eMatchCondition\x12$\n\nmatch_type\x18\x01 \x01(\x0e\x32\x10.store.MatchType\x12\x0c\n\x04path\x18\x02 \x03(\t\"\x88\x01\n\x10ListNamespacesOp\x12/\n\x10match_conditions\x18\x01 \x03(\x0b\x32\x15.store.MatchCondition\x12\x16\n\tmax_depth\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x42\x0c\n\n_max_depth\"3\n\x0bVectorValue\x12\x11\n\tvaluePath\x18\x01 \x01(\t\x12\x11\n\tembedding\x18\x02 \x03(\x02\"
|
|
28
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0bstore.proto\x12\x05store\x1a\x1bgoogle/protobuf/empty.proto\"\xb5\x01\n\x0c\x42\x61tchRequest\x12\x16\n\x03ops\x18\x01 \x03(\x0b\x32\t.store.Op\x12O\n\x17\x65ncryption_context_json\x18\x02 \x03(\x0b\x32..store.BatchRequest.EncryptionContextJsonEntry\x1a<\n\x1a\x45ncryptionContextJsonEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c:\x02\x38\x01\"1\n\rBatchResponse\x12 \n\x07results\x18\x01 \x03(\x0b\x32\x0f.store.OpResult\"\xbe\x01\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\x12!\n\x06\x64\x65lete\x18\x03 \x01(\x0b\x32\x0f.store.DeleteOpH\x00\x12!\n\x06search\x18\x04 \x01(\x0b\x32\x0f.store.SearchOpH\x00\x12\x32\n\x0flist_namespaces\x18\x05 \x01(\x0b\x32\x17.store.ListNamespacesOpH\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\"*\n\x08\x44\x65leteOp\x12\x11\n\tnamespace\x18\x01 \x03(\t\x12\x0b\n\x03key\x18\x02 \x01(\t\"L\n\x0f\x46ilterCondition\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\x1b\n\x02op\x18\x02 \x01(\x0e\x32\x0f.store.FilterOp\x12\x0f\n\x07operand\x18\x03 \x01(\t\"\xa4\x01\n\x08SearchOp\x12\x18\n\x10namespace_prefix\x18\x01 \x03(\t\x12&\n\x06\x66ilter\x18\x02 \x03(\x0b\x32\x16.store.FilterCondition\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x12\x12\n\nrefreshTTL\x18\x06 \x01(\x08\x12#\n\x06vector\x18\x07 \x01(\x0b\x32\x13.store.VectorSearch\"\x94\x01\n\x0cVectorSearch\x12\x17\n\x0fquery_embedding\x18\x01 \x03(\x02\x12*\n\rdistance_type\x18\x02 \x01(\x0e\x32\x13.store.DistanceType\x12\x17\n\x0fvectors_per_doc\x18\x03 \x01(\x05\x12&\n\x0bvector_type\x18\x04 \x01(\x0e\x32\x11.store.VectorType\"D\n\x0eMatchCondition\x12$\n\nmatch_type\x18\x01 \x01(\x0e\x32\x10.store.MatchType\x12\x0c\n\x04path\x18\x02 \x03(\t\"\x88\x01\n\x10ListNamespacesOp\x12/\n\x10match_conditions\x18\x01 \x03(\x0b\x32\x15.store.MatchCondition\x12\x16\n\tmax_depth\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05limit\x18\x03 \x01(\x05\x12\x0e\n\x06offset\x18\x04 \x01(\x05\x42\x0c\n\n_max_depth\"3\n\x0bVectorValue\x12\x11\n\tvaluePath\x18\x01 \x01(\t\x12\x11\n\tembedding\x18\x02 \x03(\x02\"\x8d\x01\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\x12\x17\n\x0fttlMinutesExact\x18\x06 \x01(\x01\"\xb8\x01\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\x12%\n\x06search\x18\x03 \x01(\x0b\x32\x13.store.SearchResultH\x00\x12\x36\n\x0flist_namespaces\x18\x04 \x01(\x0b\x32\x1b.store.ListNamespacesResultH\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(\t\"\x86\x01\n\nSearchItem\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(\t\x12\x12\n\x05score\x18\x06 \x01(\x01H\x00\x88\x01\x01\x42\x08\n\x06_score\"0\n\x0cSearchResult\x12 \n\x05items\x18\x01 \x03(\x0b\x32\x11.store.SearchItem\"\x1a\n\tNamespace\x12\r\n\x05parts\x18\x01 \x03(\t\"<\n\x14ListNamespacesResult\x12$\n\nnamespaces\x18\x01 \x03(\x0b\x32\x10.store.Namespace*\x93\x01\n\x08\x46ilterOp\x12\x19\n\x15\x46ILTER_OP_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x46ILTER_OP_EQ\x10\x01\x12\x10\n\x0c\x46ILTER_OP_NE\x10\x02\x12\x10\n\x0c\x46ILTER_OP_GT\x10\x03\x12\x11\n\rFILTER_OP_GTE\x10\x04\x12\x10\n\x0c\x46ILTER_OP_LT\x10\x05\x12\x11\n\rFILTER_OP_LTE\x10\x06*~\n\x0c\x44istanceType\x12\x1d\n\x19\x44ISTANCE_TYPE_UNSPECIFIED\x10\x00\x12\x18\n\x14\x44ISTANCE_TYPE_COSINE\x10\x01\x12\x14\n\x10\x44ISTANCE_TYPE_L2\x10\x02\x12\x1f\n\x1b\x44ISTANCE_TYPE_INNER_PRODUCT\x10\x03*Z\n\nVectorType\x12\x1b\n\x17VECTOR_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12VECTOR_TYPE_VECTOR\x10\x01\x12\x17\n\x13VECTOR_TYPE_HALFVEC\x10\x02*U\n\tMatchType\x12\x1a\n\x16MATCH_TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11MATCH_TYPE_PREFIX\x10\x01\x12\x15\n\x11MATCH_TYPE_SUFFIX\x10\x02\x32;\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
29
|
|
|
30
30
|
_globals = globals()
|
|
31
31
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -35,14 +35,14 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
35
35
|
_globals['DESCRIPTOR']._serialized_options = b'Z=github.com/langchain-ai/langgraph-api/core/internal/engine/pb'
|
|
36
36
|
_globals['_BATCHREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._loaded_options = None
|
|
37
37
|
_globals['_BATCHREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_options = b'8\001'
|
|
38
|
-
_globals['_FILTEROP']._serialized_start=
|
|
39
|
-
_globals['_FILTEROP']._serialized_end=
|
|
40
|
-
_globals['_DISTANCETYPE']._serialized_start=
|
|
41
|
-
_globals['_DISTANCETYPE']._serialized_end=
|
|
42
|
-
_globals['_VECTORTYPE']._serialized_start=
|
|
43
|
-
_globals['_VECTORTYPE']._serialized_end=
|
|
44
|
-
_globals['_MATCHTYPE']._serialized_start=
|
|
45
|
-
_globals['_MATCHTYPE']._serialized_end=
|
|
38
|
+
_globals['_FILTEROP']._serialized_start=1951
|
|
39
|
+
_globals['_FILTEROP']._serialized_end=2098
|
|
40
|
+
_globals['_DISTANCETYPE']._serialized_start=2100
|
|
41
|
+
_globals['_DISTANCETYPE']._serialized_end=2226
|
|
42
|
+
_globals['_VECTORTYPE']._serialized_start=2228
|
|
43
|
+
_globals['_VECTORTYPE']._serialized_end=2318
|
|
44
|
+
_globals['_MATCHTYPE']._serialized_start=2320
|
|
45
|
+
_globals['_MATCHTYPE']._serialized_end=2405
|
|
46
46
|
_globals['_BATCHREQUEST']._serialized_start=52
|
|
47
47
|
_globals['_BATCHREQUEST']._serialized_end=233
|
|
48
48
|
_globals['_BATCHREQUEST_ENCRYPTIONCONTEXTJSONENTRY']._serialized_start=173
|
|
@@ -67,20 +67,20 @@ if not _descriptor._USE_C_DESCRIPTORS:
|
|
|
67
67
|
_globals['_LISTNAMESPACESOP']._serialized_end=1187
|
|
68
68
|
_globals['_VECTORVALUE']._serialized_start=1189
|
|
69
69
|
_globals['_VECTORVALUE']._serialized_end=1240
|
|
70
|
-
_globals['_PUTOP']._serialized_start=
|
|
71
|
-
_globals['_PUTOP']._serialized_end=
|
|
72
|
-
_globals['_OPRESULT']._serialized_start=
|
|
73
|
-
_globals['_OPRESULT']._serialized_end=
|
|
74
|
-
_globals['_ITEM']._serialized_start=
|
|
75
|
-
_globals['_ITEM']._serialized_end=
|
|
76
|
-
_globals['_SEARCHITEM']._serialized_start=
|
|
77
|
-
_globals['_SEARCHITEM']._serialized_end=
|
|
78
|
-
_globals['_SEARCHRESULT']._serialized_start=
|
|
79
|
-
_globals['_SEARCHRESULT']._serialized_end=
|
|
80
|
-
_globals['_NAMESPACE']._serialized_start=
|
|
81
|
-
_globals['_NAMESPACE']._serialized_end=
|
|
82
|
-
_globals['_LISTNAMESPACESRESULT']._serialized_start=
|
|
83
|
-
_globals['_LISTNAMESPACESRESULT']._serialized_end=
|
|
84
|
-
_globals['_STORE']._serialized_start=
|
|
85
|
-
_globals['_STORE']._serialized_end=
|
|
70
|
+
_globals['_PUTOP']._serialized_start=1243
|
|
71
|
+
_globals['_PUTOP']._serialized_end=1384
|
|
72
|
+
_globals['_OPRESULT']._serialized_start=1387
|
|
73
|
+
_globals['_OPRESULT']._serialized_end=1571
|
|
74
|
+
_globals['_ITEM']._serialized_start=1573
|
|
75
|
+
_globals['_ITEM']._serialized_end=1671
|
|
76
|
+
_globals['_SEARCHITEM']._serialized_start=1674
|
|
77
|
+
_globals['_SEARCHITEM']._serialized_end=1808
|
|
78
|
+
_globals['_SEARCHRESULT']._serialized_start=1810
|
|
79
|
+
_globals['_SEARCHRESULT']._serialized_end=1858
|
|
80
|
+
_globals['_NAMESPACE']._serialized_start=1860
|
|
81
|
+
_globals['_NAMESPACE']._serialized_end=1886
|
|
82
|
+
_globals['_LISTNAMESPACESRESULT']._serialized_start=1888
|
|
83
|
+
_globals['_LISTNAMESPACESRESULT']._serialized_end=1948
|
|
84
|
+
_globals['_STORE']._serialized_start=2407
|
|
85
|
+
_globals['_STORE']._serialized_end=2466
|
|
86
86
|
# @@protoc_insertion_point(module_scope)
|
{langgraph_api-0.17.0.dev2 → langgraph_api-0.17.0.dev3}/langgraph_grpc_common/proto/store_pb2.pyi
RENAMED
|
@@ -472,10 +472,14 @@ class PutOp(_message.Message):
|
|
|
472
472
|
VALUE_JSON_FIELD_NUMBER: _builtins.int
|
|
473
473
|
TTLMINUTES_FIELD_NUMBER: _builtins.int
|
|
474
474
|
VECTORS_FIELD_NUMBER: _builtins.int
|
|
475
|
+
TTLMINUTESEXACT_FIELD_NUMBER: _builtins.int
|
|
475
476
|
key: _builtins.str
|
|
476
477
|
value_json: _builtins.bytes
|
|
477
478
|
"""JSON-encoded value (orjson)."""
|
|
478
479
|
ttlMinutes: _builtins.int
|
|
480
|
+
"""Whole minutes, rounded up; stored as ttl_minutes and used for TTL refresh."""
|
|
481
|
+
ttlMinutesExact: _builtins.float
|
|
482
|
+
"""Exact, possibly fractional TTL in minutes; sets the initial expires_at."""
|
|
479
483
|
@_builtins.property
|
|
480
484
|
def namespace(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
|
|
481
485
|
@_builtins.property
|
|
@@ -490,10 +494,11 @@ class PutOp(_message.Message):
|
|
|
490
494
|
value_json: _builtins.bytes = ...,
|
|
491
495
|
ttlMinutes: _builtins.int = ...,
|
|
492
496
|
vectors: _abc.Iterable[Global___VectorValue] | None = ...,
|
|
497
|
+
ttlMinutesExact: _builtins.float = ...,
|
|
493
498
|
) -> None: ...
|
|
494
499
|
_HasFieldArgType: _TypeAlias = _Never # noqa: Y015
|
|
495
500
|
def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
|
|
496
|
-
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "namespace", b"namespace", "ttlMinutes", b"ttlMinutes", "value_json", b"value_json", "vectors", b"vectors"] # noqa: Y015
|
|
501
|
+
_ClearFieldArgType: _TypeAlias = _typing.Literal["key", b"key", "namespace", b"namespace", "ttlMinutes", b"ttlMinutes", "ttlMinutesExact", b"ttlMinutesExact", "value_json", b"value_json", "vectors", b"vectors"] # noqa: Y015
|
|
497
502
|
def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
|
|
498
503
|
def WhichOneof(self, oneof_group: _Never) -> None: ...
|
|
499
504
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.17.0.dev2"
|