langgraph-api 0.16.0.dev7__tar.gz → 0.16.0.dev9__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.16.0.dev7 → langgraph_api-0.16.0.dev9}/PKG-INFO +2 -1
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/README.md +27 -5
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/delta_turns.ts +17 -2
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/capacity-ci.js +359 -146
- langgraph_api-0.16.0.dev9/benchmark/capacity-ci.test.js +404 -0
- langgraph_api-0.16.0.dev9/benchmark/daily-report.js +503 -0
- langgraph_api-0.16.0.dev9/benchmark/daily-report.test.js +463 -0
- langgraph_api-0.16.0.dev9/benchmark/delta-report.js +546 -0
- langgraph_api-0.16.0.dev9/benchmark/delta-report.test.js +155 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/history.js +22 -2
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/history.test.js +46 -4
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/runner-descriptions.js +25 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/server-metrics.js +10 -0
- langgraph_api-0.16.0.dev9/benchmark/slack.js +49 -0
- langgraph_api-0.16.0.dev9/langgraph_api/__init__.py +1 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/__init__.py +53 -8
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/a2a.py +8 -11
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/runs.py +73 -43
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/store.py +40 -14
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/ops/threads.py +2 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/client.mts +8 -1
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/remote.py +95 -10
- langgraph_api-0.16.0.dev9/langgraph_api/js/src/auth-mutations.mts +71 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/lc_security/transport.py +1 -1
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/schema.py +4 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/state.py +11 -5
- langgraph_api-0.16.0.dev9/langgraph_grpc_common/proto/core_api_pb2.py +274 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/core_api_pb2.pyi +10 -2
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/openapi.json +4 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/pyproject.toml +1 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/uv.lock +2 -0
- langgraph_api-0.16.0.dev7/benchmark/capacity-ci.test.js +0 -265
- langgraph_api-0.16.0.dev7/benchmark/daily-report.js +0 -358
- langgraph_api-0.16.0.dev7/benchmark/daily-report.test.js +0 -350
- langgraph_api-0.16.0.dev7/langgraph_api/__init__.py +0 -1
- langgraph_api-0.16.0.dev7/langgraph_grpc_common/proto/core_api_pb2.py +0 -274
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/.gitignore +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/LICENSE +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/Makefile +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/README.md +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/.gitignore +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/Makefile +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/assistant.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/benchmarks.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/classify-error.test.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/classify-error.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/delta-turns-lib.test.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/delta-turns-lib.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/interrupt_resume.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/log-failure.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/meta_workload.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/store.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/stream_write.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/thread.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/types.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/wait_write.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/clean-cli.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/clean.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/continuous/README.md +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/continuous/pyproject.toml +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/continuous/runner.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/continuous/uv.lock +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/graphs.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/host-v2.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/host-v2.test.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/multer.test.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/package.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/ramp.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/reporting/dd_reporting.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/server-metrics.test.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/staircase.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/staircase_step_k6.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/tsconfig.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/update-revision.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/weather.js +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/yarn.lock +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/constraints.txt +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/custom_store.sql +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/forbidden.txt +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/hatch_build.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/healthcheck.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph-cloud-debugging-20260210132856.zip +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/_checkpointer/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/_checkpointer/_adapter.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/_checkpointer/protocol.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/_factory_utils.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/a2ui.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/a2ui_schemas/README.md +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/a2ui_schemas/client_capabilities.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/a2ui_schemas/client_data_model.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/a2ui_schemas/client_to_server.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/a2ui_schemas/server_to_client.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/assistants.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/event_streaming.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/mcp/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/mcp/_constants.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/mcp/_handlers.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/mcp/_models.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/mcp/_routes.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/mcp/_sanitizers.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/profile.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/threads.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/api/ui.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/asgi_transport.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/custom.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/errors.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/beacon_data_plane_jwt_auth.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/cache.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/command.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/config/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/config/_parse.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/config/schemas.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/encryption/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/encryption/aes_json.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/encryption/context.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/encryption/custom.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/encryption/middleware.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/encryption/shared.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/capabilities.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/constants.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/event_normalizers.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/namespace.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/service.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/session.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/state_normalizers.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/event_streaming/types.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/feature_flags.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/client.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/ops/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/ops/assistants.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/ops/cache.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/ops/crons.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/ops/runs.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/server.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/servicers/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/grpc/servicers/encryption.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/http.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/http_metrics.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/http_metrics_utils.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/.prettierrc +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/.yarnclean +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/build.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/client.http.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/package.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/graph.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/load.hooks.mjs +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/preload.mjs +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/utils/files.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/sse.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/traceblock.mts +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/tsconfig.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/ui.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/js/yarn.lock +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/lc_security/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/lc_security/exceptions.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/lc_security/policy.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/metrics_collector.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/metrics_otlp.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/middleware/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/middleware/ensure_store.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/middleware/http_logger.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/middleware/private_network.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/middleware/request_id.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/otel_context.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/queue_entrypoint.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/release_tags.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/route.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/runner/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/runner/__main__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/self_hosted_logs.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/self_hosted_metrics.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/server.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/sse.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/store.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/stream.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/stream_v2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/timing/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/timing/profiler.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/timing/timer.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/traceblock.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/tracing_session.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/tunneling/cloudflare.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/cache.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/config.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/errors.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/extract.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/future.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/headers.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/network.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/retriable_client.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/stream_codec.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/utils/uuids.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/webhook.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/worker.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_api/worker_runtime.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/checkpointer.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/_compat.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/config.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/durability.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/store.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/struct.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/conversion/value.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/runner_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/runner_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/runner_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/runner_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/store_pb2.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/serde.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_grpc_common/store.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/__init__.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/checkpoint.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/database.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/lifespan.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/metrics.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/ops.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/queue.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/retry.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/routes.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/langgraph_runtime/store.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/logging.json +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/scripts/build_wheel.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/scripts/create_license.py +0 -0
- {langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/scripts/run_a2a_tck.py +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: langgraph-api
|
|
3
|
-
Version: 0.16.0.
|
|
3
|
+
Version: 0.16.0.dev9
|
|
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
|
|
7
7
|
Requires-Python: >=3.11
|
|
8
|
+
Requires-Dist: anyio>=4.14.2
|
|
8
9
|
Requires-Dist: cloudpickle>=3.0.0
|
|
9
10
|
Requires-Dist: cryptography>=50.0.0
|
|
10
11
|
Requires-Dist: grpcio-health-checking<1.82.0,>=1.81.0
|
|
@@ -129,7 +129,11 @@ by replaying them. That moves cost from write to read, and the read cost grows w
|
|
|
129
129
|
thread depth. `delta_turns` measures it: one thread per VU, one turn per iteration,
|
|
130
130
|
`turn_duration` tagged by depth bucket.
|
|
131
131
|
|
|
132
|
-
|
|
132
|
+
`benchmark-delta.yml` runs four cells nightly, 20 users for 25 minutes each: plain channel, then
|
|
133
|
+
delta snapshotting every 50 (`benchmark_delta_freq`, the deepagents setting), 500
|
|
134
|
+
(`benchmark_delta_500`) and 1000 (`benchmark_delta`, the library default). `delta-report.js` posts
|
|
135
|
+
a headline table (non-delta vs delta at 50: read, write, storage by depth) and one table per metric
|
|
136
|
+
across the three frequencies. The messages and migration cells stay manual. Run the cells one at a time and compare `turn_duration` by depth. Both sides get slower
|
|
133
137
|
with depth for different reasons, the control by re-writing a growing value and delta by
|
|
134
138
|
replaying more writes, so the deliverable is which curve is worse and where they cross.
|
|
135
139
|
|
|
@@ -138,6 +142,7 @@ replaying more writes, so the deliverable is which curve is worse and where they
|
|
|
138
142
|
| control | `GRAPH_ID=benchmark EXPECT_DELTA=false` |
|
|
139
143
|
| delta, snapshot every 1000 | `GRAPH_ID=benchmark_delta` |
|
|
140
144
|
| delta, snapshot every 50 | `GRAPH_ID=benchmark_delta_freq` |
|
|
145
|
+
| delta, snapshot every 500 | `GRAPH_ID=benchmark_delta_500` |
|
|
141
146
|
| delta on a message list | `GRAPH_ID=benchmark_delta_messages PAYLOAD=messages` |
|
|
142
147
|
| migration | `GRAPH_ID=benchmark_delta MIGRATE_FROM_GRAPH_ID=benchmark MIGRATE_AFTER=200` |
|
|
143
148
|
|
|
@@ -154,7 +159,7 @@ Knobs beyond the common ones:
|
|
|
154
159
|
- `MIGRATE_FROM_GRAPH_ID` / `MIGRATE_AFTER` - run the first N turns on another graph, then
|
|
155
160
|
switch on the same thread.
|
|
156
161
|
- `VERIFY_EVERY` - cold re-read cadence in turns. Default 50, `0` disables.
|
|
157
|
-
- `DEPTH_BUCKET` - width of a depth bucket.
|
|
162
|
+
- `DEPTH_BUCKET` - width of a depth bucket. Defaults to `VERIFY_EVERY`, so each bucket holds one cold read per thread.
|
|
158
163
|
|
|
159
164
|
Two things to know before reading any result:
|
|
160
165
|
|
|
@@ -166,7 +171,9 @@ Two things to know before reading any result:
|
|
|
166
171
|
|
|
167
172
|
The runner fails a turn rather than reporting a false pass when delta is not actually on:
|
|
168
173
|
the `DeltaChannel` import is version-guarded, and its stub degrades to a plain channel.
|
|
169
|
-
At every `VERIFY_EVERY` turn it also
|
|
174
|
+
At every `VERIFY_EVERY` turn it also times the cold `GET /threads/{thread_id}/state` as
|
|
175
|
+
`state_read_duration` (the read path alone; a turn is one save plus the read before it), and
|
|
176
|
+
reads `GET /threads/{thread_id}/storage` and records
|
|
170
177
|
`thread_storage_bytes` tagged by depth bucket and graph, so the control and delta cells can
|
|
171
178
|
be compared on the bytes they occupy, which is what the feature exists to reduce.
|
|
172
179
|
|
|
@@ -185,6 +192,12 @@ be compared on the bytes they occupy, which is what the feature exists to reduce
|
|
|
185
192
|
|
|
186
193
|
- Daily ramp benchmark: `.github/workflows/benchmark.yml`
|
|
187
194
|
- Daily capacity matrix: `.github/workflows/benchmark-capacity-matrix.yml`
|
|
195
|
+
- Daily delta-channel cells: `.github/workflows/benchmark-delta.yml`, reported by `delta-report.js`
|
|
196
|
+
|
|
197
|
+
The staging deployments build their graphs from
|
|
198
|
+
[langgraph-server-benchmarks](https://github.com/langchain-ai/langgraph-server-benchmarks), not
|
|
199
|
+
from this repo. Its `src/agent/graph.py` is a copy of `api/tests/graphs/benchmark.py`; a graph
|
|
200
|
+
change here reaches the nightly only once that copy is updated.
|
|
188
201
|
|
|
189
202
|
### Capacity matrix setup
|
|
190
203
|
|
|
@@ -192,9 +205,18 @@ be compared on the bytes they occupy, which is what the feature exists to reduce
|
|
|
192
205
|
2. Fill in `deploymentId` and `baseUrl` in `CAPACITY_DEPLOYMENTS` at the top of [`capacity-ci.js`](capacity-ci.js).
|
|
193
206
|
3. Scheduled run: two parallel CI jobs (one per deployment), aggregate job posts Slack summary.
|
|
194
207
|
|
|
195
|
-
Each cell also records the deployment's own view of its window (queue and API pod counts, CPU peaks) from the control plane's deployment metrics route, and the
|
|
208
|
+
Each cell also records the deployment's own view of its window (queue and API pod counts, CPU peaks) from the control plane's deployment metrics route. The posted message names any component at or over 95% of its CPU request as that tier's bottleneck, and the full per-cell table goes to the message's thread. Every tier starts at one queue pod and autoscales during a cell, so a capacity number is partly a pod-count number; pinning pods at the tier maximum would need the benchmark deployments recreated as `external_docker` sources, the only kind whose `resource_spec` the API accepts.
|
|
209
|
+
|
|
210
|
+
### Slack reports
|
|
211
|
+
|
|
212
|
+
Every report follows one shape so the channel reads the same way each morning, on a phone as well as a desktop:
|
|
213
|
+
|
|
214
|
+
- The first line is the verdict: a dot (green quiet, yellow something regressed or a bottleneck or errors, red something failed), the report name and date, `manual run` when dispatched by hand, the API version, and a clause saying what needs attention. The second line says what the benchmark is, for a reader outside the team.
|
|
215
|
+
- Then `Failed`, `Regressed`, `Improved` and `Bottlenecks` or `Errors` lines, worst first. `Regressed` prints `none` rather than going quiet.
|
|
216
|
+
- One table per deployment, about 40 characters wide so it fits a phone, with `▲ better` / `▼ worse` markers on cells that left their usual range.
|
|
217
|
+
- One legend line (pass rule, arrows, dot colors), then a link to the thread, which holds the per-cell or per-run numbers and the longer *How to read*, and to the run's artifacts.
|
|
196
218
|
|
|
197
|
-
Both
|
|
219
|
+
Both reports compare tonight with the previous scheduled nights (`history.js`, artifacts fetched with `gh`). A figure is flagged only when it leaves that cell's own observed range, and only once five same-kind nights exist; before that the table says how many nights it has. The daily benchmark posts one digest per workflow once its last runner finishes (`daily-report.js`, fed by each runner's artifact), not one message per runner. The delta-channel report (`delta-report.js`) keeps the plain-vs-delta table in the channel and puts the snapshot-frequency sweep in the thread.
|
|
198
220
|
|
|
199
221
|
Local commands:
|
|
200
222
|
|
{langgraph_api-0.16.0.dev7 → langgraph_api-0.16.0.dev9}/benchmark/benchmark-runners/delta_turns.ts
RENAMED
|
@@ -30,6 +30,8 @@ const PAYLOAD_CHANNELS = [
|
|
|
30
30
|
|
|
31
31
|
/** Tagged by depth: VUs ramp in, so clock time is not thread length. */
|
|
32
32
|
const turnDuration = new Trend('turn_duration', true);
|
|
33
|
+
/** The read path alone: a cold GET /state replays the channel without writing. */
|
|
34
|
+
const stateReadDuration = new Trend('state_read_duration', true);
|
|
33
35
|
const threadStorageBytes = new Trend('thread_storage_bytes', false);
|
|
34
36
|
|
|
35
37
|
const TURN_CONFIG: Omit<DeltaTurnsOptions, 'graphId'> = {
|
|
@@ -37,7 +39,8 @@ const TURN_CONFIG: Omit<DeltaTurnsOptions, 'graphId'> = {
|
|
|
37
39
|
migrateAfter: parseInt(__ENV.MIGRATE_AFTER || '0', 10),
|
|
38
40
|
expectDelta: (__ENV.EXPECT_DELTA || 'true') === 'true',
|
|
39
41
|
verifyEvery: parseInt(__ENV.VERIFY_EVERY || '50', 10),
|
|
40
|
-
|
|
42
|
+
// One bucket per cold read, so every row of the report is one sample per thread.
|
|
43
|
+
bucketSize: parseInt(__ENV.DEPTH_BUCKET || __ENV.VERIFY_EVERY || '50', 10),
|
|
41
44
|
};
|
|
42
45
|
|
|
43
46
|
// Each k6 VU runs this module in its own context, so these are per VU.
|
|
@@ -96,7 +99,13 @@ export class DeltaTurns extends BenchmarkRunner {
|
|
|
96
99
|
// A failed body is not state, and comparing against it would report drift
|
|
97
100
|
// on top of the failure that caused it.
|
|
98
101
|
if (response.status === 200 && (plan.guard || plan.verify)) {
|
|
102
|
+
const readStartedAt = Date.now();
|
|
99
103
|
const state = http.get(`${baseUrl}/threads/${threadId}/state`, requestParams);
|
|
104
|
+
// The turn-2 guard read is at depth 2, not the bucket's end; timing it
|
|
105
|
+
// would pull the first row's read median down.
|
|
106
|
+
if (state.status === 200 && plan.verify) {
|
|
107
|
+
stateReadDuration.add(Date.now() - readStartedAt, { depth: plan.depthBucket });
|
|
108
|
+
}
|
|
100
109
|
addResponse(responses, 'state', state);
|
|
101
110
|
const body = state.status === 200 ? safeJson(state.body) : null;
|
|
102
111
|
if (body === null) {
|
|
@@ -111,7 +120,13 @@ export class DeltaTurns extends BenchmarkRunner {
|
|
|
111
120
|
}
|
|
112
121
|
}
|
|
113
122
|
if (plan.verify) {
|
|
114
|
-
|
|
123
|
+
// Servers before 0.16 have no storage endpoint. A 404 there is a missing
|
|
124
|
+
// sample, not a failed request: without this, one 404 per 50 turns is
|
|
125
|
+
// about 2% and trips the 1% error budget on every cell.
|
|
126
|
+
const storage = http.get(`${baseUrl}/threads/${threadId}/storage`, {
|
|
127
|
+
...requestParams,
|
|
128
|
+
responseCallback: http.expectedStatuses(200, 404),
|
|
129
|
+
});
|
|
115
130
|
addResponse(responses, 'storage', storage);
|
|
116
131
|
const total = storage.status === 200 ? safeJson(storage.body)?.total_bytes : null;
|
|
117
132
|
if (typeof total === 'number') {
|