langgraph-api 0.14.4__tar.gz → 0.15.0__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 (310) hide show
  1. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/.gitignore +1 -0
  2. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/Makefile +21 -22
  3. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/PKG-INFO +54 -4
  4. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/README.md +51 -1
  5. langgraph_api-0.15.0/benchmark/multer.test.js +115 -0
  6. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/package.json +2 -0
  7. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/yarn.lock +30 -74
  8. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/constraints.txt +1 -1
  9. langgraph_api-0.15.0/langgraph_api/__init__.py +1 -0
  10. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/a2a.py +1223 -349
  11. langgraph_api-0.15.0/langgraph_api/api/a2ui.py +96 -0
  12. langgraph_api-0.15.0/langgraph_api/api/a2ui_schemas/README.md +5 -0
  13. langgraph_api-0.15.0/langgraph_api/api/a2ui_schemas/client_capabilities.json +74 -0
  14. langgraph_api-0.15.0/langgraph_api/api/a2ui_schemas/client_data_model.json +15 -0
  15. langgraph_api-0.15.0/langgraph_api/api/a2ui_schemas/client_to_server.json +56 -0
  16. langgraph_api-0.15.0/langgraph_api/api/a2ui_schemas/server_to_client.json +86 -0
  17. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/assistants.py +48 -57
  18. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/mcp/_handlers.py +3 -1
  19. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/runs.py +110 -59
  20. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/store.py +50 -16
  21. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/threads.py +42 -48
  22. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/config/__init__.py +41 -2
  23. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/cron_scheduler.py +5 -2
  24. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/encryption/middleware.py +14 -13
  25. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/errors.py +1 -1
  26. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/service.py +24 -1
  27. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/graph.py +11 -8
  28. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/client.mts +13 -2
  29. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/package.json +1 -1
  30. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/remote.py +127 -12
  31. langgraph_api-0.15.0/langgraph_api/js/src/auth-mutations.mts +71 -0
  32. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/yarn.lock +37 -32
  33. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/metrics_collector.py +6 -0
  34. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/models/run.py +8 -9
  35. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/release_tags.py +17 -17
  36. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/stream.py +16 -4
  37. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/validation.py +1 -0
  38. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/worker.py +40 -164
  39. langgraph_api-0.15.0/langgraph_api/worker_runtime.py +221 -0
  40. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/pyproject.toml +2 -2
  41. langgraph_api-0.15.0/scripts/run_a2a_tck.py +365 -0
  42. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/uv.lock +4 -4
  43. langgraph_api-0.14.4/langgraph_api/__init__.py +0 -1
  44. langgraph_api-0.14.4/scripts/run_a2a_tck.py +0 -236
  45. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/LICENSE +0 -0
  46. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/.gitignore +0 -0
  47. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/Makefile +0 -0
  48. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/README.md +0 -0
  49. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/assistant.ts +0 -0
  50. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/benchmark-runner.ts +0 -0
  51. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/benchmark_profiles.ts +0 -0
  52. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/benchmarks.ts +0 -0
  53. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/cancel_first_second_completes.ts +0 -0
  54. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/classify-error.test.js +0 -0
  55. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/classify-error.ts +0 -0
  56. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/delta-turns-lib.test.js +0 -0
  57. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/delta-turns-lib.ts +0 -0
  58. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/delta_turns.ts +0 -0
  59. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/enqueued_runs_order.ts +0 -0
  60. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/log-failure.ts +0 -0
  61. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/meta_workload.ts +0 -0
  62. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/store.ts +0 -0
  63. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/stream_write.ts +0 -0
  64. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/thread.ts +0 -0
  65. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/thread_runs_metadata_search.ts +0 -0
  66. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/threads_search_metadata.ts +0 -0
  67. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/types.ts +0 -0
  68. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/benchmark-runners/wait_write.ts +0 -0
  69. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/capacity-ci.js +0 -0
  70. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/capacity-ci.test.js +0 -0
  71. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/clean-cli.js +0 -0
  72. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/clean.js +0 -0
  73. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/continuous/README.md +0 -0
  74. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/continuous/pyproject.toml +0 -0
  75. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/continuous/runner.py +0 -0
  76. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/continuous/uv.lock +0 -0
  77. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/daily-report.js +0 -0
  78. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/daily-report.test.js +0 -0
  79. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/graphs.js +0 -0
  80. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/host-v2.js +0 -0
  81. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/host-v2.test.js +0 -0
  82. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/ramp.js +0 -0
  83. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/reporting/dd_reporting.py +0 -0
  84. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/staircase.py +0 -0
  85. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/staircase_step_k6.js +0 -0
  86. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/tsconfig.json +0 -0
  87. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/update-revision.js +0 -0
  88. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/benchmark/weather.js +0 -0
  89. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/custom_store.sql +0 -0
  90. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/forbidden.txt +0 -0
  91. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/hatch_build.py +0 -0
  92. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/healthcheck.py +0 -0
  93. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph-cloud-debugging-20260210132856.zip +0 -0
  94. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/_checkpointer/__init__.py +0 -0
  95. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/_checkpointer/_adapter.py +0 -0
  96. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/_checkpointer/protocol.py +0 -0
  97. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/_factory_utils.py +0 -0
  98. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/__init__.py +0 -0
  99. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/event_streaming.py +0 -0
  100. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/mcp/__init__.py +0 -0
  101. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/mcp/_constants.py +0 -0
  102. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/mcp/_models.py +0 -0
  103. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/mcp/_routes.py +0 -0
  104. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/mcp/_sanitizers.py +0 -0
  105. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/meta.py +0 -0
  106. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/openapi.py +0 -0
  107. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/profile.py +0 -0
  108. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/api/ui.py +0 -0
  109. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/asgi_transport.py +0 -0
  110. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/asyncio.py +0 -0
  111. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/__init__.py +0 -0
  112. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/custom.py +0 -0
  113. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/errors.py +0 -0
  114. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/langsmith/__init__.py +0 -0
  115. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/langsmith/backend.py +0 -0
  116. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/langsmith/client.py +0 -0
  117. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/middleware.py +0 -0
  118. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/noop.py +0 -0
  119. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/auth/studio_user.py +0 -0
  120. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/beacon_data_plane_jwt_auth.py +0 -0
  121. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/cache.py +0 -0
  122. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/cli.py +0 -0
  123. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/command.py +0 -0
  124. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/config/_parse.py +0 -0
  125. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/config/schemas.py +0 -0
  126. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/encryption/__init__.py +0 -0
  127. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/encryption/aes_json.py +0 -0
  128. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/encryption/context.py +0 -0
  129. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/encryption/custom.py +0 -0
  130. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/encryption/shared.py +0 -0
  131. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/__init__.py +0 -0
  132. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/capabilities.py +0 -0
  133. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/constants.py +0 -0
  134. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/event_normalizers.py +0 -0
  135. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/namespace.py +0 -0
  136. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/session.py +0 -0
  137. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/state_normalizers.py +0 -0
  138. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/event_streaming/types.py +0 -0
  139. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/feature_flags.py +0 -0
  140. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/__init__.py +0 -0
  141. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/client.py +0 -0
  142. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/generated/core_api_pb2.pyi +0 -0
  143. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/ops/__init__.py +0 -0
  144. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/ops/assistants.py +0 -0
  145. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/ops/cache.py +0 -0
  146. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/ops/crons.py +0 -0
  147. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/ops/runs.py +0 -0
  148. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/ops/threads.py +0 -0
  149. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/server.py +0 -0
  150. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/servicers/__init__.py +0 -0
  151. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/servicers/checkpointer.py +0 -0
  152. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/grpc/servicers/encryption.py +0 -0
  153. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/http.py +0 -0
  154. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/http_metrics.py +0 -0
  155. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/http_metrics_utils.py +0 -0
  156. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/.gitignore +0 -0
  157. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/.prettierrc +0 -0
  158. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/.yarnclean +0 -0
  159. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/__init__.py +0 -0
  160. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/base.py +0 -0
  161. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/build.mts +0 -0
  162. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/client.http.mts +0 -0
  163. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/errors.py +0 -0
  164. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/global.d.ts +0 -0
  165. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/schema.py +0 -0
  166. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/graph.mts +0 -0
  167. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/load.hooks.mjs +0 -0
  168. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/preload.mjs +0 -0
  169. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/utils/experiment-tracing.mts +0 -0
  170. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/utils/files.mts +0 -0
  171. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/utils/importMap.mts +0 -0
  172. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
  173. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/src/utils/serde.mts +0 -0
  174. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/sse.py +0 -0
  175. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/traceblock.mts +0 -0
  176. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/tsconfig.json +0 -0
  177. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/js/ui.py +0 -0
  178. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/lc_security/__init__.py +0 -0
  179. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/lc_security/exceptions.py +0 -0
  180. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/lc_security/policy.py +0 -0
  181. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/lc_security/transport.py +0 -0
  182. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/logging.py +0 -0
  183. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/metadata.py +0 -0
  184. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/metrics_otlp.py +0 -0
  185. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/middleware/__init__.py +0 -0
  186. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/middleware/ensure_store.py +0 -0
  187. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/middleware/http_logger.py +0 -0
  188. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/middleware/private_network.py +0 -0
  189. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/middleware/request_id.py +0 -0
  190. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/models/__init__.py +0 -0
  191. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/otel_context.py +0 -0
  192. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/patch.py +0 -0
  193. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/queue_entrypoint.py +0 -0
  194. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/route.py +0 -0
  195. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/schema.py +0 -0
  196. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/self_hosted_logs.py +0 -0
  197. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/self_hosted_metrics.py +0 -0
  198. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/serde.py +0 -0
  199. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/server.py +0 -0
  200. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/sse.py +0 -0
  201. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/state.py +0 -0
  202. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/store.py +0 -0
  203. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/stream_v2.py +0 -0
  204. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/timing/__init__.py +0 -0
  205. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/timing/profiler.py +0 -0
  206. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/timing/timer.py +0 -0
  207. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/traceblock.py +0 -0
  208. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/tracing_session.py +0 -0
  209. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/tunneling/cloudflare.py +0 -0
  210. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/__init__.py +0 -0
  211. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/cache.py +0 -0
  212. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/config.py +0 -0
  213. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/errors.py +0 -0
  214. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/extract.py +0 -0
  215. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/future.py +0 -0
  216. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/headers.py +0 -0
  217. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/network.py +0 -0
  218. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/retriable_client.py +0 -0
  219. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/stream_codec.py +0 -0
  220. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/utils/uuids.py +0 -0
  221. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_api/webhook.py +0 -0
  222. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/__init__.py +0 -0
  223. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/checkpointer.py +0 -0
  224. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/__init__.py +0 -0
  225. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/_compat.py +0 -0
  226. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/checkpoint.py +0 -0
  227. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/config.py +0 -0
  228. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/durability.py +0 -0
  229. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/store.py +0 -0
  230. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/struct.py +0 -0
  231. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/conversion/value.py +0 -0
  232. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/__init__.py +0 -0
  233. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/checkpointer_pb2.py +0 -0
  234. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/checkpointer_pb2.pyi +0 -0
  235. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.py +0 -0
  236. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/checkpointer_pb2_grpc.pyi +0 -0
  237. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/core_api_pb2.py +0 -0
  238. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/core_api_pb2.pyi +0 -0
  239. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/core_api_pb2_grpc.py +0 -0
  240. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/core_api_pb2_grpc.pyi +0 -0
  241. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/encryption_pb2.py +0 -0
  242. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/encryption_pb2.pyi +0 -0
  243. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/encryption_pb2_grpc.py +0 -0
  244. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/encryption_pb2_grpc.pyi +0 -0
  245. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/engine_common_pb2.py +0 -0
  246. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/engine_common_pb2.pyi +0 -0
  247. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/engine_common_pb2_grpc.py +0 -0
  248. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/engine_common_pb2_grpc.pyi +0 -0
  249. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.py +0 -0
  250. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2.pyi +0 -0
  251. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.py +0 -0
  252. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cancel_run_action_pb2_grpc.pyi +0 -0
  253. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_control_signal_pb2.py +0 -0
  254. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_control_signal_pb2.pyi +0 -0
  255. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.py +0 -0
  256. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_control_signal_pb2_grpc.pyi +0 -0
  257. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.py +0 -0
  258. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2.pyi +0 -0
  259. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.py +0 -0
  260. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_cron_on_run_completed_pb2_grpc.pyi +0 -0
  261. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_durability_pb2.py +0 -0
  262. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_durability_pb2.pyi +0 -0
  263. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.py +0 -0
  264. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_durability_pb2_grpc.pyi +0 -0
  265. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.py +0 -0
  266. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2.pyi +0 -0
  267. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.py +0 -0
  268. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_multitask_strategy_pb2_grpc.pyi +0 -0
  269. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_run_status_pb2.py +0 -0
  270. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_run_status_pb2.pyi +0 -0
  271. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.py +0 -0
  272. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_run_status_pb2_grpc.pyi +0 -0
  273. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_stream_mode_pb2.py +0 -0
  274. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_stream_mode_pb2.pyi +0 -0
  275. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.py +0 -0
  276. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_stream_mode_pb2_grpc.pyi +0 -0
  277. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_status_pb2.py +0 -0
  278. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_status_pb2.pyi +0 -0
  279. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.py +0 -0
  280. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_status_pb2_grpc.pyi +0 -0
  281. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.py +0 -0
  282. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2.pyi +0 -0
  283. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.py +0 -0
  284. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/enum_thread_stream_mode_pb2_grpc.pyi +0 -0
  285. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/errors_pb2.py +0 -0
  286. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/errors_pb2.pyi +0 -0
  287. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/errors_pb2_grpc.py +0 -0
  288. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/errors_pb2_grpc.pyi +0 -0
  289. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/store_pb2.py +0 -0
  290. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/store_pb2.pyi +0 -0
  291. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/store_pb2_grpc.py +0 -0
  292. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/proto/store_pb2_grpc.pyi +0 -0
  293. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/serde.py +0 -0
  294. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_grpc_common/store.py +0 -0
  295. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_license/__init__.py +0 -0
  296. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_license/validation.py +0 -0
  297. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/__init__.py +0 -0
  298. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/checkpoint.py +0 -0
  299. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/database.py +0 -0
  300. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/lifespan.py +0 -0
  301. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/metrics.py +0 -0
  302. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/ops.py +0 -0
  303. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/queue.py +0 -0
  304. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/retry.py +0 -0
  305. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/routes.py +0 -0
  306. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/langgraph_runtime/store.py +0 -0
  307. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/logging.json +0 -0
  308. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/openapi.json +0 -0
  309. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/scripts/build_wheel.py +0 -0
  310. {langgraph_api-0.14.4 → langgraph_api-0.15.0}/scripts/create_license.py +0 -0
