langgraph-api 0.8.0__tar.gz → 0.8.2__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 (298) hide show
  1. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/PKG-INFO +2 -2
  2. langgraph_api-0.8.2/langgraph_api/__init__.py +1 -0
  3. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/runs.py +5 -5
  4. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/threads.py +2 -2
  5. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/config/__init__.py +13 -0
  6. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/threads.py +44 -4
  7. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/package.json +1 -1
  8. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/yarn.lock +9 -13
  9. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/queue_entrypoint.py +4 -0
  10. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/worker.py +3 -10
  11. langgraph_api-0.8.2/langgraph_grpc_common/proto/core_api_pb2.py +272 -0
  12. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/core_api_pb2.pyi +16 -2
  13. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/pyproject.toml +1 -1
  14. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/uv.lock +19 -6
  15. langgraph_api-0.8.0/langgraph_api/__init__.py +0 -1
  16. langgraph_api-0.8.0/langgraph_grpc_common/proto/core_api_pb2.py +0 -272
  17. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/.gitignore +0 -0
  18. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/LICENSE +0 -0
  19. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/Makefile +0 -0
  20. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/README.md +0 -0
  21. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/.gitignore +0 -0
  22. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/Makefile +0 -0
  23. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/README.md +0 -0
  24. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/assistant.ts +0 -0
  25. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
  26. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
  27. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/benchmarks.ts +0 -0
  28. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
  29. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
  30. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/log-failure.ts +0 -0
  31. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/meta_workload.ts +0 -0
  32. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/stream_write.ts +0 -0
  33. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/thread.ts +0 -0
  34. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
  35. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
  36. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/types.ts +0 -0
  37. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/benchmark-runners/wait_write.ts +0 -0
  38. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_dd_report.py +0 -0
  39. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_k6.js +0 -0
  40. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_runner.mjs +0 -0
  41. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_slack_report.py +0 -0
  42. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/capacity_urls.mjs +0 -0
  43. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/clean-cli.js +0 -0
  44. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/clean.js +0 -0
  45. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/README.md +0 -0
  46. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/pyproject.toml +0 -0
  47. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/runner.py +0 -0
  48. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/continuous/uv.lock +0 -0
  49. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/graphs.js +0 -0
  50. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/mixed_workload_k6.js +0 -0
  51. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/mixed_workload_runner.mjs +0 -0
  52. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/package.json +0 -0
  53. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/ramp.js +0 -0
  54. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/reporting/dd_reporting.py +0 -0
  55. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/reporting/slack_slowest_runs.py +0 -0
  56. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/reporting/slack_summary.py +0 -0
  57. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/run_local.sh +0 -0
  58. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/staircase.py +0 -0
  59. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/staircase_step_k6.js +0 -0
  60. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/tsconfig.json +0 -0
  61. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/update-revision.js +0 -0
  62. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/benchmark/weather.js +0 -0
  63. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/constraints.txt +0 -0
  64. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/custom_store.sql +0 -0
  65. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/forbidden.txt +0 -0
  66. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/hatch_build.py +0 -0
  67. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/healthcheck.py +0 -0
  68. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph-cloud-debugging-20260210132856.zip +0 -0
  69. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_checkpointer/__init__.py +0 -0
  70. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_checkpointer/_adapter.py +0 -0
  71. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_checkpointer/protocol.py +0 -0
  72. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/_factory_utils.py +0 -0
  73. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/__init__.py +0 -0
  74. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/a2a.py +0 -0
  75. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/assistants.py +0 -0
  76. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/__init__.py +0 -0
  77. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_constants.py +0 -0
  78. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_handlers.py +0 -0
  79. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_models.py +0 -0
  80. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_routes.py +0 -0
  81. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/mcp/_sanitizers.py +0 -0
  82. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/meta.py +0 -0
  83. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/openapi.py +0 -0
  84. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/profile.py +0 -0
  85. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/store.py +0 -0
  86. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/api/ui.py +0 -0
  87. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/asgi_transport.py +0 -0
  88. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/asyncio.py +0 -0
  89. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/__init__.py +0 -0
  90. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/custom.py +0 -0
  91. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/errors.py +0 -0
  92. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/langsmith/__init__.py +0 -0
  93. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/langsmith/backend.py +0 -0
  94. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/langsmith/client.py +0 -0
  95. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/middleware.py +0 -0
  96. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/noop.py +0 -0
  97. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/auth/studio_user.py +0 -0
  98. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/cache.py +0 -0
  99. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/cli.py +0 -0
  100. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/command.py +0 -0
  101. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/config/_parse.py +0 -0
  102. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/config/schemas.py +0 -0
  103. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/cron_scheduler.py +0 -0
  104. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/__init__.py +0 -0
  105. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/aes_json.py +0 -0
  106. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/context.py +0 -0
  107. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/custom.py +0 -0
  108. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/middleware.py +0 -0
  109. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/encryption/shared.py +0 -0
  110. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/errors.py +0 -0
  111. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/executor_entrypoint.py +0 -0
  112. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/feature_flags.py +0 -0
  113. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/graph.py +0 -0
  114. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/__init__.py +0 -0
  115. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/client.py +0 -0
  116. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
  117. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/__init__.py +0 -0
  118. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/assistants.py +0 -0
  119. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/cache.py +0 -0
  120. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/crons.py +0 -0
  121. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/ops/runs.py +0 -0
  122. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/server.py +0 -0
  123. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/servicers/__init__.py +0 -0
  124. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
  125. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/grpc/servicers/encryption.py +0 -0
  126. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/http.py +0 -0
  127. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/http_metrics.py +0 -0
  128. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/http_metrics_utils.py +0 -0
  129. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/.gitignore +0 -0
  130. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/.prettierrc +0 -0
  131. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/__init__.py +0 -0
  132. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/base.py +0 -0
  133. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/build.mts +0 -0
  134. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/client.http.mts +0 -0
  135. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/client.mts +0 -0
  136. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/errors.py +0 -0
  137. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/global.d.ts +0 -0
  138. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/remote.py +0 -0
  139. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/schema.py +0 -0
  140. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/graph.mts +0 -0
  141. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/load.hooks.mjs +0 -0
  142. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/preload.mjs +0 -0
  143. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/files.mts +0 -0
  144. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/importMap.mts +0 -0
  145. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  146. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/src/utils/serde.mts +0 -0
  147. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/sse.py +0 -0
  148. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/traceblock.mts +0 -0
  149. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/tsconfig.json +0 -0
  150. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/js/ui.py +0 -0
  151. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/__init__.py +0 -0
  152. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/exceptions.py +0 -0
  153. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/policy.py +0 -0
  154. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/lc_security/transport.py +0 -0
  155. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/logging.py +0 -0
  156. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/metadata.py +0 -0
  157. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/metrics_datadog.py +0 -0
  158. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/__init__.py +0 -0
  159. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/ensure_store.py +0 -0
  160. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/http_logger.py +0 -0
  161. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/private_network.py +0 -0
  162. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/middleware/request_id.py +0 -0
  163. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/models/__init__.py +0 -0
  164. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/models/run.py +0 -0
  165. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/otel_context.py +0 -0
  166. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/patch.py +0 -0
  167. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/route.py +0 -0
  168. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/schema.py +0 -0
  169. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/self_hosted_logs.py +0 -0
  170. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/self_hosted_metrics.py +0 -0
  171. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/serde.py +0 -0
  172. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/server.py +0 -0
  173. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/sse.py +0 -0
  174. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/state.py +0 -0
  175. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/store.py +0 -0
  176. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/stream.py +0 -0
  177. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/timing/__init__.py +0 -0
  178. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/timing/profiler.py +0 -0
  179. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/timing/timer.py +0 -0
  180. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/traceblock.py +0 -0
  181. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/tunneling/cloudflare.py +0 -0
  182. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/__init__.py +0 -0
  183. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/cache.py +0 -0
  184. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/config.py +0 -0
  185. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/errors.py +0 -0
  186. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/extract.py +0 -0
  187. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/future.py +0 -0
  188. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/headers.py +0 -0
  189. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/network.py +0 -0
  190. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/retriable_client.py +0 -0
  191. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/stream_codec.py +0 -0
  192. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/utils/uuids.py +0 -0
  193. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/validation.py +0 -0
  194. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_api/webhook.py +0 -0
  195. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/__init__.py +0 -0
  196. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/checkpointer.py +0 -0
  197. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/__init__.py +0 -0
  198. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/_compat.py +0 -0
  199. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/channel.py +0 -0
  200. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
  201. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/config.py +0 -0
  202. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/durability.py +0 -0
  203. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/exception.py +0 -0
  204. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/graph.py +0 -0
  205. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/interrupt.py +0 -0
  206. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/messages.py +0 -0
  207. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/orchestrator_response.py +0 -0
  208. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/runopts.py +0 -0
  209. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/stream_mode.py +0 -0
  210. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/struct.py +0 -0
  211. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/task.py +0 -0
  212. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/conversion/value.py +0 -0
  213. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/__init__.py +0 -0
  214. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
  215. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
  216. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
  217. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
  218. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
  219. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
  220. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
  221. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
  222. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
  223. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
  224. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2.py +0 -0
  225. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2.pyi +0 -0
  226. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2_grpc.py +0 -0
  227. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_api_pb2_grpc.pyi +0 -0
  228. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
  229. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
  230. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
  231. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
  232. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
  233. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
  234. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
  235. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
  236. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
  237. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
  238. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
  239. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
  240. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
  241. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
  242. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
  243. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
  244. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
  245. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
  246. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
  247. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
  248. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
  249. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
  250. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
  251. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
  252. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
  253. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
  254. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
  255. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
  256. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2.py +0 -0
  257. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2.pyi +0 -0
  258. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2_grpc.py +0 -0
  259. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_store_operation_entry_type_pb2_grpc.pyi +0 -0
  260. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
  261. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
  262. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
  263. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
  264. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
  265. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
  266. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
  267. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
  268. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
  269. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
  270. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
  271. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
  272. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
  273. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
  274. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
  275. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
  276. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2.py +0 -0
  277. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2.pyi +0 -0
  278. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2_grpc.py +0 -0
  279. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/proto/executor_api_pb2_grpc.pyi +0 -0
  280. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/sanitize.py +0 -0
  281. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_grpc_common/serde.py +0 -0
  282. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_license/__init__.py +0 -0
  283. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_license/validation.py +0 -0
  284. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/__init__.py +0 -0
  285. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/checkpoint.py +0 -0
  286. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/database.py +0 -0
  287. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/lifespan.py +0 -0
  288. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/metrics.py +0 -0
  289. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/ops.py +0 -0
  290. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/queue.py +0 -0
  291. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/retry.py +0 -0
  292. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/routes.py +0 -0
  293. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/langgraph_runtime/store.py +0 -0
  294. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/logging.json +0 -0
  295. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/openapi.json +0 -0
  296. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/scripts/build_wheel.py +0 -0
  297. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/scripts/create_license.py +0 -0
  298. {langgraph_api-0.8.0 → langgraph_api-0.8.2}/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.8.0
