langgraph-api 0.2.29__py3-none-any.whl → 0.2.32__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 CHANGED
@@ -1 +1 @@
1
- __version__ = "0.2.29"
1
+ __version__ = "0.2.32"
@@ -7,7 +7,10 @@ import * as path from "node:path";
7
7
  import { type GraphSchema, resolveGraph } from "./src/graph.mts";
8
8
  import { build } from "@langchain/langgraph-ui";
9
9
  import { checkLangGraphSemver } from "@langchain/langgraph-api/semver";
10
- import { getStaticGraphSchema } from "@langchain/langgraph-api/schema";
10
+ import {
11
+ getStaticGraphSchema,
12
+ GraphSpec,
13
+ } from "@langchain/langgraph-api/schema";
11
14
  import { filterValidExportPath } from "./src/utils/files.mts";
12
15
 
13
16
  const __dirname = new URL(".", import.meta.url).pathname;
@@ -17,7 +20,7 @@ async function main() {
17
20
  z.record(z.string()).parse(JSON.parse(process.env.LANGSERVE_GRAPHS)),
18
21
  ).filter(([_, spec]) => filterValidExportPath(spec));
19
22
 
20
- const GRAPH_SCHEMAS: Record<string, Record<string, GraphSchema> | false> = {};
23
+ let GRAPH_SCHEMAS: Record<string, Record<string, GraphSchema> | false> = {};
21
24
 
22
25
  const semver = await checkLangGraphSemver();