@@ -3,5 +3,6 @@
3
3
  .env
4
4
  .ipynb_checkpoints
5
5
  .langgraph-data
6
+ .langgraph-build.json
6
7
  *.sock
7
8
  langgraph_api.duckdb*
@@ -1,8 +1,6 @@
1
- .PHONY: build release lint format test test_watch start start-inmem start-inmem-license-oss start build-go-server start-go-server stop-go-server check-version check-base-imports test-a2a-tck test-a2a-tck-mandatory start-test-a2a-tck start-test-a2a-tck-mandatory start-test-a2a-tck-watch test-mcp-conformance start-test-mcp-conformance list-mcp-scenarios test-auth-read-only-assistant
1
+ .PHONY: build release lint format test test_watch start start-inmem start-inmem-license-oss start build-go-server start-go-server stop-go-server check-version check-base-imports test-a2a-tck test-a2a-tck-must test-a2a-tck-propose-baseline start-test-a2a-tck start-test-a2a-tck-must start-test-a2a-tck-watch test-mcp-conformance start-test-mcp-conformance list-mcp-scenarios test-auth-read-only-assistant
2
2
 
3
- # Environment variables
4
- LANGSERVE_GRAPHS_ALL = '{"agent": {"path": "./tests/graphs/agent.py:graph", "description": "agent"}, "assistant_id_runtime": "./tests/graphs/assistant_id_runtime.py:graph", "custom_lifespan": "./tests/graphs/my_router.py:graph", "single_node": "./tests/graphs/single_node.py:graph", "benchmark": "./tests/graphs/benchmark.py:graph", "benchmark_delta": "./tests/graphs/benchmark.py:graph_delta", "benchmark_delta_freq": "./tests/graphs/benchmark.py:graph_delta_freq", "config_graph": "./tests/graphs/config_graph.py:graph", "other": "./tests/graphs/other.py:make_graph", "weather": "./tests/graphs/weather.py:mk_weather_graph", "searchy": "./tests/graphs/searchy.py:graph", "agent_simple": "./tests/graphs/agent_simple.py:graph", "simple_runtime": "./tests/graphs/simple_runtime.py:graph", "agent_interrupt": "./tests/graphs/agent_interrupt.py:graph", "agent_parallel_interrupt": "./tests/graphs/agent_parallel_interrupt.py:graph", "message_type_test": "./tests/graphs/message_type_test.py:graph", "remote_subgraph_parent": "./tests/graphs/remote_subgraph_parent.py:graph", "simple_remote": "./tests/graphs/simple_remote.py:graph", "nested_subgraphs": "./tests/graphs/nested_subgraphs.py:graph", "functional_fibonacci": "./tests/graphs/functional_fibonacci.py:fibonacci", "state_graph_fibonacci": "./tests/graphs/state_graph_fibonacci.py:fibonacci", "max_concurrency_graph": "./tests/graphs/max_concurrency_graph.py:graph", "unserializable_subgraph": "./tests/graphs/unserializable_subgraph.py:graph", "private_config_subgraph": "./tests/graphs/private_config_subgraph.py:graph", "agent_interrupt_text": "./tests/graphs/agent_interrupt_text.py:graph", "agent_echo_stream": "./tests/graphs/agent_echo_stream.py:graph", "agent_tool_stream": "./tests/graphs/agent_tool_stream.py:graph", "runtime_graph": "./tests/graphs/runtime_graph.py:graph", "tool_call_chunk_stream": "./tests/graphs/tool_call_chunk_stream.py:graph", "ui_tool_call_stream": "./tests/graphs/ui_tool_call_stream.py:graph", "agent_metrics_stream": "./tests/graphs/agent_metrics_stream.py:graph", "agent_multimodal_stream": "./tests/graphs/agent_multimodal_stream.py:graph", "agent_bedtime_story": "./tests/graphs/agent_bedtime_story.py:graph", "delta_channel": "./tests/graphs/delta_channel.py:graph", "delta_channel_freq": "./tests/graphs/delta_channel_freq.py:graph", "delta_channel_files": "./tests/graphs/delta_channel_files.py:graph", "delta_channel_files_freq": "./tests/graphs/delta_channel_files_freq.py:graph", "delta_channel_legacy": "./tests/graphs/delta_channel_migration.py:graph_legacy", "delta_channel_delta": "./tests/graphs/delta_channel_migration.py:graph_delta", "delta_channel_delta_filter": "./tests/graphs/delta_channel_migration.py:graph_delta_filter", "delta_channel_messages_freq": "./tests/graphs/delta_channel_messages.py:graph_freq", "delta_channel_messages": "./tests/graphs/delta_channel_messages.py:graph", "delta_channel_messages_legacy": "./tests/graphs/delta_channel_messages.py:graph_legacy", "delta_channel_messages_remove": "./tests/graphs/delta_channel_messages.py:graph_remove", "delta_channel_messages_update": "./tests/graphs/delta_channel_messages.py:graph_update", "delta_channel_messages_delta": "./tests/graphs/delta_channel_messages.py:graph_delta", "store_e2e_async": "./tests/graphs/store_e2e.py:graph_async", "store_e2e_sync": "./tests/graphs/store_e2e.py:graph_sync"}'
5
- LANGSERVE_GRAPHS_AUTH = '{"agent": {"path": "./tests/graphs/agent.py:graph", "description": "agent"}, "assistant_id_runtime": "./tests/graphs/assistant_id_runtime.py:graph", "config_graph": "./tests/graphs/config_graph.py:graph", "other": "./tests/graphs/other.py:make_graph", "weather": "./tests/graphs/weather.py:mk_weather_graph", "searchy": "./tests/graphs/searchy.py:graph", "agent_simple": "./tests/graphs/agent_simple.py:graph", "simple_runtime": "./tests/graphs/simple_runtime.py:graph", "agent_parallel_interrupt": "./tests/graphs/agent_parallel_interrupt.py:graph", "functional_fibonacci": "./tests/graphs/functional_fibonacci.py:fibonacci", "state_graph_fibonacci": "./tests/graphs/state_graph_fibonacci.py:fibonacci", "runtime_graph": "./tests/graphs/runtime_graph.py:graph"}'
3
+ LANGSERVE_GRAPHS_ALL := '$(shell uv run python tests/graphs/configure_langgraph.py --path-prefix ./tests/graphs --emit langserve-env)'
6
4
 
