langgraph-api 0.16.8__tar.gz → 0.16.10__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 (324) hide show
  1. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/PKG-INFO +3 -3
  2. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/constraints.txt +2 -2
  3. langgraph_api-0.16.10/langgraph_api/__init__.py +1 -0
  4. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/asyncio.py +24 -2
  5. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/graph.py +3 -0
  6. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/remote.py +2 -1
  7. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/queue_entrypoint.py +3 -7
  8. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/pyproject.toml +2 -2
  9. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/uv.lock +56 -46
  10. langgraph_api-0.16.8/langgraph_api/__init__.py +0 -1
  11. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/.gitignore +0 -0
  12. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/LICENSE +0 -0
  13. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/Makefile +0 -0
  14. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/README.md +0 -0
  15. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/.gitignore +0 -0
  16. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/Makefile +0 -0
  17. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/README.md +0 -0
  18. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/assistant.ts +0 -0
  19. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
  20. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
  21. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/benchmarks.ts +0 -0
  22. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
  23. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/classify-error.test.js +0 -0
  24. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/classify-error.ts +0 -0
  25. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/delta-turns-lib.test.js +0 -0
  26. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/delta-turns-lib.ts +0 -0
  27. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/delta_turns.ts +0 -0
  28. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
  29. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/interrupt_resume.ts +0 -0
  30. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/log-failure.ts +0 -0
  31. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/meta_workload.ts +0 -0
  32. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/store.ts +0 -0
  33. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/stream_write.ts +0 -0
  34. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/thread.ts +0 -0
  35. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
  36. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
  37. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/types.ts +0 -0
  38. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/benchmark-runners/wait_write.ts +0 -0
  39. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/capacity-ci.js +0 -0
  40. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/capacity-ci.test.js +0 -0
  41. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/clean-cli.js +0 -0
  42. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/clean.js +0 -0
  43. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/continuous/README.md +0 -0
  44. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/continuous/pyproject.toml +0 -0
  45. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/continuous/runner.py +0 -0
  46. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/continuous/uv.lock +0 -0
  47. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/daily-report.js +0 -0
  48. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/daily-report.test.js +0 -0
  49. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/delta-report.js +0 -0
  50. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/delta-report.test.js +0 -0
  51. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/graphs.js +0 -0
  52. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/history.js +0 -0
  53. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/history.test.js +0 -0
  54. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/host-v2.js +0 -0
  55. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/host-v2.test.js +0 -0
  56. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/multer.test.js +0 -0
  57. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/package.json +0 -0
  58. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/ramp.js +0 -0
  59. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/reporting/dd_reporting.py +0 -0
  60. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/runner-descriptions.js +0 -0
  61. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/server-metrics.js +0 -0
  62. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/server-metrics.test.js +0 -0
  63. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/slack.js +0 -0
  64. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/staircase.py +0 -0
  65. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/staircase_step_k6.js +0 -0
  66. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/tsconfig.json +0 -0
  67. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/update-revision.js +0 -0
  68. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/weather.js +0 -0
  69. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/benchmark/yarn.lock +0 -0
  70. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/custom_store.sql +0 -0
  71. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/forbidden.txt +0 -0
  72. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/hatch_build.py +0 -0
  73. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/healthcheck.py +0 -0
  74. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph-cloud-debugging-20260210132856.zip +0 -0
  75. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/_checkpointer/__init__.py +0 -0
  76. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/_checkpointer/_adapter.py +0 -0
  77. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/_checkpointer/protocol.py +0 -0
  78. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/_factory_utils.py +0 -0
  79. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/__init__.py +0 -0
  80. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/a2a.py +0 -0
  81. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/a2ui.py +0 -0
  82. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/a2ui_schemas/README.md +0 -0
  83. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/a2ui_schemas/client_capabilities.json +0 -0
  84. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/a2ui_schemas/client_data_model.json +0 -0
  85. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/a2ui_schemas/client_to_server.json +0 -0
  86. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/a2ui_schemas/server_to_client.json +0 -0
  87. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/assistants.py +0 -0
  88. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/event_streaming.py +0 -0
  89. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/mcp/__init__.py +0 -0
  90. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/mcp/_constants.py +0 -0
  91. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/mcp/_handlers.py +0 -0
  92. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/mcp/_models.py +0 -0
  93. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/mcp/_routes.py +0 -0
  94. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/mcp/_sanitizers.py +0 -0
  95. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/meta.py +0 -0
  96. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/openapi.py +0 -0
  97. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/profile.py +0 -0
  98. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/runs.py +0 -0
  99. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/store.py +0 -0
  100. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/threads.py +0 -0
  101. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/api/ui.py +0 -0
  102. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/asgi_transport.py +0 -0
  103. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/__init__.py +0 -0
  104. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/custom.py +0 -0
  105. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/errors.py +0 -0
  106. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/langsmith/__init__.py +0 -0
  107. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/langsmith/backend.py +0 -0
  108. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/langsmith/client.py +0 -0
  109. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/middleware.py +0 -0
  110. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/noop.py +0 -0
  111. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/auth/studio_user.py +0 -0
  112. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/beacon_data_plane_jwt_auth.py +0 -0
  113. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/cache.py +0 -0
  114. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/cli.py +0 -0
  115. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/command.py +0 -0
  116. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/config/__init__.py +0 -0
  117. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/config/_parse.py +0 -0
  118. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/config/schemas.py +0 -0
  119. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/cron_scheduler.py +0 -0
  120. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/encryption/__init__.py +0 -0
  121. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/encryption/aes_json.py +0 -0
  122. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/encryption/context.py +0 -0
  123. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/encryption/custom.py +0 -0
  124. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/encryption/middleware.py +0 -0
  125. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/encryption/shared.py +0 -0
  126. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/errors.py +0 -0
  127. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/__init__.py +0 -0
  128. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/capabilities.py +0 -0
  129. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/constants.py +0 -0
  130. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/event_normalizers.py +0 -0
  131. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/namespace.py +0 -0
  132. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/service.py +0 -0
  133. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/session.py +0 -0
  134. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/state_normalizers.py +0 -0
  135. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/event_streaming/types.py +0 -0
  136. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/feature_flags.py +0 -0
  137. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/__init__.py +0 -0
  138. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/client.py +0 -0
  139. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
  140. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/ops/__init__.py +0 -0
  141. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/ops/assistants.py +0 -0
  142. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/ops/cache.py +0 -0
  143. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/ops/crons.py +0 -0
  144. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/ops/runs.py +0 -0
  145. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/ops/threads.py +0 -0
  146. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/server.py +0 -0
  147. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/servicers/__init__.py +0 -0
  148. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
  149. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/grpc/servicers/encryption.py +0 -0
  150. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/http.py +0 -0
  151. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/http_metrics.py +0 -0
  152. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/http_metrics_utils.py +0 -0
  153. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/.gitignore +0 -0
  154. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/.prettierrc +0 -0
  155. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/.yarnclean +0 -0
  156. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/__init__.py +0 -0
  157. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/base.py +0 -0
  158. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/build.mts +0 -0
  159. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/client.http.mts +0 -0
  160. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/client.mts +0 -0
  161. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/errors.py +0 -0
  162. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/global.d.ts +0 -0
  163. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/package.json +0 -0
  164. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/schema.py +0 -0
  165. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/auth-mutations.mts +0 -0
  166. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/graph.mts +0 -0
  167. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/load.hooks.mjs +0 -0
  168. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/preload.mjs +0 -0
  169. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
  170. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/utils/files.mts +0 -0
  171. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/utils/importMap.mts +0 -0
  172. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  173. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/src/utils/serde.mts +0 -0
  174. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/sse.py +0 -0
  175. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/traceblock.mts +0 -0
  176. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/tsconfig.json +0 -0
  177. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/ui.py +0 -0
  178. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/js/yarn.lock +0 -0
  179. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/lc_security/__init__.py +0 -0
  180. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/lc_security/exceptions.py +0 -0
  181. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/lc_security/policy.py +0 -0
  182. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/lc_security/transport.py +0 -0
  183. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/logging.py +0 -0
  184. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/metadata.py +0 -0
  185. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/metrics_collector.py +0 -0
  186. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/metrics_otlp.py +0 -0
  187. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/middleware/__init__.py +0 -0
  188. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/middleware/ensure_store.py +0 -0
  189. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/middleware/http_logger.py +0 -0
  190. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/middleware/private_network.py +0 -0
  191. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/middleware/request_id.py +0 -0
  192. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/models/__init__.py +0 -0
  193. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/models/run.py +0 -0
  194. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/otel_context.py +0 -0
  195. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/patch.py +0 -0
  196. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/release_tags.py +0 -0
  197. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/route.py +0 -0
  198. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/runner/__init__.py +0 -0
  199. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/runner/__main__.py +0 -0
  200. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/schema.py +0 -0
  201. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/self_hosted_logs.py +0 -0
  202. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/self_hosted_metrics.py +0 -0
  203. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/serde.py +0 -0
  204. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/server.py +0 -0
  205. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/sse.py +0 -0
  206. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/state.py +0 -0
  207. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/store.py +0 -0
  208. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/stream.py +0 -0
  209. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/stream_v2.py +0 -0
  210. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/timing/__init__.py +0 -0
  211. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/timing/profiler.py +0 -0
  212. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/timing/timer.py +0 -0
  213. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/traceblock.py +0 -0
  214. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/tracing_session.py +0 -0
  215. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/tunneling/cloudflare.py +0 -0
  216. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/__init__.py +0 -0
  217. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/cache.py +0 -0
  218. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/config.py +0 -0
  219. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/errors.py +0 -0
  220. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/extract.py +0 -0
  221. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/future.py +0 -0
  222. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/headers.py +0 -0
  223. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/network.py +0 -0
  224. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/retriable_client.py +0 -0
  225. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/stream_codec.py +0 -0
  226. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/utils/uuids.py +0 -0
  227. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/validation.py +0 -0
  228. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/webhook.py +0 -0
  229. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/worker.py +0 -0
  230. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_api/worker_runtime.py +0 -0
  231. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/__init__.py +0 -0
  232. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/checkpointer.py +0 -0
  233. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/__init__.py +0 -0
  234. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/_compat.py +0 -0
  235. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
  236. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/config.py +0 -0
  237. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/durability.py +0 -0
  238. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/store.py +0 -0
  239. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/struct.py +0 -0
  240. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/conversion/value.py +0 -0
  241. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/__init__.py +0 -0
  242. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
  243. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
  244. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
  245. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
  246. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
  247. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
  248. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
  249. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
  250. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
  251. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
  252. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
  253. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
  254. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
  255. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
  256. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
  257. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
  258. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
  259. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
  260. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
  261. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
  262. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
  263. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
  264. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
  265. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
  266. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
  267. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
  268. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
  269. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
  270. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
  271. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
  272. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
  273. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
  274. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
  275. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
  276. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
  277. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
  278. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
  279. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
  280. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
  281. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
  282. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
  283. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
  284. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
  285. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
  286. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
  287. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
  288. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
  289. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
  290. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
  291. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
  292. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
  293. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
  294. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
  295. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
  296. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
  297. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
  298. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/runner_pb2.py +0 -0
  299. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/runner_pb2.pyi +0 -0
  300. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/runner_pb2_grpc.py +0 -0
  301. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/runner_pb2_grpc.pyi +0 -0
  302. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/store_pb2.py +0 -0
  303. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
  304. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
  305. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
  306. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/serde.py +0 -0
  307. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_grpc_common/store.py +0 -0
  308. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_license/__init__.py +0 -0
  309. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_license/validation.py +0 -0
  310. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/__init__.py +0 -0
  311. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/checkpoint.py +0 -0
  312. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/database.py +0 -0
  313. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/lifespan.py +0 -0
  314. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/metrics.py +0 -0
  315. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/ops.py +0 -0
  316. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/queue.py +0 -0
  317. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/retry.py +0 -0
  318. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/routes.py +0 -0
  319. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/langgraph_runtime/store.py +0 -0
  320. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/logging.json +0 -0
  321. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/openapi.json +0 -0
  322. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/scripts/build_wheel.py +0 -0
  323. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/scripts/create_license.py +0 -0
  324. {langgraph_api-0.16.8 → langgraph_api-0.16.10}/scripts/run_a2a_tck.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-api
