langgraph-api 0.16.0.dev9__tar.gz → 0.16.0.dev10__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.0.dev9 → langgraph_api-0.16.0.dev10}/Makefile +4 -0
  2. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/PKG-INFO +1 -1
  3. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/README.md +1 -1
  4. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/delta_turns.ts +18 -7
  5. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/delta-report.js +43 -9
  6. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/delta-report.test.js +19 -0
  7. langgraph_api-0.16.0.dev10/langgraph_api/__init__.py +1 -0
  8. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/stream.py +9 -10
  9. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/worker.py +14 -0
  10. langgraph_api-0.16.0.dev9/langgraph_api/__init__.py +0 -1
  11. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/.gitignore +0 -0
  12. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/LICENSE +0 -0
  13. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/README.md +0 -0
  14. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/.gitignore +0 -0
  15. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/Makefile +0 -0
  16. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/assistant.ts +0 -0
  17. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
  18. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
  19. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/benchmarks.ts +0 -0
  20. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
  21. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/classify-error.test.js +0 -0
  22. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/classify-error.ts +0 -0
  23. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/delta-turns-lib.test.js +0 -0
  24. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/delta-turns-lib.ts +0 -0
  25. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
  26. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/interrupt_resume.ts +0 -0
  27. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/log-failure.ts +0 -0
  28. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/meta_workload.ts +0 -0
  29. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/store.ts +0 -0
  30. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/stream_write.ts +0 -0
  31. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/thread.ts +0 -0
  32. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
  33. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
  34. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/types.ts +0 -0
  35. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/benchmark-runners/wait_write.ts +0 -0
  36. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/capacity-ci.js +0 -0
  37. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/capacity-ci.test.js +0 -0
  38. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/clean-cli.js +0 -0
  39. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/clean.js +0 -0
  40. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/continuous/README.md +0 -0
  41. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/continuous/pyproject.toml +0 -0
  42. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/continuous/runner.py +0 -0
  43. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/continuous/uv.lock +0 -0
  44. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/daily-report.js +0 -0
  45. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/daily-report.test.js +0 -0
  46. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/graphs.js +0 -0
  47. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/history.js +0 -0
  48. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/history.test.js +0 -0
  49. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/host-v2.js +0 -0
  50. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/host-v2.test.js +0 -0
  51. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/multer.test.js +0 -0
  52. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/package.json +0 -0
  53. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/ramp.js +0 -0
  54. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/reporting/dd_reporting.py +0 -0
  55. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/runner-descriptions.js +0 -0
  56. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/server-metrics.js +0 -0
  57. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/server-metrics.test.js +0 -0
  58. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/slack.js +0 -0
  59. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/staircase.py +0 -0
  60. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/staircase_step_k6.js +0 -0
  61. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/tsconfig.json +0 -0
  62. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/update-revision.js +0 -0
  63. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/weather.js +0 -0
  64. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/benchmark/yarn.lock +0 -0
  65. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/constraints.txt +0 -0
  66. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/custom_store.sql +0 -0
  67. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/forbidden.txt +0 -0
  68. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/hatch_build.py +0 -0
  69. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/healthcheck.py +0 -0
  70. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph-cloud-debugging-20260210132856.zip +0 -0
  71. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/_checkpointer/__init__.py +0 -0
  72. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/_checkpointer/_adapter.py +0 -0
  73. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/_checkpointer/protocol.py +0 -0
  74. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/_factory_utils.py +0 -0
  75. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/__init__.py +0 -0
  76. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/a2a.py +0 -0
  77. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/a2ui.py +0 -0
  78. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/a2ui_schemas/README.md +0 -0
  79. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/a2ui_schemas/client_capabilities.json +0 -0
  80. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/a2ui_schemas/client_data_model.json +0 -0
  81. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/a2ui_schemas/client_to_server.json +0 -0
  82. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/a2ui_schemas/server_to_client.json +0 -0
  83. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/assistants.py +0 -0
  84. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/event_streaming.py +0 -0
  85. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/mcp/__init__.py +0 -0
  86. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/mcp/_constants.py +0 -0
  87. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/mcp/_handlers.py +0 -0
  88. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/mcp/_models.py +0 -0
  89. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/mcp/_routes.py +0 -0
  90. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/mcp/_sanitizers.py +0 -0
  91. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/meta.py +0 -0
  92. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/openapi.py +0 -0
  93. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/profile.py +0 -0
  94. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/runs.py +0 -0
  95. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/store.py +0 -0
  96. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/threads.py +0 -0
  97. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/api/ui.py +0 -0
  98. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/asgi_transport.py +0 -0
  99. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/asyncio.py +0 -0
  100. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/__init__.py +0 -0
  101. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/custom.py +0 -0
  102. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/errors.py +0 -0
  103. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/langsmith/__init__.py +0 -0
  104. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/langsmith/backend.py +0 -0
  105. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/langsmith/client.py +0 -0
  106. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/middleware.py +0 -0
  107. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/noop.py +0 -0
  108. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/auth/studio_user.py +0 -0
  109. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/beacon_data_plane_jwt_auth.py +0 -0
  110. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/cache.py +0 -0
  111. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/cli.py +0 -0
  112. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/command.py +0 -0
  113. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/config/__init__.py +0 -0
  114. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/config/_parse.py +0 -0
  115. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/config/schemas.py +0 -0
  116. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/cron_scheduler.py +0 -0
  117. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/encryption/__init__.py +0 -0
  118. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/encryption/aes_json.py +0 -0
  119. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/encryption/context.py +0 -0
  120. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/encryption/custom.py +0 -0
  121. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/encryption/middleware.py +0 -0
  122. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/encryption/shared.py +0 -0
  123. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/errors.py +0 -0
  124. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/__init__.py +0 -0
  125. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/capabilities.py +0 -0
  126. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/constants.py +0 -0
  127. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/event_normalizers.py +0 -0
  128. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/namespace.py +0 -0
  129. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/service.py +0 -0
  130. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/session.py +0 -0
  131. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/state_normalizers.py +0 -0
  132. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/event_streaming/types.py +0 -0
  133. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/feature_flags.py +0 -0
  134. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/graph.py +0 -0
  135. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/__init__.py +0 -0
  136. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/client.py +0 -0
  137. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
  138. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/ops/__init__.py +0 -0
  139. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/ops/assistants.py +0 -0
  140. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/ops/cache.py +0 -0
  141. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/ops/crons.py +0 -0
  142. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/ops/runs.py +0 -0
  143. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/ops/threads.py +0 -0
  144. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/server.py +0 -0
  145. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/servicers/__init__.py +0 -0
  146. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
  147. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/grpc/servicers/encryption.py +0 -0
  148. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/http.py +0 -0
  149. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/http_metrics.py +0 -0
  150. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/http_metrics_utils.py +0 -0
  151. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/.gitignore +0 -0
  152. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/.prettierrc +0 -0
  153. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/.yarnclean +0 -0
  154. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/__init__.py +0 -0
  155. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/base.py +0 -0
  156. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/build.mts +0 -0
  157. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/client.http.mts +0 -0
  158. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/client.mts +0 -0
  159. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/errors.py +0 -0
  160. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/global.d.ts +0 -0
  161. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/package.json +0 -0
  162. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/remote.py +0 -0
  163. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/schema.py +0 -0
  164. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/auth-mutations.mts +0 -0
  165. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/graph.mts +0 -0
  166. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/load.hooks.mjs +0 -0
  167. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/preload.mjs +0 -0
  168. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
  169. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/utils/files.mts +0 -0
  170. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/utils/importMap.mts +0 -0
  171. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  172. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/src/utils/serde.mts +0 -0
  173. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/sse.py +0 -0
  174. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/traceblock.mts +0 -0
  175. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/tsconfig.json +0 -0
  176. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/ui.py +0 -0
  177. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/js/yarn.lock +0 -0
  178. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/lc_security/__init__.py +0 -0
  179. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/lc_security/exceptions.py +0 -0
  180. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/lc_security/policy.py +0 -0
  181. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/lc_security/transport.py +0 -0
  182. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/logging.py +0 -0
  183. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/metadata.py +0 -0
  184. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/metrics_collector.py +0 -0
  185. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/metrics_otlp.py +0 -0
  186. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/middleware/__init__.py +0 -0
  187. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/middleware/ensure_store.py +0 -0
  188. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/middleware/http_logger.py +0 -0
  189. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/middleware/private_network.py +0 -0
  190. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/middleware/request_id.py +0 -0
  191. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/models/__init__.py +0 -0
  192. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/models/run.py +0 -0
  193. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/otel_context.py +0 -0
  194. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/patch.py +0 -0
  195. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/queue_entrypoint.py +0 -0
  196. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/release_tags.py +0 -0
  197. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/route.py +0 -0
  198. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/runner/__init__.py +0 -0
  199. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/runner/__main__.py +0 -0
  200. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/schema.py +0 -0
  201. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/self_hosted_logs.py +0 -0
  202. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/self_hosted_metrics.py +0 -0
  203. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/serde.py +0 -0
  204. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/server.py +0 -0
  205. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/sse.py +0 -0
  206. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/state.py +0 -0
  207. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/store.py +0 -0
  208. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/stream_v2.py +0 -0
  209. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/timing/__init__.py +0 -0
  210. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/timing/profiler.py +0 -0
  211. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/timing/timer.py +0 -0
  212. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/traceblock.py +0 -0
  213. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/tracing_session.py +0 -0
  214. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/tunneling/cloudflare.py +0 -0
  215. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/__init__.py +0 -0
  216. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/cache.py +0 -0
  217. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/config.py +0 -0
  218. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/errors.py +0 -0
  219. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/extract.py +0 -0
  220. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/future.py +0 -0
  221. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/headers.py +0 -0
  222. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/network.py +0 -0
  223. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/retriable_client.py +0 -0
  224. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/stream_codec.py +0 -0
  225. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/utils/uuids.py +0 -0
  226. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/validation.py +0 -0
  227. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/webhook.py +0 -0
  228. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_api/worker_runtime.py +0 -0
  229. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/__init__.py +0 -0
  230. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/checkpointer.py +0 -0
  231. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/__init__.py +0 -0
  232. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/_compat.py +0 -0
  233. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
  234. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/config.py +0 -0
  235. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/durability.py +0 -0
  236. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/store.py +0 -0
  237. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/struct.py +0 -0
  238. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/conversion/value.py +0 -0
  239. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/__init__.py +0 -0
  240. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
  241. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
  242. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
  243. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
  244. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
  245. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
  246. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
  247. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
  248. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
  249. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
  250. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
  251. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
  252. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
  253. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
  254. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
  255. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
  256. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
  257. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
  258. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
  259. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
  260. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
  261. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
  262. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
  263. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
  264. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
  265. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
  266. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
  267. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
  268. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
  269. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
  270. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
  271. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
  272. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
  273. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
  274. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
  275. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
  276. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
  277. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
  278. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
  279. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
  280. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
  281. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
  282. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
  283. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
  284. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
  285. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
  286. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
  287. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
  288. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
  289. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
  290. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
  291. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
  292. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
  293. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
  294. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
  295. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
  296. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/runner_pb2.py +0 -0
  297. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/runner_pb2.pyi +0 -0
  298. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/runner_pb2_grpc.py +0 -0
  299. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/runner_pb2_grpc.pyi +0 -0
  300. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/store_pb2.py +0 -0
  301. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
  302. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
  303. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
  304. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/serde.py +0 -0
  305. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_grpc_common/store.py +0 -0
  306. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_license/__init__.py +0 -0
  307. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_license/validation.py +0 -0
  308. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/__init__.py +0 -0
  309. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/checkpoint.py +0 -0
  310. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/database.py +0 -0
  311. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/lifespan.py +0 -0
  312. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/metrics.py +0 -0
  313. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/ops.py +0 -0
  314. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/queue.py +0 -0
  315. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/retry.py +0 -0
  316. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/routes.py +0 -0
  317. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/langgraph_runtime/store.py +0 -0
  318. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/logging.json +0 -0
  319. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/openapi.json +0 -0
  320. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/pyproject.toml +0 -0
  321. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/scripts/build_wheel.py +0 -0
  322. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/scripts/create_license.py +0 -0
  323. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/scripts/run_a2a_tck.py +0 -0
  324. {langgraph_api-0.16.0.dev9 → langgraph_api-0.16.0.dev10}/uv.lock +0 -0