3
+ Version: 0.8.2
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
@@ -15,7 +15,7 @@ Requires-Dist: httpx>=0.25.0
15
15
  Requires-Dist: jsonschema-rs<0.45,>=0.20.0
16
16
  Requires-Dist: langchain-core>=0.3.64
17
17
  Requires-Dist: langgraph-checkpoint<5,>=3.0.1
18
- Requires-Dist: langgraph-runtime-inmem<0.28.0,>=0.27.0
18
+ Requires-Dist: langgraph-runtime-inmem<0.29.0,>=0.28.0
19
19
  Requires-Dist: langgraph-sdk>=0.3.5
20
20
  Requires-Dist: langgraph<2,>=0.4.10
21
21
  Requires-Dist: langsmith[otel]>=0.6.3
@@ -0,0 +1 @@
1
+ __version__ = "0.8.2"
@@ -1,7 +1,7 @@
1
1
  import asyncio
2
2
  from collections.abc import AsyncIterator, Awaitable, Callable
3
3
  from typing import Any, Literal, cast
4
- from uuid import UUID, uuid4
4
+ from uuid import UUID
5
5
 
6
6
  import orjson
7
7
  import structlog
@@ -374,7 +374,7 @@ async def stream_run_stateless(
374
374
  payload["if_not_exists"] = "create"
375
375
  on_disconnect = payload.get("on_disconnect", "continue")
376
376
  run_id = uuid7()
377
- thread_id = uuid4()
377
+ thread_id = uuid7()
378
378
 
379
379
  sub = await Runs.Stream.subscribe(run_id, thread_id)
380
380
  try:
@@ -468,7 +468,7 @@ async def wait_run_stateless(request: ApiRequest):
468
468
  payload["if_not_exists"] = "create"
469
469
  on_disconnect = payload.get("on_disconnect", "continue")
470
470
  run_id = uuid7()
471
- thread_id = uuid4()
471
+ thread_id = uuid7()
472
472
 
473
473
  sub = await Runs.Stream.subscribe(run_id, thread_id)
474
474
  try:
@@ -533,7 +533,7 @@ async def list_runs(
533
533
 
534
534
  async with connect() as conn:
535
535
  thread, runs = await asyncio.gather(
536
- Threads.get(conn, thread_id),
536
+ Threads.get(conn, thread_id, read_mask_paths=[]),
537
537
  Runs.search(
538
538
  conn,
539
539
  thread_id,
@@ -562,7 +562,7 @@ async def get_run(request: ApiRequest):
562
562
 
563
563
  async with connect() as conn:
564
564
  thread, run = await asyncio.gather(
565
- Threads.get(conn, thread_id),
565
+ Threads.get(conn, thread_id, read_mask_paths=[]),
566
566
  Runs.get(
567
567
  conn,
568
568
  run_id,
@@ -1,5 +1,4 @@
1
1
  from typing import get_args
2
- from uuid import uuid4
3
2
 
4
3
  from starlette.exceptions import HTTPException
5
4
  from starlette.responses import Response
@@ -26,6 +25,7 @@ from langgraph_api.state import state_snapshot_to_thread_state
26
25
  from langgraph_api.utils import (
27
26
  fetchone,
28
27
  get_pagination_headers,
28
+ uuid7,
29
29
  validate_select_columns,
30
30
  validate_stream_id,
31
31
  validate_uuid,
@@ -69,7 +69,7 @@ async def create_thread(
69
69
  ["metadata"],
70
70
  )
71
71
 
72
- thread_id = thread_id or str(uuid4())
72
+ thread_id = thread_id or str(uuid7())
73
73
  supersteps = payload.get("supersteps")
74
74
 
75
75
  if IS_POSTGRES_OR_GRPC_BACKEND and not supersteps:
@@ -45,6 +45,17 @@ DATABASE_URI = env("DATABASE_URI", cast=str, default=getenv("POSTGRES_URI", unde
45
45
  # Not in public docs: infrastructure, set by platform
46
46
  MIGRATIONS_PATH = env("MIGRATIONS_PATH", cast=str, default="/storage/migrations")
47
47
  POSTGRES_POOL_MAX_SIZE = env("LANGGRAPH_POSTGRES_POOL_MAX_SIZE", cast=int, default=150)
48
+
49
+ # Checkpoint ingestion batch controls
50
+ # Go defaults (core/config/config.go): CHECKPOINT_MAX_BATCH_SIZE=1000, CHECKPOINT_BATCH_DELAY=0.005 (5ms)
51
+ # CHECKPOINT_BATCH_DELAY uses float seconds to match Go's time.Duration env parsing convention.
52
+ # storage_postgres/Makefile sets these to the Go defaults for CI/local dev.
53
+ # TODO(braa): flip these to match Go defaults once validated in production (LSD-1404)
54
+ CHECKPOINT_MAX_BATCH_SIZE: int | None = env(
55
+ "CHECKPOINT_MAX_BATCH_SIZE", cast=int, default=None
56
+ )
57
+ CHECKPOINT_BATCH_DELAY: float = env("CHECKPOINT_BATCH_DELAY", cast=float, default=0.0)
58
+
48
59
  RESUMABLE_STREAM_TTL_SECONDS = env(
49
60
  "RESUMABLE_STREAM_TTL_SECONDS",
50
61
  cast=int,
@@ -579,6 +590,8 @@ __all__ = [
579
590
  "BG_JOB_SHUTDOWN_GRACE_PERIOD_SECS",
580
591
  "BG_JOB_TIMEOUT_SECS",
581
592
  "CHECKPOINTER_CONFIG",
593
+ "CHECKPOINT_BATCH_DELAY",
594
+ "CHECKPOINT_MAX_BATCH_SIZE",
582
595
  "CORS_ALLOW_ORIGINS",
583
596
  "CORS_CONFIG",
584
597
  "CRON_SCHEDULER_SLEEP_TIME",
@@ -64,6 +64,12 @@ if TYPE_CHECKING:
64
64
  logger = structlog.stdlib.get_logger(__name__)
65
65
 
66
66
 
67
+ # Read-mask preset for Threads.get callers that need metadata/config but not
68
+ # the large "values" column. Used by state get/update/bulk/history which
69
+ # only need graph_id (from metadata) and the thread config.
70
+ THREAD_METADATA_READ_MASK_PATHS: list[str] = ["metadata", "config"]
71
+
72
+
67
73
  THREAD_STATUS_TO_PB = {
68
74
  "idle": enum_thread_status.idle,
69
75
  "busy": enum_thread_status.busy,
@@ -471,6 +477,7 @@ class Threads(Authenticated):
471
477
  ctx: Auth.types.BaseAuthContext | None = None,
472
478
  filters: Auth.types.FilterType | list[pb.AuthFilter] | None = None,
473
479
  include_ttl: bool = False,
480
+ read_mask_paths: list[str] | None = None,
474
481
  ) -> AsyncIterator[Thread]:
475
482
  """Get a thread by ID.
476
483
 
@@ -482,6 +489,11 @@ class Threads(Authenticated):
482
489
  Accepts either raw dict filters (FilterType) or pre-processed
483
490
  proto filters (list[pb.AuthFilter]).
484
491
  include_ttl: When True, include TTL information in the response.
492
+ read_mask_paths: Optional list of field names to fetch from the DB.
493
+ None (default) fetches all columns. When set, only those columns
494
+ (plus always-included identity/status columns) are queried.
495
+ Use ["metadata", "config"] to skip the large "values" column, or
496
+ [] for an auth/existence check that discards the thread body.
485
497
  """
486
498
  auth_filters = await Threads.handle_event(
487
499
  ctx, "read", {"thread_id": str(thread_id)}
@@ -496,10 +508,16 @@ class Threads(Authenticated):
496
508
  # Raw dict format, convert to proto
497
509
  auth_filters = (auth_filters or []) + _filters_to_proto(filters)
498
510
 
511
+ read_mask = (
512
+ field_mask_pb2.FieldMask(paths=read_mask_paths)
513
+ if read_mask_paths is not None
514
+ else None
515
+ )
499
516
  request = pb.GetThreadRequest(
500
517
  thread_id=pb.UUID(value=_normalize_uuid(thread_id)),
501
518
  filters=auth_filters,
502
519
  include_ttl=include_ttl if include_ttl else None,
520
+ read_mask=read_mask,
503
521
  )
504
522
  client = await get_shared_client()
505
523
  response = await client.threads.Get(request)
@@ -974,7 +992,12 @@ class Threads(Authenticated):
974
992
 
975
993
  async with conn.pipeline():
976
994
  thread, checkpoint_iter, graph_id = await asyncio.gather(
977
- Threads.get(conn, thread_id, ctx=ctx),
995
+ Threads.get(
996
+ conn,
997
+ thread_id,
998
+ ctx=ctx,
999
+ read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
1000
+ ),
978
1001
  checkpointer.aget_iter(config),
979
1002
  Threads.get_graph_id(thread_id),
980
1003
  )
@@ -1037,7 +1060,13 @@ class Threads(Authenticated):
1037
1060
 
1038
1061
  async with conn.pipeline():
1039
1062
  thread, checkpoint_iter, graph_id, run_count = await asyncio.gather(
1040
- Threads.get(conn, thread_id, ctx=ctx, filters=filters),
1063
+ Threads.get(
1064
+ conn,
1065
+ thread_id,
1066
+ ctx=ctx,
1067
+ filters=filters,
1068
+ read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
1069
+ ),
1041
1070
  checkpointer.aget_iter(config),
1042
1071
  Threads.get_graph_id(thread_id),
1043
1072
  Runs.count(thread_id=thread_id, statuses=["pending", "running"]),
@@ -1130,7 +1159,13 @@ class Threads(Authenticated):
1130
1159
 
1131
1160
  async with conn.pipeline():
1132
1161
  thread, graph_id = await asyncio.gather(
1133
- Threads.get(conn, thread_id, ctx=ctx, filters=filters),
1162
+ Threads.get(
1163
+ conn,
1164
+ thread_id,
1165
+ ctx=ctx,
1166
+ filters=filters,
1167
+ read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
1168
+ ),
1134
1169
  Threads.get_graph_id(config["configurable"]["thread_id"]),
1135
1170
  )
1136
1171
  thread = await fetchone(thread)
@@ -1218,7 +1253,12 @@ class Threads(Authenticated):
1218
1253
  """Get the history of a thread."""
1219
1254
  async with conn.pipeline():
1220
1255
  thread, graph_id = await asyncio.gather(
1221
- Threads.get(conn, config["configurable"]["thread_id"], ctx=ctx),
1256
+ Threads.get(
1257
+ conn,
1258
+ config["configurable"]["thread_id"],
1259
+ ctx=ctx,
1260
+ read_mask_paths=THREAD_METADATA_READ_MASK_PATHS,
1261
+ ),
1222
1262
  Threads.get_graph_id(config["configurable"]["thread_id"]),
1223
1263
  )
1224
1264
  thread = await fetchone(thread)
@@ -25,7 +25,7 @@
25
25
  "tsx": "^4.21.0",
26
26
  "typescript": "^5.9.3",
27
27
  "undici": "^7.24.7",
28
- "uuid": "^13.0.0",
28
+ "uuid": "^14.0.0",
29
29
  "vite": "^7.3.2",
30
30
  "winston": "^3.19.0",
31
31
  "zod": "^4.3.6"
@@ -1655,19 +1655,10 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
1655
1655
  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1656
1656
  integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1657
1657
 
1658
- postcss@^8.4.41, postcss@^8.5.1, postcss@^8.5.3:
1659
- version "8.5.6"
1660
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c"
1661
- integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==
1662
- dependencies:
1663
- nanoid "^3.3.11"
1664
- picocolors "^1.1.1"
1665
- source-map-js "^1.2.1"
1666
-
1667
- postcss@^8.5.6:
1668
- version "8.5.9"
1669
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.9.tgz#f6ee9e0b94f0f19c97d2f172bfbd7fc71fe1cca4"
1670
- integrity sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==
1658
+ postcss@^8.4.41, postcss@^8.5.1, postcss@^8.5.3, postcss@^8.5.6:
1659
+ version "8.5.10"
1660
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.10.tgz#8992d8c30acf3f12169e7c09514a12fed7e48356"
1661
+ integrity sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==
1671
1662
  dependencies:
1672
1663
  nanoid "^3.3.11"
1673
1664
  picocolors "^1.1.1"
@@ -1950,6 +1941,11 @@ uuid@^13.0.0:
1950
1941
  resolved "https://registry.yarnpkg.com/uuid/-/uuid-13.0.0.tgz#263dc341b19b4d755eb8fe36b78d95a6b65707e8"
1951
1942
  integrity sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==
1952
1943
 
1944
+ uuid@^14.0.0:
1945
+ version "14.0.0"
1946
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-14.0.0.tgz#0af883220163d264ffe0c084f6b8a89b9666966d"
1947
+ integrity sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==
1948
+
1953
1949
  "vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^6.4.2:
1954
1950
  version "6.4.2"
1955
1951
  resolved "https://registry.yarnpkg.com/vite/-/vite-6.4.2.tgz#a4e548ca3a90ca9f3724582cab35e1ba15efc6f2"
@@ -34,11 +34,15 @@ shutdown_reason: str | None = None
34
34
 
35
35
  def _ensure_port_available(host: str, port: int) -> None:
36
36
  host = normalize_host(host)
37
+ # Pin AF_INET6 for IPv6 literals: glibc's getaddrinfo can return EAI_ADDRFAMILY
38
+ # on IPv6-only hosts when the family is unspecified.
39
+ family = socket.AF_INET6 if ":" in host else socket.AF_UNSPEC
37
40
  last_error: OSError | None = None
38
41
  try:
39
42
  addrinfos = socket.getaddrinfo(
40
43
  host,
41
44
  port,
45
+ family=family,
42
46
  type=socket.SOCK_STREAM,
43
47
  flags=socket.AI_PASSIVE,
44
48
  )
@@ -15,7 +15,6 @@ from typing_extensions import TypedDict
15
15
  import langgraph_api.logging as lg_logging
16
16
  from langgraph_api.auth.custom import SimpleUser, normalize_user
17
17
  from langgraph_api.config import (
18
- BG_JOB_ISOLATED_LOOPS,
19
18
  BG_JOB_MAX_RETRIES,
20
19
  BG_JOB_TIMEOUT_SECS,
21
20
  USE_CUSTOM_CHECKPOINTER,
@@ -238,17 +237,11 @@ async def worker(
238
237
 
239
238
  error_message = (
240
239
  f"Run {run['run_id']} exceeded max attempts ({BG_JOB_MAX_RETRIES}).\n\n"
241
- "This may happen if your code blocks the event loop with synchronous I/O bound calls (network requests, database queries, etc.).\n\n"
242
- "If that is the case, your issues may be resolved by converting synchronous operations to async (e.g., use aiohttp instead of requests).\n\n"
240
+ "This usually means the pod processing the run became unhealthy and the run was re-queued repeatedly. "
241
+ "Check for OOM kills, pod restarts, liveness/readiness probe failures, or other signs of pod instability "
242
+ "in your deployment's logs and metrics.\n\n"
243
243
  )
244
244
 
245
- if not BG_JOB_ISOLATED_LOOPS:
246
- error_message += (
247
- "Also consider setting BG_JOB_ISOLATED_LOOPS=true in your environment. This will isolate I/O-bound operations to avoid"
248
- " blocking the main API server.\n\n"
249
- "See: https://langchain-ai.github.io/langgraph/cloud/reference/env_var/#bg_job_isolated_loops\n\n"
250
- )
251
-
252
245
  raise RuntimeError(error_message)
253
246
  configurable = run["kwargs"].get("config", {}).get("configurable", {})
254
247
  async with set_auth_ctx_for_run(run["kwargs"]):