7
5
  # Go server management
8
6
  build-go-server:
@@ -238,7 +236,7 @@ start-auth-jwt:
238
236
  LANGGRAPH_RUNTIME_EDITION=inmem LANGGRAPH_HTTP='$(HTTP_CONFIG)' \
239
237
  LANGGRAPH_AES_KEY='$(LANGGRAPH_AES_KEY)' \
240
238
  N_JOBS_PER_WORKER=10 \
241
- LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_AUTH) \
239
+ LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_ALL) \
242
240
  LANGGRAPH_STORE='$(STORE_CONFIG)' \
243
241
  LANGGRAPH_CHECKPOINTER='$(CHECKPOINTER_CONFIG)' \
244
242
  LANGGRAPH_AUTH='$(LANGGRAPH_AUTH)' \
@@ -255,7 +253,7 @@ start-auth-jwt:
255
253
  start-auth-fastapi-jwt:
256
254
  LANGGRAPH_RUNTIME_EDITION=inmem LANGGRAPH_HTTP='$(HTTP_CONFIG)' \
257
255
  N_JOBS_PER_WORKER=10 \
258
- LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_AUTH) \
256
+ LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_ALL) \
259
257
  LANGGRAPH_STORE='$(STORE_CONFIG)' \
260
258
  LANGGRAPH_CHECKPOINTER='$(CHECKPOINTER_CONFIG)' \