@@ -313,6 +313,10 @@ VERSION_KIND ?= patch
313
313
  bump-version:
314
314
  uv run --with hatch hatch version $(VERSION_KIND)
315
315
 
316
+ sync-runtime-inmem-dep:
317
+ @python3 -c 'import pathlib,re; v=pathlib.Path("../runtime_inmem/langgraph_runtime_inmem/__init__.py").read_text(); m=re.search(r"__version__\s*=\s*\"(\d+)\.(\d+)", v); major,minor=map(int,m.groups()); p=pathlib.Path("pyproject.toml"); text,n=re.subn(r"\"langgraph-runtime-inmem>=[^\"]+\",", f"\"langgraph-runtime-inmem>={major}.{minor}.0.dev0,<{major}.{minor + 1}.0.dev0\",", p.read_text(), count=1); \
318
+ assert n==1, "langgraph-runtime-inmem dep not found in pyproject.toml"; p.write_text(text)'
319
+
316
320
  # A2A TCK (Test Compatibility Kit) targets
317
321
  # Requires a running server: make start (in another terminal)
318
322
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-api
3
- Version: 0.16.0.dev9
3
+ Version: 0.16.0.dev10
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
@@ -129,7 +129,7 @@ by replaying them. That moves cost from write to read, and the read cost grows w
129
129
  thread depth. `delta_turns` measures it: one thread per VU, one turn per iteration,
