langgraph-api 0.12.0.dev19__tar.gz → 0.12.0.dev20__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 (285) hide show
  1. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/PKG-INFO +1 -1
  2. langgraph_api-0.12.0.dev20/langgraph_api/__init__.py +1 -0
  3. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/runs.py +8 -6
  4. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/threads.py +11 -8
  5. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/config/__init__.py +14 -2
  6. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/service.py +5 -5
  7. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/worker.py +9 -4
  8. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/uv.lock +1 -1
  9. langgraph_api-0.12.0.dev19/langgraph_api/__init__.py +0 -1
  10. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/.gitignore +0 -0
  11. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/LICENSE +0 -0
  12. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/Makefile +0 -0
  13. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/README.md +0 -0
  14. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/.gitignore +0 -0
  15. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/Makefile +0 -0
  16. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/README.md +0 -0
  17. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/assistant.ts +0 -0
  18. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
  19. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
  20. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/benchmarks.ts +0 -0
  21. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
  22. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
  23. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/log-failure.ts +0 -0
  24. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/meta_workload.ts +0 -0
  25. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/stream_write.ts +0 -0
  26. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/thread.ts +0 -0
  27. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
  28. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
  29. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/types.ts +0 -0
  30. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/benchmark-runners/wait_write.ts +0 -0
  31. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/clean-cli.js +0 -0
  32. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/clean.js +0 -0
  33. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/continuous/README.md +0 -0
  34. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/continuous/pyproject.toml +0 -0
  35. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/continuous/runner.py +0 -0
  36. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/continuous/uv.lock +0 -0
  37. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/graphs.js +0 -0
  38. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/package.json +0 -0
  39. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/ramp.js +0 -0
  40. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/reporting/dd_reporting.py +0 -0
  41. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/staircase.py +0 -0
  42. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/staircase_step_k6.js +0 -0
  43. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/tsconfig.json +0 -0
  44. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/update-revision.js +0 -0
  45. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/benchmark/weather.js +0 -0
  46. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/constraints.txt +0 -0
  47. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/custom_store.sql +0 -0
  48. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/forbidden.txt +0 -0
  49. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/hatch_build.py +0 -0
  50. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/healthcheck.py +0 -0
  51. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph-cloud-debugging-20260210132856.zip +0 -0
  52. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/_checkpointer/__init__.py +0 -0
  53. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/_checkpointer/_adapter.py +0 -0
  54. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/_checkpointer/protocol.py +0 -0
  55. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/_factory_utils.py +0 -0
  56. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/__init__.py +0 -0
  57. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/a2a.py +0 -0
  58. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/assistants.py +0 -0
  59. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/event_streaming.py +0 -0
  60. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/mcp/__init__.py +0 -0
  61. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/mcp/_constants.py +0 -0
  62. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/mcp/_handlers.py +0 -0
  63. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/mcp/_models.py +0 -0
  64. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/mcp/_routes.py +0 -0
  65. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/mcp/_sanitizers.py +0 -0
  66. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/meta.py +0 -0
  67. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/openapi.py +0 -0
  68. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/profile.py +0 -0
  69. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/store.py +0 -0
  70. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/api/ui.py +0 -0
  71. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/asgi_transport.py +0 -0
  72. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/asyncio.py +0 -0
  73. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/__init__.py +0 -0
  74. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/custom.py +0 -0
  75. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/errors.py +0 -0
  76. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/langsmith/__init__.py +0 -0
  77. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/langsmith/backend.py +0 -0
  78. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/langsmith/client.py +0 -0
  79. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/middleware.py +0 -0
  80. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/noop.py +0 -0
  81. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/auth/studio_user.py +0 -0
  82. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/cache.py +0 -0
  83. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/cli.py +0 -0
  84. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/command.py +0 -0
  85. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/config/_parse.py +0 -0
  86. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/config/schemas.py +0 -0
  87. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/cron_scheduler.py +0 -0
  88. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/encryption/__init__.py +0 -0
  89. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/encryption/aes_json.py +0 -0
  90. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/encryption/context.py +0 -0
  91. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/encryption/custom.py +0 -0
  92. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/encryption/middleware.py +0 -0
  93. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/encryption/shared.py +0 -0
  94. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/errors.py +0 -0
  95. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/__init__.py +0 -0
  96. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/capabilities.py +0 -0
  97. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/constants.py +0 -0
  98. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/event_normalizers.py +0 -0
  99. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/namespace.py +0 -0
  100. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/session.py +0 -0
  101. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/state_normalizers.py +0 -0
  102. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/event_streaming/types.py +0 -0
  103. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/feature_flags.py +0 -0
  104. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/graph.py +0 -0
  105. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/__init__.py +0 -0
  106. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/client.py +0 -0
  107. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
  108. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/ops/__init__.py +0 -0
  109. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/ops/assistants.py +0 -0
  110. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/ops/cache.py +0 -0
  111. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/ops/crons.py +0 -0
  112. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/ops/runs.py +0 -0
  113. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/ops/threads.py +0 -0
  114. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/server.py +0 -0
  115. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/servicers/__init__.py +0 -0
  116. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
  117. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/grpc/servicers/encryption.py +0 -0
  118. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/http.py +0 -0
  119. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/http_metrics.py +0 -0
  120. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/http_metrics_utils.py +0 -0
  121. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/.gitignore +0 -0
  122. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/.prettierrc +0 -0
  123. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/__init__.py +0 -0
  124. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/base.py +0 -0
  125. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/build.mts +0 -0
  126. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/client.http.mts +0 -0
  127. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/client.mts +0 -0
  128. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/errors.py +0 -0
  129. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/global.d.ts +0 -0
  130. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/package.json +0 -0
  131. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/remote.py +0 -0
  132. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/schema.py +0 -0
  133. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/graph.mts +0 -0
  134. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/load.hooks.mjs +0 -0
  135. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/preload.mjs +0 -0
  136. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
  137. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/utils/files.mts +0 -0
  138. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/utils/importMap.mts +0 -0
  139. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  140. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/src/utils/serde.mts +0 -0
  141. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/sse.py +0 -0
  142. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/traceblock.mts +0 -0
  143. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/tsconfig.json +0 -0
  144. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/ui.py +0 -0
  145. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/js/yarn.lock +0 -0
  146. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/lc_security/__init__.py +0 -0
  147. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/lc_security/exceptions.py +0 -0
  148. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/lc_security/policy.py +0 -0
  149. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/lc_security/transport.py +0 -0
  150. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/logging.py +0 -0
  151. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/metadata.py +0 -0
  152. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/metrics_collector.py +0 -0
  153. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/metrics_otlp.py +0 -0
  154. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/middleware/__init__.py +0 -0
  155. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/middleware/ensure_store.py +0 -0
  156. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/middleware/http_logger.py +0 -0
  157. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/middleware/private_network.py +0 -0
  158. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/middleware/request_id.py +0 -0
  159. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/models/__init__.py +0 -0
  160. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/models/run.py +0 -0
  161. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/otel_context.py +0 -0
  162. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/patch.py +0 -0
  163. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/queue_entrypoint.py +0 -0
  164. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/release_tags.py +0 -0
  165. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/route.py +0 -0
  166. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/schema.py +0 -0
  167. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/self_hosted_logs.py +0 -0
  168. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/self_hosted_metrics.py +0 -0
  169. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/serde.py +0 -0
  170. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/server.py +0 -0
  171. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/sse.py +0 -0
  172. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/state.py +0 -0
  173. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/store.py +0 -0
  174. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/stream.py +0 -0
  175. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/stream_v2.py +0 -0
  176. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/timing/__init__.py +0 -0
  177. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/timing/profiler.py +0 -0
  178. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/timing/timer.py +0 -0
  179. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/traceblock.py +0 -0
  180. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/tracing_session.py +0 -0
  181. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/tunneling/cloudflare.py +0 -0
  182. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/__init__.py +0 -0
  183. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/cache.py +0 -0
  184. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/config.py +0 -0
  185. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/errors.py +0 -0
  186. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/extract.py +0 -0
  187. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/future.py +0 -0
  188. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/headers.py +0 -0
  189. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/network.py +0 -0
  190. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/retriable_client.py +0 -0
  191. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/stream_codec.py +0 -0
  192. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/utils/uuids.py +0 -0
  193. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/validation.py +0 -0
  194. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_api/webhook.py +0 -0
  195. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/__init__.py +0 -0
  196. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/checkpointer.py +0 -0
  197. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/__init__.py +0 -0
  198. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/_compat.py +0 -0
  199. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
  200. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/config.py +0 -0
  201. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/durability.py +0 -0
  202. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/store.py +0 -0
  203. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/struct.py +0 -0
  204. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/conversion/value.py +0 -0
  205. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/__init__.py +0 -0
  206. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
  207. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
  208. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
  209. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
  210. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
  211. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
  212. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
  213. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
  214. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
  215. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
  216. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
  217. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
  218. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
  219. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
  220. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
  221. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
  222. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
  223. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
  224. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
  225. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
  226. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
  227. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
  228. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
  229. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
  230. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
  231. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
  232. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
  233. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
  234. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
  235. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
  236. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
  237. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
  238. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
  239. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
  240. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
  241. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
  242. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
  243. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
  244. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
  245. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
  246. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
  247. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
  248. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
  249. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
  250. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
  251. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
  252. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
  253. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
  254. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
  255. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
  256. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
  257. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
  258. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
  259. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
  260. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
  261. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
  262. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/store_pb2.py +0 -0
  263. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
  264. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
  265. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
  266. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/serde.py +0 -0
  267. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_grpc_common/store.py +0 -0
  268. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_license/__init__.py +0 -0
  269. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_license/validation.py +0 -0
  270. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/__init__.py +0 -0
  271. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/checkpoint.py +0 -0
  272. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/database.py +0 -0
  273. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/lifespan.py +0 -0
  274. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/metrics.py +0 -0
  275. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/ops.py +0 -0
  276. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/queue.py +0 -0
  277. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/retry.py +0 -0
  278. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/routes.py +0 -0
  279. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/langgraph_runtime/store.py +0 -0
  280. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/logging.json +0 -0
  281. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/openapi.json +0 -0
  282. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/pyproject.toml +0 -0
  283. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/scripts/build_wheel.py +0 -0
  284. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/scripts/create_license.py +0 -0
  285. {langgraph_api-0.12.0.dev19 → langgraph_api-0.12.0.dev20}/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.12.0.dev19
