langgraph-api 0.2.71__tar.gz → 0.2.72__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.
Potentially problematic release.
This version of langgraph-api might be problematic. Click here for more details.
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/PKG-INFO +1 -1
- langgraph_api-0.2.72/langgraph_api/__init__.py +1 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/assistants.py +12 -2
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/sse.py +8 -11
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/worker.py +5 -4
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/uv.lock +6 -6
- langgraph_api-0.2.71/langgraph_api/__init__.py +0 -1
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/.gitignore +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/LICENSE +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/Makefile +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/README.md +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/benchmark/.gitignore +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/benchmark/Makefile +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/benchmark/README.md +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/benchmark/burst.js +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/benchmark/weather.js +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/constraints.txt +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/forbidden.txt +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/healthcheck.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/mcp.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/runs.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/store.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/threads.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/api/ui.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/asgi_transport.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/custom.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/command.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/config.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/http.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/.prettierrc +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/build.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/client.http.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/client.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/package.json +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/remote.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/src/graph.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/src/load.hooks.mjs +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/src/preload.mjs +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/src/utils/files.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/sse.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/tsconfig.json +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/ui.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/js/yarn.lock +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/middleware/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/middleware/http_logger.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/middleware/private_network.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/middleware/request_id.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/queue_entrypoint.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/route.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/schema.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/server.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/state.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/store.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/stream.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/thread_ttl.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/tunneling/cloudflare.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/utils.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_api/webhook.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/__init__.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/checkpoint.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/database.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/lifespan.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/metrics.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/ops.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/queue.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/retry.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/langgraph_runtime/store.py +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/logging.json +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/openapi.json +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/pyproject.toml +0 -0
- {langgraph_api-0.2.71 → langgraph_api-0.2.72}/scripts/create_license.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.2.72"
|
|
@@ -214,11 +214,21 @@ async def get_assistant_graph(
|
|
|
214
214
|
|
|
215
215
|
if isinstance(graph, BaseRemotePregel):
|
|
216
216
|
drawable_graph = await graph.fetch_graph(xray=xray)
|
|
217
|
-
|
|
217
|
+
json_graph = drawable_graph.to_json()
|
|
218
|
+
for node in json_graph.get("nodes", []):
|
|
219
|
+
if data := node.get("data"):
|
|
220
|
+
if isinstance(data, dict):
|
|
221
|
+
data.pop("id", None)
|
|
222
|
+
return ApiResponse(json_graph)
|
|
218
223
|
|
|
219
224
|
try:
|
|
220
225
|
drawable_graph = await graph.aget_graph(xray=xray)
|
|
221
|
-
|
|
226
|
+
json_graph = drawable_graph.to_json()
|
|
227
|
+
for node in json_graph.get("nodes", []):
|
|
228
|
+
if data := node.get("data"):
|
|
229
|
+
if isinstance(data, dict):
|
|
230
|
+
data.pop("id", None)
|
|
231
|
+
return ApiResponse(json_graph)
|
|
222
232
|
except NotImplementedError:
|
|
223
233
|
raise HTTPException(
|
|
224
234
|
422, detail="The graph does not support visualization"
|
|
@@ -63,9 +63,11 @@ class EventSourceResponse(sse_starlette.EventSourceResponse):
|
|
|
63
63
|
await send(
|
|
64
64
|
{
|
|
65
65
|
"type": "http.response.body",
|
|
66
|
-
"body":
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
"body": (
|
|
67
|
+
json_to_sse(*data)
|
|
68
|
+
if isinstance(data, tuple)
|
|
69
|
+
else data
|
|
70
|
+
),
|
|
69
71
|
"more_body": True,
|
|
70
72
|
}
|
|
71
73
|
)
|
|
@@ -90,14 +92,9 @@ class EventSourceResponse(sse_starlette.EventSourceResponse):
|
|
|
90
92
|
|
|
91
93
|
async def sse_heartbeat(send: Send) -> None:
|
|
92
94
|
payload = sse_starlette.ServerSentEvent(comment="heartbeat").encode()
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
await send(
|
|
97
|
-
{"type": "http.response.body", "body": payload, "more_body": True}
|
|
98
|
-
)
|
|
99
|
-
except asyncio.CancelledError:
|
|
100
|
-
pass
|
|
95
|
+
while True:
|
|
96
|
+
await asyncio.sleep(5)
|
|
97
|
+
await send({"type": "http.response.body", "body": payload, "more_body": True})
|
|
101
98
|
|
|
102
99
|
|
|
103
100
|
SEP = b"\r\n"
|
|
@@ -131,10 +131,11 @@ async def worker(
|
|
|
131
131
|
try:
|
|
132
132
|
await consume(stream, run_id, resumable)
|
|
133
133
|
except Exception as e:
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
if not isinstance(e, UserRollback | UserInterrupt):
|
|
135
|
+
logger.error(
|
|
136
|
+
f"Run encountered an error in graph: {type(e)}({e})",
|
|
137
|
+
exc_info=e,
|
|
138
|
+
)
|
|
138
139
|
# TimeoutError is a special case where we rely on asyncio.wait_for to timeout runs
|
|
139
140
|
# Convert user TimeoutErrors to a custom class so we can distinguish and later convert back
|
|
140
141
|
if isinstance(e, TimeoutError):
|
|
@@ -380,7 +380,7 @@ wheels = [
|
|
|
380
380
|
|
|
381
381
|
[[package]]
|
|
382
382
|
name = "langgraph"
|
|
383
|
-
version = "0.
|
|
383
|
+
version = "0.5.0"
|
|
384
384
|
source = { registry = "https://pypi.org/simple" }
|
|
385
385
|
dependencies = [
|
|
386
386
|
{ name = "langchain-core" },
|
|
@@ -390,9 +390,9 @@ dependencies = [
|
|
|
390
390
|
{ name = "pydantic" },
|
|
391
391
|
{ name = "xxhash" },
|
|
392
392
|
]
|
|
393
|
-
sdist = { url = "https://files.pythonhosted.org/packages/9b/
|
|
393
|
+
sdist = { url = "https://files.pythonhosted.org/packages/9b/5f/f08123cbfa0384b6a4011a9547fdbca52b53d51d69b21ff2a03332fde694/langgraph-0.5.0.tar.gz", hash = "sha256:7ad6d42f2a44e93e225cc65c59fac51c55ae549c9824adc22971d00e5ac26443", size = 434232, upload-time = "2025-06-26T22:55:18.068Z" }
|
|
394
394
|
wheels = [
|
|
395
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
395
|
+
{ url = "https://files.pythonhosted.org/packages/d2/a4/0d5551ef675d382497765c74cdd893e2758d2dc2041e0f3671f110761a04/langgraph-0.5.0-py3-none-any.whl", hash = "sha256:74e33efb6527602b79bfcc4e3d0bfbb15b8d86fa25bb417fdd8d3306456cf8de", size = 143658, upload-time = "2025-06-26T22:55:16.599Z" },
|
|
396
396
|
]
|
|
397
397
|
|
|
398
398
|
[[package]]
|
|
@@ -525,15 +525,15 @@ wheels = [
|
|
|
525
525
|
|
|
526
526
|
[[package]]
|
|
527
527
|
name = "langgraph-prebuilt"
|
|
528
|
-
version = "0.
|
|
528
|
+
version = "0.5.0"
|
|
529
529
|
source = { registry = "https://pypi.org/simple" }
|
|
530
530
|
dependencies = [
|
|
531
531
|
{ name = "langchain-core" },
|
|
532
532
|
{ name = "langgraph-checkpoint" },
|
|
533
533
|
]
|
|
534
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
534
|
+
sdist = { url = "https://files.pythonhosted.org/packages/66/e6/5c9a6b283a088cd4897bded76d5585362674ebfbadce766a2c386c2bc32e/langgraph_prebuilt-0.5.0.tar.gz", hash = "sha256:c295f31328462034f457a1560c7d87e6433571be2a7aa3a16dd8e17199b79493", size = 117834, upload-time = "2025-06-26T22:50:21.449Z" }
|
|
535
535
|
wheels = [
|
|
536
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
536
|
+
{ url = "https://files.pythonhosted.org/packages/ed/f9/fe6a8100b2cd1d0e8a5d920addc42a8f2a852296b1968b729f8a794ff178/langgraph_prebuilt-0.5.0-py3-none-any.whl", hash = "sha256:de28282048e03d2198d41ec114e57a2c4bff3421039c4828b6c72720dfe5bcb5", size = 23794, upload-time = "2025-06-26T22:50:20.386Z" },
|
|
537
537
|
]
|
|
538
538
|
|
|
539
539
|
[[package]]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.2.71"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|