langgraph-runtime-inmem 0.38.0.dev2__tar.gz → 0.38.0.dev4__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 (19) hide show
  1. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/PKG-INFO +1 -1
  2. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/__init__.py +1 -1
  3. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/ops.py +15 -3
  4. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/.gitignore +0 -0
  5. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/Makefile +0 -0
  6. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/README.md +0 -0
  7. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/_persistence.py +0 -0
  8. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/checkpoint.py +0 -0
  9. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/database.py +0 -0
  10. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/encryption.py +0 -0
  11. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/inmem_stream.py +0 -0
  12. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/lifespan.py +0 -0
  13. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/metrics.py +0 -0
  14. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/queue.py +0 -0
  15. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/retry.py +0 -0
  16. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/routes.py +0 -0
  17. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/langgraph_runtime_inmem/store.py +0 -0
  18. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/pyproject.toml +0 -0
  19. {langgraph_runtime_inmem-0.38.0.dev2 → langgraph_runtime_inmem-0.38.0.dev4}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-runtime-inmem
3
- Version: 0.38.0.dev2
3
+ Version: 0.38.0.dev4
4
4
  Summary: Inmem implementation for the LangGraph API server.
5
5
  Author-email: Will Fu-Hinthorn <will@langchain.dev>
6
6
  License: Elastic-2.0
@@ -11,7 +11,7 @@ from langgraph_runtime_inmem import (
11
11
  store,
12
12
  )
13
13
 
14
- __version__ = "0.38.0.dev2"
14
+ __version__ = "0.38.0.dev4"
15
15
  __all__ = [
16
16
  "ops",
17
17
  "database",
@@ -2296,9 +2296,16 @@ class Threads(Authenticated):
2296
2296
  last_event_id: str | None = None,
2297
2297
  stream_modes: list[ThreadStreamMode],
2298
2298
  ctx: Auth.types.BaseAuthContext | None = None,
2299
+ auth_filters: Auth.types.FilterType | None = None,
2299
2300
  ) -> AsyncIterator[tuple[bytes, bytes, bytes | None, str | None]]:
2300
- """Stream the thread output."""
2301
- await Threads.Stream.check_thread_stream_auth(thread_id, ctx)
2301
+ """Stream the thread output.
2302
+
2303
+ ``auth_filters`` comes from a ``check_thread_stream_auth`` the
2304
+ caller already ran, so the read handler doesn't run twice. With
2305
+ ``None``, the check runs here.
2306
+ """
2307
+ if auth_filters is None:
2308
+ await Threads.Stream.check_thread_stream_auth(thread_id, ctx)
2302
2309
 
2303
2310
  from langgraph_api.utils.stream_codec import ( # noqa: PLC0415
2304
2311
  decode_stream_message,
@@ -2498,7 +2505,11 @@ class Threads(Authenticated):
2498
2505
  async def check_thread_stream_auth(
2499
2506
  thread_id: UUID,
2500
2507
  ctx: Auth.types.BaseAuthContext | None = None,
2501
- ) -> None:
2508
+ ) -> Auth.types.FilterType:
2509
+ """Raise 403/404 for a thread the caller can't read.
2510
+
2511
+ Returns the auth filters for ``join_event_streaming``.
2512
+ """
2502
2513
  async with connect() as conn:
2503
2514
  filters = await Threads.Stream.handle_event(
2504
2515
  ctx,
@@ -2511,6 +2522,7 @@ class Threads(Authenticated):
2511
2522
  )
2512
2523
  if not thread:
2513
2524
  raise HTTPException(status_code=404, detail="Thread not found")
2525
+ return filters or {}
2514
2526
 
2515
2527
  @staticmethod
2516
2528
  async def count(