langgraph-api 0.1.5__py3-none-any.whl → 0.1.7__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.

@@ -0,0 +1,66 @@
1
+ import { Hono } from "hono";
2
+ import { HTTPException } from "hono/http-exception";
3
+ import { streamText } from "hono/streaming";
4
+
5
+ let WEBHOOK_PAYLOAD: Record<string, unknown>;
6
+
7
+ export const app = new Hono<{
8
+ Variables: { body: string | ArrayBuffer | ReadableStream | null };
9
+ }>()
10
+ .use(async (c, next) => {
11
+ if (c.req.query("interrupt") != null) {
12
+ return c.json({ status: "interrupted" });
13
+ }
14
+
15
+ await next();
16
+ c.header("x-js-middleware", "true");
17
+ })
18
+ .use(async (c, next) => {
19
+ const runsQuery = new RegExp(
20
+ "^(/runs(/stream|/wait)?$|/runs/batch$|/threads/[^/]+/runs(/stream|/wait)?)$",
21
+ );
22
+
23
+ if (c.req.method === "POST" && c.req.path.match(runsQuery)) {
24
+ const value = c.req.header("x-configurable-header");
25
+
26
+ if (value != null) {
27
+ const body = await c.req.json();
28
+
29
+ body["config"] ??= {};
30
+ body["config"]["configurable"] ??= {};
31
+ body["config"]["configurable"]["x-configurable-header"] ??= value;
32
+ }
33
+ }
34
+
35
+ await next();
36
+ })
37
+ .get("/custom/my-route", (c) =>
38
+ c.json(
39
+ { foo: "bar" },
40
+ {
41
+ headers: {
42
+ "x-custom-output": c.req.header("x-custom-input") as string,
43
+ },
44
+ },
45
+ ),
46
+ )
47
+ .get("/runs/afakeroute", (c) => c.json({ foo: "afakeroute" }))
48
+ .get("/custom/error", () => {
49
+ throw new HTTPException(400, { message: "Bad request" });
50
+ })
51
+ .get("/custom/streaming", (c) =>
52
+ streamText(c, async (stream) => {
53
+ for (let i = 0; i < 4; i++) {
54
+ await stream.writeln(`Count: ${i}`);
55
+ await new Promise((resolve) => setTimeout(resolve, 10));
56
+ }
57
+
58
+ await stream.close();
59
+ }),
60
+ )
61
+ .post("/custom/webhook", async (c) => {
62
+ WEBHOOK_PAYLOAD = await c.req.json();
63
+ return c.json({ status: "success" });
64
+ })
65
+ .get("/custom/webhook-payload", (c) => c.json(WEBHOOK_PAYLOAD))
66
+ .notFound((c) => c.json({ status: "not-found" }));
@@ -4,9 +4,10 @@
4
4
  "@langchain/core": "^0.3.40",
5
5
  "@langchain/langgraph": "^0.2.49",
6
6
  "@langchain/langgraph-sdk": "^0.0.66",
7
- "jose": "^6.0.10"
7
+ "jose": "^6.0.10",
8
+ "hono": "^4.5.4"
8
9
  },
9
10
  "devDependencies": {
10
11
  "tailwindcss": "^4.1.1"
11
12
  }
12
- }
13
+ }
@@ -131,6 +131,11 @@ has-flag@^4.0.0:
131
131
  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
132
132
  integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
133
133
 
134
+ hono@^4.5.4:
135
+ version "4.7.6"
136
+ resolved "https://registry.yarnpkg.com/hono/-/hono-4.7.6.tgz#3b577a825de3bf97b27705d918890a660726835e"
137
+ integrity sha512-564rVzELU+9BRqqx5k8sT2NFwGD3I3Vifdb6P7CmM6FiarOSY+fDC+6B+k9wcCb86ReoayteZP2ki0cRLN1jbw==
138
+
134
139
  jose@^6.0.10:
135
140
  version "6.0.10"
136
141
  resolved "https://registry.yarnpkg.com/jose/-/jose-6.0.10.tgz#52d96e1a671b4c02e13b71e0d35abea2e774712b"