261
259
  LANGGRAPH_AUTH='{"path": "./tests/graphs/fastapi_jwt_auth.py:auth"}' \
@@ -280,7 +278,7 @@ define RUN_FASTAPI_JWT_MW_ORDERING
280
278
  LANGGRAPH_RUNTIME_EDITION=inmem \
281
279
  LANGGRAPH_HTTP='{"app": "./tests/graphs/fastapi_jwt_middleware_ordering.py:app", "middleware_order": "$(1)", "enable_custom_route_auth": $(2)}' \
282
280
  N_JOBS_PER_WORKER=10 \
283
- LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_AUTH) \
281
+ LANGSERVE_GRAPHS=$(LANGSERVE_GRAPHS_ALL) \
284
282
  LANGGRAPH_STORE='$(STORE_CONFIG)' \
285
283
  LANGGRAPH_CHECKPOINTER='$(CHECKPOINTER_CONFIG)' \
286
284
  LANGGRAPH_AUTH='{"path": "./tests/graphs/fastapi_jwt_middleware_ordering.py:auth"}' \
@@ -317,48 +315,49 @@ bump-version:
317
315
 
318
316
  # A2A TCK (Test Compatibility Kit) targets
319
317
  # Requires a running server: make start (in another terminal)
320
- # The script clones TCK to ~/.cache/a2a-tck and runs it directly
321
- # (pip entry point is broken upstream)
322
318
 
