langgraph-api 0.0.18__tar.gz → 0.0.20__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.0.18 → langgraph_api-0.0.20}/PKG-INFO +2 -2
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/custom.py +2 -2
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/build.mts +5 -4
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/client.mts +5 -4
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/client.new.mts +5 -4
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/graph.mts +6 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/ops.py +1 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/pyproject.toml +2 -2
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/LICENSE +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/README.md +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/__init__.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/__init__.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/assistants.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/runs.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/store.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/api/threads.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/config.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/http.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/http_logger.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/package.json +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/remote.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/remote_new.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/remote_old.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/server_sent_events.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/hooks.mjs +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/parser/parser.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/parser/parser.worker.mjs +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/schema/types.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/schema/types.template.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/api.test.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/compose-postgres.yml +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/.gitignore +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/agent.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/delay.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/error.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/langgraph.json +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/nested.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/package.json +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/weather.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/graphs/yarn.lock +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/parser.test.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/tests/utils.mts +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/yarn.lock +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/lifespan.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/queue.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/route.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/schema.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/server.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/sse.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/state.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/stream.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/utils.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_license/middleware.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/__init__.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/checkpoint.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/database.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/queue.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/retry.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/store.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_storage/ttl_dict.py +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/logging.json +0 -0
- {langgraph_api-0.0.18 → langgraph_api-0.0.20}/openapi.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: langgraph-api
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.20
|
|
4
4
|
Summary:
|
|
5
5
|
License: Elastic-2.0
|
|
6
6
|
Author: Nuno Campos
|
|
@@ -23,7 +23,7 @@ Requires-Dist: pyjwt (>=2.9.0,<3.0.0)
|
|
|
23
23
|
Requires-Dist: sse-starlette (>=2.1.0,<2.2.0)
|
|
24
24
|
Requires-Dist: starlette (>=0.38.6)
|
|
25
25
|
Requires-Dist: structlog (>=24.4.0,<25.0.0)
|
|
26
|
-
Requires-Dist: tenacity (>=8.3.0,<
|
|
26
|
+
Requires-Dist: tenacity (>=8.3.0,<10)
|
|
27
27
|
Requires-Dist: uvicorn (>=0.26.0)
|
|
28
28
|
Requires-Dist: watchfiles (>=0.13)
|
|
29
29
|
Description-Content-Type: text/markdown
|
|
@@ -78,8 +78,8 @@ async def handle_event(
|
|
|
78
78
|
- Raises HTTPException(403) if any handler rejects the request
|
|
79
79
|
|
|
80
80
|
Handlers are run in order from most specific to most general:
|
|
81
|
-
1. Resource+action specific handlers (e.g. "
|
|
82
|
-
2. Resource handlers (e.g. "
|
|
81
|
+
1. Resource+action specific handlers (e.g. "threads", "create")
|
|
82
|
+
2. Resource handlers (e.g. "threads", "*")
|
|
83
83
|
3. Action handlers (e.g. "*", "create")
|
|
84
84
|
4. Global handlers ("*", "*")
|
|
85
85
|
"""
|
|
@@ -4,6 +4,7 @@ import { z } from "zod";
|
|
|
4
4
|
import * as fs from "node:fs/promises";
|
|
5
5
|
import * as path from "node:path";
|
|
6
6
|
import {
|
|
7
|
+
filterValidGraphSpecs,
|
|
7
8
|
GraphSchema,
|
|
8
9
|
resolveGraph,
|
|
9
10
|
runGraphSchemaWorker,
|
|
@@ -12,15 +13,15 @@ import {
|
|
|
12
13
|
const __dirname = new URL(".", import.meta.url).pathname;
|
|
13
14
|
|
|
14
15
|
async function main() {
|
|
15
|
-
const specs =
|
|
16
|
-
.record(z.string())
|
|
17
|
-
|
|
16
|
+
const specs = filterValidGraphSpecs(
|
|
17
|
+
z.record(z.string()).parse(JSON.parse(process.env.LANGSERVE_GRAPHS))
|
|
18
|
+
);
|
|
18
19
|
|
|
19
20
|
const GRAPH_SCHEMAS: Record<string, Record<string, GraphSchema>> = {};
|
|
20
21
|
|
|
21
22
|
try {
|
|
22
23
|
await Promise.all(
|
|
23
|
-
|
|
24
|
+
specs.map(async ([graphId, rawSpec]) => {
|
|
24
25
|
console.info(`[${graphId}]: Checking for source file existence`);
|
|
25
26
|
const { resolved, ...spec } = await resolveGraph(rawSpec, {
|
|
26
27
|
onlyFilePresence: true,
|
|
@@ -41,6 +41,7 @@ import {
|
|
|
41
41
|
GraphSchema,
|
|
42
42
|
resolveGraph,
|
|
43
43
|
GraphSpec,
|
|
44
|
+
filterValidGraphSpecs,
|
|
44
45
|
} from "./src/graph.mts";
|
|
45
46
|
|
|
46
47
|
const logger = createLogger({
|
|
@@ -725,9 +726,9 @@ async function main() {
|
|
|
725
726
|
const checkpointer = new RemoteCheckpointer();
|
|
726
727
|
const store = new RemoteStore();
|
|
727
728
|
|
|
728
|
-
const specs =
|
|
729
|
-
.record(z.string())
|
|
730
|
-
|
|
729
|
+
const specs = filterValidGraphSpecs(
|
|
730
|
+
z.record(z.string()).parse(JSON.parse(process.env.LANGSERVE_GRAPHS ?? "{}"))
|
|
731
|
+
);
|
|
731
732
|
|
|
732
733
|
if (!process.argv.includes("--skip-schema-cache")) {
|
|
733
734
|
try {
|
|
@@ -742,7 +743,7 @@ async function main() {
|
|
|
742
743
|
}
|
|
743
744
|
|
|
744
745
|
await Promise.all(
|
|
745
|
-
|
|
746
|
+
specs.map(async ([graphId, rawSpec]) => {
|
|
746
747
|
logger.info(`Resolving graph ${graphId}`);
|
|
747
748
|
const { resolved, ...spec } = await resolveGraph(rawSpec);
|
|
748
749
|
|
|
@@ -37,6 +37,7 @@ import {
|
|
|
37
37
|
GraphSchema,
|
|
38
38
|
resolveGraph,
|
|
39
39
|
GraphSpec,
|
|
40
|
+
filterValidGraphSpecs,
|
|
40
41
|
} from "./src/graph.mts";
|
|
41
42
|
|
|
42
43
|
const logger = createLogger({
|
|
@@ -784,9 +785,9 @@ async function main() {
|
|
|
784
785
|
const checkpointer = new RemoteCheckpointer();
|
|
785
786
|
const store = new RemoteStore();
|
|
786
787
|
|
|
787
|
-
const specs =
|
|
788
|
-
.record(z.string())
|
|
789
|
-
|
|
788
|
+
const specs = filterValidGraphSpecs(
|
|
789
|
+
z.record(z.string()).parse(JSON.parse(process.env.LANGSERVE_GRAPHS ?? "{}"))
|
|
790
|
+
);
|
|
790
791
|
|
|
791
792
|
if (!process.argv.includes("--skip-schema-cache")) {
|
|
792
793
|
try {
|
|
@@ -801,7 +802,7 @@ async function main() {
|
|
|
801
802
|
}
|
|
802
803
|
|
|
803
804
|
await Promise.all(
|
|
804
|
-
|
|
805
|
+
specs.map(async ([graphId, rawSpec]) => {
|
|
805
806
|
logger.info(`Resolving graph ${graphId}`);
|
|
806
807
|
const { resolved, ...spec } = await resolveGraph(rawSpec);
|
|
807
808
|
|
|
@@ -20,6 +20,12 @@ export interface GraphSpec {
|
|
|
20
20
|
exportSymbol: string;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
+
export function filterValidGraphSpecs(specs: Record<string, string>) {
|
|
24
|
+
return Object.entries(specs).filter(
|
|
25
|
+
([_, spec]) => !spec.split(":")[0].endsWith(".py")
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
23
29
|
export async function resolveGraph(
|
|
24
30
|
spec: string,
|
|
25
31
|
options?: { onlyFilePresence?: false }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "langgraph-api"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.20"
|
|
4
4
|
description = ""
|
|
5
5
|
authors = [
|
|
6
6
|
"Nuno Campos <nuno@langchain.dev>",
|
|
@@ -30,7 +30,7 @@ uvicorn = ">=0.26.0"
|
|
|
30
30
|
langsmith = ">=0.1.63,<0.3.0"
|
|
31
31
|
httpx = ">=0.27.0"
|
|
32
32
|
langchain-core = ">=0.2.38,<0.4.0"
|
|
33
|
-
tenacity = "
|
|
33
|
+
tenacity = ">=8.3.0,<10"
|
|
34
34
|
jsonschema-rs = "^0.25.0"
|
|
35
35
|
structlog = "^24.4.0"
|
|
36
36
|
pyjwt = "^2.9.0"
|
|
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
|
{langgraph_api-0.0.18 → langgraph_api-0.0.20}/langgraph_api/js/src/schema/types.template.mts
RENAMED
|
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
|