langgraph-api 0.0.17__tar.gz → 0.0.19__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.17 → langgraph_api-0.0.19}/PKG-INFO +2 -2
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/config.py +53 -13
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/server.py +5 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/openapi.json +24 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/pyproject.toml +2 -2
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/LICENSE +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/README.md +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/__init__.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/api/__init__.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/api/assistants.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/api/meta.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/api/openapi.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/api/runs.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/api/store.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/api/threads.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/asyncio.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/__init__.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/custom.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/langsmith/__init__.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/langsmith/backend.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/langsmith/client.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/middleware.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/noop.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/auth/studio_user.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/cli.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/cron_scheduler.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/errors.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/graph.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/http.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/http_logger.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/.gitignore +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/base.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/build.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/client.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/client.new.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/errors.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/global.d.ts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/package.json +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/remote.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/remote_new.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/remote_old.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/schema.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/server_sent_events.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/graph.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/hooks.mjs +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/parser/parser.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/parser/parser.worker.mjs +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/schema/types.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/schema/types.template.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/utils/importMap.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/utils/pythonSchemas.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/src/utils/serde.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/api.test.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/compose-postgres.yml +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/.gitignore +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/agent.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/delay.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/error.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/langgraph.json +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/nested.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/package.json +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/weather.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/graphs/yarn.lock +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/parser.test.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/tests/utils.mts +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/js/yarn.lock +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/lifespan.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/logging.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/metadata.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/models/__init__.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/models/run.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/patch.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/queue.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/route.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/schema.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/serde.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/sse.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/state.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/stream.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/utils.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_api/validation.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_license/__init__.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_license/middleware.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_license/validation.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/__init__.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/checkpoint.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/database.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/ops.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/queue.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/retry.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/store.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/langgraph_storage/ttl_dict.py +0 -0
- {langgraph_api-0.0.17 → langgraph_api-0.0.19}/logging.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.19
|
|
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
|
|
@@ -6,6 +6,16 @@ from starlette.datastructures import CommaSeparatedStrings
|
|
|
6
6
|
|
|
7
7
|
env = Config()
|
|
8
8
|
|
|
9
|
+
|
|
10
|
+
def _parse_json(json: str | None) -> dict | None:
|
|
11
|
+
if not json:
|
|
12
|
+
return None
|
|
13
|
+
parsed = orjson.loads(json)
|
|
14
|
+
if not parsed:
|
|
15
|
+
return None
|
|
16
|
+
return parsed
|
|
17
|
+
|
|
18
|
+
|
|
9
19
|
STATS_INTERVAL_SECS = env("STATS_INTERVAL_SECS", cast=int, default=60)
|
|
10
20
|
HTTP_CONCURRENCY = env("HTTP_CONCURRENCY", cast=int, default=10)
|
|
11
21
|
|
|
@@ -21,6 +31,48 @@ REDIS_MAX_CONNECTIONS = env("REDIS_MAX_CONNECTIONS", cast=int, default=500)
|
|
|
21
31
|
# server
|
|
22
32
|
|
|
23
33
|
CORS_ALLOW_ORIGINS = env("CORS_ALLOW_ORIGINS", cast=CommaSeparatedStrings, default="*")
|
|
34
|
+
CORS_CONFIG = env("CORS_CONFIG", cast=_parse_json, default=None)
|
|
35
|
+
"""
|
|
36
|
+
{
|
|
37
|
+
"type": "object",
|
|
38
|
+
"properties": {
|
|
39
|
+
"allow_origins": {
|
|
40
|
+
"type": "array",
|
|
41
|
+
"items": {"type": "string"},
|
|
42
|
+
"default": []
|
|
43
|
+
},
|
|
44
|
+
"allow_methods": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": {"type": "string"},
|
|
47
|
+
"default": ["GET"]
|
|
48
|
+
},
|
|
49
|
+
"allow_headers": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"items": {"type": "string"},
|
|
52
|
+
"default": []
|
|
53
|
+
},
|
|
54
|
+
"allow_credentials": {
|
|
55
|
+
"type": "boolean",
|
|
56
|
+
"default": false
|
|
57
|
+
},
|
|
58
|
+
"allow_origin_regex": {
|
|
59
|
+
"type": ["string", "null"],
|
|
60
|
+
"default": null
|
|
61
|
+
},
|
|
62
|
+
"expose_headers": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"items": {"type": "string"},
|
|
65
|
+
"default": []
|
|
66
|
+
},
|
|
67
|
+
"max_age": {
|
|
68
|
+
"type": "integer",
|
|
69
|
+
"default": 600
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
"""
|
|
74
|
+
if CORS_CONFIG is not None and CORS_ALLOW_ORIGINS != "*":
|
|
75
|
+
raise ValueError("CORS_CONFIG and CORS_ALLOW_ORIGINS cannot be set together")
|
|
24
76
|
|
|
25
77
|
# queue
|
|
26
78
|
|
|
@@ -38,18 +90,7 @@ FF_JS_ZEROMQ_ENABLED = env("FF_JS_ZEROMQ_ENABLED", cast=bool, default=False)
|
|
|
38
90
|
# auth
|
|
39
91
|
|
|
40
92
|
LANGGRAPH_AUTH_TYPE = env("LANGGRAPH_AUTH_TYPE", cast=str, default="noop")
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
def _parse_auth(auth: str | None) -> dict | None:
|
|
44
|
-
if not auth:
|
|
45
|
-
return None
|
|
46
|
-
parsed = orjson.loads(auth)
|
|
47
|
-
if not parsed:
|
|
48
|
-
return None
|
|
49
|
-
return parsed
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
LANGGRAPH_AUTH = env("LANGGRAPH_AUTH", cast=_parse_auth, default=None)
|
|
93
|
+
LANGGRAPH_AUTH = env("LANGGRAPH_AUTH", cast=_parse_json, default=None)
|
|
53
94
|
LANGSMITH_TENANT_ID = env("LANGSMITH_TENANT_ID", cast=str, default=None)
|
|
54
95
|
LANGSMITH_AUTH_VERIFY_TENANT_ID = env(
|
|
55
96
|
"LANGSMITH_AUTH_VERIFY_TENANT_ID",
|
|
@@ -57,7 +98,6 @@ LANGSMITH_AUTH_VERIFY_TENANT_ID = env(
|
|
|
57
98
|
default=LANGSMITH_TENANT_ID is not None,
|
|
58
99
|
)
|
|
59
100
|
|
|
60
|
-
|
|
61
101
|
if LANGGRAPH_AUTH_TYPE == "langsmith":
|
|
62
102
|
LANGSMITH_AUTH_ENDPOINT = env("LANGSMITH_AUTH_ENDPOINT", cast=str)
|
|
63
103
|
LANGSMITH_TENANT_ID = env("LANGSMITH_TENANT_ID", cast=str)
|
|
@@ -33,6 +33,11 @@ app = Starlette(
|
|
|
33
33
|
allow_credentials=True,
|
|
34
34
|
allow_methods=["*"],
|
|
35
35
|
allow_headers=["*"],
|
|
36
|
+
)
|
|
37
|
+
if config.CORS_CONFIG is None
|
|
38
|
+
else Middleware(
|
|
39
|
+
CORSMiddleware,
|
|
40
|
+
**config.CORS_CONFIG,
|
|
36
41
|
),
|
|
37
42
|
Middleware(LicenseValidationMiddleware),
|
|
38
43
|
Middleware(AccessLoggerMiddleware, logger=logger),
|
|
@@ -3317,6 +3317,18 @@
|
|
|
3317
3317
|
{
|
|
3318
3318
|
"type": "object"
|
|
3319
3319
|
},
|
|
3320
|
+
{
|
|
3321
|
+
"type": "array"
|
|
3322
|
+
},
|
|
3323
|
+
{
|
|
3324
|
+
"type": "string"
|
|
3325
|
+
},
|
|
3326
|
+
{
|
|
3327
|
+
"type": "number"
|
|
3328
|
+
},
|
|
3329
|
+
{
|
|
3330
|
+
"type": "boolean"
|
|
3331
|
+
},
|
|
3320
3332
|
{
|
|
3321
3333
|
"type": "null"
|
|
3322
3334
|
}
|
|
@@ -3532,6 +3544,18 @@
|
|
|
3532
3544
|
{
|
|
3533
3545
|
"type": "object"
|
|
3534
3546
|
},
|
|
3547
|
+
{
|
|
3548
|
+
"type": "array"
|
|
3549
|
+
},
|
|
3550
|
+
{
|
|
3551
|
+
"type": "string"
|
|
3552
|
+
},
|
|
3553
|
+
{
|
|
3554
|
+
"type": "number"
|
|
3555
|
+
},
|
|
3556
|
+
{
|
|
3557
|
+
"type": "boolean"
|
|
3558
|
+
},
|
|
3535
3559
|
{
|
|
3536
3560
|
"type": "null"
|
|
3537
3561
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "langgraph-api"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.19"
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_api-0.0.17 → langgraph_api-0.0.19}/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
|