langgraph-api 0.15.0.dev5__tar.gz → 0.15.0rc2__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.
Files changed (307) hide show
  1. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/.gitignore +1 -0
  2. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/Makefile +4 -6
  3. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/PKG-INFO +1 -1
  4. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/package.json +4 -0
  5. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/yarn.lock +7 -6
  6. langgraph_api-0.15.0rc2/langgraph_api/__init__.py +1 -0
  7. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/a2a.py +56 -12
  8. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/a2ui.py +6 -4
  9. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/mcp/_handlers.py +3 -1
  10. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/config/__init__.py +32 -0
  11. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/cron_scheduler.py +1 -1
  12. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/client.mts +18 -6
  13. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/yarn.lock +33 -28
  14. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/metrics_collector.py +6 -0
  15. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/release_tags.py +35 -17
  16. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/worker.py +36 -163
  17. langgraph_api-0.15.0rc2/langgraph_api/worker_runtime.py +221 -0
  18. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/config.py +2 -0
  19. langgraph_api-0.15.0.dev5/langgraph_api/__init__.py +0 -1
  20. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/LICENSE +0 -0
  21. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/README.md +0 -0
  22. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/.gitignore +0 -0
  23. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/Makefile +0 -0
  24. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/README.md +0 -0
  25. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/assistant.ts +0 -0
  26. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
  27. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
  28. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/benchmarks.ts +0 -0
  29. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
  30. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/classify-error.test.js +0 -0
  31. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/classify-error.ts +0 -0
  32. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/delta-turns-lib.test.js +0 -0
  33. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/delta-turns-lib.ts +0 -0
  34. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/delta_turns.ts +0 -0
  35. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
  36. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/log-failure.ts +0 -0
  37. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/meta_workload.ts +0 -0
  38. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/store.ts +0 -0
  39. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/stream_write.ts +0 -0
  40. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/thread.ts +0 -0
  41. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
  42. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
  43. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/types.ts +0 -0
  44. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/benchmark-runners/wait_write.ts +0 -0
  45. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/capacity-ci.js +0 -0
  46. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/capacity-ci.test.js +0 -0
  47. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/clean-cli.js +0 -0
  48. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/clean.js +0 -0
  49. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/continuous/README.md +0 -0
  50. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/continuous/pyproject.toml +0 -0
  51. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/continuous/runner.py +0 -0
  52. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/continuous/uv.lock +0 -0
  53. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/daily-report.js +0 -0
  54. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/daily-report.test.js +0 -0
  55. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/graphs.js +0 -0
  56. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/host-v2.js +0 -0
  57. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/host-v2.test.js +0 -0
  58. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/ramp.js +0 -0
  59. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/reporting/dd_reporting.py +0 -0
  60. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/staircase.py +0 -0
  61. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/staircase_step_k6.js +0 -0
  62. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/tsconfig.json +0 -0
  63. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/update-revision.js +0 -0
  64. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/benchmark/weather.js +0 -0
  65. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/constraints.txt +0 -0
  66. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/custom_store.sql +0 -0
  67. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/forbidden.txt +0 -0
  68. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/hatch_build.py +0 -0
  69. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/healthcheck.py +0 -0
  70. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph-cloud-debugging-20260210132856.zip +0 -0
  71. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/_checkpointer/__init__.py +0 -0
  72. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/_checkpointer/_adapter.py +0 -0
  73. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/_checkpointer/protocol.py +0 -0
  74. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/_factory_utils.py +0 -0
  75. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/__init__.py +0 -0
  76. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/a2ui_schemas/README.md +0 -0
  77. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/a2ui_schemas/client_capabilities.json +0 -0
  78. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/a2ui_schemas/client_data_model.json +0 -0
  79. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/a2ui_schemas/client_to_server.json +0 -0
  80. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/a2ui_schemas/server_to_client.json +0 -0
  81. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/assistants.py +0 -0
  82. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/event_streaming.py +0 -0
  83. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/mcp/__init__.py +0 -0
  84. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/mcp/_constants.py +0 -0
  85. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/mcp/_models.py +0 -0
  86. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/mcp/_routes.py +0 -0
  87. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/mcp/_sanitizers.py +0 -0
  88. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/meta.py +0 -0
  89. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/openapi.py +0 -0
  90. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/profile.py +0 -0
  91. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/runs.py +0 -0
  92. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/store.py +0 -0
  93. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/threads.py +0 -0
  94. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/api/ui.py +0 -0
  95. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/asgi_transport.py +0 -0
  96. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/asyncio.py +0 -0
  97. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/__init__.py +0 -0
  98. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/custom.py +0 -0
  99. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/errors.py +0 -0
  100. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/langsmith/__init__.py +0 -0
  101. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/langsmith/backend.py +0 -0
  102. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/langsmith/client.py +0 -0
  103. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/middleware.py +0 -0
  104. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/noop.py +0 -0
  105. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/auth/studio_user.py +0 -0
  106. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/beacon_data_plane_jwt_auth.py +0 -0
  107. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/cache.py +0 -0
  108. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/cli.py +0 -0
  109. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/command.py +0 -0
  110. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/config/_parse.py +0 -0
  111. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/config/schemas.py +0 -0
  112. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/encryption/__init__.py +0 -0
  113. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/encryption/aes_json.py +0 -0
  114. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/encryption/context.py +0 -0
  115. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/encryption/custom.py +0 -0
  116. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/encryption/middleware.py +0 -0
  117. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/encryption/shared.py +0 -0
  118. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/errors.py +0 -0
  119. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/__init__.py +0 -0
  120. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/capabilities.py +0 -0
  121. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/constants.py +0 -0
  122. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/event_normalizers.py +0 -0
  123. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/namespace.py +0 -0
  124. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/service.py +0 -0
  125. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/session.py +0 -0
  126. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/state_normalizers.py +0 -0
  127. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/event_streaming/types.py +0 -0
  128. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/feature_flags.py +0 -0
  129. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/graph.py +0 -0
  130. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/__init__.py +0 -0
  131. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/client.py +0 -0
  132. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
  133. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/ops/__init__.py +0 -0
  134. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/ops/assistants.py +0 -0
  135. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/ops/cache.py +0 -0
  136. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/ops/crons.py +0 -0
  137. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/ops/runs.py +0 -0
  138. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/ops/threads.py +0 -0
  139. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/server.py +0 -0
  140. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/servicers/__init__.py +0 -0
  141. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
  142. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/grpc/servicers/encryption.py +0 -0
  143. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/http.py +0 -0
  144. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/http_metrics.py +0 -0
  145. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/http_metrics_utils.py +0 -0
  146. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/.gitignore +0 -0
  147. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/.prettierrc +0 -0
  148. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/.yarnclean +0 -0
  149. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/__init__.py +0 -0
  150. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/base.py +0 -0
  151. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/build.mts +0 -0
  152. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/client.http.mts +0 -0
  153. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/errors.py +0 -0
  154. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/global.d.ts +0 -0
  155. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/package.json +0 -0
  156. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/remote.py +0 -0
  157. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/schema.py +0 -0
  158. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/graph.mts +0 -0
  159. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/load.hooks.mjs +0 -0
  160. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/preload.mjs +0 -0
  161. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
  162. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/utils/files.mts +0 -0
  163. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/utils/importMap.mts +0 -0
  164. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  165. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/src/utils/serde.mts +0 -0
  166. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/sse.py +0 -0
  167. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/traceblock.mts +0 -0
  168. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/tsconfig.json +0 -0
  169. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/js/ui.py +0 -0
  170. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/lc_security/__init__.py +0 -0
  171. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/lc_security/exceptions.py +0 -0
  172. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/lc_security/policy.py +0 -0
  173. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/lc_security/transport.py +0 -0
  174. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/logging.py +0 -0
  175. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/metadata.py +0 -0
  176. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/metrics_otlp.py +0 -0
  177. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/middleware/__init__.py +0 -0
  178. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/middleware/ensure_store.py +0 -0
  179. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/middleware/http_logger.py +0 -0
  180. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/middleware/private_network.py +0 -0
  181. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/middleware/request_id.py +0 -0
  182. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/models/__init__.py +0 -0
  183. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/models/run.py +0 -0
  184. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/otel_context.py +0 -0
  185. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/patch.py +0 -0
  186. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/queue_entrypoint.py +0 -0
  187. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/route.py +0 -0
  188. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/schema.py +0 -0
  189. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/self_hosted_logs.py +0 -0
  190. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/self_hosted_metrics.py +0 -0
  191. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/serde.py +0 -0
  192. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/server.py +0 -0
  193. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/sse.py +0 -0
  194. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/state.py +0 -0
  195. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/store.py +0 -0
  196. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/stream.py +0 -0
  197. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/stream_v2.py +0 -0
  198. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/timing/__init__.py +0 -0
  199. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/timing/profiler.py +0 -0
  200. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/timing/timer.py +0 -0
  201. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/traceblock.py +0 -0
  202. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/tracing_session.py +0 -0
  203. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/tunneling/cloudflare.py +0 -0
  204. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/__init__.py +0 -0
  205. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/cache.py +0 -0
  206. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/config.py +0 -0
  207. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/errors.py +0 -0
  208. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/extract.py +0 -0
  209. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/future.py +0 -0
  210. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/headers.py +0 -0
  211. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/network.py +0 -0
  212. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/retriable_client.py +0 -0
  213. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/stream_codec.py +0 -0
  214. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/utils/uuids.py +0 -0
  215. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/validation.py +0 -0
  216. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_api/webhook.py +0 -0
  217. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/__init__.py +0 -0
  218. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/checkpointer.py +0 -0
  219. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/__init__.py +0 -0
  220. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/_compat.py +0 -0
  221. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
  222. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/durability.py +0 -0
  223. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/store.py +0 -0
  224. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/struct.py +0 -0
  225. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/conversion/value.py +0 -0
  226. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/__init__.py +0 -0
  227. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
  228. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
  229. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
  230. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
  231. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
  232. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
  233. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
  234. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
  235. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
  236. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
  237. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
  238. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
  239. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
  240. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
  241. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
  242. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
  243. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
  244. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
  245. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
  246. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
  247. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
  248. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
  249. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
  250. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
  251. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
  252. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
  253. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
  254. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
  255. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
  256. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
  257. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
  258. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
  259. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
  260. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
  261. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
  262. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
  263. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
  264. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
  265. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
  266. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
  267. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
  268. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
  269. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
  270. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
  271. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
  272. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
  273. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
  274. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
  275. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
  276. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
  277. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
  278. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
  279. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
  280. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
  281. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
  282. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
  283. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/store_pb2.py +0 -0
  284. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
  285. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
  286. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
  287. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/serde.py +0 -0
  288. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_grpc_common/store.py +0 -0
  289. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_license/__init__.py +0 -0
  290. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_license/validation.py +0 -0
  291. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/__init__.py +0 -0
  292. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/checkpoint.py +0 -0
  293. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/database.py +0 -0
  294. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/lifespan.py +0 -0
  295. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/metrics.py +0 -0
  296. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/ops.py +0 -0
  297. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/queue.py +0 -0
  298. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/retry.py +0 -0
  299. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/routes.py +0 -0
  300. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/langgraph_runtime/store.py +0 -0
  301. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/logging.json +0 -0
  302. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/openapi.json +0 -0
  303. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/pyproject.toml +0 -0
  304. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/scripts/build_wheel.py +0 -0
  305. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/scripts/create_license.py +0 -0
  306. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/scripts/run_a2a_tck.py +0 -0
  307. {langgraph_api-0.15.0.dev5 → langgraph_api-0.15.0rc2}/uv.lock +0 -0