langgraph_api/metadata.py CHANGED
@@ -24,9 +24,11 @@ logger = structlog.stdlib.get_logger(__name__)
24
24
  INTERVAL = 300
25
25
  REVISION = os.getenv("LANGSMITH_LANGGRAPH_API_REVISION")
26
26
  VARIANT = os.getenv("LANGSMITH_LANGGRAPH_API_VARIANT")
27
+ PROJECT_ID = os.getenv("LANGSMITH_HOST_PROJECT_ID")
28
+ TENANT_ID = os.getenv("LANGSMITH_TENANT_ID")
27
29
  if VARIANT == "cloud":
28
30
  HOST = "saas"
29
- elif os.getenv("LANGSMITH_HOST_PROJECT_ID"):
31
+ elif PROJECT_ID:
30
32
  HOST = "byoc"
31
33
  else:
32
34
  HOST = "self-hosted"
@@ -103,6 +105,8 @@ async def metadata_loop() -> None:
103
105
  "langgraph.platform.revision": REVISION,
104
106
  "langgraph.platform.variant": VARIANT,
105
107
  "langgraph.platform.host": HOST,
108
+ "langgraph.platform.tenant_id": TENANT_ID,
109
+ "langgraph.platform.project_id": PROJECT_ID,
106
110
  "langgraph.platform.plan": PLAN,
107
111
  # user app features
108
112
  "user_app.uses_indexing": USES_INDEXING,
langgraph_api/server.py CHANGED
@@ -32,6 +32,7 @@ from langgraph_api.middleware.private_network import PrivateNetworkMiddleware
32
32
  from langgraph_api.utils import SchemaGenerator
33
33
  from langgraph_license.middleware import LicenseValidationMiddleware
34
34
  from langgraph_runtime.retry import OVERLOADED_EXCEPTIONS
35
+ from langgraph_api.js.base import is_js_path
35
36
  from langgraph_sdk.client import configure_loopback_transports
36
37
 
37
38
  logging.captureWarnings(True)
@@ -42,6 +43,15 @@ middleware = []
42
43
  if config.ALLOW_PRIVATE_NETWORK:
43
44
  middleware.append(Middleware(PrivateNetworkMiddleware))
44
45
 
