langgraph-api 0.0.45__py3-none-any.whl → 0.0.47__py3-none-any.whl
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/__init__.py +1 -1
- langgraph_api/api/ui.py +19 -14
- langgraph_api/cli.py +9 -0
- langgraph_api/config.py +3 -0
- langgraph_api/graph.py +80 -22
- langgraph_api/js/build.mts +13 -50
- langgraph_api/js/client.mts +35 -3
- langgraph_api/js/package.json +2 -1
- langgraph_api/js/remote.py +9 -3
- langgraph_api/js/tests/api.test.mts +169 -76
- langgraph_api/js/tests/compose-postgres.yml +2 -1
- langgraph_api/js/tests/graphs/command.mts +48 -0
- langgraph_api/js/tests/graphs/langgraph.json +2 -1
- langgraph_api/js/tests/graphs/package.json +3 -0
- langgraph_api/js/tests/graphs/yarn.lock +5 -0
- langgraph_api/js/ui.py +93 -0
- langgraph_api/js/yarn.lock +26 -6
- langgraph_api/lifespan.py +3 -0
- langgraph_api/patch.py +4 -0
- {langgraph_api-0.0.45.dist-info → langgraph_api-0.0.47.dist-info}/METADATA +3 -3
- {langgraph_api-0.0.45.dist-info → langgraph_api-0.0.47.dist-info}/RECORD +25 -23
- openapi.json +8 -1
- {langgraph_api-0.0.45.dist-info → langgraph_api-0.0.47.dist-info}/LICENSE +0 -0
- {langgraph_api-0.0.45.dist-info → langgraph_api-0.0.47.dist-info}/WHEEL +0 -0
- {langgraph_api-0.0.45.dist-info → langgraph_api-0.0.47.dist-info}/entry_points.txt +0 -0
|
@@ -34,8 +34,9 @@ services:
|
|
|
34
34
|
ADD . /deps/graphs
|
|
35
35
|
WORKDIR /deps/graphs
|
|
36
36
|
RUN yarn install --frozen-lockfile
|
|
37
|
-
ENV LANGSERVE_GRAPHS='{"agent":"./agent.mts:graph", "nested": "./nested.mts:graph", "weather": "./weather.mts:graph", "error": "./error.mts:graph", "delay": "./delay.mts:graph", "dynamic": "./dynamic.mts:graph"}'
|
|
37
|
+
ENV LANGSERVE_GRAPHS='{"agent":"./agent.mts:graph", "nested": "./nested.mts:graph", "weather": "./weather.mts:graph", "error": "./error.mts:graph", "delay": "./delay.mts:graph", "dynamic": "./dynamic.mts:graph", "command": "./command.mts:graph"}'
|
|
38
38
|
ENV LANGGRAPH_CONFIG='{"agent": {"configurable": {"model_name": "openai"}}}'
|
|
39
|
+
ENV LANGGRAPH_UI='{"agent": "./agent.ui.tsx"}'
|
|
39
40
|
RUN tsx /api/langgraph_api/js/build.mts
|
|
40
41
|
depends_on:
|
|
41
42
|
langgraph-postgres:
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Annotation,
|
|
3
|
+
Command,
|
|
4
|
+
END,
|
|
5
|
+
interrupt,
|
|
6
|
+
Send,
|
|
7
|
+
START,
|
|
8
|
+
StateGraph,
|
|
9
|
+
} from "@langchain/langgraph";
|
|
10
|
+
|
|
11
|
+
const StateSchema = Annotation.Root({
|
|
12
|
+
messages: Annotation<string[]>({
|
|
13
|
+
reducer: (a: string[], b: string | string[]) => [
|
|
14
|
+
...a,
|
|
15
|
+
...(Array.isArray(b) ? b : [b]),
|
|
16
|
+
],
|
|
17
|
+
default: () => [],
|
|
18
|
+
}),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export const graph = new StateGraph(StateSchema)
|
|
22
|
+
.addNode("router", () => new Command({ goto: END }), {
|
|
23
|
+
ends: ["before_interrupt", "map", END],
|
|
24
|
+
})
|
|
25
|
+
.addNode("before_interrupt", () => ({ messages: ["before_interrupt"] }))
|
|
26
|
+
.addNode("interrupt", () => {
|
|
27
|
+
const resolved = interrupt("interrupt");
|
|
28
|
+
return { messages: [`interrupt: ${resolved}`] };
|
|
29
|
+
})
|
|
30
|
+
.addNode(
|
|
31
|
+
"map",
|
|
32
|
+
() =>
|
|
33
|
+
new Command({
|
|
34
|
+
update: { messages: ["map"] },
|
|
35
|
+
goto: [
|
|
36
|
+
new Send("task", { value: 1 }),
|
|
37
|
+
new Send("task", { value: 2 }),
|
|
38
|
+
new Send("task", { value: 3 }),
|
|
39
|
+
],
|
|
40
|
+
}),
|
|
41
|
+
{ ends: ["task"] }
|
|
42
|
+
)
|
|
43
|
+
.addNode("task", (arg: { value: number }) => ({
|
|
44
|
+
messages: [`task: ${arg.value}`],
|
|
45
|
+
}))
|
|
46
|
+
.addEdge(START, "router")
|
|
47
|
+
.addEdge("before_interrupt", "interrupt")
|
|
48
|
+
.compile();
|
|
@@ -206,6 +206,11 @@ supports-color@^7.1.0:
|
|
|
206
206
|
dependencies:
|
|
207
207
|
has-flag "^4.0.0"
|
|
208
208
|
|
|
209
|
+
tailwindcss@^4.1.1:
|
|
210
|
+
version "4.1.1"
|
|
211
|
+
resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-4.1.1.tgz#f2bae12b32687e63afa37c4f638b89520104e83f"
|
|
212
|
+
integrity sha512-QNbdmeS979Efzim2g/bEvfuh+fTcIdp1y7gA+sb6OYSW74rt7Cr7M78AKdf6HqWT3d5AiTb7SwTT3sLQxr4/qw==
|
|
213
|
+
|
|
209
214
|
uuid@^10.0.0:
|
|
210
215
|
version "10.0.0"
|
|
211
216
|
resolved "https://registry.yarnpkg.com/uuid/-/uuid-10.0.0.tgz#5a95aa454e6e002725c79055fd42aaba30ca6294"
|
langgraph_api/js/ui.py
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import os
|
|
3
|
+
import shutil
|
|
4
|
+
import sys
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
import structlog
|
|
8
|
+
|
|
9
|
+
from langgraph_api.config import UI_USE_BUNDLER
|
|
10
|
+
|
|
11
|
+
logger = structlog.stdlib.get_logger(__name__)
|
|
12
|
+
bg_tasks: set[asyncio.Task] = set()
|
|
13
|
+
|
|
14
|
+
UI_ROOT_DIR = (
|
|
15
|
+
Path(
|
|
16
|
+
os.path.abspath(".langgraph_api")
|
|
17
|
+
if UI_USE_BUNDLER
|
|
18
|
+
else os.path.dirname(__file__)
|
|
19
|
+
)
|
|
20
|
+
/ "ui"
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
UI_PUBLIC_DIR = UI_ROOT_DIR / "public"
|
|
24
|
+
UI_SCHEMAS_FILE = UI_ROOT_DIR / "schemas.json"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
async def start_ui_bundler() -> None:
|
|
28
|
+
# LANGGRAPH_UI_ROOT_DIR is only set by in-memory server
|
|
29
|
+
# @see langgraph_api/cli.py
|
|
30
|
+
if not UI_USE_BUNDLER or not os.getenv("LANGGRAPH_UI"):
|
|
31
|
+
return
|
|
32
|
+
|
|
33
|
+
logger.info("Starting UI bundler")
|
|
34
|
+
|
|
35
|
+
bundler_task = asyncio.create_task(_start_ui_bundler_process(), name="ui-bundler")
|
|
36
|
+
bundler_task.add_done_callback(_handle_exception)
|
|
37
|
+
|
|
38
|
+
bg_tasks.add(bundler_task)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
async def stop_ui_bundler() -> None:
|
|
42
|
+
for task in bg_tasks:
|
|
43
|
+
task.cancel()
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
async def _start_ui_bundler_process():
|
|
47
|
+
npx_path = shutil.which("npx")
|
|
48
|
+
if npx_path is None:
|
|
49
|
+
raise FileNotFoundError(
|
|
50
|
+
"To run LangGraph with UI support, Node.js and npm are required. "
|
|
51
|
+
"Please install Node.js from https://nodejs.org/ (this will include npm and npx). "
|
|
52
|
+
"After installation, restart your terminal and try again."
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
if not os.path.exists(UI_ROOT_DIR):
|
|
56
|
+
os.mkdir(UI_ROOT_DIR)
|
|
57
|
+
|
|
58
|
+
pid = None
|
|
59
|
+
try:
|
|
60
|
+
process = await asyncio.create_subprocess_exec(
|
|
61
|
+
npx_path,
|
|
62
|
+
"-y",
|
|
63
|
+
"@langchain/langgraph-ui@latest",
|
|
64
|
+
"watch",
|
|
65
|
+
"-o",
|
|
66
|
+
UI_ROOT_DIR,
|
|
67
|
+
env=os.environ,
|
|
68
|
+
)
|
|
69
|
+
pid = process.pid
|
|
70
|
+
logger.info("Started UI bundler process [%d]", pid)
|
|
71
|
+
|
|
72
|
+
code = await process.wait()
|
|
73
|
+
raise Exception(f"UI bundler process exited with code {code}")
|
|
74
|
+
|
|
75
|
+
except asyncio.CancelledError:
|
|
76
|
+
logger.info("Shutting down UI bundler process [%d]", pid or -1)
|
|
77
|
+
try:
|
|
78
|
+
process.terminate()
|
|
79
|
+
await process.wait()
|
|
80
|
+
except (UnboundLocalError, ProcessLookupError):
|
|
81
|
+
pass
|
|
82
|
+
raise
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def _handle_exception(task: asyncio.Task) -> None:
|
|
86
|
+
try:
|
|
87
|
+
task.result()
|
|
88
|
+
except asyncio.CancelledError:
|
|
89
|
+
pass
|
|
90
|
+
finally:
|
|
91
|
+
bg_tasks.discard(task)
|
|
92
|
+
# if the task died either with exception or not, we should exit
|
|
93
|
+
sys.exit(1)
|
langgraph_api/js/yarn.lock
CHANGED
|
@@ -31,6 +31,11 @@
|
|
|
31
31
|
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.6.0.tgz#ec6cd237440700bc23ca23087f513c75508958b0"
|
|
32
32
|
integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==
|
|
33
33
|
|
|
34
|
+
"@commander-js/extra-typings@^13.0.0":
|
|
35
|
+
version "13.1.0"
|
|
36
|
+
resolved "https://registry.yarnpkg.com/@commander-js/extra-typings/-/extra-typings-13.1.0.tgz#026e29b04401c92fc4307223fbaadf1ff3e5551e"
|
|
37
|
+
integrity sha512-q5P52BYb1hwVWE6dtID7VvuJWrlfbCv4klj7BjUUOqMz4jbSZD4C9fJ9lRjL2jnBGTg+gDDlaXN51rkWcLk4fg==
|
|
38
|
+
|
|
34
39
|
"@dabh/diagnostics@^2.0.2":
|
|
35
40
|
version "2.0.3"
|
|
36
41
|
resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a"
|
|
@@ -198,20 +203,19 @@
|
|
|
198
203
|
zod "^3.22.4"
|
|
199
204
|
zod-to-json-schema "^3.22.3"
|
|
200
205
|
|
|
201
|
-
"@langchain/langgraph-api@~0.0.
|
|
202
|
-
version "0.0.
|
|
203
|
-
resolved "https://registry.yarnpkg.com/@langchain/langgraph-api/-/langgraph-api-0.0.
|
|
204
|
-
integrity sha512-
|
|
206
|
+
"@langchain/langgraph-api@~0.0.20":
|
|
207
|
+
version "0.0.20"
|
|
208
|
+
resolved "https://registry.yarnpkg.com/@langchain/langgraph-api/-/langgraph-api-0.0.20.tgz#32e5cfa736ea938d53fa61285bf673901f37e029"
|
|
209
|
+
integrity sha512-MZA/6/th0oliK4UJb3SiEWwnMb/HO3sTr73uQxGoRJwjqCKJgYrnXHkU1eunclPcCeG86DanbEf/Rsn7UR4WeA==
|
|
205
210
|
dependencies:
|
|
206
211
|
"@babel/code-frame" "^7.26.2"
|
|
207
212
|
"@hono/node-server" "^1.12.0"
|
|
208
213
|
"@hono/zod-validator" "^0.2.2"
|
|
214
|
+
"@langchain/langgraph-ui" "0.0.20"
|
|
209
215
|
"@types/json-schema" "^7.0.15"
|
|
210
216
|
"@typescript/vfs" "^1.6.0"
|
|
211
217
|
dedent "^1.5.3"
|
|
212
218
|
dotenv "^16.4.7"
|
|
213
|
-
esbuild "^0.25.0"
|
|
214
|
-
esbuild-plugin-tailwindcss "^2.0.1"
|
|
215
219
|
exit-hook "^4.0.0"
|
|
216
220
|
hono "^4.5.4"
|
|
217
221
|
langsmith "^0.2.15"
|
|
@@ -258,6 +262,17 @@
|
|
|
258
262
|
p-retry "4"
|
|
259
263
|
uuid "^9.0.0"
|
|
260
264
|
|
|
265
|
+
"@langchain/langgraph-ui@0.0.20", "@langchain/langgraph-ui@~0.0.20":
|
|
266
|
+
version "0.0.20"
|
|
267
|
+
resolved "https://registry.yarnpkg.com/@langchain/langgraph-ui/-/langgraph-ui-0.0.20.tgz#9075acef91c287cfafa81d4eef34a6a51ba1a4d1"
|
|
268
|
+
integrity sha512-x6fF6STKx0gsCAtEqEwyIib6klwLboqvpXsobHVeFOx6qGqOGsVKbq6rgCIKxQz8tZeSQVXslas4/20SFUjwKA==
|
|
269
|
+
dependencies:
|
|
270
|
+
"@commander-js/extra-typings" "^13.0.0"
|
|
271
|
+
commander "^13.0.0"
|
|
272
|
+
esbuild "^0.25.0"
|
|
273
|
+
esbuild-plugin-tailwindcss "^2.0.1"
|
|
274
|
+
zod "^3.23.8"
|
|
275
|
+
|
|
261
276
|
"@langchain/langgraph@^0.2.49":
|
|
262
277
|
version "0.2.54"
|
|
263
278
|
resolved "https://registry.yarnpkg.com/@langchain/langgraph/-/langgraph-0.2.54.tgz#f57a9b471808c122ee5ae4506ed05cc75f1578bd"
|
|
@@ -729,6 +744,11 @@ commander@^10.0.1:
|
|
|
729
744
|
resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06"
|
|
730
745
|
integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==
|
|
731
746
|
|
|
747
|
+
commander@^13.0.0:
|
|
748
|
+
version "13.1.0"
|
|
749
|
+
resolved "https://registry.yarnpkg.com/commander/-/commander-13.1.0.tgz#776167db68c78f38dcce1f9b8d7b8b9a488abf46"
|
|
750
|
+
integrity sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==
|
|
751
|
+
|
|
732
752
|
console-table-printer@^2.12.1:
|
|
733
753
|
version "2.12.1"
|
|
734
754
|
resolved "https://registry.yarnpkg.com/console-table-printer/-/console-table-printer-2.12.1.tgz#4a9646537a246a6d8de57075d4fae1e08abae267"
|
langgraph_api/lifespan.py
CHANGED
|
@@ -11,6 +11,7 @@ from langgraph_api.asyncio import SimpleTaskGroup, set_event_loop
|
|
|
11
11
|
from langgraph_api.cron_scheduler import cron_scheduler
|
|
12
12
|
from langgraph_api.graph import collect_graphs_from_env, stop_remote_graphs
|
|
13
13
|
from langgraph_api.http import start_http_client, stop_http_client
|
|
14
|
+
from langgraph_api.js.ui import start_ui_bundler, stop_ui_bundler
|
|
14
15
|
from langgraph_api.metadata import metadata_loop
|
|
15
16
|
from langgraph_api.thread_ttl import thread_ttl_sweep_loop
|
|
16
17
|
from langgraph_license.validation import get_license_status, plus_features_enabled
|
|
@@ -46,6 +47,7 @@ async def lifespan(
|
|
|
46
47
|
await start_http_client()
|
|
47
48
|
await start_pool()
|
|
48
49
|
await collect_graphs_from_env(True)
|
|
50
|
+
await start_ui_bundler()
|
|
49
51
|
try:
|
|
50
52
|
async with SimpleTaskGroup(
|
|
51
53
|
cancel=True, taskset=taskset, taskgroup_name="Lifespan"
|
|
@@ -66,6 +68,7 @@ async def lifespan(
|
|
|
66
68
|
|
|
67
69
|
yield
|
|
68
70
|
finally:
|
|
71
|
+
await stop_ui_bundler()
|
|
69
72
|
await stop_remote_graphs()
|
|
70
73
|
await stop_http_client()
|
|
71
74
|
await stop_pool()
|
langgraph_api/patch.py
CHANGED
|
@@ -3,6 +3,8 @@ from typing import Any
|
|
|
3
3
|
from starlette.responses import Response, StreamingResponse
|
|
4
4
|
from starlette.types import Send
|
|
5
5
|
|
|
6
|
+
from langgraph_api.serde import Fragment
|
|
7
|
+
|
|
6
8
|
"""
|
|
7
9
|
Patch Response.render and StreamingResponse.stream_response
|
|
8
10
|
to recognize bytearrays and memoryviews as bytes-like objects.
|
|
@@ -28,6 +30,8 @@ async def StreamingResponse_stream_response(self, send: Send) -> None:
|
|
|
28
30
|
async for chunk in self.body_iterator:
|
|
29
31
|
if chunk is None:
|
|
30
32
|
continue
|
|
33
|
+
if isinstance(chunk, Fragment):
|
|
34
|
+
chunk = chunk.buf
|
|
31
35
|
if not isinstance(chunk, (bytes, bytearray, memoryview)): # noqa: UP038
|
|
32
36
|
chunk = chunk.encode(self.charset)
|
|
33
37
|
await send({"type": "http.response.body", "body": chunk, "more_body": True})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: langgraph-api
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.47
|
|
4
4
|
Summary:
|
|
5
5
|
License: Elastic-2.0
|
|
6
6
|
Author: Nuno Campos
|
|
@@ -13,13 +13,13 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.13
|
|
14
14
|
Requires-Dist: blockbuster (>=1.5.24,<2.0.0)
|
|
15
15
|
Requires-Dist: cloudpickle (>=3.0.0,<4.0.0)
|
|
16
|
-
Requires-Dist: cryptography (>=
|
|
16
|
+
Requires-Dist: cryptography (>=42.0.0,<45.0)
|
|
17
17
|
Requires-Dist: httpx (>=0.25.0)
|
|
18
18
|
Requires-Dist: jsonschema-rs (>=0.20.0,<0.30)
|
|
19
19
|
Requires-Dist: langchain-core (>=0.2.38,<0.4.0)
|
|
20
20
|
Requires-Dist: langgraph (>=0.2.56,<0.4.0)
|
|
21
21
|
Requires-Dist: langgraph-checkpoint (>=2.0.23,<3.0)
|
|
22
|
-
Requires-Dist: langgraph-sdk (>=0.1.
|
|
22
|
+
Requires-Dist: langgraph-sdk (>=0.1.61,<0.2.0)
|
|
23
23
|
Requires-Dist: langsmith (>=0.1.63,<0.4.0)
|
|
24
24
|
Requires-Dist: orjson (>=3.9.7)
|
|
25
25
|
Requires-Dist: pyjwt (>=2.9.0,<3.0.0)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
|
|
2
|
-
langgraph_api/__init__.py,sha256=
|
|
2
|
+
langgraph_api/__init__.py,sha256=OkbXUm6WCcFd54358Y0HZk3Aq5hLc0sK6xgxJ6RmT5M,23
|
|
3
3
|
langgraph_api/api/__init__.py,sha256=qNcg8QJydef0gM-vYJlxITMRZw-9r1vw8zqm2raqqYE,5493
|
|
4
4
|
langgraph_api/api/assistants.py,sha256=WwaBtx1MpGn9gdJ8P9fkorJHMVrJKHt1nvtw0OCZcdw,14353
|
|
5
5
|
langgraph_api/api/mcp.py,sha256=KbR19dtFCpJEiKYj3IfepAuJij8YZVELuVp7JY_yu_o,13754
|
|
@@ -8,7 +8,7 @@ langgraph_api/api/openapi.py,sha256=f9gfmWN2AMKNUpLCpSgZuw_aeOF9jCXPdOtFT5PaTWM,
|
|
|
8
8
|
langgraph_api/api/runs.py,sha256=qAXfgZjjaMBfwPnlnAogvemtKZZeshNSIMQqcW20tGs,18010
|
|
9
9
|
langgraph_api/api/store.py,sha256=XNNZFRlvgReidq9u7mg-i7pjwz21BdP9Qw3Jr5Ra9Fk,5447
|
|
10
10
|
langgraph_api/api/threads.py,sha256=QbAy7MRupWKDUhmC6_LKU2ExJbLJ6Z-CJG2gSpcMXtc,9163
|
|
11
|
-
langgraph_api/api/ui.py,sha256=
|
|
11
|
+
langgraph_api/api/ui.py,sha256=kdCQ-p0voxAqIFc72aqqzdPGH2v-yEBKzjRE6cUPvpU,2201
|
|
12
12
|
langgraph_api/asyncio.py,sha256=h0eZ7aoDGnJpoxnHLZABVlj1jQ78UxjgiHntTmAEWek,8613
|
|
13
13
|
langgraph_api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
langgraph_api/auth/custom.py,sha256=sPYkF-xTdGIn_WMSE2tfR_azg_azzXPRWwUfCye6GQ8,21401
|
|
@@ -18,21 +18,21 @@ langgraph_api/auth/langsmith/client.py,sha256=eKchvAom7hdkUXauD8vHNceBDDUijrFgdT
|
|
|
18
18
|
langgraph_api/auth/middleware.py,sha256=jU8aDSIZHdzCGdifejRF7ndHkSjBtqIHcBwFIuUdHEA,1875
|
|
19
19
|
langgraph_api/auth/noop.py,sha256=Bk6Nf3p8D_iMVy_OyfPlyiJp_aEwzL-sHrbxoXpCbac,586
|
|
20
20
|
langgraph_api/auth/studio_user.py,sha256=FzFQRROKDlA9JjtBuwyZvk6Mbwno5M9RVYjDO6FU3F8,186
|
|
21
|
-
langgraph_api/cli.py,sha256=
|
|
21
|
+
langgraph_api/cli.py,sha256=W8rf3v4rMwv9W-tK_9yqcc7waQezMMlpBoy64WSGLMw,12682
|
|
22
22
|
langgraph_api/command.py,sha256=3O9v3i0OPa96ARyJ_oJbLXkfO8rPgDhLCswgO9koTFA,768
|
|
23
|
-
langgraph_api/config.py,sha256=
|
|
23
|
+
langgraph_api/config.py,sha256=OJ6_9UCkPYNpUEB17EIU1nO0zQd3_T3G1Dr-ag0J8hE,10218
|
|
24
24
|
langgraph_api/cron_scheduler.py,sha256=9yzbbGxzNgJdIg4ZT7yu2oTwT_wRuPxD1c2sbbd52xs,2630
|
|
25
25
|
langgraph_api/errors.py,sha256=Bu_i5drgNTyJcLiyrwVE_6-XrSU50BHf9TDpttki9wQ,1690
|
|
26
|
-
langgraph_api/graph.py,sha256=
|
|
26
|
+
langgraph_api/graph.py,sha256=v7qj60MBQKfEx_0kmw9AsPygCQsOLmrJ1MkVkt4-GiM,21086
|
|
27
27
|
langgraph_api/http.py,sha256=gYbxxjY8aLnsXeJymcJ7G7Nj_yToOGpPYQqmZ1_ggfA,5240
|
|
28
28
|
langgraph_api/js/.gitignore,sha256=l5yI6G_V6F1600I1IjiUKn87f4uYIrBAYU1MOyBBhg4,59
|
|
29
29
|
langgraph_api/js/base.py,sha256=xkBp5bwRrbpMFaAMViEU-qIlnsJuu3X_G8sa1pqNZK0,227
|
|
30
|
-
langgraph_api/js/build.mts,sha256=
|
|
31
|
-
langgraph_api/js/client.mts,sha256=
|
|
30
|
+
langgraph_api/js/build.mts,sha256=oyP1GTnWAWl_dC4ny-h_9WxvWfZ8eJihGdrVdmMe81k,1834
|
|
31
|
+
langgraph_api/js/client.mts,sha256=GJv846jWBRL0W_Yr6XtDu3UdYjdpndQ2v6dOfAhJXi0,26953
|
|
32
32
|
langgraph_api/js/errors.py,sha256=Cm1TKWlUCwZReDC5AQ6SgNIVGD27Qov2xcgHyf8-GXo,361
|
|
33
33
|
langgraph_api/js/global.d.ts,sha256=yDusqAyzVYhxfwqqcERUzucu2Pw9ma3-ug4DFyUvQfs,167
|
|
34
|
-
langgraph_api/js/package.json,sha256=
|
|
35
|
-
langgraph_api/js/remote.py,sha256=
|
|
34
|
+
langgraph_api/js/package.json,sha256=oNcWe7UIoJtqzoIVr47px6-1n8KziqwEhyi4wBpzTQ0,1266
|
|
35
|
+
langgraph_api/js/remote.py,sha256=dDrxJhe9Nm1OQREoa811GeXHygiBHTtHjvEVglOGfto,24808
|
|
36
36
|
langgraph_api/js/schema.py,sha256=7idnv7URlYUdSNMBXQcw7E4SxaPxCq_Oxwnlml8q5ik,408
|
|
37
37
|
langgraph_api/js/src/graph.mts,sha256=otgztTNzNJpeF2IOrpNuuwbSbpAy4eFE5dHtUd7eQwU,3742
|
|
38
38
|
langgraph_api/js/src/hooks.mjs,sha256=XtktgmIHlls_DsknAuwib-z7TqCm0haRoTXvnkgzMuo,601
|
|
@@ -44,24 +44,26 @@ langgraph_api/js/src/utils/importMap.mts,sha256=pX4TGOyUpuuWF82kXcxcv3-8mgusRezO
|
|
|
44
44
|
langgraph_api/js/src/utils/pythonSchemas.mts,sha256=98IW7Z_VP7L_CHNRMb3_MsiV3BgLE2JsWQY_PQcRR3o,685
|
|
45
45
|
langgraph_api/js/src/utils/serde.mts,sha256=OuyyO9btvwWd55rU_H4x91dFEJiaPxL-lL9O6Zgo908,742
|
|
46
46
|
langgraph_api/js/sse.py,sha256=lsfp4nyJyA1COmlKG9e2gJnTttf_HGCB5wyH8OZBER8,4105
|
|
47
|
-
langgraph_api/js/tests/api.test.mts,sha256=
|
|
48
|
-
langgraph_api/js/tests/compose-postgres.yml,sha256=
|
|
47
|
+
langgraph_api/js/tests/api.test.mts,sha256=cu2d5De-QsQUH9-e1vjxDOcUfPRV3bRKWuymAAOZeXk,62845
|
|
48
|
+
langgraph_api/js/tests/compose-postgres.yml,sha256=yz99nUy4Gm8vXuE5cnp2ekPzv7x5XWdwFPB9muAqeGE,1861
|
|
49
49
|
langgraph_api/js/tests/graphs/.gitignore,sha256=26J8MarZNXh7snXD5eTpV3CPFTht5Znv8dtHYCLNfkw,12
|
|
50
50
|
langgraph_api/js/tests/graphs/agent.css,sha256=QgcOC0W7IBsrg4pSqqpull-WTgtULZfx_lF_5ZxLdag,23
|
|
51
51
|
langgraph_api/js/tests/graphs/agent.mts,sha256=E9WMv0alMv0njUEECqEsqoRk9NXJUgXW7SyQJ3GOZ8k,5396
|
|
52
52
|
langgraph_api/js/tests/graphs/agent.ui.tsx,sha256=JDFJdpdIS6rglkXTaROSb1Is0j1kt5wN9ML8W4cuht8,175
|
|
53
|
+
langgraph_api/js/tests/graphs/command.mts,sha256=YO1_cEs_n9VsH_-IediLnI4Yc8KRlp4qrprUZXpAlwM,1163
|
|
53
54
|
langgraph_api/js/tests/graphs/delay.mts,sha256=CFneKxqI4bGGK0lYjSbe80QirowPQlsRSuhDUKfydhk,703
|
|
54
55
|
langgraph_api/js/tests/graphs/dynamic.mts,sha256=Wf_-keF7lkEfp_iyI45nlFGCeU8ARLQ8axc0LXh7TyE,659
|
|
55
56
|
langgraph_api/js/tests/graphs/error.mts,sha256=l4tk89449dj1BnEF_0ZcfPt0Ikk1gl8L1RaSnRfr3xo,487
|
|
56
|
-
langgraph_api/js/tests/graphs/langgraph.json,sha256=
|
|
57
|
+
langgraph_api/js/tests/graphs/langgraph.json,sha256=h6hV1wkNEUIpLBX9JOUKqtIBvbhvzyLEuWtBIHteseg,265
|
|
57
58
|
langgraph_api/js/tests/graphs/nested.mts,sha256=4G7jSOSaFVQAza-_ARbK-Iai1biLlF2DIPDZXf7PLIY,1245
|
|
58
|
-
langgraph_api/js/tests/graphs/package.json,sha256=
|
|
59
|
+
langgraph_api/js/tests/graphs/package.json,sha256=SSYv9rN8XLeCKnVctKKwnksvy0RMh-Z9pC0j1lG17PM,174
|
|
59
60
|
langgraph_api/js/tests/graphs/weather.mts,sha256=A7mLK3xW8h5B-ZyJNAyX2M2fJJwzPJzXs4DYesJwreQ,1655
|
|
60
|
-
langgraph_api/js/tests/graphs/yarn.lock,sha256=
|
|
61
|
+
langgraph_api/js/tests/graphs/yarn.lock,sha256=PWHTM2Wg9mdiovQBC7yMXfb382ffGux8z7hoQE6oWAQ,10673
|
|
61
62
|
langgraph_api/js/tests/parser.test.mts,sha256=dEC8KTqKygeb1u39ZvpPqCT4HtfPD947nLmITt2buxA,27883
|
|
62
63
|
langgraph_api/js/tests/utils.mts,sha256=q1V9gvT63v95onlfK9W4iv3n9ZJO3h-0RD9TdDYuRyY,439
|
|
63
|
-
langgraph_api/js/
|
|
64
|
-
langgraph_api/
|
|
64
|
+
langgraph_api/js/ui.py,sha256=XNT8iBcyT8XmbIqSQUWd-j_00HsaWB2vRTVabwFBkik,2439
|
|
65
|
+
langgraph_api/js/yarn.lock,sha256=m4erGgHd30Enxdu1wKnohnzotZiEDvXh-H83qitf_W4,83812
|
|
66
|
+
langgraph_api/lifespan.py,sha256=SfVZj0SQdsIfYwvN5s4dfxGMb7MMlGe40DghCGDFaTQ,2915
|
|
65
67
|
langgraph_api/logging.py,sha256=JJIzbNIgLCN6ClQ3tA-Mm5ffuBGvpRDSZsEvnIlsuu4,3693
|
|
66
68
|
langgraph_api/metadata.py,sha256=bAeN3NwibBuXUVPjOEbEUJMnhUXe_VdTGw508VNeav4,3655
|
|
67
69
|
langgraph_api/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -69,7 +71,7 @@ langgraph_api/middleware/http_logger.py,sha256=yuFPNFIWwn-4AE1CogBfWlo8KytzywLi_
|
|
|
69
71
|
langgraph_api/middleware/private_network.py,sha256=eYgdyU8AzU2XJu362i1L8aSFoQRiV7_aLBPw7_EgeqI,2111
|
|
70
72
|
langgraph_api/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
73
|
langgraph_api/models/run.py,sha256=85-pyyvosFAot8WrWl2QjCje-2c4lhattYvoAEMqztA,11000
|
|
72
|
-
langgraph_api/patch.py,sha256=
|
|
74
|
+
langgraph_api/patch.py,sha256=Dgs0PXHytekX4SUL6KsjjN0hHcOtGLvv1GRGbh6PswU,1408
|
|
73
75
|
langgraph_api/queue_entrypoint.py,sha256=4xICUxXarNV8DhnaqAMhVi3xCmyVKCL3J5NzHxPA9Xc,1835
|
|
74
76
|
langgraph_api/route.py,sha256=fM4qYCGbmH0a3_cV8uKocb1sLklehxO6HhdRXqLK6OM,4421
|
|
75
77
|
langgraph_api/schema.py,sha256=Frh_YOC3S1cDAMPUVanNi78ooSXK2WFpu9YkIVz5h14,5433
|
|
@@ -95,9 +97,9 @@ langgraph_storage/queue.py,sha256=IGjzCzYaGhbR9_Y37p1Hbd5uQkN9_IGzYkT_5lcPU54,75
|
|
|
95
97
|
langgraph_storage/retry.py,sha256=XmldOP4e_H5s264CagJRVnQMDFcEJR_dldVR1Hm5XvM,763
|
|
96
98
|
langgraph_storage/store.py,sha256=JB9jZ87GE19MVN9wgl3-esgR2eIkeipws9q6qsPWkgc,3399
|
|
97
99
|
logging.json,sha256=3RNjSADZmDq38eHePMm1CbP6qZ71AmpBtLwCmKU9Zgo,379
|
|
98
|
-
openapi.json,sha256=
|
|
99
|
-
langgraph_api-0.0.
|
|
100
|
-
langgraph_api-0.0.
|
|
101
|
-
langgraph_api-0.0.
|
|
102
|
-
langgraph_api-0.0.
|
|
103
|
-
langgraph_api-0.0.
|
|
100
|
+
openapi.json,sha256=YW4ND-N3adriEoNwxw7UD9endO2xUZoodCtwVIfa2dU,132261
|
|
101
|
+
langgraph_api-0.0.47.dist-info/LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
|
|
102
|
+
langgraph_api-0.0.47.dist-info/METADATA,sha256=IO4hwBirD3f4JqdFNa0B6V1TsB-QXhD0SlWYYRbce6Y,4165
|
|
103
|
+
langgraph_api-0.0.47.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
|
|
104
|
+
langgraph_api-0.0.47.dist-info/entry_points.txt,sha256=3EYLgj89DfzqJHHYGxPH4A_fEtClvlRbWRUHaXO7hj4,77
|
|
105
|
+
langgraph_api-0.0.47.dist-info/RECORD,,
|
openapi.json
CHANGED
|
@@ -3355,7 +3355,14 @@
|
|
|
3355
3355
|
"description": "The node to send the message to."
|
|
3356
3356
|
},
|
|
3357
3357
|
"input": {
|
|
3358
|
-
"type":
|
|
3358
|
+
"type": [
|
|
3359
|
+
"object",
|
|
3360
|
+
"array",
|
|
3361
|
+
"number",
|
|
3362
|
+
"string",
|
|
3363
|
+
"boolean",
|
|
3364
|
+
"null"
|
|
3365
|
+
],
|
|
3359
3366
|
"title": "Message",
|
|
3360
3367
|
"description": "The message to send."
|
|
3361
3368
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|