@@ -3,5 +3,6 @@
3
3
  .env
4
4
  .ipynb_checkpoints
5
5
  .langgraph-data
6
+ .langgraph-build.json
6
7
  *.sock
7
8
  langgraph_api.duckdb*
@@ -1,8 +1,6 @@
1
1
  .PHONY: build release lint format test test_watch start start-inmem start-inmem-license-oss start build-go-server start-go-server stop-go-server check-version check-base-imports test-a2a-tck test-a2a-tck-must test-a2a-tck-propose-baseline start-test-a2a-tck start-test-a2a-tck-must start-test-a2a-tck-watch test-mcp-conformance start-test-mcp-conformance list-mcp-scenarios test-auth-read-only-assistant
2
2
 
3
- # Environment variables
4
- LANGSERVE_GRAPHS_ALL = '{"agent": {"path": "./tests/graphs/agent.py:graph", "description": "agent"}, "assistant_id_runtime": "./tests/graphs/assistant_id_runtime.py:graph", "custom_lifespan": "./tests/graphs/my_router.py:graph", "single_node": "./tests/graphs/single_node.py:graph", "benchmark": "./tests/graphs/benchmark.py:graph", "benchmark_delta": "./tests/graphs/benchmark.py:graph_delta", "benchmark_delta_freq": "./tests/graphs/benchmark.py:graph_delta_freq", "config_graph": "./tests/graphs/config_graph.py:graph", "other": "./tests/graphs/other.py:make_graph", "weather": "./tests/graphs/weather.py:mk_weather_graph", "searchy": "./tests/graphs/searchy.py:graph", "agent_simple": "./tests/graphs/agent_simple.py:graph", "simple_runtime": "./tests/graphs/simple_runtime.py:graph", "agent_interrupt": "./tests/graphs/agent_interrupt.py:graph", "agent_parallel_interrupt": "./tests/graphs/agent_parallel_interrupt.py:graph", "message_type_test": "./tests/graphs/message_type_test.py:graph", "remote_subgraph_parent": "./tests/graphs/remote_subgraph_parent.py:graph", "simple_remote": "./tests/graphs/simple_remote.py:graph", "nested_subgraphs": "./tests/graphs/nested_subgraphs.py:graph", "functional_fibonacci": "./tests/graphs/functional_fibonacci.py:fibonacci", "state_graph_fibonacci": "./tests/graphs/state_graph_fibonacci.py:fibonacci", "max_concurrency_graph": "./tests/graphs/max_concurrency_graph.py:graph", "unserializable_subgraph": "./tests/graphs/unserializable_subgraph.py:graph", "agent_interrupt_text": "./tests/graphs/agent_interrupt_text.py:graph", "agent_echo_stream": "./tests/graphs/agent_echo_stream.py:graph", "agent_tool_stream": "./tests/graphs/agent_tool_stream.py:graph", "runtime_graph": "./tests/graphs/runtime_graph.py:graph", "tool_call_chunk_stream": "./tests/graphs/tool_call_chunk_stream.py:graph", "ui_tool_call_stream": "./tests/graphs/ui_tool_call_stream.py:graph", "agent_metrics_stream": "./tests/graphs/agent_metrics_stream.py:graph", "agent_multimodal_stream": "./tests/graphs/agent_multimodal_stream.py:graph", "agent_bedtime_story": "./tests/graphs/agent_bedtime_story.py:graph", "delta_channel": "./tests/graphs/delta_channel.py:graph", "delta_channel_freq": "./tests/graphs/delta_channel_freq.py:graph", "delta_channel_files": "./tests/graphs/delta_channel_files.py:graph", "delta_channel_files_freq": "./tests/graphs/delta_channel_files_freq.py:graph", "delta_channel_legacy": "./tests/graphs/delta_channel_migration.py:graph_legacy", "delta_channel_delta": "./tests/graphs/delta_channel_migration.py:graph_delta", "delta_channel_delta_filter": "./tests/graphs/delta_channel_migration.py:graph_delta_filter", "delta_channel_messages_freq": "./tests/graphs/delta_channel_messages.py:graph_freq", "delta_channel_messages": "./tests/graphs/delta_channel_messages.py:graph", "delta_channel_messages_legacy": "./tests/graphs/delta_channel_messages.py:graph_legacy", "delta_channel_messages_remove": "./tests/graphs/delta_channel_messages.py:graph_remove", "delta_channel_messages_update": "./tests/graphs/delta_channel_messages.py:graph_update", "delta_channel_messages_delta": "./tests/graphs/delta_channel_messages.py:graph_delta", "store_e2e_async": "./tests/graphs/store_e2e.py:graph_async", "store_e2e_sync": "./tests/graphs/store_e2e.py:graph_sync"}'
5
- LANGSERVE_GRAPHS_AUTH = '{"agent": {"path": "./tests/graphs/agent.py:graph", "description": "agent"}, "assistant_id_runtime": "./tests/graphs/assistant_id_runtime.py:graph", "config_graph": "./tests/graphs/config_graph.py:graph", "other": "./tests/graphs/other.py:make_graph", "weather": "./tests/graphs/weather.py:mk_weather_graph", "searchy": "./tests/graphs/searchy.py:graph", "agent_simple": "./tests/graphs/agent_simple.py:graph", "simple_runtime": "./tests/graphs/simple_runtime.py:graph", "agent_parallel_interrupt": "./tests/graphs/agent_parallel_interrupt.py:graph", "functional_fibonacci": "./tests/graphs/functional_fibonacci.py:fibonacci", "state_graph_fibonacci": "./tests/graphs/state_graph_fibonacci.py:fibonacci", "runtime_graph": "./tests/graphs/runtime_graph.py:graph"}'
3
+ LANGSERVE_GRAPHS_ALL := '$(shell uv run python tests/graphs/configure_langgraph.py --path-prefix ./tests/graphs --emit langserve-env)'
6
4
 