3
- Version: 0.16.8
3
+ Version: 0.16.10
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
@@ -10,7 +10,7 @@ Requires-Dist: cloudpickle>=3.0.0
10
10
  Requires-Dist: cryptography>=50.0.0
11
11
  Requires-Dist: grpcio-health-checking<1.82.0,>=1.81.0
12
12
  Requires-Dist: grpcio-tools==1.81.1
13
- Requires-Dist: grpcio<1.82.0,>=1.81.0
13
+ Requires-Dist: grpcio<1.86.0,>=1.85.0
14
14
  Requires-Dist: httptools>=0.5.0; platform_system != 'Windows'
15
15
  Requires-Dist: httpx>=0.25.0
16
16
  Requires-Dist: jsonschema-rs<0.45,>=0.20.0
@@ -35,7 +35,7 @@ Requires-Dist: structlog<26,>=24.1.0
35
35
  Requires-Dist: tenacity>=8.0.0
36
36
  Requires-Dist: truststore>=0.1
37
37
  Requires-Dist: uuid-utils>=0.16.2
38
- Requires-Dist: uvicorn>=0.26.0
38
+ Requires-Dist: uvicorn>=0.29.0
39
39
  Requires-Dist: uvloop>=0.18.0; platform_system != 'Windows'
40
40
  Requires-Dist: watchfiles>=0.13
41
41
  Requires-Dist: websockets>=13.0
@@ -9,7 +9,7 @@ langsmith>=0.7.31
9
9
  orjson>=3.9.7
10
10
  httpx>=0.25.0
11
11
  tenacity>=8.0.0
12
- uvicorn>=0.26.0
12
+ uvicorn>=0.29.0
13
13
  sse-starlette>=2.1.3,<4.0.0
14
14
  uvloop>=0.18.0
15
15
  httptools>=0.5.0
@@ -18,7 +18,7 @@ structlog>=24.1.0
18
18
  cloudpickle>=3.0.0
19
19
  truststore>=0.1
20
20
  protobuf>=6.32.1,<7.0.0
21
- grpcio>=1.81.0,<1.82.0
21
+ grpcio>=1.85.0,<1.86.0
22
22
  grpcio-tools>=1.81.0,<1.82.0
23
23
  grpcio-health-checking>=1.81.0,<1.82.0
24
24
  opentelemetry-api>=0.0.1
@@ -0,0 +1 @@
1
+ __version__ = "0.16.10"
@@ -1,12 +1,18 @@
1
1
  import asyncio
2
2
  import concurrent.futures
3
3
  import sys