46
+ if (
47
+ config.HTTP_CONFIG
48
+ and (app := config.HTTP_CONFIG.get("app"))
49
+ and is_js_path(app.split(":")[0])
50
+ ):
51
+ from langgraph_api.js.remote import JSCustomHTTPProxyMiddleware
52
+
53
+ middleware.append(Middleware(JSCustomHTTPProxyMiddleware))
54
+
45
55
  middleware.extend(
46
56
  [
47
57
  (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langgraph-api
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Summary:
5
5
  License: Elastic-2.0
6
6
  Author: Nuno Campos
@@ -1,9 +1,9 @@
1
1
  LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
2
- langgraph_api/__init__.py,sha256=rPSfWgIeq2YWVPyESOAwCBt8vftsTpIkuLAGDEzyRQc,22
3
- langgraph_api/api/__init__.py,sha256=aRg4sXwBQ-CmJkUKtZu6cX5jzCrtx0TXTUwqcZ3lEoI,5584
2
+ langgraph_api/__init__.py,sha256=YpKDcdV7CqL8n45u267wKtyloM13FSVbOdrqgNZnSLM,22
3
+ langgraph_api/api/__init__.py,sha256=6Wyyu-IfQSnMOAYl33JRioBMuw7xgA38N5ZzBef0avU,5808
4
4
  langgraph_api/api/assistants.py,sha256=i-nxkScUB2g8bTVGtQIp1psABXlaY1aVx9pkB_UiRH8,14353
5
5
  langgraph_api/api/mcp.py,sha256=KbR19dtFCpJEiKYj3IfepAuJij8YZVELuVp7JY_yu_o,13754
6
- langgraph_api/api/meta.py,sha256=M1JHcuZGEn8E-ZpuEbNBJ6SoAwZBCcPOq0NRHMCplR8,2713
6
+ langgraph_api/api/meta.py,sha256=sTgkhE-DaFWpERG6F7KelZfDsmJAiVc4j5dg50tDkSo,2950
7
7
  langgraph_api/api/openapi.py,sha256=f9gfmWN2AMKNUpLCpSgZuw_aeOF9jCXPdOtFT5PaTWM,10960
8
8
  langgraph_api/api/runs.py,sha256=dhHZ3xu7V0anftqzXaOYnhVEryJpVeqzu60MFiUw4u8,18010
9
9
  langgraph_api/api/store.py,sha256=G4Fm8hgFLlJUW5_ekLS_IOgCfpFy-TK9uq5r9QTOELQ,5447
@@ -18,22 +18,24 @@ langgraph_api/auth/langsmith/client.py,sha256=eKchvAom7hdkUXauD8vHNceBDDUijrFgdT
18
18
  langgraph_api/auth/middleware.py,sha256=jDA4t41DUoAArEY_PNoXesIUBJ0nGhh85QzRdn5EPD0,1916
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=UZ4XQLK7AJPSEgC1lQj4ahOBm8wJ9SlDL_NF-Rno0EA,12973
21
+ langgraph_api/cli.py,sha256=NQSHyGbsr8I5xqEmbgDxADgCxbqWrcJRvT69JfGP3ms,13452
22
22
  langgraph_api/command.py,sha256=3O9v3i0OPa96ARyJ_oJbLXkfO8rPgDhLCswgO9koTFA,768
23
23
  langgraph_api/config.py,sha256=uvw51OP8VApy54DbqZIShNoaCJeM7M83mR-8hDgMLY8,10553
24
24
  langgraph_api/cron_scheduler.py,sha256=i87j4pJrcsmsqMKeKUs69gaAjrGaSM3pM3jnXdN5JDQ,2630
25
25
  langgraph_api/errors.py,sha256=Bu_i5drgNTyJcLiyrwVE_6-XrSU50BHf9TDpttki9wQ,1690
26
- langgraph_api/graph.py,sha256=GZtVXyP1l-nKlcRmB9s_m0U9UnifPUzIBBjDXmT11oo,20959
26
+ langgraph_api/graph.py,sha256=OMvYH6xO5KXwPxTSZ3e_yQZXDmT8nVsa0iqOWqKqYaw,21477
27
27
  langgraph_api/http.py,sha256=gYbxxjY8aLnsXeJymcJ7G7Nj_yToOGpPYQqmZ1_ggfA,5240
28
28
  langgraph_api/js/.gitignore,sha256=l5yI6G_V6F1600I1IjiUKn87f4uYIrBAYU1MOyBBhg4,59
29
+ langgraph_api/js/.prettierrc,sha256=r08GtR4CPFQkArPYy10eMUbrpTvGDVNeoZRvaeZu0Kc,18
29
30
  langgraph_api/js/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
31
  langgraph_api/js/base.py,sha256=udYS5_OmmJI_d7kEUv0H4FINprZOW6tdXRkKDEdzNvc,469
31
32
  langgraph_api/js/build.mts,sha256=4xcjo9rufSPUnnihdYp1EnDPSoaDQDV6aN8_UMjKp-g,1916
33
+ langgraph_api/js/client.http.mts,sha256=Tpl-KSiu6TaEWwQoydtRMxfBgHXsjzTqmrRcYATtVDk,4480
32
34
  langgraph_api/js/client.mts,sha256=7v5BcWsR5w6wGCsxhm6xryBgI-5vfu2Or1YmT-GdKyY,28766
33
35
  langgraph_api/js/errors.py,sha256=Cm1TKWlUCwZReDC5AQ6SgNIVGD27Qov2xcgHyf8-GXo,361
34
36
  langgraph_api/js/global.d.ts,sha256=j4GhgtQSZ5_cHzjSPcHgMJ8tfBThxrH-pUOrrJGteOU,196
35
37
  langgraph_api/js/package.json,sha256=AHIygIYPZX1T3NB5kpZRqHRaVB3BufA9O1XFvgxfnkM,1289
36
- langgraph_api/js/remote.py,sha256=OHxjncX1AAahUurlntkcgMYl852XgT19OxJeuvfEFsc,27959
38
+ langgraph_api/js/remote.py,sha256=pnyq3oGtMX3kGaBLU-lhMf_kKvc1a1324Z3e_KIKAD0,35117
37
39
  langgraph_api/js/schema.py,sha256=7idnv7URlYUdSNMBXQcw7E4SxaPxCq_Oxwnlml8q5ik,408
38
40
  langgraph_api/js/src/graph.mts,sha256=g86jOvbHj1B0o1jatBc2X5_JEZW2DSNwgUJ_kw1k8Cw,3569
39
41
  langgraph_api/js/src/hooks.mjs,sha256=XtktgmIHlls_DsknAuwib-z7TqCm0haRoTXvnkgzMuo,601
@@ -46,31 +48,32 @@ langgraph_api/js/src/utils/importMap.mts,sha256=pX4TGOyUpuuWF82kXcxcv3-8mgusRezO
46
48
  langgraph_api/js/src/utils/pythonSchemas.mts,sha256=98IW7Z_VP7L_CHNRMb3_MsiV3BgLE2JsWQY_PQcRR3o,685
47
49
  langgraph_api/js/src/utils/serde.mts,sha256=OuyyO9btvwWd55rU_H4x91dFEJiaPxL-lL9O6Zgo908,742
48
50
  langgraph_api/js/sse.py,sha256=lsfp4nyJyA1COmlKG9e2gJnTttf_HGCB5wyH8OZBER8,4105
49
- langgraph_api/js/tests/api.test.mts,sha256=CJ4q0HmutNRLMFhEkOZ4w3UJxgEG9FYLDVFCB8WirGQ,62987
51
+ langgraph_api/js/tests/api.test.mts,sha256=P-iv4oNEbAiLWMAOv8Rk3g7qEZzOXs4G1Ed_lhrqmzk,66291
50
52
  langgraph_api/js/tests/auth.test.mts,sha256=A8JXfEep6S4jzduoSZeRQkqq9WsFbVE8Bvi3Hj_zx2w,21600
51
53
  langgraph_api/js/tests/compose-postgres.auth.yml,sha256=iPfJbCeYZdV6GiRLiDn_f7qgpG4TyyGaQ4lV-ZXr6Qk,1768
52
- langgraph_api/js/tests/compose-postgres.yml,sha256=yz99nUy4Gm8vXuE5cnp2ekPzv7x5XWdwFPB9muAqeGE,1861
54
+ langgraph_api/js/tests/compose-postgres.yml,sha256=w4B3YRS0QEnTcZH2-MY0DYvR_c5GcER0uDa1Ga_knf8,1960
53
55
  langgraph_api/js/tests/graphs/.gitignore,sha256=26J8MarZNXh7snXD5eTpV3CPFTht5Znv8dtHYCLNfkw,12
54
56
  langgraph_api/js/tests/graphs/agent.css,sha256=QgcOC0W7IBsrg4pSqqpull-WTgtULZfx_lF_5ZxLdag,23
55
57
  langgraph_api/js/tests/graphs/agent.mts,sha256=E9WMv0alMv0njUEECqEsqoRk9NXJUgXW7SyQJ3GOZ8k,5396
56
58
  langgraph_api/js/tests/graphs/agent.ui.tsx,sha256=JDFJdpdIS6rglkXTaROSb1Is0j1kt5wN9ML8W4cuht8,175
57
- langgraph_api/js/tests/graphs/agent_simple.mts,sha256=Ge7jzkV-DsSmJM9RBFrfMIONCtvU-_Ci2PqS9GaYf6w,2231
59
+ langgraph_api/js/tests/graphs/agent_simple.mts,sha256=pfpzWEd_PQmQvzbEZTc6xT-Trd7K43_xTifh7J5gERU,2348
58
60
  langgraph_api/js/tests/graphs/auth.mts,sha256=kF2TZP3n_urWigf0qgejZqTe93-341_Mhqe_qnBO_Io,3195
59
61
  langgraph_api/js/tests/graphs/command.mts,sha256=YO1_cEs_n9VsH_-IediLnI4Yc8KRlp4qrprUZXpAlwM,1163
60
62
  langgraph_api/js/tests/graphs/delay.mts,sha256=CFneKxqI4bGGK0lYjSbe80QirowPQlsRSuhDUKfydhk,703
61
63
  langgraph_api/js/tests/graphs/dynamic.mts,sha256=Wf_-keF7lkEfp_iyI45nlFGCeU8ARLQ8axc0LXh7TyE,659
62
64
  langgraph_api/js/tests/graphs/error.mts,sha256=l4tk89449dj1BnEF_0ZcfPt0Ikk1gl8L1RaSnRfr3xo,487
65
+ langgraph_api/js/tests/graphs/http.mts,sha256=0axKPJpjYe8WVMugIoYCO4lbd-tAC2fyW_PaYmwdOzs,1890
63
66
  langgraph_api/js/tests/graphs/langgraph.json,sha256=h6hV1wkNEUIpLBX9JOUKqtIBvbhvzyLEuWtBIHteseg,265
64
67
  langgraph_api/js/tests/graphs/nested.mts,sha256=4G7jSOSaFVQAza-_ARbK-Iai1biLlF2DIPDZXf7PLIY,1245
65
- langgraph_api/js/tests/graphs/package.json,sha256=xVclKB1ofQDeTocnu8gvxghPZg2llsIOcn47RuuIOHs,240
68
+ langgraph_api/js/tests/graphs/package.json,sha256=lnxyTX7njYy8Hj2oNSCXKWVEsgl3d9-mPM6An2KALj8,263
66
69
  langgraph_api/js/tests/graphs/weather.mts,sha256=A7mLK3xW8h5B-ZyJNAyX2M2fJJwzPJzXs4DYesJwreQ,1655
67
- langgraph_api/js/tests/graphs/yarn.lock,sha256=JP_za1t56zCne5O8QOc-kLrGrUDwSnBZ25F8tVObUuU,10957
70
+ langgraph_api/js/tests/graphs/yarn.lock,sha256=dzMz7KQQ1XK6xlI_GkfsM1azJjgNxRY7V0s5tdQorvk,11202
68
71
  langgraph_api/js/tests/parser.test.mts,sha256=dEC8KTqKygeb1u39ZvpPqCT4HtfPD947nLmITt2buxA,27883
69
72
  langgraph_api/js/tests/utils.mts,sha256=q1V9gvT63v95onlfK9W4iv3n9ZJO3h-0RD9TdDYuRyY,439
70
73
  langgraph_api/js/ui.py,sha256=XNT8iBcyT8XmbIqSQUWd-j_00HsaWB2vRTVabwFBkik,2439
71
74
  langgraph_api/js/yarn.lock,sha256=H_92GD_D7SFoKZTyzlHU8UBno2D3IxVW60upkdaRz9c,83379
72
75
  langgraph_api/logging.py,sha256=JJIzbNIgLCN6ClQ3tA-Mm5ffuBGvpRDSZsEvnIlsuu4,3693
73
- langgraph_api/metadata.py,sha256=RUDDgxlrmf7zDFT_kI587JZboD0IdmlBwwkLA0Fxm00,4132
76
+ langgraph_api/metadata.py,sha256=jibmAW9sOQZPZl6ZKOn1u6HrFsmkP0M_OQPChADnyaM,4321
74
77
  langgraph_api/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
78
  langgraph_api/middleware/http_logger.py,sha256=aj4mdisRobFePkD3Iy6-w_Mujwx4TQRaEhPvSd6HgLk,3284
76
79
  langgraph_api/middleware/private_network.py,sha256=eYgdyU8AzU2XJu362i1L8aSFoQRiV7_aLBPw7_EgeqI,2111
@@ -81,7 +84,7 @@ langgraph_api/queue_entrypoint.py,sha256=gjtajZfnDXhsi7JElfmkY-p0ENBiKBDJ4Ugiw-e
81
84
  langgraph_api/route.py,sha256=fM4qYCGbmH0a3_cV8uKocb1sLklehxO6HhdRXqLK6OM,4421
82
85
  langgraph_api/schema.py,sha256=Frh_YOC3S1cDAMPUVanNi78ooSXK2WFpu9YkIVz5h14,5433
83
86
  langgraph_api/serde.py,sha256=TVsx2QQtepf8Wsgsabcku1NV4Vbugu4Oujmdnq4qMS0,3964
84
- langgraph_api/server.py,sha256=d1OeDY7zvw16mX_NWAi9PbFbpFygFlM0clJXRoooPig,6368
87
+ langgraph_api/server.py,sha256=7GBwJ7W5xEp2RKLblAGQFysmjCNE-2masnPKmm0HWIc,6662
85
88
  langgraph_api/sse.py,sha256=2wNodCOP2eg7a9mpSu0S3FQ0CHk2BBV_vv0UtIgJIcc,4034
86
89
  langgraph_api/state.py,sha256=8jx4IoTCOjTJuwzuXJKKFwo1VseHjNnw_CCq4x1SW14,2284
87
90
  langgraph_api/stream.py,sha256=SN96CLJ5QnSQ2YWRrkQb4K8XkdoSbloyFRj8N1vKcs8,11369
@@ -93,11 +96,11 @@ langgraph_api/worker.py,sha256=DX_EZZs47cfb4_1owBkjiq-Mrr2vUoeGjotWvKY21uc,11290
93
96
  langgraph_license/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
97
  langgraph_license/middleware.py,sha256=_ODIYzQkymr6W9_Fp9wtf1kAQspnpsmr53xuzyF2GA0,612
95
98
  langgraph_license/validation.py,sha256=Uu_G8UGO_WTlLsBEY0gTVWjRR4czYGfw5YAD3HLZoj0,203
96
- langgraph_runtime/__init__.py,sha256=3stEi5ECApK7l0Y7q4vN-fQQz8cgJ9lyqAyhqDBqags,1075
99
+ langgraph_runtime/__init__.py,sha256=O4GgSmu33c-Pr8Xzxj_brcK5vkm70iNTcyxEjICFZxA,1075
97
100
  logging.json,sha256=3RNjSADZmDq38eHePMm1CbP6qZ71AmpBtLwCmKU9Zgo,379
98
101
  openapi.json,sha256=YW4ND-N3adriEoNwxw7UD9endO2xUZoodCtwVIfa2dU,132261
99
- langgraph_api-0.1.5.dist-info/LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
100
- langgraph_api-0.1.5.dist-info/METADATA,sha256=J_QP34guUd--JbzJshIQiFF73C-mYOrShMs2465wmE8,4119
101
- langgraph_api-0.1.5.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
102
- langgraph_api-0.1.5.dist-info/entry_points.txt,sha256=3EYLgj89DfzqJHHYGxPH4A_fEtClvlRbWRUHaXO7hj4,77
103
- langgraph_api-0.1.5.dist-info/RECORD,,
102
+ langgraph_api-0.1.7.dist-info/LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
103
+ langgraph_api-0.1.7.dist-info/METADATA,sha256=-T_5nOc2MVO7PY_7AjHPjBODajZZuSihBwh-lpRz_iM,4119
104
+ langgraph_api-0.1.7.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
105
+ langgraph_api-0.1.7.dist-info/entry_points.txt,sha256=3EYLgj89DfzqJHHYGxPH4A_fEtClvlRbWRUHaXO7hj4,77
106
+ langgraph_api-0.1.7.dist-info/RECORD,,
@@ -23,7 +23,7 @@ if importlib.util.find_spec(RUNTIME_PACKAGE):
23
23
  else:
24
24
  raise ImportError(
25
25
  "Langgraph runtime backend not found. Please install with "
26
- f'`pip install "langgraph-runtime[{RUNTIME_EDITION}"`'
26
+ f'`pip install "langgraph-runtime-{RUNTIME_EDITION}"`'
27
27
  ) from None
28
28
 
29
29
  # All runtime backends share the same API