7
5
  # Go server management
8
6
  build-go-server:
@@ -238,7 +236,7 @@ start-auth-jwt:
238
236
  LANGGRAPH_RUNTIME_EDITION=inmem LANGGRAPH_HTTP='$(HTTP_CONFIG)' \
239
237
  LANGGRAPH_AES_KEY='$(LANGGRAPH_AES_KEY)' \
240
238
  N_JOBS_PER_WORKER=10 \
241
- LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_AUTH) \
239
+ LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_ALL) \
242
240
  LANGGRAPH_STORE='$(STORE_CONFIG)' \
243
241
  LANGGRAPH_CHECKPOINTER='$(CHECKPOINTER_CONFIG)' \
244
242
  LANGGRAPH_AUTH='$(LANGGRAPH_AUTH)' \
@@ -255,7 +253,7 @@ start-auth-jwt:
255
253
  start-auth-fastapi-jwt:
256
254
  LANGGRAPH_RUNTIME_EDITION=inmem LANGGRAPH_HTTP='$(HTTP_CONFIG)' \
257
255
  N_JOBS_PER_WORKER=10 \
258
- LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_AUTH) \
256
+ LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_ALL) \
259
257
  LANGGRAPH_STORE='$(STORE_CONFIG)' \
260
258
  LANGGRAPH_CHECKPOINTER='$(CHECKPOINTER_CONFIG)' \