323
319
  TCK_PORT ?= 9123
324
320
  TCK_GRAPH_ID ?= agent_simple
325
- TCK_CATEGORY ?= all
321
+ TCK_TRANSPORT ?= jsonrpc
326
322
 
327
323
  test-a2a-tck:
328
324
  uv run python scripts/run_a2a_tck.py \
329
325
  --base-url http://localhost:$(TCK_PORT) \
330
326
  --graph-id $(TCK_GRAPH_ID) \
331
- --category $(TCK_CATEGORY) \
327
+ --transport $(TCK_TRANSPORT) \
332
328
  --verbose
333
329
 
334
- test-a2a-tck-mandatory:
330
+ test-a2a-tck-must:
335
331
  uv run python scripts/run_a2a_tck.py \
336
332
  --base-url http://localhost:$(TCK_PORT) \
337
333
  --graph-id $(TCK_GRAPH_ID) \
338
- --category mandatory \
334
+ --transport $(TCK_TRANSPORT) \
335
+ --level must \
339
336
  --verbose
340
337
 
338
+ test-a2a-tck-propose-baseline:
339
+ uv run python scripts/run_a2a_tck.py \
340
+ --base-url http://localhost:$(TCK_PORT) \
341
+ --graph-id $(TCK_GRAPH_ID) \
342
+ --transport $(TCK_TRANSPORT) \
343
+ --propose-baseline
344
+
341
345
  # Combined targets: start server + run A2A TCK together
342
346
  # Uses npx concurrently to manage both processes
343
- # TCK runner writes assistant_id to /tmp/langgraph_tck_assistant_id for agent card discovery
344
347
  TCK_STARTUP_DELAY ?= 8
345
348
 
346
349
  start-test-a2a-tck:
347
- npx concurrently -k -s first \
348
- "$(MAKE) start" \
349
- "sleep $(TCK_STARTUP_DELAY) && $(MAKE) test-a2a-tck"
350
+ $(MAKE) test-with-server TEST_TARGET=test-a2a-tck
350
351
 
351
- start-test-a2a-tck-mandatory:
352
- npx concurrently -k -s first \
353
- "$(MAKE) start" \
354
- "sleep $(TCK_STARTUP_DELAY) && $(MAKE) test-a2a-tck-mandatory"
352
+ start-test-a2a-tck-must:
353
+ $(MAKE) test-with-server TEST_TARGET=test-a2a-tck-must
355
354
 
356
355
  # Watch mode: restart tests on file changes (server stays running)
357
356
  # Useful during development - edit a2a.py and tests re-run automatically
358
357
  start-test-a2a-tck-watch:
359
358
  npx concurrently -k \
360
359
  "$(MAKE) start" \
361
- "sleep $(TCK_STARTUP_DELAY) && npx nodemon --watch langgraph_api/api/a2a.py --ext py --exec '$(MAKE) test-a2a-tck-mandatory'"
360
+ "sleep $(TCK_STARTUP_DELAY) && npx nodemon --watch langgraph_api/api/a2a.py --ext py --exec '$(MAKE) test-a2a-tck-must'"
362
361
 
363
362
  # MCP Conformance Test targets
364
363
  # Uses the official MCP conformance test suite (https://github.com/modelcontextprotocol/conformance)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-api
3
- Version: 0.14.4
3
+ Version: 0.15.0
4
4
  Author-email: Will Fu-Hinthorn <will@langchain.dev>, Josh Rogers <josh@langchain.dev>, Parker Rule <parker@langchain.dev>
5
5
  License: Elastic-2.0
6
6
  License-File: LICENSE
@@ -17,7 +17,7 @@ Requires-Dist: jsonschema-rs<0.45,>=0.20.0
17
17
  Requires-Dist: langchain-core>=0.3.64
18
18
  Requires-Dist: langchain-protocol<0.1,>=0.0.18
19
19
  Requires-Dist: langgraph-checkpoint<5,>=3.0.1
20
- Requires-Dist: langgraph-runtime-inmem<0.35.0.dev0,>=0.34.0.dev0
20
+ Requires-Dist: langgraph-runtime-inmem<0.36.0.dev0,>=0.35.0.dev0
21
21
  Requires-Dist: langgraph-sdk>=0.4.4
22
22
  Requires-Dist: langgraph<2,>=0.4.10
23
23
  Requires-Dist: langsmith[otel]>=0.6.3
@@ -29,7 +29,7 @@ Requires-Dist: orjson>=3.9.7
29
29
  Requires-Dist: prometheus-client>=0.0.1
30
30
  Requires-Dist: protobuf<7.0.0,>=6.32.1
31
31
  Requires-Dist: pyjwt>=2.13.0
32
- Requires-Dist: sse-starlette<3.4.0,>=2.1.3
32
+ Requires-Dist: sse-starlette<4.0.0,>=2.1.3
33
33
  Requires-Dist: starlette>=1.3.1
34
34
  Requires-Dist: structlog<26,>=24.1.0
35
35
  Requires-Dist: tenacity>=8.0.0
@@ -91,6 +91,56 @@ langgraph dev
91
91
 
92
92
  Your agent's state (threads, runs, assistants) persists in memory while the server is running - perfect for development and testing. Each run's state is tracked and can be inspected, making it easy to debug and improve your agent's behavior.
93
93
 