4
- from collections.abc import AsyncIterator, Coroutine
5
- from contextlib import AbstractAsyncContextManager, asynccontextmanager, suppress
4
+ from collections.abc import AsyncIterator, Coroutine, Generator
5
+ from contextlib import (
6
+ AbstractAsyncContextManager,
7
+ asynccontextmanager,
8
+ contextmanager,
9
+ suppress,
10
+ )
6
11
  from functools import partial
7
12
  from typing import Any, Generic, TypeVar
8
13
 
9
14
  import structlog
15
+ import uvicorn
10
16
 
11
17
  if sys.platform == "win32":
12
18
  _MAIN_LOOP_FACTORY = None
@@ -354,3 +360,19 @@ class AsyncQueue(Generic[T], asyncio.Queue[T]):
354
360
  # the call. Wake up the next in line.
355
361
  self._wakeup_next(self._getters)
356
362
  raise
363
+
364
+
365
+ class NoSignalServer(uvicorn.Server):
366
+ """Serve until cancelled without replacing the process signal handlers."""
367
+
368
+ @contextmanager
369
+ def capture_signals(self) -> Generator[None, None, None]:
370
+ yield
371
+
372
+ async def serve(self, sockets: list | None = None) -> None:
373
+ try:
374
+ await super().serve(sockets)
375
+ except asyncio.CancelledError:
376
+ if self.started:
377
+ await self.shutdown(sockets)
378
+ raise
@@ -679,6 +679,9 @@ async def collect_graphs_from_env(
679
679
 
680
680
 
681
681
  def _handle_exception(task: asyncio.Task) -> None:
682
+ if task.cancelled():
683
+ # Intentional stop (stop_remote_graphs); let lifespan teardown finish.
684
+ return
682
685
  try:
683
686
  task.result()
684
687
  except (asyncio.CancelledError, SystemExit):
@@ -43,6 +43,7 @@ from starlette.routing import Route
43
43
 
44
44
  from langgraph_api import config as lg_config
45
45
  from langgraph_api import store as api_store
46
+ from langgraph_api.asyncio import NoSignalServer
46
47
  from langgraph_api.auth.custom import DotDict, ProxyUser, connection_method
47
48
  from langgraph_api.config import LANGGRAPH_AUTH, LANGGRAPH_AUTH_TYPE
48
49
  from langgraph_api.js.base import BaseRemotePregel, RemoteInterrupt
@@ -974,7 +975,7 @@ async def run_remote_checkpointer():
974
975
  ]
975
976
  )
976
977
 
