langgraph-runtime-inmem 0.20.1__tar.gz → 0.21.1__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.
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/PKG-INFO +1 -1
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/__init__.py +1 -1
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/checkpoint.py +60 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/ops.py +125 -18
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/uv.lock +89 -88
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/.gitignore +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/Makefile +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/README.md +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/database.py +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/inmem_stream.py +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/lifespan.py +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/metrics.py +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/queue.py +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/retry.py +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/store.py +0 -0
- {langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/pyproject.toml +0 -0
|
@@ -4,6 +4,8 @@ import logging
|
|
|
4
4
|
import os
|
|
5
5
|
import typing
|
|
6
6
|
import uuid
|
|
7
|
+
from collections.abc import AsyncIterator
|
|
8
|
+
from typing import Any
|
|
7
9
|
|
|
8
10
|
from langgraph.checkpoint.memory import MemorySaver, PersistentDict
|
|
9
11
|
|
|
@@ -116,6 +118,64 @@ class InMemorySaver(MemorySaver):
|
|
|
116
118
|
if os.path.exists(file_path):
|
|
117
119
|
os.remove(file_path)
|
|
118
120
|
|
|
121
|
+
async def _decrypt_json(self, data: dict[str, Any]) -> dict[str, Any]:
|
|
122
|
+
"""Decrypt a dict if custom encryption is configured."""
|
|
123
|
+
from langgraph_api import config as api_config
|
|
124
|
+
|
|
125
|
+
if not api_config.LANGGRAPH_ENCRYPTION:
|
|
126
|
+
return data
|
|
127
|
+
from langgraph_api.api.encryption_middleware import decrypt_json_if_needed
|
|
128
|
+
from langgraph_api.encryption import get_encryption_instance
|
|
129
|
+
|
|
130
|
+
result = await decrypt_json_if_needed(
|
|
131
|
+
data, get_encryption_instance(), "checkpoint"
|
|
132
|
+
)
|
|
133
|
+
if result is None:
|
|
134
|
+
raise ValueError("decrypt_json_if_needed returned None for non-None input")
|
|
135
|
+
return result
|
|
136
|
+
|
|
137
|
+
async def aget_tuple(self, config: RunnableConfig) -> CheckpointTuple | None:
|
|
138
|
+
"""Get checkpoint tuple with decrypted metadata."""
|
|
139
|
+
tuple_ = self.get_tuple(config)
|
|
140
|
+
if tuple_ is None:
|
|
141
|
+
return None
|
|
142
|
+
|
|
143
|
+
# Decrypt metadata if encryption is enabled
|
|
144
|
+
decrypted_metadata = await self._decrypt_json(tuple_.metadata)
|
|
145
|
+
|
|
146
|
+
from langgraph.checkpoint.base import CheckpointTuple as CPTuple
|
|
147
|
+
|
|
148
|
+
return CPTuple(
|
|
149
|
+
config=tuple_.config,
|
|
150
|
+
checkpoint=tuple_.checkpoint,
|
|
151
|
+
metadata=decrypted_metadata,
|
|
152
|
+
parent_config=tuple_.parent_config,
|
|
153
|
+
pending_writes=tuple_.pending_writes,
|
|
154
|
+
)
|
|
155
|
+
|
|
156
|
+
async def alist(
|
|
157
|
+
self,
|
|
158
|
+
config: RunnableConfig | None,
|
|
159
|
+
*,
|
|
160
|
+
filter: dict[str, Any] | None = None,
|
|
161
|
+
before: RunnableConfig | None = None,
|
|
162
|
+
limit: int | None = None,
|
|
163
|
+
) -> AsyncIterator[CheckpointTuple]:
|
|
164
|
+
"""List checkpoints with decrypted metadata."""
|
|
165
|
+
from langgraph.checkpoint.base import CheckpointTuple as CPTuple
|
|
166
|
+
|
|
167
|
+
for tuple_ in self.list(config, filter=filter, before=before, limit=limit):
|
|
168
|
+
# Decrypt metadata if encryption is enabled
|
|
169
|
+
decrypted_metadata = await self._decrypt_json(tuple_.metadata)
|
|
170
|
+
|
|
171
|
+
yield CPTuple(
|
|
172
|
+
config=tuple_.config,
|
|
173
|
+
checkpoint=tuple_.checkpoint,
|
|
174
|
+
metadata=decrypted_metadata,
|
|
175
|
+
parent_config=tuple_.parent_config,
|
|
176
|
+
pending_writes=tuple_.pending_writes,
|
|
177
|
+
)
|
|
178
|
+
|
|
119
179
|
|
|
120
180
|
MEMORY = None
|
|
121
181
|
|
{langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/ops.py
RENAMED
|
@@ -489,24 +489,23 @@ class Assistants(Authenticated):
|
|
|
489
489
|
status_code=404, detail=f"Assistant with ID {assistant_id} not found"
|
|
490
490
|
)
|
|
491
491
|
|
|
492
|
+
# Cancel all in-flight runs for this assistant before deletion
|
|
493
|
+
await Runs.cancel(
|
|
494
|
+
conn,
|
|
495
|
+
assistant_id=assistant_id,
|
|
496
|
+
action="interrupt",
|
|
497
|
+
ctx=ctx,
|
|
498
|
+
)
|
|
499
|
+
|
|
492
500
|
conn.store["assistants"] = [
|
|
493
501
|
a for a in conn.store["assistants"] if a["assistant_id"] != assistant_id
|
|
494
502
|
]
|
|
495
|
-
# Cascade delete assistant versions
|
|
503
|
+
# Cascade delete assistant versions
|
|
496
504
|
conn.store["assistant_versions"] = [
|
|
497
505
|
v
|
|
498
506
|
for v in conn.store["assistant_versions"]
|
|
499
507
|
if v["assistant_id"] != assistant_id
|
|
500
508
|
]
|
|
501
|
-
retained = []
|
|
502
|
-
for run in conn.store["runs"]:
|
|
503
|
-
if run["assistant_id"] == assistant_id:
|
|
504
|
-
res = await Runs.delete(
|
|
505
|
-
conn, run["run_id"], thread_id=run["thread_id"], ctx=ctx
|
|
506
|
-
)
|
|
507
|
-
await anext(res)
|
|
508
|
-
else:
|
|
509
|
-
retained.append(run)
|
|
510
509
|
|
|
511
510
|
async def _yield_deleted():
|
|
512
511
|
yield assistant_id
|
|
@@ -883,8 +882,16 @@ class Threads(Authenticated):
|
|
|
883
882
|
conn: InMemConnectionProto,
|
|
884
883
|
thread_id: UUID,
|
|
885
884
|
ctx: Auth.types.BaseAuthContext | None = None,
|
|
885
|
+
include_ttl: bool = False,
|
|
886
886
|
) -> AsyncIterator[Thread]:
|
|
887
|
-
"""Get a thread by ID.
|
|
887
|
+
"""Get a thread by ID.
|
|
888
|
+
|
|
889
|
+
Args:
|
|
890
|
+
conn: In-memory connection
|
|
891
|
+
thread_id: Thread ID
|
|
892
|
+
ctx: Auth context
|
|
893
|
+
include_ttl: Not supported in inmem - parameter ignored.
|
|
894
|
+
"""
|
|
888
895
|
matching_thread = await Threads._get(conn, thread_id, ctx)
|
|
889
896
|
|
|
890
897
|
if not matching_thread:
|
|
@@ -1222,6 +1229,48 @@ class Threads(Authenticated):
|
|
|
1222
1229
|
|
|
1223
1230
|
return empty_iterator()
|
|
1224
1231
|
|
|
1232
|
+
@staticmethod
|
|
1233
|
+
async def prune(
|
|
1234
|
+
thread_ids: Sequence[str] | Sequence[UUID],
|
|
1235
|
+
strategy: Literal["delete", "keep_latest"] = "delete",
|
|
1236
|
+
batch_size: int = 100,
|
|
1237
|
+
ctx: Auth.types.BaseAuthContext | None = None,
|
|
1238
|
+
) -> int:
|
|
1239
|
+
"""Prune threads by ID (inmem implementation).
|
|
1240
|
+
|
|
1241
|
+
Args:
|
|
1242
|
+
thread_ids: List of thread IDs to prune
|
|
1243
|
+
strategy: Prune strategy ("delete" supported, "keep_latest" not supported)
|
|
1244
|
+
batch_size: Not used in inmem implementation
|
|
1245
|
+
ctx: Auth context for permission checks
|
|
1246
|
+
|
|
1247
|
+
Returns:
|
|
1248
|
+
Number of threads successfully pruned
|
|
1249
|
+
"""
|
|
1250
|
+
if not thread_ids:
|
|
1251
|
+
return 0
|
|
1252
|
+
|
|
1253
|
+
if strategy == "keep_latest":
|
|
1254
|
+
raise HTTPException(
|
|
1255
|
+
status_code=422,
|
|
1256
|
+
detail="keep_latest strategy is not supported in in-memory runtime",
|
|
1257
|
+
)
|
|
1258
|
+
|
|
1259
|
+
pruned = 0
|
|
1260
|
+
async with connect() as conn:
|
|
1261
|
+
for tid in thread_ids:
|
|
1262
|
+
try:
|
|
1263
|
+
tid_uuid = _ensure_uuid(tid)
|
|
1264
|
+
iter_result = await Threads.delete(conn, tid_uuid, ctx)
|
|
1265
|
+
# Consume the iterator to ensure deletion
|
|
1266
|
+
async for _ in iter_result:
|
|
1267
|
+
pruned += 1
|
|
1268
|
+
except HTTPException:
|
|
1269
|
+
# Thread not found or no permission - skip silently
|
|
1270
|
+
pass
|
|
1271
|
+
|
|
1272
|
+
return pruned
|
|
1273
|
+
|
|
1225
1274
|
@staticmethod
|
|
1226
1275
|
async def _delete_with_run(
|
|
1227
1276
|
conn: InMemConnectionProto,
|
|
@@ -1388,6 +1437,7 @@ class Threads(Authenticated):
|
|
|
1388
1437
|
thread_config,
|
|
1389
1438
|
checkpointer=checkpointer,
|
|
1390
1439
|
store=(await get_store()),
|
|
1440
|
+
is_for_execution=False,
|
|
1391
1441
|
) as graph:
|
|
1392
1442
|
result = await graph.aget_state(config, subgraphs=subgraphs)
|
|
1393
1443
|
if (
|
|
@@ -1483,6 +1533,7 @@ class Threads(Authenticated):
|
|
|
1483
1533
|
thread_config,
|
|
1484
1534
|
checkpointer=checkpointer,
|
|
1485
1535
|
store=(await get_store()),
|
|
1536
|
+
is_for_execution=False,
|
|
1486
1537
|
) as graph:
|
|
1487
1538
|
update_config = config.copy()
|
|
1488
1539
|
update_config["configurable"] = {
|
|
@@ -1585,6 +1636,7 @@ class Threads(Authenticated):
|
|
|
1585
1636
|
thread_config,
|
|
1586
1637
|
checkpointer=Checkpointer(),
|
|
1587
1638
|
store=(await get_store()),
|
|
1639
|
+
is_for_execution=False,
|
|
1588
1640
|
) as graph:
|
|
1589
1641
|
next_config = await graph.abulk_update_state(
|
|
1590
1642
|
config,
|
|
@@ -1685,6 +1737,7 @@ class Threads(Authenticated):
|
|
|
1685
1737
|
Checkpointer, conn, unpack_hook=_msgpack_ext_hook_to_json
|
|
1686
1738
|
),
|
|
1687
1739
|
store=(await get_store()),
|
|
1740
|
+
is_for_execution=False,
|
|
1688
1741
|
) as graph:
|
|
1689
1742
|
# Convert before parameter if it's a string
|
|
1690
1743
|
before_param = (
|
|
@@ -1981,6 +2034,7 @@ class Runs(Authenticated):
|
|
|
1981
2034
|
"n_pending": 0,
|
|
1982
2035
|
"pending_runs_wait_time_max_secs": None,
|
|
1983
2036
|
"pending_runs_wait_time_med_secs": None,
|
|
2037
|
+
"pending_unblocked_runs_wait_time_max_secs": None,
|
|
1984
2038
|
"n_running": 0,
|
|
1985
2039
|
}
|
|
1986
2040
|
|
|
@@ -2005,11 +2059,34 @@ class Runs(Authenticated):
|
|
|
2005
2059
|
else:
|
|
2006
2060
|
med_pending_wait = None
|
|
2007
2061
|
|
|
2062
|
+
# Calculate max wait time for unblocked runs (runs not blocked by another run on the same thread)
|
|
2063
|
+
pending_unblocked_waits: list[float] = []
|
|
2064
|
+
for run in pending_runs:
|
|
2065
|
+
thread_id = run.get("thread_id")
|
|
2066
|
+
# Check if there's a running run on the same thread
|
|
2067
|
+
has_running_on_thread = any(
|
|
2068
|
+
r.get("thread_id") == thread_id and r.get("status") == "running"
|
|
2069
|
+
for r in conn.store["runs"]
|
|
2070
|
+
)
|
|
2071
|
+
if not has_running_on_thread:
|
|
2072
|
+
created_at = run.get("created_at")
|
|
2073
|
+
if not isinstance(created_at, datetime):
|
|
2074
|
+
continue
|
|
2075
|
+
if created_at.tzinfo is None:
|
|
2076
|
+
created_at = created_at.replace(tzinfo=UTC)
|
|
2077
|
+
if created_at < now:
|
|
2078
|
+
pending_unblocked_waits.append((now - created_at).total_seconds())
|
|
2079
|
+
|
|
2080
|
+
max_unblocked_wait = (
|
|
2081
|
+
max(pending_unblocked_waits) if pending_unblocked_waits else None
|
|
2082
|
+
)
|
|
2083
|
+
|
|
2008
2084
|
return {
|
|
2009
2085
|
"n_pending": len(pending_runs),
|
|
2010
2086
|
"n_running": len(running_runs),
|
|
2011
2087
|
"pending_runs_wait_time_max_secs": max_pending_wait,
|
|
2012
2088
|
"pending_runs_wait_time_med_secs": med_pending_wait,
|
|
2089
|
+
"pending_unblocked_runs_wait_time_max_secs": max_unblocked_wait,
|
|
2013
2090
|
}
|
|
2014
2091
|
|
|
2015
2092
|
@staticmethod
|
|
@@ -2410,12 +2487,14 @@ class Runs(Authenticated):
|
|
|
2410
2487
|
action: Literal["interrupt", "rollback"] = "interrupt",
|
|
2411
2488
|
thread_id: UUID | None = None,
|
|
2412
2489
|
status: Literal["pending", "running", "all"] | None = None,
|
|
2490
|
+
assistant_id: UUID | None = None,
|
|
2413
2491
|
ctx: Auth.types.BaseAuthContext | None = None,
|
|
2414
2492
|
) -> None:
|
|
2415
2493
|
"""
|
|
2416
2494
|
Cancel runs in memory. Must provide either:
|
|
2417
2495
|
1) thread_id + run_ids, or
|
|
2418
|
-
2) status in {"pending", "running", "all"}
|
|
2496
|
+
2) status in {"pending", "running", "all"}, or
|
|
2497
|
+
3) assistant_id (cancels all in-flight runs for that assistant).
|
|
2419
2498
|
|
|
2420
2499
|
Steps:
|
|
2421
2500
|
- Validate arguments (one usage pattern or the other).
|
|
@@ -2426,10 +2505,18 @@ class Runs(Authenticated):
|
|
|
2426
2505
|
* If 'pending', set to 'interrupted' or delete (if action='rollback' and not actively queued).
|
|
2427
2506
|
* If 'running', the worker will pick up the message.
|
|
2428
2507
|
* Otherwise, log a warning for non-cancelable states.
|
|
2429
|
-
- 404 if no runs are found or authorized.
|
|
2508
|
+
- 404 if no runs are found or authorized (unless assistant_id is provided).
|
|
2430
2509
|
"""
|
|
2431
2510
|
# 1. Validate arguments
|
|
2432
|
-
if
|
|
2511
|
+
if assistant_id is not None:
|
|
2512
|
+
# If assistant_id is set, user must NOT specify other filters
|
|
2513
|
+
if thread_id is not None or run_ids is not None or status is not None:
|
|
2514
|
+
raise HTTPException(
|
|
2515
|
+
status_code=422,
|
|
2516
|
+
detail="Cannot specify 'thread_id', 'run_ids', or 'status' when using 'assistant_id'",
|
|
2517
|
+
)
|
|
2518
|
+
assistant_id = _ensure_uuid(assistant_id)
|
|
2519
|
+
elif status is not None:
|
|
2433
2520
|
# If status is set, user must NOT specify thread_id or run_ids
|
|
2434
2521
|
if thread_id is not None or run_ids is not None:
|
|
2435
2522
|
raise HTTPException(
|
|
@@ -2441,7 +2528,7 @@ class Runs(Authenticated):
|
|
|
2441
2528
|
if thread_id is None or run_ids is None:
|
|
2442
2529
|
raise HTTPException(
|
|
2443
2530
|
status_code=422,
|
|
2444
|
-
detail="Must provide either a status or both 'thread_id' and 'run_ids'",
|
|
2531
|
+
detail="Must provide either a status, an assistant_id, or both 'thread_id' and 'run_ids'",
|
|
2445
2532
|
)
|
|
2446
2533
|
|
|
2447
2534
|
# Convert and normalize inputs
|
|
@@ -2476,7 +2563,12 @@ class Runs(Authenticated):
|
|
|
2476
2563
|
"""
|
|
2477
2564
|
Check whether a run in `conn.store["runs"]` meets the selection criteria.
|
|
2478
2565
|
"""
|
|
2479
|
-
if
|
|
2566
|
+
if assistant_id is not None:
|
|
2567
|
+
return r["assistant_id"] == assistant_id and r["status"] in (
|
|
2568
|
+
"pending",
|
|
2569
|
+
"running",
|
|
2570
|
+
)
|
|
2571
|
+
elif status_list:
|
|
2480
2572
|
return r["status"] in status_list
|
|
2481
2573
|
else:
|
|
2482
2574
|
return r["thread_id"] == thread_id and r["run_id"] in run_ids # type: ignore
|
|
@@ -2497,6 +2589,9 @@ class Runs(Authenticated):
|
|
|
2497
2589
|
# on thread. If your filters also apply to runs, you might do more checks here.
|
|
2498
2590
|
|
|
2499
2591
|
if not candidate_runs:
|
|
2592
|
+
# When cancelling by assistant_id, it's valid to have no runs
|
|
2593
|
+
if assistant_id is not None:
|
|
2594
|
+
return
|
|
2500
2595
|
raise HTTPException(status_code=404, detail="No runs found to cancel.")
|
|
2501
2596
|
|
|
2502
2597
|
stream_manager = get_stream_manager()
|
|
@@ -2545,6 +2640,9 @@ class Runs(Authenticated):
|
|
|
2545
2640
|
)
|
|
2546
2641
|
|
|
2547
2642
|
if not cancelable_runs:
|
|
2643
|
+
# When cancelling by assistant_id, it's valid to have no cancelable runs
|
|
2644
|
+
if assistant_id is not None:
|
|
2645
|
+
return
|
|
2548
2646
|
raise HTTPException(
|
|
2549
2647
|
status_code=404,
|
|
2550
2648
|
detail="No matching runs to cancel. Please verify the thread ID and run IDs are correct, and the runs haven't been deleted or completed.",
|
|
@@ -2671,7 +2769,10 @@ class Runs(Authenticated):
|
|
|
2671
2769
|
await Runs.Stream.check_run_stream_auth(run_id, thread_id, ctx)
|
|
2672
2770
|
except HTTPException as e:
|
|
2673
2771
|
raise WrappedHTTPException(e) from None
|
|
2674
|
-
|
|
2772
|
+
run_iter = await Runs.get(
|
|
2773
|
+
conn, run_id, thread_id=thread_id, ctx=ctx
|
|
2774
|
+
)
|
|
2775
|
+
run = await anext(run_iter, None)
|
|
2675
2776
|
|
|
2676
2777
|
for message in get_stream_manager().restore_messages(
|
|
2677
2778
|
run_id, thread_id, last_event_id
|
|
@@ -2727,7 +2828,13 @@ class Runs(Authenticated):
|
|
|
2727
2828
|
and mode.startswith("messages")
|
|
2728
2829
|
)
|
|
2729
2830
|
):
|
|
2730
|
-
|
|
2831
|
+
# We only return a stream ID if the run is resumable
|
|
2832
|
+
stream_id = (
|
|
2833
|
+
id
|
|
2834
|
+
if run.get("kwargs", {}).get("resumable")
|
|
2835
|
+
else None
|
|
2836
|
+
)
|
|
2837
|
+
yield mode.encode(), payload, stream_id
|
|
2731
2838
|
logger.debug(
|
|
2732
2839
|
"Streamed run event",
|
|
2733
2840
|
run_id=str(run_id),
|
|
@@ -38,11 +38,11 @@ wheels = [
|
|
|
38
38
|
|
|
39
39
|
[[package]]
|
|
40
40
|
name = "certifi"
|
|
41
|
-
version = "
|
|
41
|
+
version = "2026.1.4"
|
|
42
42
|
source = { registry = "https://pypi.org/simple" }
|
|
43
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
43
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" }
|
|
44
44
|
wheels = [
|
|
45
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
45
|
+
{ url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" },
|
|
46
46
|
]
|
|
47
47
|
|
|
48
48
|
[[package]]
|
|
@@ -223,7 +223,7 @@ wheels = [
|
|
|
223
223
|
|
|
224
224
|
[[package]]
|
|
225
225
|
name = "langchain-core"
|
|
226
|
-
version = "1.
|
|
226
|
+
version = "1.2.6"
|
|
227
227
|
source = { registry = "https://pypi.org/simple" }
|
|
228
228
|
dependencies = [
|
|
229
229
|
{ name = "jsonpatch" },
|
|
@@ -235,14 +235,14 @@ dependencies = [
|
|
|
235
235
|
{ name = "typing-extensions" },
|
|
236
236
|
{ name = "uuid-utils" },
|
|
237
237
|
]
|
|
238
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
238
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b9/ce/ba5ed5ea6df22965b2893c2ed28ebb456204962723d408904c4acfa5e942/langchain_core-1.2.6.tar.gz", hash = "sha256:b4e7841dd7f8690375aa07c54739178dc2c635147d475e0c2955bf82a1afa498", size = 833343, upload-time = "2026-01-02T21:35:44.749Z" }
|
|
239
239
|
wheels = [
|
|
240
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
240
|
+
{ url = "https://files.pythonhosted.org/packages/6f/40/0655892c245d8fbe6bca6d673ab5927e5c3ab7be143de40b52289a0663bc/langchain_core-1.2.6-py3-none-any.whl", hash = "sha256:aa6ed954b4b1f4504937fe75fdf674317027e9a91ba7a97558b0de3dc8004e34", size = 489096, upload-time = "2026-01-02T21:35:43.391Z" },
|
|
241
241
|
]
|
|
242
242
|
|
|
243
243
|
[[package]]
|
|
244
244
|
name = "langgraph"
|
|
245
|
-
version = "1.0.
|
|
245
|
+
version = "1.0.5"
|
|
246
246
|
source = { registry = "https://pypi.org/simple" }
|
|
247
247
|
dependencies = [
|
|
248
248
|
{ name = "langchain-core" },
|
|
@@ -252,9 +252,9 @@ dependencies = [
|
|
|
252
252
|
{ name = "pydantic" },
|
|
253
253
|
{ name = "xxhash" },
|
|
254
254
|
]
|
|
255
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
255
|
+
sdist = { url = "https://files.pythonhosted.org/packages/7d/47/28f4d4d33d88f69de26f7a54065961ac0c662cec2479b36a2db081ef5cb6/langgraph-1.0.5.tar.gz", hash = "sha256:7f6ae59622386b60fe9fa0ad4c53f42016b668455ed604329e7dc7904adbf3f8", size = 493969, upload-time = "2025-12-12T23:05:48.224Z" }
|
|
256
256
|
wheels = [
|
|
257
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
257
|
+
{ url = "https://files.pythonhosted.org/packages/23/1b/e318ee76e42d28f515d87356ac5bd7a7acc8bad3b8f54ee377bef62e1cbf/langgraph-1.0.5-py3-none-any.whl", hash = "sha256:b4cfd173dca3c389735b47228ad8b295e6f7b3df779aba3a1e0c23871f81281e", size = 157056, upload-time = "2025-12-12T23:05:46.499Z" },
|
|
258
258
|
]
|
|
259
259
|
|
|
260
260
|
[[package]]
|
|
@@ -272,15 +272,15 @@ wheels = [
|
|
|
272
272
|
|
|
273
273
|
[[package]]
|
|
274
274
|
name = "langgraph-cli"
|
|
275
|
-
version = "0.4.
|
|
275
|
+
version = "0.4.11"
|
|
276
276
|
source = { registry = "https://pypi.org/simple" }
|
|
277
277
|
dependencies = [
|
|
278
278
|
{ name = "click" },
|
|
279
279
|
{ name = "langgraph-sdk" },
|
|
280
280
|
]
|
|
281
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
281
|
+
sdist = { url = "https://files.pythonhosted.org/packages/94/2a/b5d51df0db49bf5dc8860f6f66605ff2f44da664d645b6287ceb24223df4/langgraph_cli-0.4.11.tar.gz", hash = "sha256:c38c531510ace1c2d90f8a15f4bb5b874ca9d07c0564cbda7590730da2b0dff3", size = 837429, upload-time = "2025-12-17T14:13:12.889Z" }
|
|
282
282
|
wheels = [
|
|
283
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
283
|
+
{ url = "https://files.pythonhosted.org/packages/1c/ac/fd0af9c89638e4d99db8d00b6c6fe1a60f27d9d61b0bbe1d4d5300a74b18/langgraph_cli-0.4.11-py3-none-any.whl", hash = "sha256:807cd6e8c5d4fd7160bd44be67f3b5621cb34ec309658072f75852b639b41ca0", size = 41163, upload-time = "2025-12-17T14:13:12.026Z" },
|
|
284
284
|
]
|
|
285
285
|
|
|
286
286
|
[[package]]
|
|
@@ -342,20 +342,20 @@ dev = [
|
|
|
342
342
|
|
|
343
343
|
[[package]]
|
|
344
344
|
name = "langgraph-sdk"
|
|
345
|
-
version = "0.
|
|
345
|
+
version = "0.3.1"
|
|
346
346
|
source = { registry = "https://pypi.org/simple" }
|
|
347
347
|
dependencies = [
|
|
348
348
|
{ name = "httpx" },
|
|
349
349
|
{ name = "orjson" },
|
|
350
350
|
]
|
|
351
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
351
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a9/d3/b6be0b0aba2a53a8920a2b0b4328a83121ec03eea9952e576d06a4182f6f/langgraph_sdk-0.3.1.tar.gz", hash = "sha256:f6dadfd2444eeff3e01405a9005c95fb3a028d4bd954ebec80ea6150084f92bb", size = 130312, upload-time = "2025-12-18T22:11:47.42Z" }
|
|
352
352
|
wheels = [
|
|
353
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
353
|
+
{ url = "https://files.pythonhosted.org/packages/ab/fe/0c1c9c01a154eba62b20b02fabe811fd94a2b810061ae9e4d8462b8cf85a/langgraph_sdk-0.3.1-py3-none-any.whl", hash = "sha256:0b856923bfd20bf3441ce9d03bef488aa333fb610e972618799a9d584436acad", size = 66517, upload-time = "2025-12-18T22:11:46.625Z" },
|
|
354
354
|
]
|
|
355
355
|
|
|
356
356
|
[[package]]
|
|
357
357
|
name = "langsmith"
|
|
358
|
-
version = "0.
|
|
358
|
+
version = "0.6.0"
|
|
359
359
|
source = { registry = "https://pypi.org/simple" }
|
|
360
360
|
dependencies = [
|
|
361
361
|
{ name = "httpx" },
|
|
@@ -367,9 +367,9 @@ dependencies = [
|
|
|
367
367
|
{ name = "uuid-utils" },
|
|
368
368
|
{ name = "zstandard" },
|
|
369
369
|
]
|
|
370
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
370
|
+
sdist = { url = "https://files.pythonhosted.org/packages/5f/48/fb62df712cfd77804999f3bc08e3cba33ecb81064dd2973dd67cd68eaf93/langsmith-0.6.0.tar.gz", hash = "sha256:b60f1785aed4dac5e01f24db01aa18fa1af258bad4531e045e739438daa3f8c2", size = 883012, upload-time = "2026-01-02T18:42:13.721Z" }
|
|
371
371
|
wheels = [
|
|
372
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
372
|
+
{ url = "https://files.pythonhosted.org/packages/10/c6/322df2c18ab462712c968415fb31779ed3e1fd1976357fd78f31f51b2632/langsmith-0.6.0-py3-none-any.whl", hash = "sha256:f7570175aed705b1f4c4dae724c07980a737b8b565252444d11394dda9931e8c", size = 283280, upload-time = "2026-01-02T18:42:11.966Z" },
|
|
373
373
|
]
|
|
374
374
|
|
|
375
375
|
[[package]]
|
|
@@ -516,49 +516,49 @@ wheels = [
|
|
|
516
516
|
|
|
517
517
|
[[package]]
|
|
518
518
|
name = "ormsgpack"
|
|
519
|
-
version = "1.12.
|
|
519
|
+
version = "1.12.1"
|
|
520
520
|
source = { registry = "https://pypi.org/simple" }
|
|
521
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
521
|
+
sdist = { url = "https://files.pythonhosted.org/packages/fe/96/34c40d621996c2f377a18decbd3c59f031dde73c3ba47d1e1e8f29a05aaa/ormsgpack-1.12.1.tar.gz", hash = "sha256:a3877fde1e4f27a39f92681a0aab6385af3a41d0c25375d33590ae20410ea2ac", size = 39476, upload-time = "2025-12-14T07:57:43.248Z" }
|
|
522
522
|
wheels = [
|
|
523
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
524
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
525
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
526
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
527
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
528
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
529
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
530
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
531
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
532
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
533
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
534
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
535
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
536
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
537
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
538
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
539
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
540
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
541
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
542
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
543
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
544
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
545
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
546
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
547
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
548
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
549
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
550
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
551
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
552
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
553
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
554
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
555
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
556
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
557
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
558
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
559
|
-
{ url = "https://files.pythonhosted.org/packages/b3/
|
|
560
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
561
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
523
|
+
{ url = "https://files.pythonhosted.org/packages/57/e2/f5b89365c8dc8025c27d31316038f1c103758ddbf87dc0fa8e3f78f66907/ormsgpack-1.12.1-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:4038f59ae0e19dac5e5d9aae4ec17ff84a79e046342ee73ccdecf3547ecf0d34", size = 376180, upload-time = "2025-12-14T07:56:56.521Z" },
|
|
524
|
+
{ url = "https://files.pythonhosted.org/packages/ca/87/3f694e06f5e32c6d65066f53b4a025282a5072b6b336c17560b00e04606d/ormsgpack-1.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16c63b0c5a3eec467e4bb33a14dabba076b7d934dff62898297b5c0b5f7c3cb3", size = 202338, upload-time = "2025-12-14T07:56:57.585Z" },
|
|
525
|
+
{ url = "https://files.pythonhosted.org/packages/e5/f5/6d95d7b7c11f97a92522082fc7e5d1ab34537929f1e13f4c369f392f19d0/ormsgpack-1.12.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:74fd6a8e037eb310dda865298e8d122540af00fe5658ec18b97a1d34f4012e4d", size = 210720, upload-time = "2025-12-14T07:56:58.968Z" },
|
|
526
|
+
{ url = "https://files.pythonhosted.org/packages/2b/9d/9a49a2686f8b7165dcb2342b8554951263c30c0f0825f1fcc2d56e736a6b/ormsgpack-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58ad60308e233dd824a1859eabb5fe092e123e885eafa4ad5789322329c80fb5", size = 211264, upload-time = "2025-12-14T07:57:00.099Z" },
|
|
527
|
+
{ url = "https://files.pythonhosted.org/packages/02/31/2fdc36eaeca2182900b96fc7b19755f293283fe681750e3d295733d62f0e/ormsgpack-1.12.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:35127464c941c1219acbe1a220e48d55e7933373d12257202f4042f7044b4c90", size = 386081, upload-time = "2025-12-14T07:57:01.177Z" },
|
|
528
|
+
{ url = "https://files.pythonhosted.org/packages/f0/65/0a765432f08ae26b4013c6a9aed97be17a9ef85f1600948a474b518e27dd/ormsgpack-1.12.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:c48d1c50794692d1e6e3f8c3bb65f5c3acfaae9347e506484a65d60b3d91fb50", size = 479572, upload-time = "2025-12-14T07:57:02.738Z" },
|
|
529
|
+
{ url = "https://files.pythonhosted.org/packages/4e/4f/f2f15ebef786ad71cea420bf8692448fbddf04d1bf3feaa68bd5ee3172e6/ormsgpack-1.12.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b512b2ad6feaaefdc26e05431ed2843e42483041e354e167c53401afaa83d919", size = 387862, upload-time = "2025-12-14T07:57:03.842Z" },
|
|
530
|
+
{ url = "https://files.pythonhosted.org/packages/15/eb/86fbef1d605fa91ecef077f93f9d0e34fc39b23475dfe3ffb92f6c8db28d/ormsgpack-1.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:93f30db95e101a9616323bfc50807ad00e7f6197cea2216d2d24af42afc77d88", size = 115900, upload-time = "2025-12-14T07:57:05.137Z" },
|
|
531
|
+
{ url = "https://files.pythonhosted.org/packages/5b/67/7ba1a46e6a6e263fc42a4fafc24afc1ab21a66116553cad670426f0bd9ef/ormsgpack-1.12.1-cp311-cp311-win_arm64.whl", hash = "sha256:d75b5fa14f6abffce2c392ee03b4731199d8a964c81ee8645c4c79af0e80fd50", size = 109868, upload-time = "2025-12-14T07:57:06.834Z" },
|
|
532
|
+
{ url = "https://files.pythonhosted.org/packages/17/fe/ab9167ca037406b5703add24049cf3e18021a3b16133ea20615b1f160ea4/ormsgpack-1.12.1-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:4d7fb0e1b6fbc701d75269f7405a4f79230a6ce0063fb1092e4f6577e312f86d", size = 376725, upload-time = "2025-12-14T07:57:07.894Z" },
|
|
533
|
+
{ url = "https://files.pythonhosted.org/packages/c7/ea/2820e65f506894c459b840d1091ae6e327fde3d5a3f3b002a11a1b9bdf7d/ormsgpack-1.12.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:43a9353e2db5b024c91a47d864ef15eaa62d81824cfc7740fed4cef7db738694", size = 202466, upload-time = "2025-12-14T07:57:09.049Z" },
|
|
534
|
+
{ url = "https://files.pythonhosted.org/packages/45/8b/def01c13339c5bbec2ee1469ef53e7fadd66c8d775df974ee4def1572515/ormsgpack-1.12.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fc8fe866b7706fc25af0adf1f600bc06ece5b15ca44e34641327198b821e5c3c", size = 210748, upload-time = "2025-12-14T07:57:10.074Z" },
|
|
535
|
+
{ url = "https://files.pythonhosted.org/packages/5d/d2/bf350c92f7f067dd9484499705f2d8366d8d9008a670e3d1d0add1908f85/ormsgpack-1.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:813755b5f598a78242042e05dfd1ada4e769e94b98c9ab82554550f97ff4d641", size = 211510, upload-time = "2025-12-14T07:57:11.165Z" },
|
|
536
|
+
{ url = "https://files.pythonhosted.org/packages/74/92/9d689bcb95304a6da26c4d59439c350940c25d1b35f146d402ccc6344c51/ormsgpack-1.12.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8eea2a13536fae45d78f93f2cc846c9765c7160c85f19cfefecc20873c137cdd", size = 386237, upload-time = "2025-12-14T07:57:12.306Z" },
|
|
537
|
+
{ url = "https://files.pythonhosted.org/packages/17/fe/bd3107547f8b6129265dd957f40b9cd547d2445db2292aacb13335a7ea89/ormsgpack-1.12.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:7a02ebda1a863cbc604740e76faca8eee1add322db2dcbe6cf32669fffdff65c", size = 479589, upload-time = "2025-12-14T07:57:13.475Z" },
|
|
538
|
+
{ url = "https://files.pythonhosted.org/packages/c1/7c/e8e5cc9edb967d44f6f85e9ebdad440b59af3fae00b137a4327dc5aed9bb/ormsgpack-1.12.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3c0bd63897c439931cdf29348e5e6e8c330d529830e848d10767615c0f3d1b82", size = 388077, upload-time = "2025-12-14T07:57:14.551Z" },
|
|
539
|
+
{ url = "https://files.pythonhosted.org/packages/35/6b/5031797e43b58506f28a8760b26dc23f2620fb4f2200c4c1b3045603e67e/ormsgpack-1.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:362f2e812f8d7035dc25a009171e09d7cc97cb30d3c9e75a16aeae00ca3c1dcf", size = 116190, upload-time = "2025-12-14T07:57:15.575Z" },
|
|
540
|
+
{ url = "https://files.pythonhosted.org/packages/1e/fd/9f43ea6425e383a6b2dbfafebb06fd60e8d68c700ef715adfbcdb499f75d/ormsgpack-1.12.1-cp312-cp312-win_arm64.whl", hash = "sha256:6190281e381db2ed0045052208f47a995ccf61eed48f1215ae3cce3fbccd59c5", size = 109990, upload-time = "2025-12-14T07:57:16.419Z" },
|
|
541
|
+
{ url = "https://files.pythonhosted.org/packages/11/42/f110dfe7cf23a52a82e23eb23d9a6a76ae495447d474686dfa758f3d71d6/ormsgpack-1.12.1-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:9663d6b3ecc917c063d61a99169ce196a80f3852e541ae404206836749459279", size = 376746, upload-time = "2025-12-14T07:57:17.699Z" },
|
|
542
|
+
{ url = "https://files.pythonhosted.org/packages/11/76/b386e508a8ae207daec240201a81adb26467bf99b163560724e86bd9ff33/ormsgpack-1.12.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:32e85cfbaf01a94a92520e7fe7851cfcfe21a5698299c28ab86194895f9b9233", size = 202489, upload-time = "2025-12-14T07:57:18.807Z" },
|
|
543
|
+
{ url = "https://files.pythonhosted.org/packages/ea/0e/5db7a63f387149024572daa3d9512fe8fb14bf4efa0722d6d491bed280e7/ormsgpack-1.12.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dabfd2c24b59c7c69870a5ecee480dfae914a42a0c2e7c9d971cf531e2ba471a", size = 210757, upload-time = "2025-12-14T07:57:19.893Z" },
|
|
544
|
+
{ url = "https://files.pythonhosted.org/packages/64/79/3a9899e57cb57430bd766fc1b4c9ad410cb2ba6070bc8cf6301e7d385768/ormsgpack-1.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:51bbf2b64afeded34ccd8e25402e4bca038757913931fa0d693078d75563f6f9", size = 211518, upload-time = "2025-12-14T07:57:20.972Z" },
|
|
545
|
+
{ url = "https://files.pythonhosted.org/packages/d7/cd/4f41710ae9fe50d7fcbe476793b3c487746d0e1cc194cc0fee42ff6d989b/ormsgpack-1.12.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9959a71dde1bd0ced84af17facc06a8afada495a34e9cb1bad8e9b20d4c59cef", size = 386251, upload-time = "2025-12-14T07:57:22.099Z" },
|
|
546
|
+
{ url = "https://files.pythonhosted.org/packages/bf/54/ba0c97d6231b1f01daafaa520c8cce1e1b7fceaae6fdc1c763925874a7de/ormsgpack-1.12.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:e9be0e3b62d758f21f5b20e0e06b3a240ec546c4a327bf771f5825462aa74714", size = 479607, upload-time = "2025-12-14T07:57:23.525Z" },
|
|
547
|
+
{ url = "https://files.pythonhosted.org/packages/18/75/19a9a97a462776d525baf41cfb7072734528775f0a3d5fbfab3aa7756b9b/ormsgpack-1.12.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a29d49ab7fdd77ea787818e60cb4ef491708105b9c4c9b0f919201625eb036b5", size = 388062, upload-time = "2025-12-14T07:57:24.616Z" },
|
|
548
|
+
{ url = "https://files.pythonhosted.org/packages/a8/6a/ec26e3f44e9632ecd2f43638b7b37b500eaea5d79cab984ad0b94be14f82/ormsgpack-1.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:c418390b47a1d367e803f6c187f77e4d67c7ae07ba962e3a4a019001f4b0291a", size = 116195, upload-time = "2025-12-14T07:57:25.626Z" },
|
|
549
|
+
{ url = "https://files.pythonhosted.org/packages/7d/64/bfa5f4a34d0f15c6aba1b73e73f7441a66d635bd03249d334a4796b7a924/ormsgpack-1.12.1-cp313-cp313-win_arm64.whl", hash = "sha256:cfa22c91cffc10a7fbd43729baff2de7d9c28cef2509085a704168ae31f02568", size = 109986, upload-time = "2025-12-14T07:57:26.569Z" },
|
|
550
|
+
{ url = "https://files.pythonhosted.org/packages/87/0e/78e5697164e3223b9b216c13e99f1acbc1ee9833490d68842b13da8ba883/ormsgpack-1.12.1-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:b93c91efb1a70751a1902a5b43b27bd8fd38e0ca0365cf2cde2716423c15c3a6", size = 376758, upload-time = "2025-12-14T07:57:27.641Z" },
|
|
551
|
+
{ url = "https://files.pythonhosted.org/packages/2c/0e/3a3cbb64703263d7bbaed7effa3ce78cb9add360a60aa7c544d7df28b641/ormsgpack-1.12.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf0ea0389167b5fa8d2933dd3f33e887ec4ba68f89c25214d7eec4afd746d22", size = 202487, upload-time = "2025-12-14T07:57:29.051Z" },
|
|
552
|
+
{ url = "https://files.pythonhosted.org/packages/d7/2c/807ebe2b77995599bbb1dec8c3f450d5d7dddee14ce3e1e71dc60e2e2a74/ormsgpack-1.12.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f4c29af837f35af3375070689e781161e7cf019eb2f7cd641734ae45cd001c0d", size = 210853, upload-time = "2025-12-14T07:57:30.508Z" },
|
|
553
|
+
{ url = "https://files.pythonhosted.org/packages/25/57/2cdfc354e3ad8e847628f511f4d238799d90e9e090941e50b9d5ba955ae2/ormsgpack-1.12.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:336fc65aa0fe65896a3dabaae31e332a0a98b4a00ad7b0afde21a7505fd23ff3", size = 211545, upload-time = "2025-12-14T07:57:31.585Z" },
|
|
554
|
+
{ url = "https://files.pythonhosted.org/packages/76/1d/c6fda560e4a8ff865b3aec8a86f7c95ab53f4532193a6ae4ab9db35f85aa/ormsgpack-1.12.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:940f60aabfefe71dd6b82cb33f4ff10b2e7f5fcfa5f103cdb0a23b6aae4c713c", size = 386333, upload-time = "2025-12-14T07:57:32.957Z" },
|
|
555
|
+
{ url = "https://files.pythonhosted.org/packages/fc/3e/715081b36fceb8b497c68b87d384e1cc6d9c9c130ce3b435634d3d785b86/ormsgpack-1.12.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:596ad9e1b6d4c95595c54aaf49b1392609ca68f562ce06f4f74a5bc4053bcda4", size = 479701, upload-time = "2025-12-14T07:57:34.686Z" },
|
|
556
|
+
{ url = "https://files.pythonhosted.org/packages/6d/cf/01ad04def42b3970fc1a302c07f4b46339edf62ef9650247097260471f40/ormsgpack-1.12.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:575210e8fcbc7b0375026ba040a5eef223e9f66a4453d9623fc23282ae09c3c8", size = 388148, upload-time = "2025-12-14T07:57:35.771Z" },
|
|
557
|
+
{ url = "https://files.pythonhosted.org/packages/15/91/1fff2fc2b5943c740028f339154e7103c8f2edf1a881d9fbba2ce11c3b1d/ormsgpack-1.12.1-cp314-cp314-win_amd64.whl", hash = "sha256:647daa3718572280893456be44c60aea6690b7f2edc54c55648ee66e8f06550f", size = 116201, upload-time = "2025-12-14T07:57:36.763Z" },
|
|
558
|
+
{ url = "https://files.pythonhosted.org/packages/ed/66/142b542aed3f96002c7d1c33507ca6e1e0d0a42b9253ab27ef7ed5793bd9/ormsgpack-1.12.1-cp314-cp314-win_arm64.whl", hash = "sha256:a8b3ab762a6deaf1b6490ab46dda0c51528cf8037e0246c40875c6fe9e37b699", size = 110029, upload-time = "2025-12-14T07:57:37.703Z" },
|
|
559
|
+
{ url = "https://files.pythonhosted.org/packages/38/b3/ef4494438c90359e1547eaed3c5ec46e2c431d59a3de2af4e70ebd594c49/ormsgpack-1.12.1-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:12087214e436c1f6c28491949571abea759a63111908c4f7266586d78144d7a8", size = 376777, upload-time = "2025-12-14T07:57:38.795Z" },
|
|
560
|
+
{ url = "https://files.pythonhosted.org/packages/05/a0/1149a7163f8b0dfbc64bf9099b6f16d102ad3b03bcc11afee198d751da2d/ormsgpack-1.12.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e6d54c14cf86ef13f10ccade94d1e7de146aa9b17d371e18b16e95f329393b7", size = 202490, upload-time = "2025-12-14T07:57:40.168Z" },
|
|
561
|
+
{ url = "https://files.pythonhosted.org/packages/68/82/f2ec5e758d6a7106645cca9bb7137d98bce5d363789fa94075be6572057c/ormsgpack-1.12.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f3584d07882b7ea2a1a589f795a3af97fe4c2932b739408e6d1d9d286cad862", size = 211733, upload-time = "2025-12-14T07:57:42.253Z" },
|
|
562
562
|
]
|
|
563
563
|
|
|
564
564
|
[[package]]
|
|
@@ -754,14 +754,14 @@ wheels = [
|
|
|
754
754
|
|
|
755
755
|
[[package]]
|
|
756
756
|
name = "pytest-watcher"
|
|
757
|
-
version = "0.
|
|
757
|
+
version = "0.6.2"
|
|
758
758
|
source = { registry = "https://pypi.org/simple" }
|
|
759
759
|
dependencies = [
|
|
760
760
|
{ name = "watchdog" },
|
|
761
761
|
]
|
|
762
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
762
|
+
sdist = { url = "https://files.pythonhosted.org/packages/14/e9/1d8fbe021f75b7f74a544b27bf893da44b2fe84199e2215fb648525b8f58/pytest_watcher-0.6.2.tar.gz", hash = "sha256:41f1fd244ee210d9399c57107692680ca02e519e3218be57d9b1c7a194dc87b1", size = 600866, upload-time = "2025-12-28T15:33:59.443Z" }
|
|
763
763
|
wheels = [
|
|
764
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
764
|
+
{ url = "https://files.pythonhosted.org/packages/c4/3b/fd2bedafb1f4140b00230a4f46c50cebd65661b12f31d8201d24c9487564/pytest_watcher-0.6.2-py3-none-any.whl", hash = "sha256:c8cdf38db7b61f28a6657cf84ffbe856330e6fe619055000f27e87b8dc083c30", size = 11566, upload-time = "2025-12-28T15:33:58.257Z" },
|
|
765
765
|
]
|
|
766
766
|
|
|
767
767
|
[[package]]
|
|
@@ -848,40 +848,41 @@ wheels = [
|
|
|
848
848
|
|
|
849
849
|
[[package]]
|
|
850
850
|
name = "ruff"
|
|
851
|
-
version = "0.14.
|
|
851
|
+
version = "0.14.10"
|
|
852
852
|
source = { registry = "https://pypi.org/simple" }
|
|
853
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
853
|
+
sdist = { url = "https://files.pythonhosted.org/packages/57/08/52232a877978dd8f9cf2aeddce3e611b40a63287dfca29b6b8da791f5e8d/ruff-0.14.10.tar.gz", hash = "sha256:9a2e830f075d1a42cd28420d7809ace390832a490ed0966fe373ba288e77aaf4", size = 5859763, upload-time = "2025-12-18T19:28:57.98Z" }
|
|
854
854
|
wheels = [
|
|
855
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
856
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
857
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
858
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
859
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
860
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
861
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
862
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
863
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
864
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
865
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
866
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
867
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
868
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
869
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
870
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
871
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
872
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
855
|
+
{ url = "https://files.pythonhosted.org/packages/60/01/933704d69f3f05ee16ef11406b78881733c186fe14b6a46b05cfcaf6d3b2/ruff-0.14.10-py3-none-linux_armv6l.whl", hash = "sha256:7a3ce585f2ade3e1f29ec1b92df13e3da262178df8c8bdf876f48fa0e8316c49", size = 13527080, upload-time = "2025-12-18T19:29:25.642Z" },
|
|
856
|
+
{ url = "https://files.pythonhosted.org/packages/df/58/a0349197a7dfa603ffb7f5b0470391efa79ddc327c1e29c4851e85b09cc5/ruff-0.14.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:674f9be9372907f7257c51f1d4fc902cb7cf014b9980152b802794317941f08f", size = 13797320, upload-time = "2025-12-18T19:29:02.571Z" },
|
|
857
|
+
{ url = "https://files.pythonhosted.org/packages/7b/82/36be59f00a6082e38c23536df4e71cdbc6af8d7c707eade97fcad5c98235/ruff-0.14.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d85713d522348837ef9df8efca33ccb8bd6fcfc86a2cde3ccb4bc9d28a18003d", size = 12918434, upload-time = "2025-12-18T19:28:51.202Z" },
|
|
858
|
+
{ url = "https://files.pythonhosted.org/packages/a6/00/45c62a7f7e34da92a25804f813ebe05c88aa9e0c25e5cb5a7d23dd7450e3/ruff-0.14.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6987ebe0501ae4f4308d7d24e2d0fe3d7a98430f5adfd0f1fead050a740a3a77", size = 13371961, upload-time = "2025-12-18T19:29:04.991Z" },
|
|
859
|
+
{ url = "https://files.pythonhosted.org/packages/40/31/a5906d60f0405f7e57045a70f2d57084a93ca7425f22e1d66904769d1628/ruff-0.14.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:16a01dfb7b9e4eee556fbfd5392806b1b8550c9b4a9f6acd3dbe6812b193c70a", size = 13275629, upload-time = "2025-12-18T19:29:21.381Z" },
|
|
860
|
+
{ url = "https://files.pythonhosted.org/packages/3e/60/61c0087df21894cf9d928dc04bcd4fb10e8b2e8dca7b1a276ba2155b2002/ruff-0.14.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7165d31a925b7a294465fa81be8c12a0e9b60fb02bf177e79067c867e71f8b1f", size = 14029234, upload-time = "2025-12-18T19:29:00.132Z" },
|
|
861
|
+
{ url = "https://files.pythonhosted.org/packages/44/84/77d911bee3b92348b6e5dab5a0c898d87084ea03ac5dc708f46d88407def/ruff-0.14.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:c561695675b972effb0c0a45db233f2c816ff3da8dcfbe7dfc7eed625f218935", size = 15449890, upload-time = "2025-12-18T19:28:53.573Z" },
|
|
862
|
+
{ url = "https://files.pythonhosted.org/packages/e9/36/480206eaefa24a7ec321582dda580443a8f0671fdbf6b1c80e9c3e93a16a/ruff-0.14.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bb98fcbbc61725968893682fd4df8966a34611239c9fd07a1f6a07e7103d08e", size = 15123172, upload-time = "2025-12-18T19:29:23.453Z" },
|
|
863
|
+
{ url = "https://files.pythonhosted.org/packages/5c/38/68e414156015ba80cef5473d57919d27dfb62ec804b96180bafdeaf0e090/ruff-0.14.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f24b47993a9d8cb858429e97bdf8544c78029f09b520af615c1d261bf827001d", size = 14460260, upload-time = "2025-12-18T19:29:27.808Z" },
|
|
864
|
+
{ url = "https://files.pythonhosted.org/packages/b3/19/9e050c0dca8aba824d67cc0db69fb459c28d8cd3f6855b1405b3f29cc91d/ruff-0.14.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59aabd2e2c4fd614d2862e7939c34a532c04f1084476d6833dddef4afab87e9f", size = 14229978, upload-time = "2025-12-18T19:29:11.32Z" },
|
|
865
|
+
{ url = "https://files.pythonhosted.org/packages/51/eb/e8dd1dd6e05b9e695aa9dd420f4577debdd0f87a5ff2fedda33c09e9be8c/ruff-0.14.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:213db2b2e44be8625002dbea33bb9c60c66ea2c07c084a00d55732689d697a7f", size = 14338036, upload-time = "2025-12-18T19:29:09.184Z" },
|
|
866
|
+
{ url = "https://files.pythonhosted.org/packages/6a/12/f3e3a505db7c19303b70af370d137795fcfec136d670d5de5391e295c134/ruff-0.14.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b914c40ab64865a17a9a5b67911d14df72346a634527240039eb3bd650e5979d", size = 13264051, upload-time = "2025-12-18T19:29:13.431Z" },
|
|
867
|
+
{ url = "https://files.pythonhosted.org/packages/08/64/8c3a47eaccfef8ac20e0484e68e0772013eb85802f8a9f7603ca751eb166/ruff-0.14.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1484983559f026788e3a5c07c81ef7d1e97c1c78ed03041a18f75df104c45405", size = 13283998, upload-time = "2025-12-18T19:29:06.994Z" },
|
|
868
|
+
{ url = "https://files.pythonhosted.org/packages/12/84/534a5506f4074e5cc0529e5cd96cfc01bb480e460c7edf5af70d2bcae55e/ruff-0.14.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:c70427132db492d25f982fffc8d6c7535cc2fd2c83fc8888f05caaa248521e60", size = 13601891, upload-time = "2025-12-18T19:28:55.811Z" },
|
|
869
|
+
{ url = "https://files.pythonhosted.org/packages/0d/1e/14c916087d8598917dbad9b2921d340f7884824ad6e9c55de948a93b106d/ruff-0.14.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:5bcf45b681e9f1ee6445d317ce1fa9d6cba9a6049542d1c3d5b5958986be8830", size = 14336660, upload-time = "2025-12-18T19:29:16.531Z" },
|
|
870
|
+
{ url = "https://files.pythonhosted.org/packages/f2/1c/d7b67ab43f30013b47c12b42d1acd354c195351a3f7a1d67f59e54227ede/ruff-0.14.10-py3-none-win32.whl", hash = "sha256:104c49fc7ab73f3f3a758039adea978869a918f31b73280db175b43a2d9b51d6", size = 13196187, upload-time = "2025-12-18T19:29:19.006Z" },
|
|
871
|
+
{ url = "https://files.pythonhosted.org/packages/fb/9c/896c862e13886fae2af961bef3e6312db9ebc6adc2b156fe95e615dee8c1/ruff-0.14.10-py3-none-win_amd64.whl", hash = "sha256:466297bd73638c6bdf06485683e812db1c00c7ac96d4ddd0294a338c62fdc154", size = 14661283, upload-time = "2025-12-18T19:29:30.16Z" },
|
|
872
|
+
{ url = "https://files.pythonhosted.org/packages/74/31/b0e29d572670dca3674eeee78e418f20bdf97fa8aa9ea71380885e175ca0/ruff-0.14.10-py3-none-win_arm64.whl", hash = "sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6", size = 13729839, upload-time = "2025-12-18T19:28:48.636Z" },
|
|
873
873
|
]
|
|
874
874
|
|
|
875
875
|
[[package]]
|
|
876
876
|
name = "sse-starlette"
|
|
877
|
-
version = "3.
|
|
877
|
+
version = "3.1.2"
|
|
878
878
|
source = { registry = "https://pypi.org/simple" }
|
|
879
879
|
dependencies = [
|
|
880
880
|
{ name = "anyio" },
|
|
881
|
+
{ name = "starlette" },
|
|
881
882
|
]
|
|
882
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
883
|
+
sdist = { url = "https://files.pythonhosted.org/packages/da/34/f5df66cb383efdbf4f2db23cabb27f51b1dcb737efaf8a558f6f1d195134/sse_starlette-3.1.2.tar.gz", hash = "sha256:55eff034207a83a0eb86de9a68099bd0157838f0b8b999a1b742005c71e33618", size = 26303, upload-time = "2025-12-31T08:02:20.023Z" }
|
|
883
884
|
wheels = [
|
|
884
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
885
|
+
{ url = "https://files.pythonhosted.org/packages/b7/95/8c4b76eec9ae574474e5d2997557cebf764bcd3586458956c30631ae08f4/sse_starlette-3.1.2-py3-none-any.whl", hash = "sha256:cd800dd349f4521b317b9391d3796fa97b71748a4da9b9e00aafab32dda375c8", size = 12484, upload-time = "2025-12-31T08:02:18.894Z" },
|
|
885
886
|
]
|
|
886
887
|
|
|
887
888
|
[[package]]
|
|
@@ -938,11 +939,11 @@ wheels = [
|
|
|
938
939
|
|
|
939
940
|
[[package]]
|
|
940
941
|
name = "urllib3"
|
|
941
|
-
version = "2.6.
|
|
942
|
+
version = "2.6.2"
|
|
942
943
|
source = { registry = "https://pypi.org/simple" }
|
|
943
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
944
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1e/24/a2a2ed9addd907787d7aa0355ba36a6cadf1768b934c652ea78acbd59dcd/urllib3-2.6.2.tar.gz", hash = "sha256:016f9c98bb7e98085cb2b4b17b87d2c702975664e4f060c6532e64d1c1a5e797", size = 432930, upload-time = "2025-12-11T15:56:40.252Z" }
|
|
944
945
|
wheels = [
|
|
945
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
946
|
+
{ url = "https://files.pythonhosted.org/packages/6d/b9/4095b668ea3678bf6a0af005527f39de12fb026516fb3df17495a733b7f8/urllib3-2.6.2-py3-none-any.whl", hash = "sha256:ec21cddfe7724fc7cb4ba4bea7aa8e2ef36f607a4bab81aa6ce42a13dc3f03dd", size = 131182, upload-time = "2025-12-11T15:56:38.584Z" },
|
|
946
947
|
]
|
|
947
948
|
|
|
948
949
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/metrics.py
RENAMED
|
File without changes
|
{langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/queue.py
RENAMED
|
File without changes
|
{langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/retry.py
RENAMED
|
File without changes
|
{langgraph_runtime_inmem-0.20.1 → langgraph_runtime_inmem-0.21.1}/langgraph_runtime_inmem/store.py
RENAMED
|
File without changes
|
|
File without changes
|