94
+ ## A2A task history scope
95
+
96
+ An A2A context can contain multiple tasks. By default, `SendMessage`, `GetTask`,
97
+ and `ListTasks` return the full context history. Set `historyScope` to `task` to
98
+ return only messages that belong to the requested task.
99
+
100
+ For `SendMessage`, set it in `configuration`:
101
+
102
+ ```json
103
+ {
104
+ "jsonrpc": "2.0",
105
+ "id": "1",
106
+ "method": "SendMessage",
107
+ "params": {
108
+ "message": {
109
+ "role": "ROLE_USER",
110
+ "parts": [{"text": "Second request"}],
111
+ "messageId": "message-2",
112
+ "contextId": "8b1f0e5c-9a3d-4f27-b0c8-2e6a5d4c1b7a"
113
+ },
114
+ "configuration": {"historyScope": "task"}
115
+ }
116
+ }
117
+ ```
118
+
119
+ For `GetTask` and `ListTasks`, set it directly in `params`. If changing the
120
+ request body is not possible, send `LangGraph-A2A-History-Scope: task` instead.
121
+ An explicit request value takes precedence over the header.
122
+
123
+ ```json
124
+ {
125
+ "jsonrpc": "2.0",
126
+ "id": "2",
127
+ "method": "GetTask",
128
+ "params": {"id": "<taskId>", "historyScope": "task"}
129
+ }
130
+ ```
131
+
132
+ ```json
133
+ {
134
+ "jsonrpc": "2.0",
135
+ "id": "3",
136
+ "method": "ListTasks",
137
+ "params": {"contextId": "<contextId>", "historyScope": "task"}
138
+ }
139
+ ```
140
+
141
+ The agent card advertises support through the
142
+ `https://langchain.com/a2a/extensions/history-scope/v1` extension.
143
+
94
144
  ## How-To
95
145
 
96
146
  #### Attaching a debugger
@@ -142,4 +192,4 @@ Options:
142
192
 
143
193
  ## License
144
194
 
145
- This project is licensed under the Elastic License 2.0 - see the [LICENSE](./LICENSE) file for details.
195
+ This project is licensed under the Elastic License 2.0 - see the [LICENSE](./LICENSE) file for details.
@@ -47,6 +47,56 @@ langgraph dev
47
47
 
48
48
  Your agent's state (threads, runs, assistants) persists in memory while the server is running - perfect for development and testing. Each run's state is tracked and can be inspected, making it easy to debug and improve your agent's behavior.
49
49
 
50
+ ## A2A task history scope
51
+
52
+ An A2A context can contain multiple tasks. By default, `SendMessage`, `GetTask`,
53
+ and `ListTasks` return the full context history. Set `historyScope` to `task` to
54
+ return only messages that belong to the requested task.
55
+
56
+ For `SendMessage`, set it in `configuration`:
57
+
58
+ ```json
59
+ {
60
+ "jsonrpc": "2.0",
61
+ "id": "1",
62
+ "method": "SendMessage",
63
+ "params": {
64
+ "message": {
65
+ "role": "ROLE_USER",
66
+ "parts": [{"text": "Second request"}],
67
+ "messageId": "message-2",
68
+ "contextId": "8b1f0e5c-9a3d-4f27-b0c8-2e6a5d4c1b7a"
69
+ },
70
+ "configuration": {"historyScope": "task"}
71
+ }
72
+ }
73
+ ```
74
+
75
+ For `GetTask` and `ListTasks`, set it directly in `params`. If changing the
76
+ request body is not possible, send `LangGraph-A2A-History-Scope: task` instead.
77
+ An explicit request value takes precedence over the header.
78
+
79
+ ```json
80
+ {
81
+ "jsonrpc": "2.0",
82
+ "id": "2",
83
+ "method": "GetTask",
84
+ "params": {"id": "<taskId>", "historyScope": "task"}
85
+ }
86
+ ```
87
+
88
+ ```json
89
+ {
90
+ "jsonrpc": "2.0",
91
+ "id": "3",
92
+ "method": "ListTasks",
93
+ "params": {"contextId": "<contextId>", "historyScope": "task"}
94
+ }
95
+ ```
96
+
97
+ The agent card advertises support through the
98
+ `https://langchain.com/a2a/extensions/history-scope/v1` extension.
99
+
50
100
  ## How-To
51
101
 
52
102
  #### Attaching a debugger
@@ -98,4 +148,4 @@ Options:
98
148
 
99
149
  ## License
100
150
 