261
259
  LANGGRAPH_AUTH='{"path": "./tests/graphs/fastapi_jwt_auth.py:auth"}' \
@@ -280,7 +278,7 @@ define RUN_FASTAPI_JWT_MW_ORDERING
280
278
  LANGGRAPH_RUNTIME_EDITION=inmem \
281
279
  LANGGRAPH_HTTP='{"app": "./tests/graphs/fastapi_jwt_middleware_ordering.py:app", "middleware_order": "$(1)", "enable_custom_route_auth": $(2)}' \
282
280
  N_JOBS_PER_WORKER=10 \
283
- LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_AUTH) \
281
+ LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_ALL) \
284
282
  LANGGRAPH_STORE='$(STORE_CONFIG)' \
285
283
  LANGGRAPH_CHECKPOINTER='$(CHECKPOINTER_CONFIG)' \
286
284
  LANGGRAPH_AUTH='{"path": "./tests/graphs/fastapi_jwt_middleware_ordering.py:auth"}' \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-api
3
- Version: 0.15.0.dev5
3
+ Version: 0.15.0rc2
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
@@ -17,7 +17,11 @@
17
17
  "@types/k6": "^2.0.0",
18
18
  "typescript": "^5.9.3"
19
19
  },
20
+ "overrides": {
21
+ "qs": ">=6.16.0"
22
+ },
20
23
  "resolutions": {
24
+ "qs": ">=6.16.0",
21
25
  "socket.io-parser": ">=4.2.7"
22
26
  },