977
- server = uvicorn.Server(
978
+ server = NoSignalServer(
978
979
  uvicorn.Config(
979
980
  remote,
980
981
  port=REMOTE_PORT,
@@ -19,7 +19,7 @@ from contextlib import suppress
19
19
 
20
20
  import structlog
21
21
 
22
- from langgraph_api.asyncio import run_main_loop
22
+ from langgraph_api.asyncio import NoSignalServer, run_main_loop
23
23
  from langgraph_api.utils.errors import GraphLoadError, HealthServerStartupError
24
24
  from langgraph_api.utils.network import format_hostport, normalize_host
25
25
  from langgraph_runtime import lifespan
@@ -138,15 +138,13 @@ async def health_and_metrics_server():
138
138
  access_log=False,
139
139
  )
140
140
  # Server will run indefinitely until the process is terminated
141
- server = uvicorn.Server(config)
141
+ server = NoSignalServer(config)
142
142
 
143
143
  logger.info(
144
144
  f"Health and metrics server started at http://{format_hostport(host, port)}"
145
145
  )
146
146
  try:
147
- # Use the internal serve to skip capturing signals, otherwise there's a race condition
148
- # where uvicorn captures the signal and will exit early before the queue can gracefully shutdown
149
- await server._serve()
147
+ await server.serve()
150
148
  except SystemExit as exc:
151
149
  if exc.code == 0:
152
150
  return
@@ -172,9 +170,7 @@ async def health_and_metrics_server():
172
170
  )
173
171
  raise error from exc
174
172
  except asyncio.CancelledError:
175
- # Close the health server cleanly once we've exited the lifespan to make sure we respect graceful shutdown
176
173
  logger.info("Shutting down health and metrics server")
177
- await server.shutdown()
178
174
 
179
175
 
180
176
  async def entrypoint(
@@ -24,7 +24,7 @@ dependencies = [
24
24
  "langgraph>=0.4.10,<2",
25
25
  "langgraph-checkpoint>=3.0.1,<5",
26
26
  "orjson>=3.9.7",
27
- "uvicorn>=0.26.0",
27
+ "uvicorn>=0.29.0",
28
28
  # Required for the protocol v2 WebSocket transport
29
29
  # (``WebSocketRoute`` at ``/threads/{thread_id}/stream``). Without a
30
30
  # WebSocket library uvicorn falls back to ``Unsupported upgrade
@@ -43,7 +43,7 @@ dependencies = [
43
43
  "langgraph-runtime-inmem>=0.36.0.dev0,<0.37.0.dev0",
44
44
  "truststore>=0.1",
45
45
  "protobuf>=6.32.1,<7.0.0",
46
- "grpcio>=1.81.0,<1.82.0",
46
+ "grpcio>=1.85.0,<1.86.0",
47
47
  "grpcio-tools==1.81.1", # Pinned: must match GRPC_GENERATED_VERSION in generated _pb2_grpc.py stubs
48
48
  "grpcio-health-checking>=1.81.0,<1.82.0",
49
49
  "opentelemetry-api>=0.0.1",
@@ -389,53 +389,63 @@ wheels = [
389
389
 
390
390
  [[package]]
391
391
  name = "grpcio"
392
- version = "1.81.1"
392
+ version = "1.85.0"
393
393
  source = { registry = "https://pypi.org/simple" }
394
394
  dependencies = [
395
395
  { name = "typing-extensions" },
396
396
  ]
397
- sdist = { url = "https://files.pythonhosted.org/packages/b0/b5/1ff353970a87eda4c98251e34d2dfd214abd4982dc89119c9252a2a482d2/grpcio-1.81.1.tar.gz", hash = "sha256:6fa10a767143a5e82e8eaab53918af0cd8909a57a27f8cb2288b80a613ac671b", size = 13026582, upload-time = "2026-06-11T12:46:51.673Z" }
398
- wheels = [
399
- { url = "https://files.pythonhosted.org/packages/52/ea/1c2fa386b718ff493225e61cfc052ef400b4d6ffc54cbe261026432624b5/grpcio-1.81.1-cp311-cp311-linux_armv7l.whl", hash = "sha256:d71d30f2d92f67d944631c523713934fee37292469e182ebcd2c1dd8a64ce53f", size = 6093112, upload-time = "2026-06-11T12:44:52.131Z" },
400
- { url = "https://files.pythonhosted.org/packages/2b/18/acf45fa8bd1bc5d7b0c2fd3dc4c209379fbd5bb396b440b68a83342226b7/grpcio-1.81.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:b137f4bf3ada9dc44d411478decc6ff09a79ed30b306cd2abaa98408c3588137", size = 12074277, upload-time = "2026-06-11T12:44:55.354Z" },
401
- { url = "https://files.pythonhosted.org/packages/48/d7/ee86a60699b7db039f772a2c4a7e4facc7138984ff42c0130933a0063884/grpcio-1.81.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a3acb384427816dd5d470f47e62137b87f74da694faa8a50147012cf40df276a", size = 6640348, upload-time = "2026-06-11T12:44:59.223Z" },
402
- { url = "https://files.pythonhosted.org/packages/26/ee/d2de5e47378ffc207d476c230fea3be4d2601edbce9995f4fe45535d4896/grpcio-1.81.1-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:f9a0ebbe45c29b5e5866593c12b78bd9035f0f0f0d4bc8361680cd580d99db49", size = 7331842, upload-time = "2026-06-11T12:45:02.001Z" },
403
- { url = "https://files.pythonhosted.org/packages/23/d6/abeda5c2b896a0b341584fe5ac411bbf72e197a9a374c355fb90965e08d2/grpcio-1.81.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0a37165cc80b1a368384b383e63a4c38116a10467ae44c904d2d7468c4470ec2", size = 6842229, upload-time = "2026-06-11T12:45:04.76Z" },
404
- { url = "https://files.pythonhosted.org/packages/10/1c/1f0da7d590b4aeee006826ba568d0e419ca14b23e18f901a3da3e9fba613/grpcio-1.81.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6282caffb41ec326d4cb67ca9cf53b739d1b2f975a2acb498c7418e9f7d9a416", size = 7446096, upload-time = "2026-06-11T12:45:07.499Z" },
405
- { url = "https://files.pythonhosted.org/packages/6a/81/5c505d508f7c887aa7982d21443a4126597c80d34b0bcf40f9cec576d7f3/grpcio-1.81.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a35009284d0d3d5c2c9601c164a911b8b4331608d98a9a66d47d97bb2f522b70", size = 8445238, upload-time = "2026-06-11T12:45:10.243Z" },
406
- { url = "https://files.pythonhosted.org/packages/f7/b2/524847365122ee509ca17bcc4e092198b700e94af7bfd5bb5e6dd9f3ee66/grpcio-1.81.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1b22c80559854b789a01fd89e8929b3798a156c0829b5282a8939f33ad4115ad", size = 7873989, upload-time = "2026-06-11T12:45:13.102Z" },
407
- { url = "https://files.pythonhosted.org/packages/18/fa/07c037c50b006909d1d13a5848774f8aa7b242f70dc03a035c64eea0e6db/grpcio-1.81.1-cp311-cp311-win32.whl", hash = "sha256:428bec0161b48d8cf583c068591bc0016d0d9cfff52462b72b3884861ea768c5", size = 4202223, upload-time = "2026-06-11T12:45:16.166Z" },
408
- { url = "https://files.pythonhosted.org/packages/41/ed/6bff15376920942fac6b95b9802752b837437172c9e8fc2d3170546b89cc/grpcio-1.81.1-cp311-cp311-win_amd64.whl", hash = "sha256:30e825f6848d9f18bba350ed6c75c1b02a0b5184474a31db9a32b1fa66fd8c79", size = 4941303, upload-time = "2026-06-11T12:45:18.724Z" },
409
- { url = "https://files.pythonhosted.org/packages/85/07/9a979c81738863a738dc23d65177056e71fbb2db817740ed870b33434e7a/grpcio-1.81.1-cp312-cp312-linux_armv7l.whl", hash = "sha256:8b39472beafc0bdcafc4c8c73ad082ebfdb449d566897a61e7acb4fa88089115", size = 6053264, upload-time = "2026-06-11T12:45:21.017Z" },
410
- { url = "https://files.pythonhosted.org/packages/75/95/539706ca0d3bd40dbad583dc56fd883da941f37556b629132da5762781b9/grpcio-1.81.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:12b7524c88d4026d3dcb7b0ebe16b6714f3b4af402ddd0f0639ab064a00c87c3", size = 12052560, upload-time = "2026-06-11T12:45:23.652Z" },
411
- { url = "https://files.pythonhosted.org/packages/e0/44/f257b7e0bd69c93b06c6cb8ac8d1b901ccb42bedabd83c1a4c77a71f8810/grpcio-1.81.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1e123f9b37edb8375fd74130d1f69c944bbf0a7b06761ae7211154b8759e94d2", size = 6595983, upload-time = "2026-06-11T12:45:26.963Z" },
412
- { url = "https://files.pythonhosted.org/packages/b9/f3/19782aa04c960968bef8c5539329d8e3bbc3364e2e46d19eb5e5cc5e43b7/grpcio-1.81.1-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:2c2e2ae6867c2966b8daccc836d54a13218e0007e9a490aeb81dd05be64d22d7", size = 7303455, upload-time = "2026-06-11T12:45:29.707Z" },
413
- { url = "https://files.pythonhosted.org/packages/eb/8c/dea020b6d91508cd84463917a63149ec196ee7db505d032ae43fcb3303b9/grpcio-1.81.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:766bc7c9a9c340342f4c864ccbda8e78111e4751f13b895812b9c148fb79e9d0", size = 6809167, upload-time = "2026-06-11T12:45:32.52Z" },
414
- { url = "https://files.pythonhosted.org/packages/1c/c7/3030dd940408083bd32cd95d634777a71605ade4887154d93e8a89244946/grpcio-1.81.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b259a04a737cb3496be0901328eb8b7552ed8df4865d8c8f1cf1bffcfc0776a3", size = 7412536, upload-time = "2026-06-11T12:45:35.403Z" },
415
- { url = "https://files.pythonhosted.org/packages/e0/dd/1172a9e42b168edcafefad6115346ef619a3fc02158bb170e66ced24bcdd/grpcio-1.81.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:85b10a45b8993d195c4f3ff57025b8d1e11834909ee475c403bfa60cb4caefaf", size = 8408276, upload-time = "2026-06-11T12:45:37.78Z" },
416
- { url = "https://files.pythonhosted.org/packages/25/7a/71437c7f3596e5246155c515852795a85a1a8d228190212432b13b97a95d/grpcio-1.81.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8ea1936c26b99999b27479853039a7f34713f56c49375ad52b38535ec93a796c", size = 7849660, upload-time = "2026-06-11T12:45:40.627Z" },
417
- { url = "https://files.pythonhosted.org/packages/65/40/7debc0da45d2efebafb82da75644be347497fe4ee250514b8cd3b86ae8bf/grpcio-1.81.1-cp312-cp312-win32.whl", hash = "sha256:a185a04039df6cae8648bc8ab6d6fde7bf94f7188ecf7828e76ac52eef1e41d6", size = 4185819, upload-time = "2026-06-11T12:45:43.027Z" },
418
- { url = "https://files.pythonhosted.org/packages/2e/b9/8fe3ba5ed462067774ebc1f9c7f26aa7ebcc280ddd476be107153de1339e/grpcio-1.81.1-cp312-cp312-win_amd64.whl", hash = "sha256:3ad74f8bb1a18963914c5452d289422830b39459e8776ebbcd207be1fbfb1d94", size = 4930461, upload-time = "2026-06-11T12:45:45.775Z" },
419
- { url = "https://files.pythonhosted.org/packages/7a/42/dcc2e4b600538ef18327c0839d56b7d3c3812337c5d710df5877dbb39b1e/grpcio-1.81.1-cp313-cp313-linux_armv7l.whl", hash = "sha256:b10e1ff4756ed27d5a29d7fc79cfce7ef1ff56ad20025b89bac7cf79e09abbbe", size = 6054466, upload-time = "2026-06-11T12:45:48.43Z" },
420
- { url = "https://files.pythonhosted.org/packages/7b/4a/a36e03210183a8a7d4c80c3936acee679f4bd77d5861f369db47b2cc5f05/grpcio-1.81.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:819edbdcb42ab8598b494bcf0222684bbb7a3c772bd1b1f0be7e029a6063c28e", size = 12048795, upload-time = "2026-06-11T12:45:54.011Z" },
421
- { url = "https://files.pythonhosted.org/packages/b0/d5/d68e30b29098f63beab6fe501100fe82674ff142b32c672532da86a99b3a/grpcio-1.81.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c5bf2dc311127d91230cc79b92188c082634a06cf66c5234db49a43b910183b0", size = 6599094, upload-time = "2026-06-11T12:45:57.799Z" },
422
- { url = "https://files.pythonhosted.org/packages/3d/b3/e837954d279754f638a11cca5dcf6b24a005efb398984cefaf7735945a54/grpcio-1.81.1-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e8ca6a1fcdb2943c9cbc1804a1baf3acb6071d72a471591678ded84218006e14", size = 7307182, upload-time = "2026-06-11T12:46:00.568Z" },
423
- { url = "https://files.pythonhosted.org/packages/0d/1e/b47957057e729adc6cdf519a47f8be2562b7140e280f1418443eb4022192/grpcio-1.81.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:e64dd101d380a115cc5a0c7856788adb535f1a4e21fc543775602f8be95180ae", size = 6810962, upload-time = "2026-06-11T12:46:03.312Z" },
424
- { url = "https://files.pythonhosted.org/packages/40/26/569868e364e05b19ec8f969da53d230bcd89c962cd198f7c29943155c4d3/grpcio-1.81.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:98a07f9bf591e3a8919797bee1c53f026ba4acd587e5a4404c8e57c9ec36b2a5", size = 7415698, upload-time = "2026-06-11T12:46:06.005Z" },
425
- { url = "https://files.pythonhosted.org/packages/36/0c/5440a0582cb5653fc42a6e262eeb22700943313f8076f9dc927491b20a59/grpcio-1.81.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c261d74b1a945cf895a9d6eccd1685a8e837531beaab782da4d630a8d12deffb", size = 8407779, upload-time = "2026-06-11T12:46:08.84Z" },
426
- { url = "https://files.pythonhosted.org/packages/ff/aa/66fe9f39871d766987d869a03ee0842a026f499c7b1e62decb9e78a8088e/grpcio-1.81.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:58ad1131c300d3c9b933802b3cc4dc69d380822935ba50b28703156ea826fbf7", size = 7844521, upload-time = "2026-06-11T12:46:12.171Z" },
427
- { url = "https://files.pythonhosted.org/packages/f0/9e/69bb7194861bcd28fb3193261d4f9c3831b4446993f002cf59068943e7ab/grpcio-1.81.1-cp313-cp313-win32.whl", hash = "sha256:78e29211f26da2fdd0e9c6d2b79f489476140cf7029b6a64808ade7ca4156a42", size = 4182786, upload-time = "2026-06-11T12:46:15.192Z" },
428
- { url = "https://files.pythonhosted.org/packages/0d/20/3da8bb0d637feccdc3e1e419bb511ce93651ce7d54164f95de22cc0b8b34/grpcio-1.81.1-cp313-cp313-win_amd64.whl", hash = "sha256:edb59506291b647a30884b1d51a599d605f40b20af4a7dc3d33786a47a31de60", size = 4928648, upload-time = "2026-06-11T12:46:17.823Z" },
429
- { url = "https://files.pythonhosted.org/packages/b6/58/19414622b1bf6981bc9c05a365bd548e71876c89000083b3af489251e9c0/grpcio-1.81.1-cp314-cp314-linux_armv7l.whl", hash = "sha256:506f48f2f9c29b143fca3dad7b0d518c188b6c9648c75a2ae6e2d9f2c13a060b", size = 6055336, upload-time = "2026-06-11T12:46:20.557Z" },
430
- { url = "https://files.pythonhosted.org/packages/32/f1/2ec88adb92b0eba970dd0e0e7dd086341daa3c75eba4f735f9e44bf684b0/grpcio-1.81.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:d865db4a6318e1c1bea83292e0ed231090538fc4ca45425b0f0480eb338bbc6e", size = 12056279, upload-time = "2026-06-11T12:46:24.255Z" },
431
- { url = "https://files.pythonhosted.org/packages/41/36/e8c5f8c6ec71de73733695ebc809e98b178b534ec6d8eaa31a7ebab4ad4c/grpcio-1.81.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2aa72e3ce1770317ef534f63d397b55e130725f5149bd36077c3b539019db27", size = 6608225, upload-time = "2026-06-11T12:46:27.601Z" },
432
- { url = "https://files.pythonhosted.org/packages/30/22/96fc577a845ab093326d9ab1adb874bd4936c8cf98ac8ed2f3db13a0a2fb/grpcio-1.81.1-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:0490c30c261eded63f3f354979f9dc4502a9fb944cccb60cd9dc85f5a7349854", size = 7306576, upload-time = "2026-06-11T12:46:30.514Z" },
433
- { url = "https://files.pythonhosted.org/packages/76/7b/61dab5d5969f28d97fb1009cead1df0a5cd987d3315e1b37f18a4449f8bc/grpcio-1.81.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:410482da976329fe5f4067270401b12cf2bd552ff8020f054ecfaddb5475f9d6", size = 6812165, upload-time = "2026-06-11T12:46:33.699Z" },
434
- { url = "https://files.pythonhosted.org/packages/82/78/6e501929d4f5f96462fd82fd9f0f06e5f9612207582b862868d68757b27d/grpcio-1.81.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e3657301562ac3cb8018d30d0d3ebfa39932239f7b5703422057ef14b69949f5", size = 7422962, upload-time = "2026-06-11T12:46:36.511Z" },
435
- { url = "https://files.pythonhosted.org/packages/2a/7e/f2157589e66daa78ebb3165942d05a08bdea93b9d11c2bc1e172aef89685/grpcio-1.81.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:24c8e57504c8f45b237e40b99262d181071e5099a07053695b75d97bb53053a0", size = 8408176, upload-time = "2026-06-11T12:46:39.803Z" },
436
- { url = "https://files.pythonhosted.org/packages/da/df/c6717fef716e00d235ffb96123baf6dce76d6004f6233fa767c502861460/grpcio-1.81.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b427c19380991a4eaab2f6144b64b99b412043314c6bf4ab544f97bb31ee4190", size = 7846681, upload-time = "2026-06-11T12:46:43.013Z" },
437
- { url = "https://files.pythonhosted.org/packages/36/84/3502e9f210a6a5c4438c8aca3f88edd2e04f6a27f3d41b26cf0a0024b096/grpcio-1.81.1-cp314-cp314-win32.whl", hash = "sha256:61233fe8951e5c85dff81c2458b6528624760166946b5b47ea150a589168411f", size = 4264615, upload-time = "2026-06-11T12:46:45.741Z" },
438
- { url = "https://files.pythonhosted.org/packages/ff/b0/4af731ff7492c68a96e4c71bfd0f4590acde92b31c6fe4894e6465c10ff6/grpcio-1.81.1-cp314-cp314-win_amd64.whl", hash = "sha256:3768a5ff1b2125e6f552e561b6b2dca0e64982d8949689b4df145cf8b98d7821", size = 5070275, upload-time = "2026-06-11T12:46:48.486Z" },
397
+ sdist = { url = "https://files.pythonhosted.org/packages/5b/34/60907c03ef43039c1e91ed5bdfae41ada5648264f013cabc3f186600e571/grpcio-1.85.0.tar.gz", hash = "sha256:8aa2647afcbe5a87783e9626a2ece6277db33c6604c21690d19b5bd15609e36d", size = 14084753, upload-time = "2026-10-26T06:20:17.622Z" }
398
+ wheels = [
399
+ { url = "https://files.pythonhosted.org/packages/04/5a/cb8061c56bb9790a2177e5c7e65abf5c038137bcd46353a6088e4909b10a/grpcio-1.85.0-cp311-cp311-linux_armv7l.whl", hash = "sha256:2c6a55a4cb43fe9b14d4aae123ee655cdeb288d8810bec8f8c1adce0d4359d8e", size = 6822089, upload-time = "2026-10-26T06:18:20.902Z" },
400
+ { url = "https://files.pythonhosted.org/packages/65/88/f33aaaaa128e3bb154548f217f62ae1d57a44638383e65e32f85988d03e6/grpcio-1.85.0-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:299b13839203e82be15216ae4c3379801a3ad216feff05b165f14962f0939b0c", size = 12652629, upload-time = "2026-10-26T06:18:23.686Z" },
401
+ { url = "https://files.pythonhosted.org/packages/ad/21/060c7aaa4810aa46e4ba377b2bc9f54dd813f3bc14bd860c8e39fcd792ee/grpcio-1.85.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:312939c9afac5d9d5e3b9e50c40a9ebfbe444ca35b28a99ce34903cc9279a5b5", size = 7214975, upload-time = "2026-10-26T06:18:26.948Z" },
402
+ { url = "https://files.pythonhosted.org/packages/1e/96/8bdd62dec133bcd2a43ec728e909990bd89461e3489778e8ea2c480b50ef/grpcio-1.85.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:6127bab580cc247c6c62f460485afeba10ec7b9e1b338eef8bde1344acfd9ab2", size = 8199751, upload-time = "2026-10-26T06:18:29.424Z" },
403
+ { url = "https://files.pythonhosted.org/packages/8e/90/e6920d3d3a916adbedf8153f3affa7cb003e4cad645d3b11d7594c575027/grpcio-1.85.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ba535a7b78d5049101a896efbb4ef9edd471c322ea4fc0cc8245545b184ff687", size = 7391833, upload-time = "2026-10-26T06:18:32.063Z" },
404
+ { url = "https://files.pythonhosted.org/packages/45/21/fc56bd9d318d19741bc410c0a4826b274eedf92336a2edef339ea7a7c1ff/grpcio-1.85.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d115d1d4e31fa964a348e54445154cce1649da4204f07425028608982d056a2b", size = 7954529, upload-time = "2026-10-26T06:18:34.754Z" },
405
+ { url = "https://files.pythonhosted.org/packages/48/22/f14adf59af5b185e5f14a996daabb1f5377fa5983f8c1750f59868c60b13/grpcio-1.85.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:864607775e0166a4d3d6bd8276334d96f0b6e9e0a84f3964dc6005db07e9627b", size = 9211912, upload-time = "2026-10-26T06:18:37.284Z" },
406
+ { url = "https://files.pythonhosted.org/packages/19/f9/84b2fb81a0c53ff8f26d01ce0cf2b12032efe484806f2753228843f300a1/grpcio-1.85.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:58c0ffd1eb2a0d7d216a0c8faefde999586fc017e735dfe9d1142a8481f7d0b6", size = 8330978, upload-time = "2026-10-26T06:18:39.54Z" },
407
+ { url = "https://files.pythonhosted.org/packages/e3/ea/bbc89526f58f6a9519580b207956477106f1a77543ff47c88e3650b40791/grpcio-1.85.0-cp311-cp311-win32.whl", hash = "sha256:0633c4ff112d2237d09ded3044b5acee4fb12de7b39ff4dcfb09b0f029c33992", size = 4779152, upload-time = "2026-10-26T06:18:41.591Z" },
408
+ { url = "https://files.pythonhosted.org/packages/55/b3/c042c8394f6bbb398c3af28a93aa9ccc048c83e26d05095f976d8818936f/grpcio-1.85.0-cp311-cp311-win_amd64.whl", hash = "sha256:2dd69ec2998c2285c323bfa2e3acbd7f475881db97aa9359f2edcbf9ae284169", size = 5614851, upload-time = "2026-10-26T06:18:44.299Z" },
409
+ { url = "https://files.pythonhosted.org/packages/d4/67/75531891c7f21dda119186151a5d24b257d094257e6dfdf6f6fa30d44feb/grpcio-1.85.0-cp312-cp312-linux_armv7l.whl", hash = "sha256:c02d956990c55730efcca487a4eac64f8e0fcb3af7e53c9e89cd02a985669709", size = 6795713, upload-time = "2026-10-26T06:18:46.285Z" },
410
+ { url = "https://files.pythonhosted.org/packages/64/64/6dbc16efc2ff11d4b0b9c5701ab55fb03f9c45e61e2ae6896fbfb6769848/grpcio-1.85.0-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:b10f0f0a34ce6b122dbf5dcf8226cbe41509c602af926b1e55113ad9e49cc5f7", size = 12631580, upload-time = "2026-10-26T06:18:48.621Z" },
411
+ { url = "https://files.pythonhosted.org/packages/d9/ff/be3621580c361eae4a4669580e9511f11e09bd25d2e9a034076ec1dd1525/grpcio-1.85.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b1ea46f63a7a9e19ce5cc09be0a6f9b347e0dcc14c4ab47b48488f6c093b8171", size = 7169722, upload-time = "2026-10-26T06:18:51.828Z" },
412
+ { url = "https://files.pythonhosted.org/packages/b1/75/d26f7dc4d4d562aeeb82ff66107b5fee3fe69462457813e259b9d8dbdfcc/grpcio-1.85.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:e2f1c3089ed6ae75e24529a498a6b65941fdb6856c3416d62c88da944947fc88", size = 8179643, upload-time = "2026-10-26T06:18:53.878Z" },
413
+ { url = "https://files.pythonhosted.org/packages/10/1e/4be389b352c79fc6a457ca8bfda6b0b5e8a1e0ed8eaca21f7a2d1a40a7c5/grpcio-1.85.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4ddfe8b667889b9be5990ae674b13f0db0a9eb61972306038d0140a1da0f0b87", size = 7361507, upload-time = "2026-10-26T06:18:56.002Z" },
414
+ { url = "https://files.pythonhosted.org/packages/8b/ea/1dcc9f8e3439bacc95ef2198fafad97b2024f017af38353a650864780e66/grpcio-1.85.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:17641f3a6ff3512c34e5c367805d2632a43a773d7990f1c4c55243df6bee8fbb", size = 7928329, upload-time = "2026-10-26T06:18:58.189Z" },
415
+ { url = "https://files.pythonhosted.org/packages/90/bd/a37f748e3c76e1b9314a2c28a89c80689ba18132e94c5d403ebc7fabdb9f/grpcio-1.85.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:1a94f32df519cb7efe3822f7f3c2daee0b0e2f01a281e1db5dbfb0efd1635b6e", size = 9180575, upload-time = "2026-10-26T06:19:00.234Z" },
416
+ { url = "https://files.pythonhosted.org/packages/43/25/36e61d090c94108307a9eea2df00e7e2e23e3dac8b816f8ec2ce371925f0/grpcio-1.85.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8572f9d7282cded6b018fb0147d09bbe7e59177ba6c452f1903682a80dc0857e", size = 8318253, upload-time = "2026-10-26T06:19:02.789Z" },
417
+ { url = "https://files.pythonhosted.org/packages/c6/11/51c506bf6d104918d30cbc85b3d952e4378d038185dcf0322a93eaef7f16/grpcio-1.85.0-cp312-cp312-win32.whl", hash = "sha256:25007d0e4657dcdafa9a80677895b71de8c1d6335afb7fa6a4b35330e2d3127a", size = 4767975, upload-time = "2026-10-26T06:19:04.832Z" },
418
+ { url = "https://files.pythonhosted.org/packages/a9/48/6d62ac3a289656c83fdc10fb895ecb9a59f8ee0318d654fb4cd20ed7293c/grpcio-1.85.0-cp312-cp312-win_amd64.whl", hash = "sha256:d6c43a06a059a95f03013aa5fce9106a6a2b6b78cfff4003a53e0eb410c0e1d7", size = 5607032, upload-time = "2026-10-26T06:19:06.876Z" },
419
+ { url = "https://files.pythonhosted.org/packages/4a/53/c31ccb8feca95c1aba2a5aaf7b721a228d9f64b72defbd7e866b7ed6da67/grpcio-1.85.0-cp313-cp313-linux_armv7l.whl", hash = "sha256:8f1c7cb18d7beb81aa65666b739f8a43261df7f9529628e639b578b6d344cdf9", size = 6799719, upload-time = "2026-10-26T06:19:08.951Z" },
420
+ { url = "https://files.pythonhosted.org/packages/f0/b5/bd9b3d4c148566dc797aca206b0db255f23df40a53c64dfb6c6410560a21/grpcio-1.85.0-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:874af68625a2ff2585cb112e7583c19a7cb463ab638a7fe5b8a58f76e6d4e7c2", size = 12628971, upload-time = "2026-10-26T06:19:11.405Z" },
421
+ { url = "https://files.pythonhosted.org/packages/02/31/137cdd99d79bb5c6ad24a4e78037a9ea27329b56fffc5900bc38a4c45872/grpcio-1.85.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:fc2865f523feeac453f35c762a2e4155df58565229d77069b211f2e21de2e79a", size = 7173070, upload-time = "2026-10-26T06:19:14.065Z" },
422
+ { url = "https://files.pythonhosted.org/packages/36/92/a53666504ab0deb4665dbada171518d58e9d3e82e147a14c35606658a6c2/grpcio-1.85.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:4c6c39eee05f6b98266315486a93f36d73a59adc4d34f8b63f1b5725f897d8ea", size = 8184751, upload-time = "2026-10-26T06:19:16.237Z" },
423
+ { url = "https://files.pythonhosted.org/packages/4f/34/66004b96b4adbe49f72bd48bd3aaa9a72f459ef28c259ea0622283f9ea4f/grpcio-1.85.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:55cee7cfe71b29f6b377681936f9a5f35e59f5c941a4d84e2712cb309753e7a9", size = 7362610, upload-time = "2026-10-26T06:19:18.741Z" },
424
+ { url = "https://files.pythonhosted.org/packages/3d/28/9b4ee38bd6cf7e6be9df03c6db123f2e55153a2e86f571ef7d64754c02cb/grpcio-1.85.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1a8ee918b5b18c82be2e5f30978258269b858d7e16a36e8729c09d9654bac2f1", size = 7931855, upload-time = "2026-10-26T06:19:20.795Z" },
425
+ { url = "https://files.pythonhosted.org/packages/d2/81/0db1fcf63e0d3e63c09eeb48ab2e7fdf2d6854fbe6edb723f940973dac24/grpcio-1.85.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:3c49f03d8d74196ca6d1351b749aab3fb3362c850286f28aafcb7cd773134b04", size = 9172681, upload-time = "2026-10-26T06:19:23.078Z" },
426
+ { url = "https://files.pythonhosted.org/packages/b1/2e/9198940dc8a34650bbf7ecf4ede7e9b5fadac597413812c3d51d852fa749/grpcio-1.85.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:372e9cbf91f74127652138b020cf15c6a44541a91aee89c50a5943d1996b44aa", size = 8309185, upload-time = "2026-10-26T06:19:25.672Z" },
427
+ { url = "https://files.pythonhosted.org/packages/1f/d3/dd373173d3acb8b6249d6f95e1995d5923871adb5287cbaf515b9d01ecae/grpcio-1.85.0-cp313-cp313-win32.whl", hash = "sha256:087f297442a62e267f37df0cd03681159c225b8e73741b94d55c515e7a4df81e", size = 4768996, upload-time = "2026-10-26T06:19:28.147Z" },
428
+ { url = "https://files.pythonhosted.org/packages/46/10/b776072b088df498714ebf45dfc1d94ca5431b5eb8b058447b78b31b8be5/grpcio-1.85.0-cp313-cp313-win_amd64.whl", hash = "sha256:09ab4af4c4c74baa9b17f9a6fcdcef5be98357774417d624191ec41690df4bb3", size = 5606189, upload-time = "2026-10-26T06:19:30.209Z" },
429
+ { url = "https://files.pythonhosted.org/packages/ad/2f/8d037027d50fe4aecd23da96cea59faf194c86be7c8c7c77b5fff6079aa1/grpcio-1.85.0-cp314-cp314-linux_armv7l.whl", hash = "sha256:86bd1d2e197d3e4cde1c04136db48bf22a6fe873b7f55c83e9747d5b36f0cbb4", size = 6802126, upload-time = "2026-10-26T06:19:32.382Z" },
430
+ { url = "https://files.pythonhosted.org/packages/c7/6e/cd0520477b161d728410c3bb37fcea46eb06aee9f9f3fb410050ba5eb62d/grpcio-1.85.0-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:7a24e53259c2005c77b03c48272eec4b374eba027d077e84d0e99f9e30747439", size = 12639174, upload-time = "2026-10-26T06:19:34.695Z" },
431
+ { url = "https://files.pythonhosted.org/packages/e6/e2/95409a6366aa30d9224d1f6231702ff53fa3f6cb652cdca682295981e593/grpcio-1.85.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6248ed9a86c4191a0d8d7fe54eaea0511aadcadc2ec128daa995eaac91e42880", size = 7185955, upload-time = "2026-10-26T06:19:37.174Z" },
432
+ { url = "https://files.pythonhosted.org/packages/38/f4/b55aaa568ce74f9aa01aeff90646dc223fb86085cf10da1d198df2c799c4/grpcio-1.85.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:c5f993fa6b3bf0af33ed7c2bc42f58d22f10964607cf614c2c08b67db80ced60", size = 8186857, upload-time = "2026-10-26T06:19:39.4Z" },
433
+ { url = "https://files.pythonhosted.org/packages/03/45/04eec36d0dabc90a640b72084ca67aad34f24f312477cea803ad47faea52/grpcio-1.85.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d2ba969495b45ff5e0d10451898387427906b82e28c3c1cfae2dda006e25e18d", size = 7366839, upload-time = "2026-10-26T06:19:41.438Z" },
434
+ { url = "https://files.pythonhosted.org/packages/58/b2/53bb7e2285b55f1208ae743102187e6d29168e1e48ab2146dce5f3a57d21/grpcio-1.85.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9c91ad19d92ff81600c087db4829c26b47f9dafd04ed0a26c35e21a05d20f671", size = 7941256, upload-time = "2026-10-26T06:19:43.717Z" },
435
+ { url = "https://files.pythonhosted.org/packages/af/00/62b62f26b2d56cb3b2f5a61a2b5d90fe9614bec12e322d127e536d59414a/grpcio-1.85.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:26147a7a3c9d1c865cc16b3f98e5c38e5606932aba236b7627ca7eb4378c5c7e", size = 9176088, upload-time = "2026-10-26T06:19:45.858Z" },
436
+ { url = "https://files.pythonhosted.org/packages/b0/eb/33604ec3b625e0970fcdea07e69c30a9199264b24174e5eff7d79e8598ce/grpcio-1.85.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:beb6ffcf5253f4247efa47837d876e42157969127657fad4a68be181830ddadd", size = 8315128, upload-time = "2026-10-26T06:19:48.589Z" },
437
+ { url = "https://files.pythonhosted.org/packages/e2/eb/1a4e1fedc1001ab756de206e37be8d20887607bd71d4a0be45afb461c615/grpcio-1.85.0-cp314-cp314-win32.whl", hash = "sha256:a03fee5e413938ddb71aa2fd7c52520e2fc3aec2e9602d50464272c75b274a54", size = 4853035, upload-time = "2026-10-26T06:19:50.601Z" },
438
+ { url = "https://files.pythonhosted.org/packages/7e/34/eca74515cd7e1c15312d3f77440dc5c48ed3421110188176b5e37226bc9f/grpcio-1.85.0-cp314-cp314-win_amd64.whl", hash = "sha256:a11c8c322a19d6d3cd6fb645127e8f1ca4e8041d05e41e9b24c7678ec7391021", size = 5758315, upload-time = "2026-10-26T06:19:52.659Z" },
439
+ { url = "https://files.pythonhosted.org/packages/cf/1c/3911ce2422982aeb416464d8c1a3132c3863e54cfc8410abf221d54d8a78/grpcio-1.85.0-cp315-cp315-linux_armv7l.whl", hash = "sha256:e0b87fde3b80955343b37cf9b9deac52432e9e7a4b3e0f92abbd61fee0f7b184", size = 6801625, upload-time = "2026-10-26T06:19:54.707Z" },
440
+ { url = "https://files.pythonhosted.org/packages/b4/53/6295c603bdd5bfdb434e6078367f1353ffcb61c800c0d355bb67f5008937/grpcio-1.85.0-cp315-cp315-macosx_10_15_universal2.whl", hash = "sha256:27b024f8420c9d63f7df9f51d4c2d2e54fcf3b26c9963041f5fc75b83f35e87b", size = 12656837, upload-time = "2026-10-26T06:19:56.727Z" },
441
+ { url = "https://files.pythonhosted.org/packages/40/a6/fe53a3a2b9795f08afa5279a71b13ae707fe6efba7cbea27054c675b2ca4/grpcio-1.85.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:dc726ae4f2f4e2215cb1b987b8ddd7f4f2f253d6ceb48cfbb9b88555d325e10a", size = 7208194, upload-time = "2026-10-26T06:19:59.075Z" },
442
+ { url = "https://files.pythonhosted.org/packages/48/76/5f0eb661982b6607ed01b924b204f9cb3efc343acf296268f1c1a84309b6/grpcio-1.85.0-cp315-cp315-manylinux2014_i686.manylinux_2_17_i686.whl", hash = "sha256:3b463b3b97f35149a3f69234de92eddfd7c94c9c19794e3b264ccba7b6b03fac", size = 7509929, upload-time = "2026-10-26T06:20:01.597Z" },
443
+ { url = "https://files.pythonhosted.org/packages/e2/04/60edfa818df088600b05d474dfdb96bce4eb368298e3d22a3d52f29d25dc/grpcio-1.85.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:426e41a32d10f841f41fc67e4e6d150af7e7c7c3433fe61fa3a0ca19a8dc9885", size = 7409352, upload-time = "2026-10-26T06:20:03.719Z" },
444
+ { url = "https://files.pythonhosted.org/packages/8b/20/795653e089eaf1a4ff3eef48a43d5a1011775660fc74b4b1a479681dcbe2/grpcio-1.85.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:a8dd5c3823194811c5e6932b454bcaa7b8e474a7690ed4ce6246bd502849a82c", size = 7963532, upload-time = "2026-10-26T06:20:05.86Z" },
445
+ { url = "https://files.pythonhosted.org/packages/79/e9/969c1a1345b5b4f52ef5fba4bbedfe341d1e2cd5bf8a70eac4b7214e8970/grpcio-1.85.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:c8accda49358f99875057ff1ec6a79fead12dac41ac63c1c1e1757a2aab14c1d", size = 8505105, upload-time = "2026-10-26T06:20:08.156Z" },
446
+ { url = "https://files.pythonhosted.org/packages/b8/96/2bcc39af001975ae8410c06653b12c3a48c2260d0f4941409acab84f88e5/grpcio-1.85.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2a04b67a146f1a95e2bd281614be89b662973535a94eac944135ea86b2e5a7ef", size = 8345176, upload-time = "2026-10-26T06:20:10.988Z" },
447
+ { url = "https://files.pythonhosted.org/packages/cc/05/d88d3938644c2735fa8c2552cf854371b3d0a9b007565bad321d59955195/grpcio-1.85.0-cp315-cp315-win32.whl", hash = "sha256:b2da79c303f23e66d08baaa0c78d8b8630c700e1562babb1f326ada0a97ee5d0", size = 4852843, upload-time = "2026-10-26T06:20:13.02Z" },
448
+ { url = "https://files.pythonhosted.org/packages/0f/b0/7880a36e2b1389810ab4bca52f236144f376d7f7adc25aaaed1721e06dd1/grpcio-1.85.0-cp315-cp315-win_amd64.whl", hash = "sha256:dd88a98073ebc0e6771ff8c2fd9451fbf887f575b0da9d30246ee1b2813f6b57", size = 5758125, upload-time = "2026-10-26T06:20:15.047Z" },
439
449
  ]
440
450
 
441
451
  [[package]]
@@ -767,7 +777,7 @@ requires-dist = [
767
777
  { name = "anyio", specifier = ">=4.14.2" },
768
778
  { name = "cloudpickle", specifier = ">=3.0.0" },
769
779
  { name = "cryptography", specifier = ">=50.0.0" },
770
- { name = "grpcio", specifier = ">=1.81.0,<1.82.0" },
780
+ { name = "grpcio", specifier = ">=1.85.0,<1.86.0" },
771
781
  { name = "grpcio-health-checking", specifier = ">=1.81.0,<1.82.0" },
772
782
  { name = "grpcio-tools", specifier = "==1.81.1" },
773
783
  { name = "httptools", marker = "sys_platform != 'win32'", specifier = ">=0.5.0" },
@@ -794,7 +804,7 @@ requires-dist = [
794
804
  { name = "tenacity", specifier = ">=8.0.0" },
795
805
  { name = "truststore", specifier = ">=0.1" },
796
806
  { name = "uuid-utils", specifier = ">=0.16.2" },
797
- { name = "uvicorn", specifier = ">=0.26.0" },
807
+ { name = "uvicorn", specifier = ">=0.29.0" },
798
808
  { name = "uvloop", marker = "sys_platform != 'win32'", specifier = ">=0.18.0" },
799
809
  { name = "watchfiles", specifier = ">=0.13" },
800
810
  { name = "websockets", specifier = ">=13.0" },
@@ -882,7 +892,7 @@ dependencies = [
882
892
 
883
893
  [package.metadata]
884
894
  requires-dist = [
885
- { name = "grpcio", specifier = ">=1.81.0,<1.82.0" },
895
+ { name = "grpcio", specifier = ">=1.85.0,<1.86.0" },
886
896
  { name = "langgraph", specifier = ">=0.4.10" },
887
897
  { name = "orjson", specifier = ">=3.9.7" },
888
898
  { name = "protobuf", specifier = ">=6.31.1,<7" },
@@ -1 +0,0 @@
1
- __version__ = "0.16.8"
File without changes
File without changes