101
- This project is licensed under the Elastic License 2.0 - see the [LICENSE](./LICENSE) file for details.
151
+ This project is licensed under the Elastic License 2.0 - see the [LICENSE](./LICENSE) file for details.
@@ -0,0 +1,115 @@
1
+ import assert from "node:assert/strict";
2
+ import { mkdtemp, readFile, rm } from "node:fs/promises";
3
+ import { createRequire } from "node:module";
4
+ import { tmpdir } from "node:os";
5
+ import path from "node:path";
6
+ import { Readable } from "node:stream";
7
+ import test from "node:test";
8
+
9
+ // Check the copy NestJS actually loads, including nested dependency installs.
10
+ const require = createRequire(import.meta.url);
11
+ const nestRequire = createRequire(
12
+ require.resolve("@nestjs/platform-express/package.json"),
13
+ );
14
+ const multer = nestRequire("multer");
15
+
16
+ function upload(middleware, fields = [{ name: "file", content: "benchmark" }]) {
17
+ const boundary = "benchmark-multer-test";
18
+ const body = Buffer.from(
19
+ fields
20
+ .map(
21
+ ({ name, content }) =>
22
+ `--${boundary}\r\nContent-Disposition: form-data; name="${name}"; filename="result.txt"\r\nContent-Type: text/plain\r\n\r\n${content}\r\n`,
23
+ )
24
+ .join("") + `--${boundary}--\r\n`,
25
+ );
26
+ const req = Readable.from([body]);
27
+ req.headers = {
28
+ "content-type": `multipart/form-data; boundary=${boundary}`,
29
+ "content-length": String(body.length),
30
+ };
31
+ return new Promise((resolve, reject) => {
32
+ middleware(req, {}, (error) => (error ? reject(error) : resolve(req)));
33
+ });
34
+ }
35
+
36
+ test("NestJS resolves patched Multer 2.x", () => {
37
+ const [major, minor] = nestRequire("multer/package.json")
38
+ .version.split(".")
39
+ .map(Number);
40
+ assert.equal(major, 2);
41
+ assert.ok(
42
+ minor >= 3,
43
+ "Multer must be >=2.3.0 to address the benchmark alerts",
44
+ );
45
+ });
46
+
47
+ test("single uploads preserve memory storage and fileFilter callbacks", async () => {
48
+ let filtered = false;
49
+ const req = await upload(
50
+ multer({
51
+ limits: { fileSize: 1024, files: 1, fields: 1 },
52
+ fileFilter: (_req, file, done) => {
53
+ filtered = true;
54
+ assert.equal(file.originalname, "result.txt");
55
+ done(null, true);
56
+ },
57
+ }).single("file"),
58
+ );
59
+ assert.ok(filtered);
60
+ assert.equal(req.file.buffer.toString(), "benchmark");
61
+ });
62
+
63
+ for (const mode of ["array", "fields", "any"]) {
64
+ test(`${mode} uploads preserve the API used by NestJS interceptors`, async () => {
65
+ const parser = multer({ limits: { fileSize: 1024, files: 1 } });
66
+ const middleware =
67
+ mode === "array"
68
+ ? parser.array("file", 1)
69
+ : mode === "fields"
70
+ ? parser.fields([{ name: "file", maxCount: 1 }])
71
+ : parser.any();
72
+ const req = await upload(middleware);
73
+ const files = mode === "fields" ? req.files.file : req.files;
74
+ assert.equal(files.length, 1);
75
+ assert.equal(files[0].buffer.toString(), "benchmark");
76
+ });
77
+ }
78
+
79
+ test("disk storage preserves uploaded file contents", async () => {
80
+ const directory = await mkdtemp(path.join(tmpdir(), "benchmark-multer-"));
81
+ try {
82
+ const req = await upload(
83
+ multer({ dest: directory, limits: { fileSize: 1024 } }).single("file"),
84
+ );
85
+ assert.equal(await readFile(req.file.path, "utf8"), "benchmark");
86
+ } finally {
87
+ await rm(directory, { recursive: true, force: true });
88
+ }
89
+ });
90
+
91
+ test("oversized files still return a MulterError", async () => {
92
+ await assert.rejects(
93
+ upload(multer({ limits: { fileSize: 2 } }).single("file")),
94
+ (error) =>
95
+ error instanceof multer.MulterError && error.code === "LIMIT_FILE_SIZE",
96
+ );
97
+ });
98
+
99
+ test("unexpected fields still return a MulterError", async () => {
100
+ await assert.rejects(
101
+ upload(multer().single("expected")),
102
+ (error) =>
103
+ error instanceof multer.MulterError &&
104
+ error.code === "LIMIT_UNEXPECTED_FILE",
105
+ );
106
+ });
107
+
108
+ test("fileFilter rejection does not retain a file", async () => {
109
+ const req = await upload(
110
+ multer({ fileFilter: (_req, _file, done) => done(null, false) }).single(
111
+ "file",
112
+ ),
113
+ );
114
+ assert.equal(req.file, undefined);
115
+ });
@@ -18,9 +18,11 @@
18
18
  "typescript": "^5.9.3"
19
19
  },
20
20
  "overrides": {
21
+ "multer": "^2.3.0",
21
22
  "qs": ">=6.16.0"
22
23
  },
23
24
  "resolutions": {
25
+ "multer": "^2.3.0",
24
26
  "qs": ">=6.16.0",
25
27
  "socket.io-parser": ">=4.2.7"
26
28
  },
@@ -108,7 +108,7 @@ buffer-from@^1.0.0:
108
108
  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
109
109
  integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
110
110
 
111
- busboy@^1.0.0:
111
+ busboy@^1.6.0:
112
112
  version "1.6.0"
113
113
  resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
114
114
  integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
@@ -136,14 +136,14 @@ call-bound@^1.0.2:
136
136
  call-bind-apply-helpers "^1.0.2"
137
137
  get-intrinsic "^1.3.0"
138
138
 
139
- concat-stream@^1.5.2:
140
- version "1.6.2"
141
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
142
- integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
139
+ concat-stream@^2.0.0:
140
+ version "2.0.0"
141
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1"
142
+ integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==
143
143
  dependencies:
144
144
  buffer-from "^1.0.0"
145
145
  inherits "^2.0.3"
146
- readable-stream "^2.2.2"
146
+ readable-stream "^3.0.2"
147
147
  typedarray "^0.0.6"
148
148
 
149
149
  content-disposition@0.5.4:
@@ -173,11 +173,6 @@ cookie@~0.4.1:
173
173
  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432"
174
174
  integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==
175
175
 
176
- core-util-is@~1.0.0:
177
- version "1.0.3"
178
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
179
- integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
180
-
181
176
  cors@2.8.5:
182
177
  version "2.8.5"
183
178
  resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
@@ -416,7 +411,7 @@ iconv-lite@0.4.24:
416
411
  dependencies:
417
412
  safer-buffer ">= 2.1.2 < 3"
418
413
 
419
- inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3:
414
+ inherits@2.0.4, inherits@^2.0.3:
420
415
  version "2.0.4"
421
416
  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
422
417
  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -426,11 +421,6 @@ ipaddr.js@1.9.1:
426
421
  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
427
422
  integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
428
423
 
429
- isarray@~1.0.0:
430
- version "1.0.0"
431
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
432
- integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
433
-
434
424
  javascript-stringify@^2.1.0:
435
425
  version "2.1.0"
436
426
  resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz#27c76539be14d8bd128219a2d731b09337904e79"
@@ -473,18 +463,6 @@ mime@1.6.0:
473
463
  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
474
464
  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
475
465
 