3
+ Version: 0.12.0.dev20
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
@@ -0,0 +1 @@
1
+ __version__ = "0.12.0.dev20"
@@ -787,7 +787,9 @@ async def create_cron(request: ApiRequest):
787
787
 
788
788
  enabled = payload.get("enabled", True)
789
789
 
790
- async with connect(supports_core_api=False) as conn:
790
+ # gRPC/postgres Crons route through core-api and ignore ``conn`` (the default
791
+ # ``connect()`` yields None there); inmem uses the yielded connection.
792
+ async with connect() as conn:
791
793
  cron = await Crons.put(
792
794
  conn,
793
795
  thread_id=None,
@@ -834,7 +836,7 @@ async def create_thread_cron(request: ApiRequest):
834
836
  CRON_PAYLOAD_ENCRYPTION_SUBFIELDS,
835
837
  )
836
838
 
837
- async with connect(supports_core_api=False) as conn:
839
+ async with connect() as conn:
838
840
  cron = await Crons.put(
839
841
  conn,
840
842
  thread_id=thread_id,
@@ -890,7 +892,7 @@ async def patch_cron(request: ApiRequest):
890
892
  CRON_PAYLOAD_ENCRYPTION_SUBFIELDS,
891
893
  )
892
894
 
893
- async with connect(supports_core_api=False) as conn:
895
+ async with connect() as conn:
894
896
  cron = await Crons.update(
895
897
  conn,
896
898
  cron_id=cron_id,
@@ -917,7 +919,7 @@ async def delete_cron(request: ApiRequest):
917
919
  validate_uuid(cron_id, "Invalid cron ID: must be a UUID")
918
920
 
919
921
  try:
920
- async with connect(supports_core_api=False) as conn:
922
+ async with connect() as conn:
921
923
  cid = await Crons.delete(
922
924
  conn,
923
925
  cron_id=cron_id,
@@ -940,7 +942,7 @@ async def search_crons(request: ApiRequest):
940
942
  validate_uuid(thread_id, "Invalid thread ID: must be a UUID")
941
943
 
942
944
  offset = int(payload.get("offset", 0))
943
- async with connect(supports_core_api=False) as conn:
945
+ async with connect() as conn:
944
946
  crons_iter, next_offset = await Crons.search(
945
947
  conn,
946
948
  assistant_id=assistant_id,
@@ -972,7 +974,7 @@ async def count_crons(request: ApiRequest):
972
974
  if thread_id := payload.get("thread_id"):
973
975
  validate_uuid(thread_id, "Invalid thread ID: must be a UUID")
974
976
 
975
- async with connect(supports_core_api=False) as conn:
977
+ async with connect() as conn:
976
978
  count = await Crons.count(
977
979
  conn,
978
980
  assistant_id=assistant_id,
@@ -13,7 +13,10 @@ from langgraph_api.encryption.shared import (
13
13
  using_aes_encryption,
14
14
  using_custom_encryption,
15
15
  )
16
- from langgraph_api.feature_flags import IS_POSTGRES_OR_GRPC_BACKEND
16
+ from langgraph_api.feature_flags import (
17
+ IS_POSTGRES_OR_GRPC_BACKEND,
18
+ PREFER_GRPC_CHECKPOINTER,
19
+ )
17
20
  from langgraph_api.route import ApiRequest, ApiResponse, ApiRoute
18
21
  from langgraph_api.schema import (
19
22
  THREAD_ENCRYPTION_FIELDS,
@@ -82,7 +85,7 @@ async def create_thread(
82
85
  )
83
86
  else:
84
87
  # Need connection for inmem put or gRPC State.bulk
85
- async with connect(supports_core_api=False) as conn:
88
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
86
89
  iter = await Threads.put(
87
90
  conn,
88
91
  thread_id,
@@ -226,7 +229,7 @@ async def get_thread_state(
226
229
  thread_id = request.path_params["thread_id"]
227
230
  validate_uuid(thread_id, "Invalid thread ID: must be a UUID")
228
231
  subgraphs = request.query_params.get("subgraphs") in ("true", "True")
229
- async with connect(supports_core_api=False) as conn:
232
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
230
233
  config = {
231
234
  "configurable": {
232
235
  **get_configurable_headers(request.headers),
@@ -247,7 +250,7 @@ async def get_thread_state_at_checkpoint(
247
250
  thread_id = request.path_params["thread_id"]
248
251
  validate_uuid(thread_id, "Invalid thread ID: must be a UUID")
249
252
  checkpoint_id = request.path_params["checkpoint_id"]
250
- async with connect(supports_core_api=False) as conn:
253
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
251
254
  config = {
252
255
  "configurable": {
253
256
  **get_configurable_headers(request.headers),
@@ -273,7 +276,7 @@ async def get_thread_state_at_checkpoint_post(
273
276
  thread_id = request.path_params["thread_id"]
274
277
  validate_uuid(thread_id, "Invalid thread ID: must be a UUID")
275
278
  payload = await request.json(ThreadStateCheckpointRequest)
276
- async with connect(supports_core_api=False) as conn:
279
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
277
280
  config = {
278
281
  "configurable": {
279
282
  **payload["checkpoint"],
@@ -311,7 +314,7 @@ async def update_thread_state(
311
314
  pass
312
315
  config["configurable"].update(get_configurable_headers(request.headers))
313
316
  config["configurable"]["thread_id"] = thread_id
314
- async with connect(supports_core_api=False) as conn:
317
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
315
318
  inserted = await Threads.State.post(
316
319
  conn,
317
320
  config,
@@ -341,7 +344,7 @@ async def get_thread_history(
341
344
  **get_configurable_headers(request.headers),
342
345
  }
343
346
  }
344
- async with connect(supports_core_api=False) as conn:
347
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
345
348
  states = [
346
349
  state_snapshot_to_thread_state(c)
347
350
  for c in await Threads.State.list(
@@ -363,7 +366,7 @@ async def get_thread_history_post(
363
366
  config["configurable"].update(payload.get("checkpoint", {}))
364
367
  config["configurable"].update(get_configurable_headers(request.headers))
365
368
  config["configurable"]["thread_id"] = thread_id
366
- async with connect(supports_core_api=False) as conn:
369
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
367
370
  states = [
368
371
  state_snapshot_to_thread_state(c)
369
372
  for c in await Threads.State.list(
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING, Annotated, Literal, TypeVar, cast
4
4
 
5
5
  import structlog
6
6
  from pydantic.functional_validators import AfterValidator
7
- from starlette.config import Config, undefined
7
+ from starlette.config import Config
8
8
  from starlette.datastructures import CommaSeparatedStrings
9
9
 
10
10
  from langgraph_api import traceblock
@@ -41,7 +41,14 @@ STATS_INTERVAL_SECS = env("STATS_INTERVAL_SECS", cast=int, default=60)
41
41
  # storage
42
42
 
43
43
  # Not in public docs: infrastructure, set by platform
44
- DATABASE_URI = env("DATABASE_URI", cast=str, default=getenv("POSTGRES_URI", undefined))
44
+ # Optional: persistence can go through the Go core over gRPC, so the Python
45
+ # runtime can start without a direct DB connection string. When unset, the
46
+ # Postgres runtime skips creating a psycopg pool (see database._startup_needs /
47
+ # database.start_pool). Callers that still require a direct connection fail
48
+ # loudly via connect()'s "Postgres pool not initialized" guard.
49
+ DATABASE_URI: str | None = env(
50
+ "DATABASE_URI", cast=str, default=getenv("POSTGRES_URI", None)
51
+ )
45
52
  # Not in public docs: infrastructure, set by platform
46
53
  MIGRATIONS_PATH = env("MIGRATIONS_PATH", cast=str, default="/storage/migrations")
47
54
  POSTGRES_POOL_MAX_SIZE = env("LANGGRAPH_POSTGRES_POOL_MAX_SIZE", cast=int, default=150)
@@ -246,6 +253,10 @@ STORE_CONFIG = env(
246
253
  LANGGRAPH_STORE_BACKEND = env("LANGGRAPH_STORE_BACKEND", cast=str, default="python")
247
254
  USE_GRPC_STORE = LANGGRAPH_STORE_BACKEND == "grpc"
248
255
 
256
+ # When true, the Go core-server owns Postgres schema setup (DB migrations +
257
+ # vector index)
258
+ DB_MIGRATION_BY_CORE_API = env("DB_MIGRATION_BY_CORE_API", cast=bool, default=False)
259
+
249
260
 
250
261
  def _validate_mount_prefix(mount_prefix: str | None) -> str | None:
251
262
  if not mount_prefix:
@@ -642,6 +653,7 @@ __all__ = [
642
653
  "CRON_SCHEDULER_SLEEP_TIME",
643
654
  "DATABASE_URI",
644
655
  "DATADOG_METRICS_ENABLED",
656
+ "DB_MIGRATION_BY_CORE_API",
645
657
  "EXPOSE_INTERNAL_METRICS_PROMETHEUS",
646
658
  "FF_CRONS_ENABLED",
647
659
  "FF_LOG_DROPPED_EVENTS",
@@ -43,7 +43,7 @@ from langgraph_api.event_streaming.session import (
43
43
  _is_supported_channel,
44
44
  )
45
45
  from langgraph_api.event_streaming.types import Subscription
46
- from langgraph_api.feature_flags import FF_V2_EVENT_STREAMING
46
+ from langgraph_api.feature_flags import FF_V2_EVENT_STREAMING, PREFER_GRPC_CHECKPOINTER
47
47
  from langgraph_api.schema import MultitaskStrategy
48
48
 
49
49
  logger = structlog.stdlib.get_logger(__name__)
@@ -962,11 +962,11 @@ class ThreadRunManager:
962
962
  async def get_thread_state() -> dict[str, Any] | None:
963
963
  from langgraph_runtime.database import connect # noqa: PLC0415
964
964
 
965
- # ``supports_core_api=False`` so the postgres backend yields a
966
- # real connection. ``State.get`` uses the local checkpointer
967
- # and needs a usable ``conn`` the default flag yields None.
965
+ # When ``PREFER_GRPC_CHECKPOINTER`` is false the postgres backend
966
+ # yields a real connection for the Python checkpointer; when true
967
+ # it yields a no-op stand-in and checkpoint I/O goes through gRPC.
968
968
  try:
969
- async with connect(supports_core_api=False) as conn:
969
+ async with connect(supports_core_api=PREFER_GRPC_CHECKPOINTER) as conn:
970
970
  return await self._threads.State.get(
971
971
  conn,
972
972
  {"configurable": {"thread_id": thread_id}},
@@ -25,7 +25,10 @@ from langgraph_api.encryption.middleware import (
25
25
  extract_blob_encryption_context,
26
26
  )
27
27
  from langgraph_api.errors import UserInterrupt, UserRollback, UserTimeout
28
- from langgraph_api.feature_flags import IS_POSTGRES_OR_GRPC_BACKEND
28
+ from langgraph_api.feature_flags import (
29
+ IS_POSTGRES_OR_GRPC_BACKEND,
30
+ PREFER_GRPC_CHECKPOINTER,
31
+ )
29
32
  from langgraph_api.graph import restore_dd_trace_context
30
33
  from langgraph_api.js.errors import RemoteException
31
34
  from langgraph_api.metadata import incr_runs
@@ -319,9 +322,11 @@ async def worker(
319
322
  run_attempt=attempt,
320
323
  )
321
324
  try:
322
- # We actually still need a connection for the python checkpointer
323
- # This only doubles up connections for inmem which is fine
324
- async with connect(supports_core_api=False) as conn:
325
+ # Python checkpointer needs a real PG conn; gRPC checkpointer
326
+ # does not. This only doubles up connections for inmem.
327
+ async with connect(
328
+ supports_core_api=PREFER_GRPC_CHECKPOINTER
329
+ ) as conn:
325
330
  state_snapshot = await Threads.State.get(
326
331
  conn, run["kwargs"]["config"], subgraphs=False
327
332
  )
@@ -901,7 +901,7 @@ requires-dist = [
901
901
  [package.metadata.requires-dev]
902
902
  dev = [
903
903
  { name = "grpcio-health-checking", specifier = ">=1.80.0,<1.82.0" },
904
- { name = "grpcio-tools", specifier = "==1.80.0" },
904
+ { name = "grpcio-tools", specifier = "==1.81.1" },
905
905
  { name = "langchain", specifier = ">=0.3" },
906
906
  { name = "langchain-core", specifier = ">=0.3" },
907
907
  { name = "mypy-protobuf", specifier = ">=5.0.0,<6" },
@@ -1 +0,0 @@
1
- __version__ = "0.12.0.dev19"