23
26
  const invalidPackages = semver.filter(
@@ -42,28 +45,42 @@ async function main() {
42
45
 
43
46
  let failed = false;
44
47
  try {
45
- await Promise.all(
46
- specs.map(async ([graphId, rawSpec]) => {
47
- console.info(`[${graphId}]: Checking for source file existence`);
48
- const { resolved, ...spec } = await resolveGraph(rawSpec, {
49
- onlyFilePresence: true,
50
- });
51
-
52
- try {
53
- console.info(`[${graphId}]: Extracting schema`);
54
- GRAPH_SCHEMAS[graphId] = await getStaticGraphSchema(spec, {
55
- timeoutMs: 120_000,
48
+ const resolveSpecs = Object.fromEntries<GraphSpec>(
49
+ await Promise.all(
50
+ specs.map(async ([graphId, rawSpec]) => {
51
+ console.info(`[${graphId}]: Checking for source file existence`);
52
+ const { resolved, ...spec } = await resolveGraph(rawSpec, {
53
+ onlyFilePresence: true,
56
54
  });
57
- } catch (error) {
58
- console.error(`[${graphId}]: Error extracting schema: ${error}`);
59
- GRAPH_SCHEMAS[graphId] = false;
60
- }
61
- }),
55
+
56
+ return [graphId, spec] as [string, GraphSpec];
57
+ }),
58
+ ),
62
59
  );
63
60
 
61
+ try {
62
+ console.info("Extracting schemas");
63
+ GRAPH_SCHEMAS = await getStaticGraphSchema(resolveSpecs, {
64
+ timeoutMs: 120_000,
65
+ });
66
+ } catch (error) {
67
+ console.error(`Error extracting schema: ${error}`);
68
+ }
69
+
64
70
  await fs.writeFile(
65
71
  path.resolve(__dirname, "client.schemas.json"),
66
- JSON.stringify(GRAPH_SCHEMAS),
72
+ JSON.stringify(
73
+ Object.fromEntries(
74
+ specs.map(([graphId]) => {
75
+ const valid = GRAPH_SCHEMAS[graphId];
76
+ if (valid == null || Object.values(valid).every((x) => x == null)) {
77
+ return [graphId, false];
78
+ }
79
+
80
+ return [graphId, valid];
81
+ }),
82
+ ),
83
+ ),
67
84
  { encoding: "utf-8" },
68
85
  );
69
86
  } catch (error) {
@@ -24,8 +24,8 @@
24
24
  "undici": "^6.21.1",
25
25
  "uuid": "^10.0.0",
26
26
  "winston": "^3.17.0",
27
- "@langchain/langgraph-api": "~0.0.32",
28
- "@langchain/langgraph-ui": "~0.0.32",
27
+ "@langchain/langgraph-api": "~0.0.37",
28
+ "@langchain/langgraph-ui": "~0.0.37",
29
29
  "zod": "^3.23.8"
30
30
  },
31
31
  "resolutions": {
@@ -203,15 +203,15 @@
203
203
  zod "^3.22.4"
204
204
  zod-to-json-schema "^3.22.3"
205
205
 
206
- "@langchain/langgraph-api@~0.0.32":
207
- version "0.0.32"
208
- resolved "https://registry.yarnpkg.com/@langchain/langgraph-api/-/langgraph-api-0.0.32.tgz#65f41373318055b330fa64e7d4ccd7c994f7dc8d"
209
- integrity sha512-wYflud8iCGjwh3/GtzrTeWlwcc91kXBa49Goc2iaHcJRjMnTbl+loE3eklegDPnQGx1VKUCiB9qW/HutxuqXGA==
206
+ "@langchain/langgraph-api@~0.0.37":
207
+ version "0.0.37"
208
+ resolved "https://registry.yarnpkg.com/@langchain/langgraph-api/-/langgraph-api-0.0.37.tgz#52b3a62ac56dc56e239b76953ccc5b42a5aa1396"
209
+ integrity sha512-0mMmjA0KSYx/oKm6a+KSjWj7hneWsGlTDuwIaEnpauFLo5FCx3bZ8yQSPNFprvgHgJkxYWLjnVuXS+y/V1kLqg==
210
210
  dependencies:
211
211
  "@babel/code-frame" "^7.26.2"
212
212
  "@hono/node-server" "^1.12.0"
213
213
  "@hono/zod-validator" "^0.2.2"
214
- "@langchain/langgraph-ui" "0.0.32"
214
+ "@langchain/langgraph-ui" "0.0.37"
215
215
  "@types/json-schema" "^7.0.15"
216
216
  "@typescript/vfs" "^1.6.0"
217
217
  dedent "^1.5.3"
@@ -256,10 +256,10 @@
256
256
  p-retry "4"
257
257
  uuid "^9.0.0"
258
258
 
259
- "@langchain/langgraph-ui@0.0.32", "@langchain/langgraph-ui@~0.0.32":
260
- version "0.0.32"
261
- resolved "https://registry.yarnpkg.com/@langchain/langgraph-ui/-/langgraph-ui-0.0.32.tgz#7e0cab750ba1e65f47d7b1d2adf955a36e50664e"
262
- integrity sha512-65QZpouvw4P+hCpklYebNiwR88M84h7awjNB6FaKWHvCZa6NcSzlruFa/PnvU1o/kRK5NNpXNPyDUQLhT3tmTA==
259
+ "@langchain/langgraph-ui@0.0.37", "@langchain/langgraph-ui@~0.0.37":
260
+ version "0.0.37"
261
+ resolved "https://registry.yarnpkg.com/@langchain/langgraph-ui/-/langgraph-ui-0.0.37.tgz#02bfdcc6ef1f518d3810afe298d6862d82100c58"
262
+ integrity sha512-eHsm+bjxXYzHsWa3WjlYiHd7a5PMaLgH1U0B5Ox+p43QnCE+mUCm82dWvvvXQ+FO/RktPk8kjbswwK/y/0Zk5A==
263
263
  dependencies:
264
264
  "@commander-js/extra-typings" "^13.0.0"
265
265
  commander "^13.0.0"
langgraph_api/metadata.py CHANGED
@@ -1,6 +1,5 @@
1
1
  import asyncio
2
2
  import os
3
- from collections import defaultdict
4
3
  from datetime import UTC, datetime
5
4
 
6
5
  import langgraph.version
@@ -37,8 +36,8 @@ PLAN = "enterprise" if plus_features_enabled() else "developer"
37
36
  USER_API_URL = os.getenv("LANGGRAPH_API_URL", None)
38
37
 
39
38
  LOGS: list[dict] = []
40
- RUN_COUNTER = defaultdict(int)
41
- NODE_COUNTER = defaultdict(int)
39
+ RUN_COUNTER = 0
40
+ NODE_COUNTER = 0
42
41
  FROM_TIMESTAMP = datetime.now(UTC).isoformat()
43
42
 
44
43
  if (
@@ -50,12 +49,14 @@ else:
50
49
  METADATA_ENDPOINT = "https://api.smith.langchain.com/v1/metadata/submit"
51
50
 
52
51
 
53
- def incr_runs(*, graph_id: str | None = None, incr: int = 1) -> None:
54
- RUN_COUNTER[graph_id] += incr
52
+ def incr_runs(*, incr: int = 1) -> None:
53
+ global RUN_COUNTER
54
+ RUN_COUNTER += incr
55
55
 
56
56
 
57
- def incr_nodes(*_, graph_id: str | None = None, incr: int = 1) -> None:
58
- NODE_COUNTER[graph_id] += incr
57
+ def incr_nodes(_, *, incr: int = 1) -> None:
58
+ global NODE_COUNTER
59
+ NODE_COUNTER += incr
59
60
 
60
61
 
61
62
  def append_log(log: dict) -> None:
@@ -88,23 +89,13 @@ async def metadata_loop() -> None:
88
89
  # we don't need a lock as long as there's no awaits in this block
89
90
  from_timestamp = FROM_TIMESTAMP
90
91
  to_timestamp = datetime.now(UTC).isoformat()
91
- nodes = NODE_COUNTER.copy()
92
- runs = RUN_COUNTER.copy()
92
+ nodes = NODE_COUNTER
93
+ runs = RUN_COUNTER
93
94
  logs = LOGS.copy()
94
95
  LOGS.clear()
95
- RUN_COUNTER.clear()
96
- NODE_COUNTER.clear()
96
+ RUN_COUNTER = 0
97
+ NODE_COUNTER = 0
97
98
  FROM_TIMESTAMP = to_timestamp
98
- graph_measures = {
99
- f"langgraph.platform.graph_runs.{graph_id}": runs.get(graph_id, 0)
100
- for graph_id in runs
101
- }
102
- graph_measures.update(
103
- {
104
- f"langgraph.platform.graph_nodes.{graph_id}": nodes.get(graph_id, 0)
105
- for graph_id in nodes
106
- }
107
- )
108
99
 
109
100
  payload = {
110
101
  "license_key": LANGGRAPH_CLOUD_LICENSE_KEY,
@@ -129,9 +120,8 @@ async def metadata_loop() -> None:
129
120
  "user_app.uses_store_ttl": str(USES_STORE_TTL),
130
121
  },
131
122
  "measures": {
132
- "langgraph.platform.runs": sum(runs.values()),
133
- "langgraph.platform.nodes": sum(nodes.values()),
134
- **graph_measures,
123
+ "langgraph.platform.runs": runs,
124
+ "langgraph.platform.nodes": nodes,
135
125
  },
136
126
  "logs": logs,
137
127
  }
@@ -144,10 +134,8 @@ async def metadata_loop() -> None:
144
134
  )
145
135
  except Exception as e:
146
136
  # retry on next iteration
147
- for graph_id, incr in runs.items():
148
- incr_runs(graph_id=graph_id, incr=incr)
149
- for graph_id, incr in nodes.items():
150
- incr_nodes(graph_id=graph_id, incr=incr)
137
+ incr_runs(incr=runs)
138
+ incr_nodes("", incr=nodes)
151
139
  FROM_TIMESTAMP = from_timestamp
152
140
  await logger.ainfo("Metadata submission skipped.", error=str(e))
153
141
  await asyncio.sleep(INTERVAL)
@@ -1,7 +1,13 @@
1
1
  # ruff: noqa: E402
2
- import truststore # noqa: F401
2
+ import os
3
+
4
+ if not (
5
+ (disable_truststore := os.getenv("DISABLE_TRUSTSTORE"))
6
+ and disable_truststore.lower() == "true"
7
+ ):
8
+ import truststore # noqa: F401
3
9
 
4
- truststore.inject_into_ssl() # noqa: F401
10
+ truststore.inject_into_ssl() # noqa: F401
5
11
 
6
12
  import asyncio
7
13
  import http.server
langgraph_api/server.py CHANGED
@@ -2,14 +2,20 @@
2
2
  # ruff: noqa: E402
3
3
  import langgraph_api.patch # noqa: F401,I001
4
4
  import sys
5
+ import os
5
6
 
6
7
  # WARNING: Keep the import above before other code runs as it
7
8
  # patches an error in the Starlette library.
8
9
  import logging
9
10
  import typing
10
- import truststore # noqa: F401
11
11
 
12
- truststore.inject_into_ssl() # noqa: F401
12
+ if not (
13
+ (disable_truststore := os.getenv("DISABLE_TRUSTSTORE"))
14
+ and disable_truststore.lower() == "true"
15
+ ):
16
+ import truststore # noqa: F401
17
+
18
+ truststore.inject_into_ssl() # noqa: F401
13
19
 
14
20
  from contextlib import asynccontextmanager
15
21
 
langgraph_api/stream.py CHANGED
@@ -1,6 +1,6 @@
1
- import functools
2
1
  from collections.abc import AsyncIterator, Callable
3
2
  from contextlib import AsyncExitStack, aclosing
3
+ from functools import lru_cache
4
4
  from typing import Any, cast
5
5
 
6
6
  import langgraph.version
@@ -119,9 +119,7 @@ async def astream_state(
119
119
  # attach node counter
120
120
  is_remote_pregel = isinstance(graph, BaseRemotePregel)
121
121
  if not is_remote_pregel:
122
- config["configurable"]["__pregel_node_finished"] = functools.partial(
123
- incr_nodes, graph_id=_get_graph_id(run)
124
- )
122
+ config["configurable"]["__pregel_node_finished"] = incr_nodes
125
123
 
126
124
  # attach run_id to config
127
125
  # for attempts beyond the first, use a fresh, unique run_id
@@ -265,10 +263,10 @@ async def astream_state(
265
263
  yield mode, chunk
266
264
  # --- end shared logic with astream_events ---
267
265
  if is_remote_pregel:
268
- # increment the remote runs
266
+ # increament the remote runs
269
267
  try:
270
268
  nodes_executed = await graph.fetch_nodes_executed()
271
- incr_nodes(graph_id=graph.graph_id, incr=nodes_executed)
269
+ incr_nodes(None, incr=nodes_executed)
272
270
  except Exception as e:
273
271
  logger.warning(f"Failed to fetch nodes executed for {graph.graph_id}: {e}")
274
272
 
@@ -303,7 +301,7 @@ def get_feedback_urls(run_id: str, feedback_keys: list[str]) -> dict[str, str]:
303
301
  return {key: token.url for key, token in zip(feedback_keys, tokens, strict=False)}
304
302
 
305
303
 
306
- @functools.lru_cache(maxsize=1)
304
+ @lru_cache(maxsize=1)
307
305
  def get_langsmith_client() -> langsmith.Client:
308
306
  return langsmith.Client()
309
307
 
@@ -317,11 +315,3 @@ EXPECTED_ERRORS = (
317
315
  ValidationError,
318
316
  ValidationErrorLegacy,
319
317
  )
320
-
321
-
322
- def _get_graph_id(run: Run) -> str | None:
323
- try:
324
- return run["kwargs"]["config"]["configurable"]["graph_id"]
325
- except Exception:
326
- logger.info(f"Failed to get graph_id from run {run['run_id']}")
327
- return "Unknown"
langgraph_api/worker.py CHANGED
@@ -69,7 +69,7 @@ async def worker(
69
69
  ) -> WorkerResult:
70
70
  run_id = run["run_id"]
71
71
  if attempt == 1:
72
- incr_runs(graph_id=_get_graph_id(run))
72
+ incr_runs()
73
73
  checkpoint: CheckpointPayload | None = None
74
74
  exception: Exception | None = None
75
75
  status: str | None = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langgraph-api
3
- Version: 0.2.29
3
+ Version: 0.2.32
4
4
  Author-email: Nuno Campos <nuno@langchain.dev>, Will Fu-Hinthorn <will@langchain.dev>
5
5
  License: Elastic-2.0
6
6
  License-File: LICENSE
@@ -1,4 +1,4 @@
1
- langgraph_api/__init__.py,sha256=UMXg-6yePyXOpL1XY9AsgEVhTAokVdbXvVLiJBpkwPI,23
1
+ langgraph_api/__init__.py,sha256=TZEL7NbFvxLaphGOCsAqfJrHhPB2LHR2ab0Eb5xxaU0,23
2
2
  langgraph_api/asgi_transport.py,sha256=eqifhHxNnxvI7jJqrY1_8RjL4Fp9NdN4prEub2FWBt8,5091
3
3
  langgraph_api/asyncio.py,sha256=nelZwKL7iOjM5GHj1rVjiPE7igUIKLNKtc-3urxmlfo,9250
4
4
  langgraph_api/cli.py,sha256=9Ou3tGDDY_VVLt5DFle8UviJdpI4ZigC5hElYvq2-To,14519
@@ -9,22 +9,22 @@ langgraph_api/errors.py,sha256=Bu_i5drgNTyJcLiyrwVE_6-XrSU50BHf9TDpttki9wQ,1690
9
9
  langgraph_api/graph.py,sha256=uc4YFMwzC8husHC0lySPm7KUaYh1L5Y9sZREE-FIekE,23205
10
10
  langgraph_api/http.py,sha256=gYbxxjY8aLnsXeJymcJ7G7Nj_yToOGpPYQqmZ1_ggfA,5240
11
11
  langgraph_api/logging.py,sha256=3GSbvmXi8yWxWxJ558RE81xUEdklrPHJ4PpkxAb-35w,4428
12
- langgraph_api/metadata.py,sha256=YZ2O9BpMSgDyPUc4hcw5ab6e6VMZETpoc-ml2RWgpIU,5140
12
+ langgraph_api/metadata.py,sha256=ptaxwmzdx2bUBSc1KRhqgF-Xnm-Zh2gqwSiHpl8LD9c,4482
13
13
  langgraph_api/patch.py,sha256=Dgs0PXHytekX4SUL6KsjjN0hHcOtGLvv1GRGbh6PswU,1408
14
- langgraph_api/queue_entrypoint.py,sha256=Hw6W66EEY_V7GHvnRzijsbvoNy4TM7IQVoZJ-DRbSfU,2173
14
+ langgraph_api/queue_entrypoint.py,sha256=_41ZveMDdn9bapjA7Ik9FG3r4hyIwXESUM5F1PdlieE,2309
15
15
  langgraph_api/route.py,sha256=uN311KjIugyNHG3rmVw_ms61QO1W1l16jJx03rf0R_s,4630
16
16
  langgraph_api/schema.py,sha256=2711t4PIBk5dky4gmMndrTRC9CVvAgH47C9FKDxhkBo,5444
17
17
  langgraph_api/serde.py,sha256=8fQXg7T7RVUqj_jgOoSOJrWVpQDW0qJKjAjSsEhPHo4,4803
18
- langgraph_api/server.py,sha256=4P7GpXbE9m-sAV7rBQ4Gd3oFk6htNbL-tRQfICAFc2k,6837
18
+ langgraph_api/server.py,sha256=Z_VL-kIphybTRDWBIqHMfRhgCmAFyTRqAGlgnHQF0Zg,6973
19
19
  langgraph_api/sse.py,sha256=3jG_FZj8FI9r7xGWTqaAyDkmqf6P1NOu0EzGrcSOGYc,4033
20
20
  langgraph_api/state.py,sha256=8jx4IoTCOjTJuwzuXJKKFwo1VseHjNnw_CCq4x1SW14,2284
21
21
  langgraph_api/store.py,sha256=UWVpopgVjAYM2U9Ra6ZY_BmwPPlq6wfqOw7zdWnQjBU,4598
22
- langgraph_api/stream.py,sha256=UAc_bOlXadE4nK2Bf0iNyzQkMgRegDszk5AMoLR3NGI,12781
22
+ langgraph_api/stream.py,sha256=oqJnFDueDSbsoLkVK2MVpQnwO9Pc-wwf18c8_c9QBeI,12458
23
23
  langgraph_api/thread_ttl.py,sha256=-Ox8NFHqUH3wGNdEKMIfAXUubY5WGifIgCaJ7npqLgw,1762
24
24
  langgraph_api/utils.py,sha256=92mSti9GfGdMRRWyESKQW5yV-75Z9icGHnIrBYvdypU,3619
25
25
  langgraph_api/validation.py,sha256=zMuKmwUEBjBgFMwAaeLZmatwGVijKv2sOYtYg7gfRtc,4950
26
26
  langgraph_api/webhook.py,sha256=1ncwO0rIZcj-Df9sxSnFEzd1gP1bfS4okeZQS8NSRoE,1382
27
- langgraph_api/worker.py,sha256=X1btoYoAhCGLgC8zi34zeF512ZjzXzozOyeb4eLzElY,12418
27
+ langgraph_api/worker.py,sha256=uuQ6i9iKvSeF4CD_w1nGgpQ4FXLZ2wpn3IvHOLfphTY,12391
28
28
  langgraph_api/api/__init__.py,sha256=YVzpbn5IQotvuuLG9fhS9QMrxXfP4s4EpEMG0n4q3Nw,5625
29
29
  langgraph_api/api/assistants.py,sha256=x_V1rnSGFYjNZFJkZKFN9yNFOqXhqkOSqMDSv3I8VeE,15880
30
30
  langgraph_api/api/mcp.py,sha256=RvRYgANqRzNQzSmgjNkq4RlKTtoEJYil04ot9lsmEtE,14352
@@ -46,18 +46,18 @@ langgraph_api/js/.gitignore,sha256=l5yI6G_V6F1600I1IjiUKn87f4uYIrBAYU1MOyBBhg4,5
46
46
  langgraph_api/js/.prettierrc,sha256=0es3ovvyNIqIw81rPQsdt1zCQcOdBqyR_DMbFE4Ifms,19
47
47
  langgraph_api/js/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
48
  langgraph_api/js/base.py,sha256=gjY6K8avI03OrI-Hy6a311fQ_EG5r_x8hUYlc7uqxdE,534
49
- langgraph_api/js/build.mts,sha256=05bkP9mpxf1JVuJ3at0y56p13QBkHgf7Q6eG6pOZsIg,2784
49
+ langgraph_api/js/build.mts,sha256=bRQo11cglDFXlLN7Y48CQPTSMLenp7MqIWuP1DkSIo0,3139
50
50
  langgraph_api/js/client.http.mts,sha256=AGA-p8J85IcNh2oXZjDxHQ4PnQdJmt-LPcpZp6j0Cws,4687
51
51
  langgraph_api/js/client.mts,sha256=N9CTH7mbXGSD-gpv-XyruYsHI-rgrObL8cQoAp5s3_U,30986
52
52
  langgraph_api/js/errors.py,sha256=Cm1TKWlUCwZReDC5AQ6SgNIVGD27Qov2xcgHyf8-GXo,361
53
53
  langgraph_api/js/global.d.ts,sha256=j4GhgtQSZ5_cHzjSPcHgMJ8tfBThxrH-pUOrrJGteOU,196
54
- langgraph_api/js/package.json,sha256=craKzuSIEnt-WQpKZDaACwdm75lPqpRQde6l9LfS-eI,1289
54
+ langgraph_api/js/package.json,sha256=ntv5698ztLklI2TheZDHI4FC6dqRwmc9LXGq92v7B90,1289
55
55
  langgraph_api/js/remote.py,sha256=utq7tjSFUf0zPLDFgC9lnsGKrtX3EVEX6IcNCc9Q1yM,35934
56
56
  langgraph_api/js/schema.py,sha256=7idnv7URlYUdSNMBXQcw7E4SxaPxCq_Oxwnlml8q5ik,408
57
57
  langgraph_api/js/sse.py,sha256=lsfp4nyJyA1COmlKG9e2gJnTttf_HGCB5wyH8OZBER8,4105
58
58
  langgraph_api/js/tsconfig.json,sha256=imCYqVnqFpaBoZPx8k1nO4slHIWBFsSlmCYhO73cpBs,341
59
59
  langgraph_api/js/ui.py,sha256=XNT8iBcyT8XmbIqSQUWd-j_00HsaWB2vRTVabwFBkik,2439
60
- langgraph_api/js/yarn.lock,sha256=qtnJQjwX8OUQVzsh51N1imtjYGg5RCI9xkg5n5VZMKI,84019
60
+ langgraph_api/js/yarn.lock,sha256=6AbrljVBZjl1eqwFYp4G0TPYW24me9fiKYkoM2hpgkM,84019
61
61
  langgraph_api/js/src/graph.mts,sha256=9zTQNdtanI_CFnOwNRoamoCVHHQHGbNlbm91aRxDeOc,2675
62
62
  langgraph_api/js/src/load.hooks.mjs,sha256=xNVHq75W0Lk6MUKl1pQYrx-wtQ8_neiUyI6SO-k0ecM,2235
63
63
  langgraph_api/js/src/preload.mjs,sha256=ORV7xwMuZcXWL6jQxNAcCYp8GZVYIvVJbUhmle8jbno,759
@@ -78,8 +78,8 @@ langgraph_runtime/__init__.py,sha256=O4GgSmu33c-Pr8Xzxj_brcK5vkm70iNTcyxEjICFZxA
78
78
  LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
79
79
  logging.json,sha256=3RNjSADZmDq38eHePMm1CbP6qZ71AmpBtLwCmKU9Zgo,379
80
80
  openapi.json,sha256=ZMY9UXZJYiFK59z8QmDxVZ7LV6KonQbHzG-D5h-ZTYE,135412
81
- langgraph_api-0.2.29.dist-info/METADATA,sha256=vjvxQd0cwFoyq7FiEgdgOuc-ru15xJ7DSd-jSe-yUqY,3892
82
- langgraph_api-0.2.29.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
83
- langgraph_api-0.2.29.dist-info/entry_points.txt,sha256=hGedv8n7cgi41PypMfinwS_HfCwA7xJIfS0jAp8htV8,78
84
- langgraph_api-0.2.29.dist-info/licenses/LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
85
- langgraph_api-0.2.29.dist-info/RECORD,,
81
+ langgraph_api-0.2.32.dist-info/METADATA,sha256=xLkxjHbEgULInL6myBpkja9KchzOKG2avHqTHxWxp1M,3892
82
+ langgraph_api-0.2.32.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
83
+ langgraph_api-0.2.32.dist-info/entry_points.txt,sha256=hGedv8n7cgi41PypMfinwS_HfCwA7xJIfS0jAp8htV8,78
84
+ langgraph_api-0.2.32.dist-info/licenses/LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
85
+ langgraph_api-0.2.32.dist-info/RECORD,,