23
27
  "engines": {
@@ -562,12 +562,13 @@ proxy-addr@~2.0.7:
562
562
  forwarded "0.2.0"
563
563
  ipaddr.js "1.9.1"
564
564
 
565
- qs@6.10.3:
566
- version "6.10.3"
567
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
568
- integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
565
+ qs@6.10.3, qs@>=6.16.0:
566
+ version "6.16.0"
567
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.16.0.tgz#c22c723a28a920f3aacdce8289fabd43eccb79fd"
568
+ integrity sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==
569
569
  dependencies:
570
- side-channel "^1.0.4"
570
+ es-define-property "^1.0.1"
571
+ side-channel "^1.1.1"
571
572
 
572
573
  quickchart-js@^4.0.0:
573
574
  version "4.0.0"
@@ -682,7 +683,7 @@ side-channel-weakmap@^1.0.2:
682
683
  object-inspect "^1.13.3"
683
684
  side-channel-map "^1.0.1"
684
685
 
685
- side-channel@^1.0.4:
686
+ side-channel@^1.1.1:
686
687
  version "1.1.1"
687
688
  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.1.tgz#ea02c62e05dc4bea67d4442f0fb71ee192f8e0ab"
688
689
  integrity sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==
@@ -0,0 +1 @@
1
+ __version__ = "0.15.0rc2"
@@ -55,6 +55,8 @@ MAX_HISTORY_LENGTH_REQUESTED = 10
55
55
  LANGGRAPH_HISTORY_QUERY_LIMIT = 500
56
56
  HISTORY_SCOPE_EXTENSION_URI = "https://langchain.com/a2a/extensions/history-scope/v1"
57
57
  HISTORY_SCOPE_HEADER = "LangGraph-A2A-History-Scope"
58
+ A2A_EXTENSIONS_HEADER = "A2A-Extensions"
59
+ A2UI_EXTENSIONS_HEADER = "X-A2A-Extensions"
58
60
  HistoryScope = Literal["context", "task"]
59
61
 
60
62
 
@@ -123,6 +125,7 @@ class A2UIContext:
123
125
  metadata: dict[str, Any]
124
126
  extensions: list[str]
125
127
  drop_invalid: bool = False
128
+ mime_type: str = A2UI_MIME_TYPE
126
129
 
127
130
 
128
131
  _A2UI_DISABLED_CONTEXT = A2UIContext(False, False, {}, [])
@@ -170,6 +173,11 @@ def _a2ui_context_for_run(
170
173
  active=a2a_metadata.get("a2ui_active") is True,
171
174
  metadata={},
172
175
  extensions=[],
176
+ mime_type=(
177
+ a2a_metadata["a2ui_mime_type"]
178
+ if is_a2ui_mime_type(a2a_metadata.get("a2ui_mime_type"))
179
+ else A2UI_MIME_TYPE
180
+ ),
173
181
  )
174
182
 
175
183
 
@@ -197,26 +205,46 @@ def _a2a_run_metadata(
197
205
  **({"task_id": task_id} if task_id else {}),
198
206
  **({"task_start_id": task_start_id} if task_start_id else {}),
199
207
  **({"a2ui_active": context.active} if context.enabled else {}),
208
+ **(
209
+ {"a2ui_mime_type": context.mime_type}
210
+ if context.enabled and context.active
211
+ else {}
212
+ ),
200
213
  }
201
214
  }
202
215
 
203
216
 
204
217
  def _a2ui_message_context(
205
- message: dict[str, Any], assistant: dict[str, Any]
218
+ params: dict[str, Any],
219
+ assistant: dict[str, Any],
220
+ headers: Headers,
221
+ *,
222
+ default_mime_type: str = A2UI_MIME_TYPE,
206
223
  ) -> A2UIContext:
224
+ message = params.get("message") or {}
207
225
  metadata = message.get("metadata") or {}
208
- extensions = message.get("extensions") or []
209
- if (
210
- not isinstance(metadata, dict)
211
- or not isinstance(extensions, list)
212
- or not all(isinstance(extension, str) for extension in extensions)
213
- ):
214
- raise A2UIValidationError("Invalid A2A message metadata or extensions")
226
+ if not isinstance(metadata, dict):
227
+ raise A2UIValidationError("Invalid A2A message metadata")
228
+ extensions: list[str] = []
229
+ for header in (A2A_EXTENSIONS_HEADER, A2UI_EXTENSIONS_HEADER):
230
+ for header_value in headers.getlist(header):
231
+ for value in header_value.split(","):
232
+ if (extension := value.strip()) and extension not in extensions:
233
+ extensions.append(extension)
234
+ mime_type = default_mime_type
235
+ for part in message.get("parts") or []:
236
+ part_metadata = part.get("metadata") if isinstance(part, dict) else None
237
+ if isinstance(part_metadata, dict) and is_a2ui_mime_type(
238
+ part_metadata.get("mimeType")
239
+ ):
240
+ mime_type = part_metadata["mimeType"]
241
+ break
215
242
  return A2UIContext(
216
243
  enabled=_a2ui_enabled(assistant),
217
244
  active=A2UI_EXTENSION_URI in extensions,
218
245
  metadata=metadata,
219
246
  extensions=extensions,
247
+ mime_type=mime_type,
220
248
  )
221
249
 
222
250
 
@@ -892,7 +920,9 @@ def _process_a2a_message_parts(
892
920
  {
893
921
  "type": "data",
894
922
  "data": part_data,
895
- "metadata": normalize_metadata(part_metadata),
923
+ "metadata": normalize_metadata(
924
+ part_metadata, mime_type=a2ui.mime_type
925
+ ),
896
926
  }
897
927
  )
898
928
  continue
@@ -1114,7 +1144,7 @@ def _content_to_a2a_parts(
1114
1144
  {
1115
1145
  "kind": "data",
1116
1146
  "data": data,
1117
- "metadata": normalize_metadata(metadata),
1147
+ "metadata": normalize_metadata(metadata, mime_type=a2ui.mime_type),
1118
1148
  }
1119
1149
  )