130
130
  `turn_duration` tagged by depth bucket.
131
131
 
132
- `benchmark-delta.yml` runs four cells nightly, 20 users for 25 minutes each: plain channel, then
132
+ `benchmark-delta.yml` runs four cells nightly, 20 users for 25 minutes each, 1 KB appended per turn (`CHECKPOINT_SIZE`): plain channel, then
133
133
  delta snapshotting every 50 (`benchmark_delta_freq`, the deepagents setting), 500
134
134
  (`benchmark_delta_500`) and 1000 (`benchmark_delta`, the library default). `delta-report.js` posts
135
135
  a headline table (non-delta vs delta at 50: read, write, storage by depth) and one table per metric
@@ -52,6 +52,8 @@ interface DeltaTurnsData {
52
52
  plan: TurnPlan;
53
53
  guardFailure: string | null;
54
54
  drift: string | null;
55
+ /** Non-200 status of the cold state read, which is a failed request, not a correctness failure. */
56
+ stateStatus: number | null;
55
57
  }
56
58
 
57
59
  export class DeltaTurns extends BenchmarkRunner {
@@ -96,19 +98,24 @@ export class DeltaTurns extends BenchmarkRunner {
96
98
 
97
99
  let guardFailure: string | null = null;
98
100
  let drift: string | null = null;
101
+ let stateStatus: number | null = null;
99
102
  // A failed body is not state, and comparing against it would report drift
100
103
  // on top of the failure that caused it.
101
104
  if (response.status === 200 && (plan.guard || plan.verify)) {
102
- const readStartedAt = Date.now();
103
105
  const state = http.get(`${baseUrl}/threads/${threadId}/state`, requestParams);
104
- // The turn-2 guard read is at depth 2, not the bucket's end; timing it
105
- // would pull the first row's read median down.
106
+ // Time to first byte: the server cannot start answering before it has
107
+ // rebuilt the value, and the body that follows is the whole state, which
108
+ // at depth is hundreds of KB the turn itself never sends. Wall time made
109
+ // a plain-channel read cost as much as a whole turn. The turn-2 guard
110
+ // read is at depth 2, not the bucket's end, so it is not timed.
106
111
  if (state.status === 200 && plan.verify) {
107
- stateReadDuration.add(Date.now() - readStartedAt, { depth: plan.depthBucket });
112
+ stateReadDuration.add(state.timings.waiting, { depth: plan.depthBucket });
108
113
  }
109
114
  addResponse(responses, 'state', state);
110
115
  const body = state.status === 200 ? safeJson(state.body) : null;
111
- if (body === null) {
116
+ if (state.status !== 200) {
117
+ stateStatus = state.status;
118
+ } else if (body === null) {
112
119
  guardFailure = plan.guard ? 'state_unreadable' : guardFailure;
113
120
  drift = plan.verify ? 'state_unreadable' : drift;
114
121
  } else {
@@ -135,7 +142,7 @@ export class DeltaTurns extends BenchmarkRunner {
135
142
  }
136
143
  }
137
144
 
138
- return okResult(responses, { rawResponse: response, plan, guardFailure, drift });
145
+ return okResult(responses, { rawResponse: response, plan, guardFailure, drift, stateStatus });
139
146
  }
140
147
 
141
148
  static validate(
@@ -154,6 +161,7 @@ export class DeltaTurns extends BenchmarkRunner {
154
161
  'Response does not contain __error__': () => json?.__error__ === undefined,
155
162
  'Run advanced the thread by one turn': () =>
156
163
  json == null || plan == null || json.counter === plan.steps,
164
+ 'Cold state read succeeded': () => result.data?.stateStatus == null,
157
165
  'Delta storage is as expected': () => result.data?.guardFailure == null,
158
166
  'Cold re-read matches the run': () => result.data?.drift == null,
159
167
  });
@@ -165,6 +173,7 @@ export class DeltaTurns extends BenchmarkRunner {
165
173
  const detail = [
166
174
  plan ? `turn=${plan.steps} graph=${plan.graphId}` : '',
167
175
  res ? `status=${res.status}` : '',
176
+ result.data?.stateStatus ? `state_status=${result.data.stateStatus}` : '',
168
177
  result.data?.guardFailure ? `guard=${result.data.guardFailure}` : '',
169
178
  result.data?.drift ? `drift=${result.data.drift}` : '',
170
179
  ]
@@ -173,7 +182,9 @@ export class DeltaTurns extends BenchmarkRunner {
173
182
  logFailure(DeltaTurns.toString(), result, { extra: detail });
174
183
  recordError(
175
184
  classifyError({
176
- response: res ?? result.responses?.create_thread ?? null,
185
+ response: result.data?.stateStatus
186
+ ? result.responses?.state ?? null
187
+ : res ?? result.responses?.create_thread ?? null,
177
188
  hasApiError: json?.__error__ !== undefined,
178
189
  missingMessage: result.data?.drift != null || result.data?.guardFailure != null,
179
190
  }),
@@ -183,7 +183,7 @@ export async function collectCells(resultsDir) {
183
183
  ...spec,
184
184
  stepOutcome: context.stepOutcome ?? (dir ? 'unknown' : 'missing'),
185
185
  summary: dir ? readSummary(findLatestSummary(dir)) : null,
186
- load: { loadSize: context.loadSize, plateauDuration: context.plateauDuration },
186
+ load: { loadSize: context.loadSize, plateauDuration: context.plateauDuration, checkpointSize: context.checkpointSize },
187
187
  buckets: raw ? aggregateSamples(await readSamples(raw)) : {},
188
188
  });
189
189
  }
@@ -232,6 +232,39 @@ function deepest(buckets) {
232
232
  return depths.length ? depths.sort(byDepth).at(-1) : null;
233
233
  }
234
234
 
235
+ /**
236
+ * A bucket counts as measured when it has a cold read: the row is about read
237
+ * and write. A run that stops mid-bucket has turns there but no read yet, and a
238
+ * verify turn whose state read failed can leave storage bytes with no read.
239
+ */
240
+ function hasRead(bucket) {
241
+ return isNumber(bucket?.readP50Ms);
242
+ }
243
+
244
+ function measuredDeepest(buckets) {
245
+ const depths = Object.keys(buckets).filter((d) => hasRead(buckets[d]));
246
+ return depths.length ? depths.sort(byDepth).at(-1) : null;
247
+ }
248
+
249
+ /**
250
+ * Rows every cell in a table has a read for, checked per row: a slower cell
251
+ * stops earlier, and a verify turn whose state read failed leaves a hole at
252
+ * any depth. A row where one column is `-` compares nothing; how far each cell
253
+ * got is reported as its own line instead.
254
+ */
255
+ function sharedDepths(cells, depths) {
256
+ return [...depths].filter((d) => cells.every((c) => hasRead(c.buckets?.[d]))).sort(byDepth);
257
+ }
258
+
259
+ function depthLine(cells, plateauDuration) {
260
+ const held = heldFor(plateauDuration) ?? 'the run';
261
+ const parts = cells.map((c) => {
262
+ const top = measuredDeepest(c.buckets ?? {});
263
+ return `${cellName(c)} ${top ? count(bucketEnd(top)) : '-'}`;
264
+ });
265
+ return `_Last measured turn in ${held}: ${parts.join(' · ')}_`;
266
+ }
267
+
235
268
  function failureReason(cell) {
236
269
  const metrics = cell.summary?.metrics;
237
270
  if (!metrics) return `no results produced, step finished as \`${cell.stepOutcome}\``;
@@ -293,8 +326,10 @@ export function describeDelta(cells) {
293
326
  const users = withLoad ? `${count(Number(withLoad.load.loadSize))} users` : 'a few users';
294
327
  const held = heldFor(withLoad?.load?.plateauDuration);
295
328
  const load = [users, 'one thread each', held ? `${held} hold` : null, 'closed model'].filter(Boolean).join(', ');
329
+ const bytes = Number(withLoad?.load?.checkpointSize);
330
+ const appended = bytes >= 1024 ? `${Math.round(bytes / 1024)} KB` : bytes > 0 ? `${bytes} B` : null;
296
331
  return (
297
- `k6: ${load}. Paths: one turn per iteration on a growing thread (run and wait), plus a cold state read and a storage read every 50 turns. ` +
332
+ `k6: ${load}. Paths: one turn per iteration on a growing thread (run and wait${appended ? `, ${appended} appended` : ''}), plus a cold state read and a storage read every 50 turns. ` +
298
333
  'Cells: plain channel vs DeltaChannel with a snapshot every 50 (deepagents), 500 and 1000 (library default). ' +
299
334
  "Measures read, write and checkpoint bytes by thread depth. Same load nightly on the day's revision, so a change is the server."
300
335
  );
@@ -308,10 +343,8 @@ export function headlineTable(cells, changesByCell) {
308
343
  const pair = HEADLINE.map((key) => cells.find((c) => c.cell === key)).filter(Boolean);
309
344
  const flaggedDepths = pair.flatMap((c) => (changesByCell.get(c) ?? []).filter((ch) => ch.flagged).map((ch) => ch.depth));
310
345
  // The deepest bucket often has turns but no cold read yet; a row of dashes says nothing.
311
- const measured = new Set(
312
- pair.flatMap((c) => Object.keys(c.buckets ?? {}).filter((d) => METRICS.some(([key]) => isNumber(c.buckets[d][key]))))
313
- );
314
- const depths = headlineRows(measured, flaggedDepths);
346
+ const measured = new Set(pair.flatMap((c) => Object.keys(c.buckets ?? {}).filter((d) => hasRead(c.buckets[d]))));
347
+ const depths = headlineRows(sharedDepths(pair, measured), flaggedDepths);
315
348
  if (depths.length === 0) return ['*No per-depth samples were recorded.*'];
316
349
  const w = 8;
317
350
  const units = { read: 'read s', write: 'write s', KB: 'KB' };
@@ -338,7 +371,7 @@ export function headlineTable(cells, changesByCell) {
338
371
 
339
372
  export function sweepTables(cells) {
340
373
  const deltas = cells.filter((c) => c.cell !== 'control');
341
- const depths = sweepRows(new Set(deltas.flatMap((c) => Object.keys(c.buckets ?? {}))), deltas.map((c) => c.snapshot));
374
+ const depths = sweepRows(sharedDepths(deltas, new Set(deltas.flatMap((c) => Object.keys(c.buckets ?? {})))), deltas.map((c) => c.snapshot));
342
375
  if (depths.length === 0) return [];
343
376
  const w = 10;
344
377
  const titles = { read: 'read, median seconds', write: 'write, seconds', KB: 'storage, KB at that turn' };
@@ -430,6 +463,7 @@ export function buildReport(cells, context = {}) {
430
463
  `*Plain channel vs DeltaChannel at the deepagents setting* · a row every ${HEADLINE_EVERY} turns of a thread, plus the first and deepest; read and write are medians of the 50 turns before it, KB at that turn. Delta should keep both flat as the thread deepens.`
431
464
  );
432
465
  lines.push(...headlineTable(cells, changesByCell));
466
+ lines.push(depthLine(cells, cells.find((c) => c.load?.plateauDuration)?.load.plateauDuration));
433
467
  if (!anyBytes(cells)) {
434
468
  lines.push('_KB reads `-`: the deployment runs an API without `GET /threads/{id}/storage` yet._');
435
469
  }
@@ -488,13 +522,13 @@ function howToRead(cells) {
488
522
  `• *Tests:* ${cells.map((c) => `${cellName(c)} = ${c.label}`).join(' · ')}. Each is one k6 run of the same graph logic; only the channel type and snapshot frequency differ.`,
489
523
  withLoad ? `• *Load:* ${count(Number(withLoad.load.loadSize))} users, one thread each${held ? `, held ${held}` : ''}, one turn per iteration, no ramp.` : null,
490
524
  '• *Turn:* one `POST /runs/wait` on the thread, which reads the last checkpoint, runs one step and saves a new one. The row label is the thread depth the cold read was taken at.',
491
- '• *Read:* a cold `GET /threads/{id}/state` every 50 turns. The server rebuilds the value from storage with nothing to write. With delta that is the replay of every diff since the last snapshot.',
525
+ '• *Read:* a cold `GET /threads/{id}/state` every 50 turns, timed to the server\'s first byte, so sending the state back is not counted. The server rebuilds the value from storage with nothing to write. With delta that is the replay of every diff since the last snapshot.',
492
526
  '• *Write:* the turn\'s median latency minus the cold read, so what saving one more checkpoint costs. It still includes the fixed cost of queueing and running the one-node step, identical in every cell, so compare columns; it is not a checkpoint-write latency on its own.',
493
527
  '• *Storage:* `GET /threads/{id}/storage` every 50 turns, the bytes the thread occupies at that turn.',
494
528
  `• *Regressed / Improved:* read, write or storage at the deepest turn every night reached, outside its own usual range over the last ${MIN_HISTORY_NIGHTS}+ nights.`,
495
529
  `• *Errors:* failed requests by HTTP status. ${ERROR_ATTENTION} or more turn the dot yellow even when the cell passes.`,
496
530
  '• *Correctness check:* at turn 2 each cell confirms delta is on (delta cells) or off (plain cell), because a too-old langgraph silently degrades a DeltaChannel to a plain one. Every 50 turns the cold re-read is compared to what the run returned. A failure of either is a bug, not a slow night.',
497
- '• *Rows:* the channel table shows a row every 250 turns plus the first and deepest; the sweep shows the turn before and at each snapshot. Every 50-turn row is in the run artifacts.',
531
+ '• *Rows:* the channel table shows a row every 250 turns plus the first and deepest; the sweep shows the turn before and at each snapshot. Tables stop at the depth every cell reached; the line under the channel table says how far each got. Every 50-turn row is in the run artifacts.',
498
532
  '• `-` in a cell: no number, the cell produced no results or no thread reached that depth.',
499
533
  ]
500
534
  .filter(Boolean)
@@ -146,6 +146,25 @@ test('a night that stops mid-bucket compares at the last turn with a cold read,
146
146
  assert.match(text, /^100\s+.*0\.11▼/m);
147
147
  });
148
148
 
149
+ test('tables stop where the slowest cell stopped, and the depth each cell reached is its own line', () => {
150
+ const tonight = night();
151
+ tonight[0].buckets['101-150'] = bucket(50, 400, 122880);
152
+ tonight[0].buckets['151-200'] = bucket(50, 400, 163840);
153
+ // delta/50 got nine turns into the next bucket, with no cold read there yet.
154
+ tonight[1].buckets['101-150'] = { turns: 9, p50Ms: 450, p95Ms: 600, readP50Ms: null, saveEstMs: null, bytes: null };
155
+ // delta/500's one thread there had its state read fail; only the storage probe answered.
156
+ tonight[2].buckets['101-150'] = { turns: 1, p50Ms: 450, p95Ms: 450, readP50Ms: null, saveEstMs: null, bytes: 1024 };
157
+ // delta/1000's first verify turn had its state read fail, with storage answering: a hole, not the end.
158
+ tonight[3].buckets['1-50'] = { turns: 500, p50Ms: 450, p95Ms: 600, readP50Ms: null, saveEstMs: null, bytes: 4096 };
159
+ const { text, thread } = buildReport(tonight, base);
160
+ assert.match(text, /^50\s+/m);
161
+ assert.match(text, /^100\s+/m);
162
+ assert.doesNotMatch(text, /^(150|200)\s+/m);
163
+ assert.match(text, /^_Last measured turn in 25 min: non-delta 200 · delta\/50 100 · delta\/500 100 · delta\/1000 100_$/m);
164
+ assert.doesNotMatch(thread[0], /^(50|150|200)\s+/m);
165
+ assert.match(thread[0], /^100\s+/m);
166
+ });
167
+
149
168
  test('a deepest bucket with turns but no cold read yet is not a row of dashes', () => {
150
169
  const tonight = night();
151
170
  for (const c of tonight) c.buckets['101-150'] = { turns: 9, p50Ms: 450, p95Ms: 600, readP50Ms: null, saveEstMs: null, bytes: null };
@@ -0,0 +1 @@
1
+ __version__ = "0.16.0.dev10"
@@ -717,14 +717,16 @@ async def _consume_inline(
717
717
  except Exception as e:
718
718
  if isinstance(e, ExceptionGroup):
719
719
  e = e.exceptions[0]
720
- with suppress(Exception):
721
- await Runs.Stream.publish(
722
- run_id,
723
- "error",
724
- await run_in_executor(None, json_dumpb, e),
725
- thread_id=thread_id,
726
- )
727
720
  if isinstance(e, StreamPublishException):
721
+ # We swallow this and report the run as complete, so the worker
722
+ # never sees it and cannot surface it. Emit it to the client here.
723
+ with suppress(Exception):
724
+ await Runs.Stream.publish(
725
+ run_id,
726
+ "error",
727
+ await run_in_executor(None, json_dumpb, e),
728
+ thread_id=thread_id,
729
+ )
728
730
  await logger.aerror(
729
731
  "Suppressing stream consume exception",
730
732
  run_id=str(run_id),
@@ -815,9 +817,6 @@ async def _consume_async_queue(
815
817
  except Exception as e:
816
818
  if isinstance(e, ExceptionGroup):
817
819
  e = e.exceptions[0]
818
- with suppress(Exception):
819
- error_payload = await run_in_executor(None, json_dumpb, e)
820
- await _enqueue(("error", error_payload, "error", False))
821
820
  raise e
822
821
  finally:
823
822
  with suppress(Exception):
@@ -1,6 +1,7 @@
1
1
  import asyncio
2
2
  import time
3
3
  import uuid
4
+ from contextlib import suppress
4
5
  from datetime import UTC, datetime
5
6
  from typing import Any
6
7
 
@@ -33,6 +34,7 @@ from langgraph_api.metrics_otlp import (
33
34
  get_otlp_metrics_reporter,
34
35
  )
35
36
  from langgraph_api.schema import RUN_KWARGS_ENCRYPTION_SUBFIELDS, Run, StreamMode
37
+ from langgraph_api.serde import json_dumpb
36
38
  from langgraph_api.stream import AnyStream, consume
37
39
  from langgraph_api.worker_runtime import (
38
40
  ALL_RETRIABLE_EXCEPTIONS,
@@ -360,6 +362,18 @@ async def worker(
360
362
  if isinstance(exception, UserTimeout):
361
363
  exception = exception.timeout_error
362
364
 
365
+ # Sole emitter of the terminal `error` stream event: consume()
366
+ # re-raises without emitting, so a retriable attempt stays silent
367
+ # until the run actually fails. Emit before the status write so raw
368
+ # SSE clients (no status fallback) see it even if that write fails.
369
+ with suppress(Exception):
370
+ await Runs.Stream.publish(
371
+ run_id,
372
+ "error",
373
+ json_dumpb(exception),
374
+ thread_id=run["thread_id"],
375
+ )
376
+
363
377
  # We're outside the original `except` block, so build exc_info manually.
364
378
  # This preserves traceback logging for non-remote exceptions.
365
379
  exc_info = None
@@ -1 +0,0 @@
1
- __version__ = "0.16.0.dev9"