langgraph-api 0.0.42__py3-none-any.whl → 0.0.44__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
@@ -0,0 +1 @@
1
+ __version__ = "0.0.44"
langgraph_api/metadata.py CHANGED
@@ -60,6 +60,10 @@ def append_log(log: dict) -> None:
60
60
 
61
61
 
62
62
  async def metadata_loop() -> None:
63
+ try:
64
+ from langgraph_api import __version__
65
+ except ImportError:
66
+ __version__ = None
63
67
  if not LANGGRAPH_CLOUD_LICENSE_KEY and not LANGSMITH_API_KEY:
64
68
  return
65
69
 
@@ -86,6 +90,7 @@ async def metadata_loop() -> None:
86
90
  "to_timestamp": to_timestamp,
87
91
  "tags": {
88
92
  "langgraph.python.version": langgraph.version.__version__,
93
+ "langgraph_api.version": __version__,
89
94
  "langgraph.platform.revision": REVISION,
90
95
  "langgraph.platform.variant": VARIANT,
91
96
  "langgraph.platform.host": HOST,
@@ -25,7 +25,8 @@ async def thread_ttl_sweep_loop():
25
25
  )
26
26
  sweep_interval_minutes = thread_ttl_config.get("sweep_interval_minutes", 5)
27
27
  await logger.ainfo(
28
- "Starting thread TTL sweeper",
28
+ f"Starting thread TTL sweeper with interval {sweep_interval_minutes} minutes",
29
+ strategy=strategy,
29
30
  interval_minutes=sweep_interval_minutes,
30
31
  )
31
32
 
@@ -38,7 +39,7 @@ async def thread_ttl_sweep_loop():
38
39
  threads_processed, threads_deleted = await Threads.sweep_ttl(conn)
39
40
  if threads_processed > 0:
40
41
  await logger.ainfo(
41
- "Thread TTL sweep completed",
42
+ f"Thread TTL sweep completed. Processed {threads_processed}",
42
43
  threads_processed=threads_processed,
43
44
  threads_deleted=threads_deleted,
44
45
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: langgraph-api
3
- Version: 0.0.42
3
+ Version: 0.0.44
4
4
  Summary:
5
5
  License: Elastic-2.0
6
6
  Author: Nuno Campos
@@ -1,5 +1,5 @@
1
1
  LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
2
- langgraph_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ langgraph_api/__init__.py,sha256=BBkwy5ixyfFpzkdcy0ZL3_AIHWjaIidRK81NCFvqzCg,23
3
3
  langgraph_api/api/__init__.py,sha256=qNcg8QJydef0gM-vYJlxITMRZw-9r1vw8zqm2raqqYE,5493
4
4
  langgraph_api/api/assistants.py,sha256=WwaBtx1MpGn9gdJ8P9fkorJHMVrJKHt1nvtw0OCZcdw,14353
5
5
  langgraph_api/api/mcp.py,sha256=KbR19dtFCpJEiKYj3IfepAuJij8YZVELuVp7JY_yu_o,13754
@@ -63,7 +63,7 @@ langgraph_api/js/tests/utils.mts,sha256=q1V9gvT63v95onlfK9W4iv3n9ZJO3h-0RD9TdDYu
63
63
  langgraph_api/js/yarn.lock,sha256=JtMDtRVX9kr9lK0rbWRQsGHYbkQSmzNa4NwTunBv58U,82773
64
64
  langgraph_api/lifespan.py,sha256=rrmxgNrAxWa_D1H8AZTBKXoQoyiLeDv_C5z-byuxTWM,2788
65
65
  langgraph_api/logging.py,sha256=JJIzbNIgLCN6ClQ3tA-Mm5ffuBGvpRDSZsEvnIlsuu4,3693
66
- langgraph_api/metadata.py,sha256=5Mu3MUtUc-iIocU3X2SZDoGIqnUmTdT3517MhP94npI,3495
66
+ langgraph_api/metadata.py,sha256=bAeN3NwibBuXUVPjOEbEUJMnhUXe_VdTGw508VNeav4,3655
67
67
  langgraph_api/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
68
  langgraph_api/middleware/http_logger.py,sha256=yuFPNFIWwn-4AE1CogBfWlo8KytzywLi_Bd4ccsyVQE,3150
69
69
  langgraph_api/middleware/private_network.py,sha256=eYgdyU8AzU2XJu362i1L8aSFoQRiV7_aLBPw7_EgeqI,2111
@@ -78,7 +78,7 @@ langgraph_api/server.py,sha256=bnXOOYztQmqR-QVpEFoRWB5Fzd33PuEIlwBK2R7W8NE,4849
78
78
  langgraph_api/sse.py,sha256=2wNodCOP2eg7a9mpSu0S3FQ0CHk2BBV_vv0UtIgJIcc,4034
79
79
  langgraph_api/state.py,sha256=8jx4IoTCOjTJuwzuXJKKFwo1VseHjNnw_CCq4x1SW14,2284
80
80
  langgraph_api/stream.py,sha256=lhjnom-T8GbquUZry-KSkajnqYjElaIERhPiXPtpw1E,11354
81
- langgraph_api/thread_ttl.py,sha256=ubkWMymTR7p9nGWd60-WKEOQ20ZgIkWB6WGstQUmRS4,1658
81
+ langgraph_api/thread_ttl.py,sha256=QS9C7cx63KBh82_I6DqOb42-5mLTqTvneL8FJeX3aqU,1765
82
82
  langgraph_api/utils.py,sha256=92mSti9GfGdMRRWyESKQW5yV-75Z9icGHnIrBYvdypU,3619
83
83
  langgraph_api/validation.py,sha256=Qo3EkSRXzIRe3GRuqRWbElTcUXRMXMyA1w0VbMvdwME,4934
84
84
  langgraph_api/webhook.py,sha256=1ncwO0rIZcj-Df9sxSnFEzd1gP1bfS4okeZQS8NSRoE,1382
@@ -91,13 +91,13 @@ langgraph_storage/checkpoint.py,sha256=Qq0y6vdh27qdF3h5nOLT5CcX9Rj2bcFqkVOMeCaGo
91
91
  langgraph_storage/database.py,sha256=sZjZvMcvbr_6dX0d1YrYEccVuQozIfkiWt8bdlXGVYU,5849
92
92
  langgraph_storage/inmem_stream.py,sha256=LjJSAxsh_E0ywqEMzdWJk8Hy_Jn9oQByzycss-fANng,3264
93
93
  langgraph_storage/ops.py,sha256=S2qXgfyuCr5qkKLqIV-kZNRK924bBSLZ2qdLtExfi-M,75939
94
- langgraph_storage/queue.py,sha256=Mgt63Z5A49RNlgdTluzT4h1Zn7q0kp5gYkEiEJ1nEhc,7122
94
+ langgraph_storage/queue.py,sha256=IGjzCzYaGhbR9_Y37p1Hbd5uQkN9_IGzYkT_5lcPU54,7595
95
95
  langgraph_storage/retry.py,sha256=XmldOP4e_H5s264CagJRVnQMDFcEJR_dldVR1Hm5XvM,763
96
96
  langgraph_storage/store.py,sha256=JB9jZ87GE19MVN9wgl3-esgR2eIkeipws9q6qsPWkgc,3399
97
97
  logging.json,sha256=3RNjSADZmDq38eHePMm1CbP6qZ71AmpBtLwCmKU9Zgo,379
98
- openapi.json,sha256=-25y3NRQ88e_944UXo76Goa34HJhC7pj6I9tjYUwvuE,131492
99
- langgraph_api-0.0.42.dist-info/LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
100
- langgraph_api-0.0.42.dist-info/METADATA,sha256=ckCu5v6LFQjf8XuhEileAEcK5XxwHWZqpxHZpShMVe4,4167
101
- langgraph_api-0.0.42.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
102
- langgraph_api-0.0.42.dist-info/entry_points.txt,sha256=3EYLgj89DfzqJHHYGxPH4A_fEtClvlRbWRUHaXO7hj4,77
103
- langgraph_api-0.0.42.dist-info/RECORD,,
98
+ openapi.json,sha256=P4Gy9hD4vXpGEjaMT1zLpw4ISNJ08RYB5BsVya1Wp_8,132113
99
+ langgraph_api-0.0.44.dist-info/LICENSE,sha256=ZPwVR73Biwm3sK6vR54djCrhaRiM4cAD2zvOQZV8Xis,3859
100
+ langgraph_api-0.0.44.dist-info/METADATA,sha256=og5lklOme7aPJt-54IlUUCuaFKsmhA13fGcc9G88CsA,4167
101
+ langgraph_api-0.0.44.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
102
+ langgraph_api-0.0.44.dist-info/entry_points.txt,sha256=3EYLgj89DfzqJHHYGxPH4A_fEtClvlRbWRUHaXO7hj4,77
103
+ langgraph_api-0.0.44.dist-info/RECORD,,
@@ -152,24 +152,35 @@ async def queue():
152
152
 
153
153
  def _enable_blockbuster() -> BlockBuster:
154
154
  ls_env.get_runtime_environment() # this gets cached
155
- bb = BlockBuster(excluded_modules=["logging"])
155
+ bb = BlockBuster(excluded_modules=[])
156
156
  bb.activate()
157
157
  # Note, we've cached this call in langsmith==0.3.21 so it shouldn't raise anyway
158
158
  # but we don't want to raise teh minbound just for that.
159
- for func in ["os.stat", "io.TextIOWrapper.read"]:
160
- bb.functions[func].can_block_in("langsmith/client.py", "_default_retry_config")
159
+ bb.functions["os.stat"].deactivate()
160
+ for function in bb.functions:
161
+ if function.startswith("os.path."):
162
+ bb.functions[function].deactivate()
163
+ for module, func in (
164
+ # Note, we've cached this call in langsmith==0.3.21 so it shouldn't raise anyway
165
+ # but we don't want to raise teh minbound just for that.
166
+ ("langsmith/client.py", "_default_retry_config"),
161
167
  # Only triggers in python 3.11 for getting subgraphs
162
168
  # Will be unnecessary once we cache the assistant schemas
163
- bb.functions[func].can_block_in(
164
- "langgraph/pregel/utils.py", "get_function_nonlocals"
165
- )
166
- for module, func in [
169
+ ("langgraph/pregel/utils.py", "get_function_nonlocals"),
170
+ ("importlib/metadata/__init__.py", "metadata"),
171
+ ("importlib/metadata/__init__.py", "read_text"),
172
+ ):
173
+ bb.functions["io.TextIOWrapper.read"].can_block_in(module, func)
174
+
175
+ bb.functions["os.path.abspath"].can_block_in("inspect.py", "getmodule")
176
+
177
+ for module, func in (
167
178
  ("uvicorn/lifespan/on.py", "startup"),
168
179
  ("uvicorn/lifespan/on.py", "shutdown"),
169
180
  ("ansitowin32.py", "write_plain_text"),
170
181
  ("logging/__init__.py", "flush"),
171
182
  ("logging/__init__.py", "emit"),
172
- ]:
183
+ ):
173
184
  bb.functions["io.TextIOWrapper.write"].can_block_in(module, func)
174
185
  bb.functions["io.BufferedWriter.write"].can_block_in(module, func)
175
186
  return bb
openapi.json CHANGED
@@ -2834,6 +2834,11 @@
2834
2834
  "type": "string",
2835
2835
  "title": "Assistant Name",
2836
2836
  "description": "The name of the assistant"
2837
+ },
2838
+ "description": {
2839
+ "type": ["string", "null"],
2840
+ "title": "Assistant Description",
2841
+ "description": "The description of the assistant"
2837
2842
  }
2838
2843
  },
2839
2844
  "type": "object",
@@ -2884,6 +2889,11 @@
2884
2889
  "type": "string",
2885
2890
  "title": "Name",
2886
2891
  "description": "The name of the assistant. Defaults to 'Untitled'."
2892
+ },
2893
+ "description": {
2894
+ "type": ["string", "null"],
2895
+ "title": "Description",
2896
+ "description": "The description of the assistant. Defaults to null."
2887
2897
  }
2888
2898
  },
2889
2899
  "type": "object",
@@ -2914,6 +2924,11 @@
2914
2924
  "type": "string",
2915
2925
  "title": "Name",
2916
2926
  "description": "The new name for the assistant. If not provided, assistant will keep its current name."
2927
+ },
2928
+ "description": {
2929
+ "type": "string",
2930
+ "title": "Description",
2931
+ "description": "The new description for the assistant. If not provided, assistant will keep its current description."
2917
2932
  }
2918
2933
  },
2919
2934
  "type": "object",