476
- minimist@^1.2.6:
477
- version "1.2.8"
478
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
479
- integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
480
-
481
- mkdirp@^0.5.4:
482
- version "0.5.6"
483
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
484
- integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
485
- dependencies:
486
- minimist "^1.2.6"
487
-
488
466
  ms@2.0.0:
489
467
  version "2.0.0"
490
468
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -495,18 +473,15 @@ ms@2.1.3, ms@^2.1.3:
495
473
  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
496
474
  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
497
475
 
498
- multer@1.4.4-lts.1:
499
- version "1.4.4-lts.1"
500
- resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4-lts.1.tgz#24100f701a4611211cfae94ae16ea39bb314e04d"
501
- integrity sha512-WeSGziVj6+Z2/MwQo3GvqzgR+9Uc+qt8SwHKh3gvNPiISKfsMfG4SvCOFYlxxgkXt7yIV2i1yczehm0EOKIxIg==
476
+ multer@1.4.4-lts.1, multer@^2.3.0:
477
+ version "2.3.0"
478
+ resolved "https://registry.yarnpkg.com/multer/-/multer-2.3.0.tgz#46f5a98c34e09661ff089fa49ae487846bd5b4fd"
479
+ integrity sha512-cjNbm3sttszgZeGfJR124D+jFEfkXCVAsoPBmFn9X7UxmDSFHWqE2CoEj0vrmSpuAFnqWR1Szcm9QTsiHr60Xw==
502
480
  dependencies:
503
481
  append-field "^1.0.0"
504
- busboy "^1.0.0"
505
- concat-stream "^1.5.2"
506
- mkdirp "^0.5.4"
507
- object-assign "^4.1.1"
508
- type-is "^1.6.4"
509
- xtend "^4.0.0"
482
+ busboy "^1.6.0"
483
+ concat-stream "^2.0.0"
484
+ type-is "^1.6.18"
510
485
 
511
486
  negotiator@0.6.3:
512
487
  version "0.6.3"
@@ -522,7 +497,7 @@ nodeplotlib@^1.0.4:
522
497
  "@nestjs/platform-socket.io" "^8.2.3"
523
498
  "@types/plotly.js" "^1.54.17"
524
499
 
525
- object-assign@^4, object-assign@^4.1.1:
500
+ object-assign@^4:
526
501
  version "4.1.1"
527
502
  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
528
503
  integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
@@ -549,11 +524,6 @@ path-to-regexp@0.1.7:
549
524
  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
550
525
  integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
551
526
 
552
- process-nextick-args@~2.0.0:
553
- version "2.0.1"
554
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
555
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
556
-
557
527
  proxy-addr@~2.0.7:
558
528
  version "2.0.7"
559
529
  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025"
@@ -592,29 +562,20 @@ raw-body@2.5.1:
592
562
  iconv-lite "0.4.24"
593
563
  unpipe "1.0.0"
594
564
 
595
- readable-stream@^2.2.2:
596
- version "2.3.8"
597
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
598
- integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
565
+ readable-stream@^3.0.2:
566
+ version "3.6.2"
567
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
568
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
599
569
  dependencies:
600
- core-util-is "~1.0.0"
601
- inherits "~2.0.3"
602
- isarray "~1.0.0"
603
- process-nextick-args "~2.0.0"
604
- safe-buffer "~5.1.1"
605
- string_decoder "~1.1.1"
606
- util-deprecate "~1.0.1"
570
+ inherits "^2.0.3"
571
+ string_decoder "^1.1.1"
572
+ util-deprecate "^1.0.1"
607
573
 
608
- safe-buffer@5.2.1:
574
+ safe-buffer@5.2.1, safe-buffer@~5.2.0:
609
575
  version "5.2.1"
610
576
  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
611
577
  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
612
578
 
613
- safe-buffer@~5.1.0, safe-buffer@~5.1.1:
614
- version "5.1.2"
615
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
616
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
617
-
618
579
  "safer-buffer@>= 2.1.2 < 3":
619
580
  version "2.1.2"
620
581
  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
@@ -729,12 +690,12 @@ streamsearch@^1.1.0:
729
690
  resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
730
691
  integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
731
692
 
732
- string_decoder@~1.1.1:
733
- version "1.1.1"
734
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
735
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
693
+ string_decoder@^1.1.1:
694
+ version "1.3.0"
695
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
696
+ integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
736
697
  dependencies:
737
- safe-buffer "~5.1.0"
698
+ safe-buffer "~5.2.0"
738
699
 
739
700
  toidentifier@1.0.1:
740
701
  version "1.0.1"
@@ -746,7 +707,7 @@ tslib@2.4.0:
746
707
  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
747
708
  integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
748
709
 
749
- type-is@^1.6.4, type-is@~1.6.18:
710
+ type-is@^1.6.18, type-is@~1.6.18:
750
711
  version "1.6.18"
751
712
  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
752
713
  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
@@ -774,7 +735,7 @@ unpipe@1.0.0, unpipe@~1.0.0:
774
735
  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
775
736
  integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
776
737
 
777
- util-deprecate@~1.0.1:
738
+ util-deprecate@^1.0.1:
778
739
  version "1.0.2"
779
740
  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
780
741
  integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
@@ -793,8 +754,3 @@ ws@~8.2.3:
793
754
  version "8.2.3"
794
755
  resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba"
795
756
  integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==
796
-
797
- xtend@^4.0.0:
798
- version "4.0.2"
799
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
800
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
@@ -10,7 +10,7 @@ orjson>=3.9.7
10
10
  httpx>=0.25.0
11
11
  tenacity>=8.0.0
12
12
  uvicorn>=0.26.0
13
- sse-starlette>=2.1.3,<3.4.0
13
+ sse-starlette>=2.1.3,<4.0.0
14
14
  uvloop>=0.18.0
15
15
  httptools>=0.5.0
16
16
  jsonschema-rs>=0.20.0
@@ -0,0 +1 @@
1
+ __version__ = "0.15.0"