1120
1150
  elif (
@@ -2095,6 +2125,7 @@ async def handle_message_send(
2095
2125
  task_id = None
2096
2126
  task_start_id = str(uuid7())
2097
2127
  task_ids_by_start_id: dict[str, str] = {}
2128
+ a2ui_mime_type = A2UI_MIME_TYPE
2098
2129
  else:
2099
2130
  task = await _resolve_task(
2100
2131
  client,
@@ -2121,10 +2152,16 @@ async def handle_message_send(
2121
2152
  task_id = task.task_id
2122
2153
  task_start_id = None
2123
2154
  task_ids_by_start_id = task.task_ids_by_start_id
2155
+ a2ui_mime_type = _a2ui_context_for_run(task.run).mime_type
2124
2156
 
2125
2157
  # Process A2A message parts into LangChain messages format
2126
2158
  try:
2127
- a2ui = _a2ui_message_context(message, assistant)
2159
+ a2ui = _a2ui_message_context(
2160
+ params,
2161
+ assistant,
2162
+ request.headers,
2163
+ default_mime_type=a2ui_mime_type,
2164
+ )
2128
2165
  message_role = _normalize_input_role(message.get("role", "ROLE_USER"))
2129
2166
  input_content = _process_a2a_message_parts(
2130
2167
  parts,
@@ -3352,6 +3389,7 @@ async def handle_message_stream(
3352
3389
  context_id = context_id_from_message or str(uuid.uuid4())
3353
3390
  task_id = None
3354
3391
  task_start_id = str(uuid7())
3392
+ a2ui_mime_type = A2UI_MIME_TYPE
3355
3393
  else:
3356
3394
  task = await _resolve_task(
3357
3395
  client,
@@ -3389,10 +3427,16 @@ async def handle_message_stream(
3389
3427
  context_id = task.context_id
3390
3428
  task_id = task.task_id
3391
3429
  task_start_id = None
3430
+ a2ui_mime_type = _a2ui_context_for_run(task.run).mime_type
3392
3431
 
3393
3432
  # Process A2A message parts into LangChain messages format
3394
3433
  try:
3395
- a2ui = _a2ui_message_context(message, assistant)
3434
+ a2ui = _a2ui_message_context(
3435
+ params,
3436
+ assistant,
3437
+ request.headers,
3438
+ default_mime_type=a2ui_mime_type,
3439
+ )
3396
3440
  message_role = _normalize_input_role(message.get("role", "ROLE_USER"))
3397
3441
  input_content = _process_a2a_message_parts(
3398
3442
  parts,
@@ -9,8 +9,8 @@ import jsonschema_rs
9
9
  import orjson
10
10
 
11
11
  A2UI_EXTENSION_URI = "https://a2ui.org/a2a-extension/a2ui/v0.9"
12
- A2UI_MIME_TYPE = "application/a2ui+json"
13
- _COMPAT_A2UI_MIME_TYPE = "application/json+a2ui"
12
+ A2UI_MIME_TYPE = "application/json+a2ui"
13
+ _COMPAT_A2UI_MIME_TYPE = "application/a2ui+json"
14
14
  _SCHEMA_DIR = Path(__file__).with_name("a2ui_schemas")
15
15
 
16
16
 
@@ -52,9 +52,11 @@ def is_a2ui_mime_type(value: Any) -> bool:
52
52
  return value in {A2UI_MIME_TYPE, _COMPAT_A2UI_MIME_TYPE}
53
53
 
54
54
 
55
- def normalize_metadata(metadata: dict[str, Any]) -> dict[str, Any]:
55
+ def normalize_metadata(
56
+ metadata: dict[str, Any], *, mime_type: str = A2UI_MIME_TYPE
57
+ ) -> dict[str, Any]:
56
58
  if is_a2ui_mime_type(metadata.get("mimeType")):
57
- return {**metadata, "mimeType": A2UI_MIME_TYPE}
59
+ return {**metadata, "mimeType": mime_type}
58
60
  return metadata
59
61
 
60
62
 
@@ -287,7 +287,9 @@ async def handle_tools_list(
287
287
  schemas = await client.assistants.get_schemas(
288
288
  assistant["assistant_id"], headers=request.headers
289
289
  )
290
- input_schema = schemas.get("input_schema") or {}
290
+ input_schema = schemas.get("input_schema", {})
291
+ if input_schema is None:
292
+ raise ValueError("Input schema generation failed")
291
293
  if input_schema:
292
294
  _sanitizers.simplify_mcp_schema_inplace(input_schema)
293
295
  # MCP spec requires inputSchema to be a JSON Schema with type "object"
@@ -1,4 +1,5 @@
1
1
  import os
2
+ from enum import StrEnum
2
3
  from os import environ, getenv
3
4
  from typing import TYPE_CHECKING, Annotated, Literal, TypeVar, cast
4
5
 
@@ -398,6 +399,35 @@ if THREAD_TTL is None and CHECKPOINTER_CONFIG is not None:
398
399
  THREAD_TTL = CHECKPOINTER_CONFIG.get("ttl")
399
400
 
400
401
  N_JOBS_PER_WORKER = env("N_JOBS_PER_WORKER", cast=int, default=10)
402
+
403
+
404
+ class DispatchMode(StrEnum):
405
+ """How background runs are dispatched.
406
+
407
+ single-process: Python queue loop in the API process (default).
408
+ multi-process: Go queue worker claims runs and dispatches to Python runners.
409
+ """
410
+
411
+ SINGLE_PROCESS = "single-process"
412
+ MULTI_PROCESS = "multi-process"
413
+
414
+
415
+ def _parse_dispatch_mode(value: str) -> DispatchMode:
416
+ try:
417
+ return DispatchMode(value)
418
+ except ValueError:
419
+ allowed = ", ".join(repr(mode.value) for mode in DispatchMode)
420
+ raise ValueError(
421
+ f"Invalid DISPATCH_MODE={value!r}; expected one of: {allowed}"
422
+ ) from None
423
+
424
+
425
+ # Not in public docs: infrastructure dispatch mode
426
+ DISPATCH_MODE: DispatchMode = env(
427
+ "DISPATCH_MODE",
428
+ cast=_parse_dispatch_mode,
429
+ default=DispatchMode.SINGLE_PROCESS,
430
+ )
401
431
  BG_JOB_TIMEOUT_SECS = env("BG_JOB_TIMEOUT_SECS", cast=float, default=86400)
402
432
  STREAM_PUBLISH_RETRY_MAX_DURATION_SECS = env(
403
433
  "LSD_STREAM_PUBLISH_RETRY_MAX_DURATION_SECS",
@@ -689,6 +719,7 @@ __all__ = [
689
719
  "DATA_PLANE_JWT_SECRET",
690
720
  "DATA_PLANE_ORG_ID",
691
721
  "DB_MIGRATION_BY_CORE_API",
722
+ "DISPATCH_MODE",
692
723
  "EXPOSE_INTERNAL_METRICS_PROMETHEUS",
693
724
  "FF_CRONS_ENABLED",
694
725
  "FF_LOG_DROPPED_EVENTS",
@@ -769,6 +800,7 @@ __all__ = [
769
800
  "AuthConfig",
770
801
  "CheckpointerConfig",
771
802
  "CorsConfig",
803
+ "DispatchMode",
772
804
  "HttpConfig",
773
805
  "SerdeConfig",
774
806
  "StoreConfig",
@@ -15,7 +15,7 @@ from langgraph_api.schema import Cron
15
15
  from langgraph_api.serde import json_loads
16
16
  from langgraph_api.utils import next_cron_date
17
17
  from langgraph_api.utils.config import run_in_executor
18
- from langgraph_api.worker import set_auth_ctx_for_run
18
+ from langgraph_api.worker_runtime import set_auth_ctx_for_run
19
19
  from langgraph_runtime.database import connect
20
20
  from langgraph_runtime.retry import retry_db
21
21
 
@@ -346,7 +346,10 @@ const handleInvoke = <T extends z.ZodType<any>>(
346
346
  const handleStream = <T extends z.ZodType<any>>(
347
347
  name: string,
348
348
  _schema: T,
349
- handler: (rawPayload: z.infer<T>) => AsyncGenerator<any, void, unknown>,
349
+ handler: (
350
+ rawPayload: z.infer<T>,
351
+ signal: AbortSignal,
352
+ ) => AsyncGenerator<any, void, unknown>,
350
353
  ) => {
351
354
  return (c: Context<any, any, { in: z.infer<T>; out: any }>) => {
352
355
  const graphId = c.req.param("graphId");
@@ -370,18 +373,24 @@ const handleStream = <T extends z.ZodType<any>>(
370
373
 
371
374
  try {
372
375
  timer = setTimeout(sendHeartbeat, HEARTBEAT_MS);
373
- for await (const data of handler({ graph_id: graphId, ...body })) {
376
+ for await (const data of handler(
377
+ { graph_id: graphId, ...body },
378
+ c.req.raw.signal,
379
+ )) {
374
380
  await sendSSE(name, data);
375
381
  }
376
382
  } catch (error) {
377
383
  // Still print out the error, as the stack
378
384
  // trace is not carried over in Python
379
385
  logger.error(error);
380
- await sendSSE("error", serializeError(error));
386
+ // The socket is already gone once the request aborts, so skip the frame.
387
+ if (!c.req.raw.signal.aborted) {
388
+ await sendSSE("error", serializeError(error));
389
+ }
390
+ } finally {
391
+ clearTimeout(timer);
392
+ await resolve;
381
393
  }
382
-
383
- clearTimeout(timer);
384
- await resolve;
385
394
  });
386
395
  };
387
396
  };
@@ -682,6 +691,7 @@ function reviveCommand(
682
691
 
683
692
  async function* streamEventsRequest(
684
693
  rawPayload: z.infer<typeof StreamEventsPayload>,
694
+ signal: AbortSignal,
685
695
  ) {
686
696
  const { graph_id: graphId, ...payload } = rawPayload;
687
697
  const config = {
@@ -783,6 +793,7 @@ async function* streamEventsRequest(
783
793
  input,
784
794
  {
785
795
  ...config,
796
+ signal,
786
797
  version: "v3",
787
798
  interruptBefore,
788
799
  interruptAfter,
@@ -803,6 +814,7 @@ async function* streamEventsRequest(
803
814
  input,
804
815
  {
805
816
  ...config,
817
+ signal,
806
818
  version: "v2",
807
819
  streamMode,
808
820
  subgraphs: payload.subgraphs,
@@ -870,21 +870,21 @@ base64-js@^1.5.1:
870
870
  resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
871
871
  integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
872
872
 
873
- baseline-browser-mapping@^2.9.0:
874
- version "2.9.19"
875
- resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz"
876
- integrity sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==
873
+ baseline-browser-mapping@^2.11.12:
874
+ version "2.11.20"
875
+ resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.11.20.tgz#26078c7a4b08299656ea7ddceaebec955dc44303"
876
+ integrity sha512-H0ulySigv6icDJ1F7SjtdCD6PrhTpdYCmP0CactWy1+ekh0AFd0o1Wn5T8b+hnTmdBx19u9yhL6wvCylXMY7zw==
877
877
 
878
878
  browserslist@^4.28.1:
879
- version "4.28.1"
880
- resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz"
881
- integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==
879
+ version "4.28.8"
880
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.8.tgz#a3c79ceb70028527e5da7dafc887f3200b5168c0"
881
+ integrity sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==
882
882
  dependencies:
883
- baseline-browser-mapping "^2.9.0"
884
- caniuse-lite "^1.0.30001759"
885
- electron-to-chromium "^1.5.263"
886
- node-releases "^2.0.27"
887
- update-browserslist-db "^1.2.0"
883
+ baseline-browser-mapping "^2.11.12"
884
+ caniuse-lite "^1.0.30001809"
885
+ electron-to-chromium "^1.5.402"
886
+ node-releases "^2.0.53"
887
+ update-browserslist-db "^1.3.0"
888
888
 
889
889
  bundle-name@^4.1.0:
890
890
  version "4.1.0"
@@ -893,11 +893,16 @@ bundle-name@^4.1.0:
893
893
  dependencies:
894
894
  run-applescript "^7.0.0"
895
895
 
896
- caniuse-lite@^1.0.30001759, caniuse-lite@^1.0.30001766:
896
+ caniuse-lite@^1.0.30001766:
897
897
  version "1.0.30001770"
898
898
  resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz"
899
899
  integrity sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==
900
900
 
901
+ caniuse-lite@^1.0.30001809:
902
+ version "1.0.30001810"
903
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001810.tgz#4970b477dea3278374de9bc43aa8f5d39fc3cda2"
904
+ integrity sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==
905
+
901
906
  chai@^6.2.2:
902
907
  version "6.2.2"
903
908
  resolved "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz"
@@ -1002,10 +1007,10 @@ dotenv@^16.4.7:
1002
1007
  resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz"
1003
1008
  integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==
1004
1009
 
1005
- electron-to-chromium@^1.5.263:
1006
- version "1.5.286"
1007
- resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz"
1008
- integrity sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==
1010
+ electron-to-chromium@^1.5.402:
1011
+ version "1.5.420"
1012
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.420.tgz#fc66d26a722d6f227e2092acdf38dd55b198cb44"
1013
+ integrity sha512-2yD6XreGusOfNV+dUcvipJEXc3n/n7fgr7996aszTG+YY5E4mqM4tOq/3uhP129cazL9YHbVWSpc79ePotWtPA==
1009
1014
 
1010
1015
  enabled@2.0.x:
1011
1016
  version "2.0.0"
@@ -1416,10 +1421,10 @@ nanoid@^3.3.17:
1416
1421
  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.18.tgz#f66a2de1199ffde0fcf21c8a5f13106b1c081913"
1417
1422
  integrity sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==
1418
1423
 
1419
- node-releases@^2.0.27:
1420
- version "2.0.27"
1421
- resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz"
1422
- integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==
1424
+ node-releases@^2.0.53:
1425
+ version "2.0.54"
1426
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.54.tgz#09af17d5647aa9f221ec5cf2becb95b68a981afe"
1427
+ integrity sha512-YHs7BmmcsdAI5Ozuf8JZo6PT0mv2GIWC9vMfvUC3dp65M8hn7Ux8CPL+2oBI7juNuj9d0ndhTcznq2ODBps9cQ==
1423
1428
 
1424
1429
  obug@^2.1.1:
1425
1430
  version "2.1.1"
@@ -1549,9 +1554,9 @@ postcss-modules@^6.0.1:
1549
1554
  string-hash "^1.1.3"
1550
1555
 
1551
1556
  postcss-selector-parser@^7.0.0:
1552
- version "7.1.1"
1553
- resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz"
1554
- integrity sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==
1557
+ version "7.1.5"
1558
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.5.tgz#ee7b090724eb60739b530660e5b402200e694a97"
1559
+ integrity sha512-KvvtD7SrlBP7dlgkBghEE3r84CABm5SmV2aNcG4oCA+qDnJ/tvKonFVvwWAyyWUEwxuNawdfEAZKP9zM3oZ2Uw==
1555
1560
  dependencies:
1556
1561
  cssesc "^3.0.0"
1557
1562
  util-deprecate "^1.0.2"
@@ -1795,10 +1800,10 @@ undici@^7.28.0:
1795
1800
  resolved "https://registry.yarnpkg.com/undici/-/undici-7.29.0.tgz#ae0f6f62e06e057a9cbb7b2b5fde2bb74f791b8f"
1796
1801
  integrity sha512-IDxfleLmmbSskfWSUATiN1nfn2rDuvnMOqb5CWR92iIfojA0Ud+ulOAAEQ57LPr9rWmsreUyf5lwyao+7GNNVw==
1797
1802
 
1798
- update-browserslist-db@^1.2.0:
1799
- version "1.2.3"
1800
- resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz"
1801
- integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==
1803
+ update-browserslist-db@^1.3.0:
1804
+ version "1.3.2"
1805
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.3.2.tgz#9d99fbff56c50bb11ba5fd35cece5916da595836"
1806
+ integrity sha512-UQ+MSxlhRm1bzjhU+DcuXfjFO1FzNtqhK5+9Yvlp90ItDLk5vT932A0rFu619nf7RVS+Y/VeaUW1jaRDqZ8VJw==
1802
1807
  dependencies:
1803
1808
  escalade "^3.2.0"
1804
1809
  picocolors "^1.1.1"
@@ -76,7 +76,13 @@ async def _collect_queue_and_workers(reporter) -> None:
76
76
  (``not IS_QUEUE_ENTRYPOINT``) on **postgres**: inmem skips the DB round-trip,
77
77
  and the dedicated queue worker leaves it to the API process so the global value
78
78
  is not double-reported across the queue/API split.
79
+
80
+ Skipped entirely when ``DISPATCH_MODE=multi-process``: the Go queue worker's
81
+ stats loop owns worker gauges and queue depth.
79
82
  """
83
+ if config.DISPATCH_MODE == config.DispatchMode.MULTI_PROCESS:
84
+ return
85
+
80
86
  if config.N_JOBS_PER_WORKER > 0:
81
87
  workers = get_metrics()["workers"]
82
88
  reporter.record_gauge(GAUGE_WORKERS_MAX, workers["max"])