ghh1125 commited on
Commit
81c0972
·
verified ·
1 Parent(s): 2829e0c

Upload 527 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. Dockerfile +18 -0
  3. app.py +45 -0
  4. langgraph/mcp_output/README_MCP.md +137 -0
  5. langgraph/mcp_output/analysis.json +2780 -0
  6. langgraph/mcp_output/diff_report.md +90 -0
  7. langgraph/mcp_output/mcp_plugin/__init__.py +0 -0
  8. langgraph/mcp_output/mcp_plugin/adapter.py +428 -0
  9. langgraph/mcp_output/mcp_plugin/main.py +13 -0
  10. langgraph/mcp_output/mcp_plugin/mcp_service.py +331 -0
  11. langgraph/mcp_output/requirements.txt +4 -0
  12. langgraph/mcp_output/start_mcp.py +30 -0
  13. langgraph/mcp_output/workflow_summary.json +220 -0
  14. langgraph/source/AGENTS.md +57 -0
  15. langgraph/source/CLAUDE.md +57 -0
  16. langgraph/source/LICENSE +21 -0
  17. langgraph/source/Makefile +68 -0
  18. langgraph/source/README.md +94 -0
  19. langgraph/source/__init__.py +4 -0
  20. langgraph/source/docs/__init__.py +1 -0
  21. langgraph/source/docs/generate_redirects.py +142 -0
  22. langgraph/source/docs/llms.txt +35 -0
  23. langgraph/source/docs/redirects.json +296 -0
  24. langgraph/source/examples/README.md +3 -0
  25. langgraph/source/examples/__init__.py +1 -0
  26. langgraph/source/examples/chatbot-simulation-evaluation/__init__.py +1 -0
  27. langgraph/source/examples/chatbot-simulation-evaluation/agent-simulation-evaluation.ipynb +41 -0
  28. langgraph/source/examples/chatbot-simulation-evaluation/langsmith-agent-simulation-evaluation.ipynb +41 -0
  29. langgraph/source/examples/chatbot-simulation-evaluation/simulation_utils.py +203 -0
  30. langgraph/source/examples/chatbots/information-gather-prompting.ipynb +41 -0
  31. langgraph/source/examples/code_assistant/langgraph_code_assistant.ipynb +41 -0
  32. langgraph/source/examples/code_assistant/langgraph_code_assistant_mistral.ipynb +0 -0
  33. langgraph/source/examples/customer-support/customer-support.ipynb +41 -0
  34. langgraph/source/examples/extraction/retries.ipynb +41 -0
  35. langgraph/source/examples/human_in_the_loop/wait-user-input.ipynb +41 -0
  36. langgraph/source/examples/lats/lats.ipynb +41 -0
  37. langgraph/source/examples/llm-compiler/LLMCompiler.ipynb +41 -0
  38. langgraph/source/examples/multi_agent/hierarchical_agent_teams.ipynb +41 -0
  39. langgraph/source/examples/multi_agent/multi-agent-collaboration.ipynb +41 -0
  40. langgraph/source/examples/plan-and-execute/plan-and-execute.ipynb +41 -0
  41. langgraph/source/examples/rag/langgraph_adaptive_rag.ipynb +0 -0
  42. langgraph/source/examples/rag/langgraph_adaptive_rag_cohere.ipynb +0 -0
  43. langgraph/source/examples/rag/langgraph_adaptive_rag_local.ipynb +0 -0
  44. langgraph/source/examples/rag/langgraph_agentic_rag.ipynb +0 -0
  45. langgraph/source/examples/rag/langgraph_crag.ipynb +0 -0
  46. langgraph/source/examples/rag/langgraph_crag_local.ipynb +0 -0
  47. langgraph/source/examples/rag/langgraph_self_rag.ipynb +0 -0
  48. langgraph/source/examples/rag/langgraph_self_rag_local.ipynb +0 -0
  49. langgraph/source/examples/rag/langgraph_self_rag_pinecone_movies.ipynb +0 -0
  50. langgraph/source/examples/react-agent-from-scratch.ipynb +40 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ langgraph/source/libs/cli/js-examples/static/studio.png filter=lfs diff=lfs merge=lfs -text
Dockerfile ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.10
2
+
3
+ RUN useradd -m -u 1000 user && python -m pip install --upgrade pip
4
+ USER user
5
+ ENV PATH="/home/user/.local/bin:$PATH"
6
+
7
+ WORKDIR /app
8
+
9
+ COPY --chown=user ./requirements.txt requirements.txt
10
+ RUN pip install --no-cache-dir --upgrade -r requirements.txt
11
+
12
+ COPY --chown=user . /app
13
+ ENV MCP_TRANSPORT=http
14
+ ENV MCP_PORT=7860
15
+
16
+ EXPOSE 7860
17
+
18
+ CMD ["python", "langgraph/mcp_output/start_mcp.py"]
app.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ import os
3
+ import sys
4
+
5
+ mcp_plugin_path = os.path.join(os.path.dirname(__file__), "langgraph", "mcp_output", "mcp_plugin")
6
+ sys.path.insert(0, mcp_plugin_path)
7
+
8
+ app = FastAPI(
9
+ title="Langgraph MCP Service",
10
+ description="Auto-generated MCP service for langgraph",
11
+ version="1.0.0"
12
+ )
13
+
14
+ @app.get("/")
15
+ def root():
16
+ return {
17
+ "service": "Langgraph MCP Service",
18
+ "version": "1.0.0",
19
+ "status": "running",
20
+ "transport": os.environ.get("MCP_TRANSPORT", "http")
21
+ }
22
+
23
+ @app.get("/health")
24
+ def health_check():
25
+ return {"status": "healthy", "service": "langgraph MCP"}
26
+
27
+ @app.get("/tools")
28
+ def list_tools():
29
+ try:
30
+ from mcp_service import create_app
31
+ mcp_app = create_app()
32
+ tools = []
33
+ for tool_name, tool_func in mcp_app.tools.items():
34
+ tools.append({
35
+ "name": tool_name,
36
+ "description": tool_func.__doc__ or "No description available"
37
+ })
38
+ return {"tools": tools}
39
+ except Exception as e:
40
+ return {"error": f"Failed to load tools: {str(e)}"}
41
+
42
+ if __name__ == "__main__":
43
+ import uvicorn
44
+ port = int(os.environ.get("PORT", 7860))
45
+ uvicorn.run(app, host="0.0.0.0", port=port)
langgraph/mcp_output/README_MCP.md ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LangGraph MCP (Model Context Protocol) Service README
2
+
3
+ ## 1) Project Introduction
4
+
5
+ This repository appears to expose LangGraph capabilities as an MCP (Model Context Protocol) service layer (detected package hint: `mcp_output.mcp_plugin`, treated here as MCP service).
6
+ Because repository preprocessing failed, this README is a practical integration guide based on discovered modules and likely usage patterns.
7
+
8
+ ### What this service is for
9
+ - Run and orchestrate graph-based LLM workflows (stateful, multi-step execution).
10
+ - Support checkpoints (memory/sqlite/postgres) for resumable runs.
11
+ - Stream execution updates/messages.
12
+ - Expose graph run/state/store operations via MCP (Model Context Protocol)-compatible tools.
13
+
14
+ ---
15
+
16
+ ## 2) Installation Method
17
+
18
+ ## Prerequisites
19
+ - Python 3.10+ (recommended)
20
+ - `pip` / virtual environment
21
+ - Optional databases:
22
+ - SQLite (local persistence)
23
+ - PostgreSQL (production checkpoint/store)
24
+
25
+ ## Install (practical baseline)
26
+ Since dependency manifests were not reliably detected, start with:
27
+
28
+ pip install -U langgraph
29
+ pip install -U langgraph-sdk
30
+
31
+ If you plan persistence backends:
32
+
33
+ pip install -U langgraph-checkpoint-sqlite
34
+ pip install -U langgraph-checkpoint-postgres
35
+
36
+ For MCP (Model Context Protocol) runtime/host, install your chosen MCP SDK/runtime (server and client side) per your stack.
37
+
38
+ ---
39
+
40
+ ## 3) Quick Start
41
+
42
+ ## Minimal graph usage (Python)
43
+ Typical LangGraph flow:
44
+ 1. Define state schema
45
+ 2. Create `StateGraph`
46
+ 3. Add nodes/edges
47
+ 4. Compile graph
48
+ 5. Invoke/stream run
49
+
50
+ Common entry modules discovered:
51
+ - `langgraph.graph.state` (`StateGraph`, `CompiledStateGraph`)
52
+ - `langgraph.graph.message` (`MessageGraph`)
53
+ - `langgraph.checkpoint.memory` (`InMemorySaver`)
54
+ - `langgraph.checkpoint.sqlite` / `langgraph.checkpoint.postgres` (persistent savers)
55
+
56
+ ## MCP (Model Context Protocol) service integration pattern
57
+ - Register tools that wrap graph operations:
58
+ - create/load graph
59
+ - invoke run
60
+ - stream run events
61
+ - read/update thread state
62
+ - checkpoint search/replay
63
+ - Return structured payloads aligned with `langgraph_sdk.schema`-style objects (Run, Thread, Checkpoint, StreamPart).
64
+
65
+ ---
66
+
67
+ ## 4) Available Tools and Endpoints List
68
+
69
+ Exact MCP (Model Context Protocol) tool names were not recoverable from the scan, so use this recommended endpoint set:
70
+
71
+ - `graph.invoke`
72
+ Run a graph synchronously with input/config and return final state/output.
73
+
74
+ - `graph.stream`
75
+ Run and stream incremental events (messages, tasks, updates, values).
76
+
77
+ - `thread.create`
78
+ Create a new execution thread/session context.
79
+
80
+ - `thread.get_state`
81
+ Fetch current thread state snapshot.
82
+
83
+ - `thread.update_state`
84
+ Patch/overwrite thread state for controlled recovery or human-in-the-loop edits.
85
+
86
+ - `checkpoint.list`
87
+ List checkpoints by thread/run filters.
88
+
89
+ - `checkpoint.get`
90
+ Retrieve one checkpoint payload/metadata.
91
+
92
+ - `checkpoint.replay`
93
+ Resume from a checkpoint and continue execution.
94
+
95
+ - `store.put`
96
+ Persist item(s) into graph store namespace.
97
+
98
+ - `store.get`
99
+ Read item by namespace/key.
100
+
101
+ - `store.search`
102
+ Search indexed memory/store entries (optionally embedding/vector-backed).
103
+
104
+ ---
105
+
106
+ ## 5) Common Issues and Notes
107
+
108
+ - Repository analysis was partial
109
+ Some names/commands may differ in your implementation. Validate against actual source before production rollout.
110
+
111
+ - Dependency ambiguity
112
+ No authoritative `pyproject.toml`/`requirements.txt` was detected in this run. Pin versions explicitly in your own project.
113
+
114
+ - Backend mismatch
115
+ Ensure checkpoint/store backend package matches your runtime (memory vs sqlite vs postgres).
116
+
117
+ - Async vs sync clients
118
+ LangGraph SDK exposes both sync and async clients (`_sync`, `_async`). Keep execution model consistent.
119
+
120
+ - Streaming behavior
121
+ Large streamed events can increase latency/memory usage. Filter stream parts when possible.
122
+
123
+ - Serialization/typing
124
+ Complex custom objects may require serializer allowlisting and careful schema control.
125
+
126
+ - Operational reliability
127
+ Add retry/timeouts around remote graph calls and store/checkpoint operations.
128
+
129
+ ---
130
+
131
+ ## 6) Reference Links / Documentation
132
+
133
+ - LangGraph repository: https://github.com/langchain-ai/langgraph
134
+ - LangGraph Python package (PyPI): https://pypi.org/project/langgraph/
135
+ - Model Context Protocol (MCP) docs: https://modelcontextprotocol.io
136
+
137
+ If you want, I can generate a stricter “drop-in” README template with concrete MCP (Model Context Protocol) tool schemas (`name`, `description`, `inputSchema`) for immediate server registration.
langgraph/mcp_output/analysis.json ADDED
@@ -0,0 +1,2780 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "summary": {
3
+ "repository_url": "https://github.com/langchain-ai/langgraph",
4
+ "summary": "Unable to preprocess repository: https://github.com/langchain-ai/langgraph",
5
+ "file_tree": {},
6
+ "content": {},
7
+ "processed_by": "fallback",
8
+ "success": false,
9
+ "error": "zip download failed: <urlopen error EOF occurred in violation of protocol (_ssl.c:997)>"
10
+ },
11
+ "structure": {
12
+ "packages": [
13
+ "deployment.langgraph.source",
14
+ "mcp_output.mcp_plugin"
15
+ ]
16
+ },
17
+ "dependencies": {
18
+ "has_environment_yml": false,
19
+ "has_requirements_txt": false,
20
+ "pyproject": false,
21
+ "setup_cfg": false,
22
+ "setup_py": false
23
+ },
24
+ "entry_points": {
25
+ "imports": [],
26
+ "cli": [],
27
+ "modules": []
28
+ },
29
+ "llm_analysis": {
30
+ "core_modules": [
31
+ {
32
+ "package": "docs",
33
+ "module": "generate_redirects",
34
+ "functions": [
35
+ "generate_redirects"
36
+ ],
37
+ "classes": [],
38
+ "function_signatures": {
39
+ "generate_redirects": []
40
+ },
41
+ "description": "Discovered via AST scan"
42
+ },
43
+ {
44
+ "package": "libs.checkpoint-postgres.langgraph.checkpoint.postgres",
45
+ "module": "_internal",
46
+ "functions": [
47
+ "get_connection"
48
+ ],
49
+ "classes": [],
50
+ "function_signatures": {
51
+ "get_connection": [
52
+ "conn"
53
+ ]
54
+ },
55
+ "description": "Discovered via AST scan"
56
+ },
57
+ {
58
+ "package": "libs.checkpoint-postgres.langgraph.checkpoint.postgres",
59
+ "module": "shallow",
60
+ "functions": [],
61
+ "classes": [
62
+ "AsyncShallowPostgresSaver",
63
+ "ShallowPostgresSaver"
64
+ ],
65
+ "function_signatures": {},
66
+ "description": "Discovered via AST scan"
67
+ },
68
+ {
69
+ "package": "libs.checkpoint-postgres.langgraph.checkpoint",
70
+ "module": "postgres",
71
+ "functions": [],
72
+ "classes": [
73
+ "PostgresSaver"
74
+ ],
75
+ "function_signatures": {},
76
+ "description": "Discovered via AST scan"
77
+ },
78
+ {
79
+ "package": "libs.checkpoint-postgres.langgraph.checkpoint.postgres",
80
+ "module": "aio",
81
+ "functions": [],
82
+ "classes": [
83
+ "AsyncPostgresSaver"
84
+ ],
85
+ "function_signatures": {},
86
+ "description": "Discovered via AST scan"
87
+ },
88
+ {
89
+ "package": "libs.checkpoint-postgres.langgraph.checkpoint.postgres",
90
+ "module": "base",
91
+ "functions": [],
92
+ "classes": [
93
+ "BasePostgresSaver"
94
+ ],
95
+ "function_signatures": {},
96
+ "description": "Discovered via AST scan"
97
+ },
98
+ {
99
+ "package": "libs.checkpoint-postgres.langgraph.store.postgres",
100
+ "module": "aio",
101
+ "functions": [],
102
+ "classes": [
103
+ "AsyncPostgresStore"
104
+ ],
105
+ "function_signatures": {},
106
+ "description": "Discovered via AST scan"
107
+ },
108
+ {
109
+ "package": "libs.checkpoint-postgres.langgraph.store.postgres",
110
+ "module": "base",
111
+ "functions": [
112
+ "get_distance_operator"
113
+ ],
114
+ "classes": [
115
+ "ANNIndexConfig",
116
+ "BasePostgresStore",
117
+ "HNSWConfig",
118
+ "IVFFlatConfig",
119
+ "Migration",
120
+ "PoolConfig",
121
+ "PostgresIndexConfig",
122
+ "PostgresStore",
123
+ "Row"
124
+ ],
125
+ "function_signatures": {
126
+ "get_distance_operator": [
127
+ "store"
128
+ ]
129
+ },
130
+ "description": "Discovered via AST scan"
131
+ },
132
+ {
133
+ "package": "libs.langgraph.langgraph",
134
+ "module": "config",
135
+ "functions": [
136
+ "get_config",
137
+ "get_store",
138
+ "get_stream_writer"
139
+ ],
140
+ "classes": [],
141
+ "function_signatures": {
142
+ "get_config": [],
143
+ "get_store": [],
144
+ "get_stream_writer": []
145
+ },
146
+ "description": "Discovered via AST scan"
147
+ },
148
+ {
149
+ "package": "libs.langgraph.langgraph",
150
+ "module": "warnings",
151
+ "functions": [],
152
+ "classes": [
153
+ "LangGraphDeprecatedSinceV05",
154
+ "LangGraphDeprecatedSinceV10",
155
+ "LangGraphDeprecatedSinceV11",
156
+ "LangGraphDeprecationWarning"
157
+ ],
158
+ "function_signatures": {},
159
+ "description": "Discovered via AST scan"
160
+ },
161
+ {
162
+ "package": "libs.langgraph.langgraph",
163
+ "module": "types",
164
+ "functions": [
165
+ "ensure_valid_checkpointer",
166
+ "interrupt"
167
+ ],
168
+ "classes": [
169
+ "CacheKey",
170
+ "CachePolicy",
171
+ "CheckpointPayload",
172
+ "CheckpointStreamPart",
173
+ "CheckpointTask",
174
+ "Command",
175
+ "CustomStreamPart",
176
+ "DebugStreamPart",
177
+ "GraphOutput",
178
+ "Interrupt",
179
+ "MessagesStreamPart",
180
+ "Overwrite",
181
+ "PregelExecutableTask",
182
+ "PregelTask",
183
+ "RetryPolicy",
184
+ "Send",
185
+ "StateSnapshot",
186
+ "StateUpdate",
187
+ "TaskPayload",
188
+ "TaskResultPayload",
189
+ "TasksStreamPart",
190
+ "UpdatesStreamPart",
191
+ "ValuesStreamPart"
192
+ ],
193
+ "function_signatures": {
194
+ "ensure_valid_checkpointer": [
195
+ "checkpointer"
196
+ ],
197
+ "interrupt": [
198
+ "value"
199
+ ]
200
+ },
201
+ "description": "Discovered via AST scan"
202
+ },
203
+ {
204
+ "package": "libs.langgraph.langgraph",
205
+ "module": "runtime",
206
+ "functions": [
207
+ "get_runtime"
208
+ ],
209
+ "classes": [
210
+ "Runtime"
211
+ ],
212
+ "function_signatures": {
213
+ "get_runtime": [
214
+ "context_schema"
215
+ ]
216
+ },
217
+ "description": "Discovered via AST scan"
218
+ },
219
+ {
220
+ "package": "libs.langgraph.langgraph",
221
+ "module": "errors",
222
+ "functions": [
223
+ "create_error_message"
224
+ ],
225
+ "classes": [
226
+ "EmptyInputError",
227
+ "ErrorCode",
228
+ "GraphBubbleUp",
229
+ "GraphInterrupt",
230
+ "GraphRecursionError",
231
+ "InvalidUpdateError",
232
+ "NodeInterrupt",
233
+ "ParentCommand",
234
+ "TaskNotFound"
235
+ ],
236
+ "function_signatures": {
237
+ "create_error_message": []
238
+ },
239
+ "description": "Discovered via AST scan"
240
+ },
241
+ {
242
+ "package": "libs.langgraph.langgraph.pregel",
243
+ "module": "_draw",
244
+ "functions": [
245
+ "add_edge",
246
+ "draw_graph"
247
+ ],
248
+ "classes": [
249
+ "Edge",
250
+ "TriggerEdge"
251
+ ],
252
+ "function_signatures": {
253
+ "draw_graph": [
254
+ "config"
255
+ ],
256
+ "add_edge": [
257
+ "graph",
258
+ "source",
259
+ "target"
260
+ ]
261
+ },
262
+ "description": "Discovered via AST scan"
263
+ },
264
+ {
265
+ "package": "libs.langgraph.langgraph.pregel",
266
+ "module": "_read",
267
+ "functions": [],
268
+ "classes": [
269
+ "ChannelRead",
270
+ "PregelNode"
271
+ ],
272
+ "function_signatures": {},
273
+ "description": "Discovered via AST scan"
274
+ },
275
+ {
276
+ "package": "libs.langgraph.langgraph.pregel",
277
+ "module": "_call",
278
+ "functions": [
279
+ "call",
280
+ "get_runnable_for_entrypoint",
281
+ "get_runnable_for_task",
282
+ "identifier"
283
+ ],
284
+ "classes": [
285
+ "SyncAsyncFuture"
286
+ ],
287
+ "function_signatures": {
288
+ "identifier": [
289
+ "obj",
290
+ "name"
291
+ ],
292
+ "get_runnable_for_entrypoint": [
293
+ "func"
294
+ ],
295
+ "get_runnable_for_task": [
296
+ "func"
297
+ ],
298
+ "call": [
299
+ "func"
300
+ ]
301
+ },
302
+ "description": "Discovered via AST scan"
303
+ },
304
+ {
305
+ "package": "libs.langgraph.langgraph.pregel",
306
+ "module": "_algo",
307
+ "functions": [
308
+ "apply_writes",
309
+ "checkpoint_null_version",
310
+ "increment",
311
+ "local_read",
312
+ "prepare_next_tasks",
313
+ "prepare_push_task_functional",
314
+ "prepare_push_task_send",
315
+ "prepare_single_task",
316
+ "sanitize_untracked_values_in_send",
317
+ "should_interrupt",
318
+ "task_path_str"
319
+ ],
320
+ "classes": [
321
+ "Call",
322
+ "LazyAtomicCounter",
323
+ "PregelTaskWrites",
324
+ "WritesProtocol"
325
+ ],
326
+ "function_signatures": {
327
+ "should_interrupt": [
328
+ "checkpoint",
329
+ "interrupt_nodes",
330
+ "tasks"
331
+ ],
332
+ "local_read": [
333
+ "scratchpad",
334
+ "channels",
335
+ "managed",
336
+ "task",
337
+ "select",
338
+ "fresh"
339
+ ],
340
+ "increment": [
341
+ "current",
342
+ "channel"
343
+ ],
344
+ "apply_writes": [
345
+ "checkpoint",
346
+ "channels",
347
+ "tasks",
348
+ "get_next_version",
349
+ "trigger_to_nodes"
350
+ ],
351
+ "prepare_next_tasks": [
352
+ "checkpoint",
353
+ "pending_writes",
354
+ "processes",
355
+ "channels",
356
+ "managed",
357
+ "config",
358
+ "step",
359
+ "stop"
360
+ ],
361
+ "prepare_single_task": [
362
+ "task_path",
363
+ "task_id_checksum"
364
+ ],
365
+ "prepare_push_task_functional": [
366
+ "task_path",
367
+ "task_id_checksum"
368
+ ],
369
+ "prepare_push_task_send": [
370
+ "task_path",
371
+ "task_id_checksum"
372
+ ],
373
+ "checkpoint_null_version": [
374
+ "checkpoint"
375
+ ],
376
+ "task_path_str": [
377
+ "tup"
378
+ ],
379
+ "sanitize_untracked_values_in_send": [
380
+ "packet",
381
+ "channels"
382
+ ]
383
+ },
384
+ "description": "Discovered via AST scan"
385
+ },
386
+ {
387
+ "package": "libs.langgraph.langgraph.pregel",
388
+ "module": "_io",
389
+ "functions": [
390
+ "map_command",
391
+ "map_input",
392
+ "map_output_updates",
393
+ "map_output_values",
394
+ "read_channel",
395
+ "read_channels"
396
+ ],
397
+ "classes": [],
398
+ "function_signatures": {
399
+ "read_channel": [
400
+ "channels",
401
+ "chan"
402
+ ],
403
+ "read_channels": [
404
+ "channels",
405
+ "select"
406
+ ],
407
+ "map_command": [
408
+ "cmd"
409
+ ],
410
+ "map_input": [
411
+ "input_channels",
412
+ "chunk"
413
+ ],
414
+ "map_output_values": [
415
+ "output_channels",
416
+ "pending_writes",
417
+ "channels"
418
+ ],
419
+ "map_output_updates": [
420
+ "output_channels",
421
+ "tasks",
422
+ "cached"
423
+ ]
424
+ },
425
+ "description": "Discovered via AST scan"
426
+ },
427
+ {
428
+ "package": "libs.langgraph.langgraph.pregel",
429
+ "module": "remote",
430
+ "functions": [],
431
+ "classes": [
432
+ "RemoteException",
433
+ "RemoteGraph"
434
+ ],
435
+ "function_signatures": {},
436
+ "description": "Discovered via AST scan"
437
+ },
438
+ {
439
+ "package": "libs.langgraph.langgraph.pregel",
440
+ "module": "_checkpoint",
441
+ "functions": [
442
+ "channels_from_checkpoint",
443
+ "copy_checkpoint",
444
+ "create_checkpoint",
445
+ "empty_checkpoint"
446
+ ],
447
+ "classes": [],
448
+ "function_signatures": {
449
+ "empty_checkpoint": [],
450
+ "create_checkpoint": [
451
+ "checkpoint",
452
+ "channels",
453
+ "step"
454
+ ],
455
+ "channels_from_checkpoint": [
456
+ "specs",
457
+ "checkpoint"
458
+ ],
459
+ "copy_checkpoint": [
460
+ "checkpoint"
461
+ ]
462
+ },
463
+ "description": "Discovered via AST scan"
464
+ },
465
+ {
466
+ "package": "libs.langgraph.langgraph.pregel",
467
+ "module": "protocol",
468
+ "functions": [],
469
+ "classes": [
470
+ "PregelProtocol",
471
+ "StreamProtocol"
472
+ ],
473
+ "function_signatures": {},
474
+ "description": "Discovered via AST scan"
475
+ },
476
+ {
477
+ "package": "libs.langgraph.langgraph.pregel",
478
+ "module": "_loop",
479
+ "functions": [
480
+ "DuplexStream"
481
+ ],
482
+ "classes": [
483
+ "AsyncPregelLoop",
484
+ "PregelLoop",
485
+ "SyncPregelLoop"
486
+ ],
487
+ "function_signatures": {
488
+ "DuplexStream": []
489
+ },
490
+ "description": "Discovered via AST scan"
491
+ },
492
+ {
493
+ "package": "libs.langgraph.langgraph.pregel",
494
+ "module": "_write",
495
+ "functions": [],
496
+ "classes": [
497
+ "ChannelWrite",
498
+ "ChannelWriteEntry",
499
+ "ChannelWriteTupleEntry"
500
+ ],
501
+ "function_signatures": {},
502
+ "description": "Discovered via AST scan"
503
+ },
504
+ {
505
+ "package": "libs.langgraph.langgraph.pregel",
506
+ "module": "_messages",
507
+ "functions": [],
508
+ "classes": [
509
+ "StreamMessagesHandler"
510
+ ],
511
+ "function_signatures": {},
512
+ "description": "Discovered via AST scan"
513
+ },
514
+ {
515
+ "package": "libs.langgraph.langgraph.pregel",
516
+ "module": "debug",
517
+ "functions": [
518
+ "get_bolded_text",
519
+ "get_colored_text",
520
+ "is_multiple_channel_write",
521
+ "map_debug_checkpoint",
522
+ "map_debug_task_results",
523
+ "map_debug_tasks",
524
+ "map_task_result_writes",
525
+ "rm_pregel_keys",
526
+ "tasks_w_writes"
527
+ ],
528
+ "classes": [],
529
+ "function_signatures": {
530
+ "map_debug_tasks": [
531
+ "tasks"
532
+ ],
533
+ "is_multiple_channel_write": [
534
+ "value"
535
+ ],
536
+ "map_task_result_writes": [
537
+ "writes"
538
+ ],
539
+ "map_debug_task_results": [
540
+ "task_tup",
541
+ "stream_keys"
542
+ ],
543
+ "rm_pregel_keys": [
544
+ "config"
545
+ ],
546
+ "map_debug_checkpoint": [
547
+ "config",
548
+ "channels",
549
+ "stream_channels",
550
+ "metadata",
551
+ "tasks",
552
+ "pending_writes",
553
+ "parent_config",
554
+ "output_keys"
555
+ ],
556
+ "tasks_w_writes": [
557
+ "tasks",
558
+ "pending_writes",
559
+ "states",
560
+ "output_keys"
561
+ ],
562
+ "get_colored_text": [
563
+ "text",
564
+ "color"
565
+ ],
566
+ "get_bolded_text": [
567
+ "text"
568
+ ]
569
+ },
570
+ "description": "Discovered via AST scan"
571
+ },
572
+ {
573
+ "package": "libs.langgraph.langgraph.pregel",
574
+ "module": "_validate",
575
+ "functions": [
576
+ "validate_graph",
577
+ "validate_keys"
578
+ ],
579
+ "classes": [],
580
+ "function_signatures": {
581
+ "validate_graph": [
582
+ "nodes",
583
+ "channels",
584
+ "managed",
585
+ "input_channels",
586
+ "output_channels",
587
+ "stream_channels",
588
+ "interrupt_after_nodes",
589
+ "interrupt_before_nodes"
590
+ ],
591
+ "validate_keys": [
592
+ "keys",
593
+ "channels"
594
+ ]
595
+ },
596
+ "description": "Discovered via AST scan"
597
+ },
598
+ {
599
+ "package": "libs.langgraph.langgraph.pregel",
600
+ "module": "_executor",
601
+ "functions": [
602
+ "next_tick"
603
+ ],
604
+ "classes": [
605
+ "AsyncBackgroundExecutor",
606
+ "BackgroundExecutor",
607
+ "Submit"
608
+ ],
609
+ "function_signatures": {
610
+ "next_tick": [
611
+ "fn"
612
+ ]
613
+ },
614
+ "description": "Discovered via AST scan"
615
+ },
616
+ {
617
+ "package": "libs.langgraph.langgraph.pregel",
618
+ "module": "main",
619
+ "functions": [],
620
+ "classes": [
621
+ "NodeBuilder",
622
+ "Pregel"
623
+ ],
624
+ "function_signatures": {},
625
+ "description": "Discovered via AST scan"
626
+ },
627
+ {
628
+ "package": "libs.langgraph.langgraph.pregel",
629
+ "module": "_runner",
630
+ "functions": [],
631
+ "classes": [
632
+ "FuturesDict",
633
+ "PregelRunner"
634
+ ],
635
+ "function_signatures": {},
636
+ "description": "Discovered via AST scan"
637
+ },
638
+ {
639
+ "package": "libs.langgraph.langgraph.pregel",
640
+ "module": "_retry",
641
+ "functions": [
642
+ "run_with_retry"
643
+ ],
644
+ "classes": [],
645
+ "function_signatures": {
646
+ "run_with_retry": [
647
+ "task",
648
+ "retry_policy",
649
+ "configurable"
650
+ ]
651
+ },
652
+ "description": "Discovered via AST scan"
653
+ },
654
+ {
655
+ "package": "libs.langgraph.langgraph.pregel",
656
+ "module": "_utils",
657
+ "functions": [
658
+ "find_subgraph_pregel",
659
+ "get_function_nonlocals",
660
+ "get_new_channel_versions",
661
+ "is_xxh3_128_hexdigest"
662
+ ],
663
+ "classes": [
664
+ "FunctionNonLocals",
665
+ "NonLocals"
666
+ ],
667
+ "function_signatures": {
668
+ "get_new_channel_versions": [
669
+ "previous_versions",
670
+ "current_versions"
671
+ ],
672
+ "find_subgraph_pregel": [
673
+ "candidate"
674
+ ],
675
+ "get_function_nonlocals": [
676
+ "func"
677
+ ],
678
+ "is_xxh3_128_hexdigest": [
679
+ "value"
680
+ ]
681
+ },
682
+ "description": "Discovered via AST scan"
683
+ },
684
+ {
685
+ "package": "libs.langgraph.langgraph._internal",
686
+ "module": "_cache",
687
+ "functions": [
688
+ "default_cache_key"
689
+ ],
690
+ "classes": [],
691
+ "function_signatures": {
692
+ "default_cache_key": []
693
+ },
694
+ "description": "Discovered via AST scan"
695
+ },
696
+ {
697
+ "package": "libs.langgraph.langgraph._internal",
698
+ "module": "_typing",
699
+ "functions": [],
700
+ "classes": [
701
+ "DataclassLike",
702
+ "DeprecatedKwargs",
703
+ "TypedDictLikeV1",
704
+ "TypedDictLikeV2"
705
+ ],
706
+ "function_signatures": {},
707
+ "description": "Discovered via AST scan"
708
+ },
709
+ {
710
+ "package": "libs.langgraph.langgraph._internal",
711
+ "module": "_serde",
712
+ "functions": [
713
+ "apply_checkpointer_allowlist",
714
+ "build_serde_allowlist",
715
+ "collect_allowlist_from_schemas",
716
+ "curated_core_allowlist"
717
+ ],
718
+ "classes": [],
719
+ "function_signatures": {
720
+ "apply_checkpointer_allowlist": [
721
+ "checkpointer",
722
+ "allowlist"
723
+ ],
724
+ "curated_core_allowlist": [],
725
+ "build_serde_allowlist": [],
726
+ "collect_allowlist_from_schemas": []
727
+ },
728
+ "description": "Discovered via AST scan"
729
+ },
730
+ {
731
+ "package": "libs.langgraph.langgraph._internal",
732
+ "module": "_future",
733
+ "functions": [
734
+ "chain_future",
735
+ "run_coroutine_threadsafe"
736
+ ],
737
+ "classes": [],
738
+ "function_signatures": {
739
+ "chain_future": [
740
+ "source",
741
+ "destination"
742
+ ],
743
+ "run_coroutine_threadsafe": [
744
+ "coro",
745
+ "loop"
746
+ ]
747
+ },
748
+ "description": "Discovered via AST scan"
749
+ },
750
+ {
751
+ "package": "libs.langgraph.langgraph._internal",
752
+ "module": "_pydantic",
753
+ "functions": [
754
+ "create_model",
755
+ "get_fields",
756
+ "is_supported_by_pydantic"
757
+ ],
758
+ "classes": [],
759
+ "function_signatures": {
760
+ "get_fields": [
761
+ "model"
762
+ ],
763
+ "create_model": [
764
+ "model_name"
765
+ ],
766
+ "is_supported_by_pydantic": [
767
+ "type_"
768
+ ]
769
+ },
770
+ "description": "Discovered via AST scan"
771
+ },
772
+ {
773
+ "package": "libs.langgraph.langgraph._internal",
774
+ "module": "_queue",
775
+ "functions": [],
776
+ "classes": [
777
+ "AsyncQueue",
778
+ "Semaphore",
779
+ "SyncQueue"
780
+ ],
781
+ "function_signatures": {},
782
+ "description": "Discovered via AST scan"
783
+ },
784
+ {
785
+ "package": "libs.langgraph.langgraph._internal",
786
+ "module": "_replay",
787
+ "functions": [],
788
+ "classes": [
789
+ "ReplayState"
790
+ ],
791
+ "function_signatures": {},
792
+ "description": "Discovered via AST scan"
793
+ },
794
+ {
795
+ "package": "libs.langgraph.langgraph._internal",
796
+ "module": "_scratchpad",
797
+ "functions": [],
798
+ "classes": [
799
+ "PregelScratchpad"
800
+ ],
801
+ "function_signatures": {},
802
+ "description": "Discovered via AST scan"
803
+ },
804
+ {
805
+ "package": "libs.langgraph.langgraph._internal",
806
+ "module": "_fields",
807
+ "functions": [
808
+ "get_cached_annotated_keys",
809
+ "get_enhanced_type_hints",
810
+ "get_field_default",
811
+ "get_update_as_tuples"
812
+ ],
813
+ "classes": [],
814
+ "function_signatures": {
815
+ "get_field_default": [
816
+ "name",
817
+ "type_",
818
+ "schema"
819
+ ],
820
+ "get_enhanced_type_hints": [
821
+ "type"
822
+ ],
823
+ "get_update_as_tuples": [
824
+ "input",
825
+ "keys"
826
+ ],
827
+ "get_cached_annotated_keys": [
828
+ "obj"
829
+ ]
830
+ },
831
+ "description": "Discovered via AST scan"
832
+ },
833
+ {
834
+ "package": "libs.langgraph.langgraph._internal",
835
+ "module": "_config",
836
+ "functions": [
837
+ "ensure_config",
838
+ "get_async_callback_manager_for_config",
839
+ "get_callback_manager_for_config",
840
+ "merge_configs",
841
+ "patch_checkpoint_map",
842
+ "patch_config",
843
+ "patch_configurable",
844
+ "recast_checkpoint_ns"
845
+ ],
846
+ "classes": [],
847
+ "function_signatures": {
848
+ "recast_checkpoint_ns": [
849
+ "ns"
850
+ ],
851
+ "patch_configurable": [
852
+ "config",
853
+ "patch"
854
+ ],
855
+ "patch_checkpoint_map": [
856
+ "config",
857
+ "metadata"
858
+ ],
859
+ "merge_configs": [],
860
+ "patch_config": [
861
+ "config"
862
+ ],
863
+ "get_callback_manager_for_config": [
864
+ "config",
865
+ "tags"
866
+ ],
867
+ "get_async_callback_manager_for_config": [
868
+ "config",
869
+ "tags"
870
+ ],
871
+ "ensure_config": []
872
+ },
873
+ "description": "Discovered via AST scan"
874
+ },
875
+ {
876
+ "package": "libs.langgraph.langgraph._internal",
877
+ "module": "_runnable",
878
+ "functions": [
879
+ "coerce_to_runnable",
880
+ "is_async_callable",
881
+ "is_async_generator",
882
+ "set_config_context"
883
+ ],
884
+ "classes": [
885
+ "RunnableCallable",
886
+ "RunnableSeq",
887
+ "StrEnum"
888
+ ],
889
+ "function_signatures": {
890
+ "set_config_context": [
891
+ "config",
892
+ "run"
893
+ ],
894
+ "is_async_callable": [
895
+ "func"
896
+ ],
897
+ "is_async_generator": [
898
+ "func"
899
+ ],
900
+ "coerce_to_runnable": [
901
+ "thing"
902
+ ]
903
+ },
904
+ "description": "Discovered via AST scan"
905
+ },
906
+ {
907
+ "package": "libs.langgraph.langgraph._internal",
908
+ "module": "_retry",
909
+ "functions": [
910
+ "default_retry_on"
911
+ ],
912
+ "classes": [],
913
+ "function_signatures": {
914
+ "default_retry_on": [
915
+ "exc"
916
+ ]
917
+ },
918
+ "description": "Discovered via AST scan"
919
+ },
920
+ {
921
+ "package": "libs.langgraph.langgraph.managed",
922
+ "module": "is_last_step",
923
+ "functions": [],
924
+ "classes": [
925
+ "IsLastStepManager",
926
+ "RemainingStepsManager"
927
+ ],
928
+ "function_signatures": {},
929
+ "description": "Discovered via AST scan"
930
+ },
931
+ {
932
+ "package": "libs.langgraph.langgraph.managed",
933
+ "module": "base",
934
+ "functions": [
935
+ "is_managed_value"
936
+ ],
937
+ "classes": [
938
+ "ManagedValue"
939
+ ],
940
+ "function_signatures": {
941
+ "is_managed_value": [
942
+ "value"
943
+ ]
944
+ },
945
+ "description": "Discovered via AST scan"
946
+ },
947
+ {
948
+ "package": "libs.langgraph.langgraph.graph",
949
+ "module": "_node",
950
+ "functions": [],
951
+ "classes": [
952
+ "StateNodeSpec"
953
+ ],
954
+ "function_signatures": {},
955
+ "description": "Discovered via AST scan"
956
+ },
957
+ {
958
+ "package": "libs.langgraph.langgraph.graph",
959
+ "module": "ui",
960
+ "functions": [
961
+ "delete_ui_message",
962
+ "push_ui_message",
963
+ "ui_message_reducer"
964
+ ],
965
+ "classes": [
966
+ "RemoveUIMessage",
967
+ "UIMessage"
968
+ ],
969
+ "function_signatures": {
970
+ "push_ui_message": [
971
+ "name",
972
+ "props"
973
+ ],
974
+ "delete_ui_message": [
975
+ "id"
976
+ ],
977
+ "ui_message_reducer": [
978
+ "left",
979
+ "right"
980
+ ]
981
+ },
982
+ "description": "Discovered via AST scan"
983
+ },
984
+ {
985
+ "package": "libs.langgraph.langgraph.graph",
986
+ "module": "message",
987
+ "functions": [
988
+ "add_messages",
989
+ "push_message"
990
+ ],
991
+ "classes": [
992
+ "MessageGraph",
993
+ "MessagesState"
994
+ ],
995
+ "function_signatures": {
996
+ "add_messages": [
997
+ "left",
998
+ "right"
999
+ ],
1000
+ "push_message": [
1001
+ "message"
1002
+ ]
1003
+ },
1004
+ "description": "Discovered via AST scan"
1005
+ },
1006
+ {
1007
+ "package": "libs.langgraph.langgraph.graph",
1008
+ "module": "_branch",
1009
+ "functions": [],
1010
+ "classes": [
1011
+ "BranchSpec"
1012
+ ],
1013
+ "function_signatures": {},
1014
+ "description": "Discovered via AST scan"
1015
+ },
1016
+ {
1017
+ "package": "libs.langgraph.langgraph.graph",
1018
+ "module": "state",
1019
+ "functions": [],
1020
+ "classes": [
1021
+ "CompiledStateGraph",
1022
+ "StateGraph"
1023
+ ],
1024
+ "function_signatures": {},
1025
+ "description": "Discovered via AST scan"
1026
+ },
1027
+ {
1028
+ "package": "libs.langgraph.langgraph.channels",
1029
+ "module": "last_value",
1030
+ "functions": [],
1031
+ "classes": [
1032
+ "LastValue",
1033
+ "LastValueAfterFinish"
1034
+ ],
1035
+ "function_signatures": {},
1036
+ "description": "Discovered via AST scan"
1037
+ },
1038
+ {
1039
+ "package": "libs.langgraph.langgraph.channels",
1040
+ "module": "untracked_value",
1041
+ "functions": [],
1042
+ "classes": [
1043
+ "UntrackedValue"
1044
+ ],
1045
+ "function_signatures": {},
1046
+ "description": "Discovered via AST scan"
1047
+ },
1048
+ {
1049
+ "package": "libs.langgraph.langgraph.channels",
1050
+ "module": "any_value",
1051
+ "functions": [],
1052
+ "classes": [
1053
+ "AnyValue"
1054
+ ],
1055
+ "function_signatures": {},
1056
+ "description": "Discovered via AST scan"
1057
+ },
1058
+ {
1059
+ "package": "libs.langgraph.langgraph.channels",
1060
+ "module": "named_barrier_value",
1061
+ "functions": [],
1062
+ "classes": [
1063
+ "NamedBarrierValue",
1064
+ "NamedBarrierValueAfterFinish"
1065
+ ],
1066
+ "function_signatures": {},
1067
+ "description": "Discovered via AST scan"
1068
+ },
1069
+ {
1070
+ "package": "libs.langgraph.langgraph.channels",
1071
+ "module": "binop",
1072
+ "functions": [],
1073
+ "classes": [
1074
+ "BinaryOperatorAggregate"
1075
+ ],
1076
+ "function_signatures": {},
1077
+ "description": "Discovered via AST scan"
1078
+ },
1079
+ {
1080
+ "package": "libs.langgraph.langgraph.channels",
1081
+ "module": "ephemeral_value",
1082
+ "functions": [],
1083
+ "classes": [
1084
+ "EphemeralValue"
1085
+ ],
1086
+ "function_signatures": {},
1087
+ "description": "Discovered via AST scan"
1088
+ },
1089
+ {
1090
+ "package": "libs.langgraph.langgraph.channels",
1091
+ "module": "topic",
1092
+ "functions": [],
1093
+ "classes": [
1094
+ "Topic"
1095
+ ],
1096
+ "function_signatures": {},
1097
+ "description": "Discovered via AST scan"
1098
+ },
1099
+ {
1100
+ "package": "libs.langgraph.langgraph.channels",
1101
+ "module": "base",
1102
+ "functions": [],
1103
+ "classes": [
1104
+ "BaseChannel"
1105
+ ],
1106
+ "function_signatures": {},
1107
+ "description": "Discovered via AST scan"
1108
+ },
1109
+ {
1110
+ "package": "libs.langgraph.langgraph",
1111
+ "module": "func",
1112
+ "functions": [
1113
+ "task"
1114
+ ],
1115
+ "classes": [
1116
+ "entrypoint"
1117
+ ],
1118
+ "function_signatures": {
1119
+ "task": [
1120
+ "__func_or_none__"
1121
+ ]
1122
+ },
1123
+ "description": "Discovered via AST scan"
1124
+ },
1125
+ {
1126
+ "package": "libs.langgraph.bench",
1127
+ "module": "fanout_to_subgraph",
1128
+ "functions": [
1129
+ "fanout_to_subgraph",
1130
+ "fanout_to_subgraph_sync"
1131
+ ],
1132
+ "classes": [],
1133
+ "function_signatures": {
1134
+ "fanout_to_subgraph": [],
1135
+ "fanout_to_subgraph_sync": []
1136
+ },
1137
+ "description": "Discovered via AST scan"
1138
+ },
1139
+ {
1140
+ "package": "libs.langgraph.bench",
1141
+ "module": "react_agent",
1142
+ "functions": [
1143
+ "react_agent"
1144
+ ],
1145
+ "classes": [],
1146
+ "function_signatures": {
1147
+ "react_agent": [
1148
+ "n_tools",
1149
+ "checkpointer"
1150
+ ]
1151
+ },
1152
+ "description": "Discovered via AST scan"
1153
+ },
1154
+ {
1155
+ "package": "libs.langgraph.bench",
1156
+ "module": "wide_dict",
1157
+ "functions": [
1158
+ "wide_dict"
1159
+ ],
1160
+ "classes": [],
1161
+ "function_signatures": {
1162
+ "wide_dict": [
1163
+ "n"
1164
+ ]
1165
+ },
1166
+ "description": "Discovered via AST scan"
1167
+ },
1168
+ {
1169
+ "package": "libs.langgraph",
1170
+ "module": "benchdantic_state",
1171
+ "functions": [
1172
+ "pydantic_state"
1173
+ ],
1174
+ "classes": [],
1175
+ "function_signatures": {
1176
+ "pydantic_state": [
1177
+ "n"
1178
+ ]
1179
+ },
1180
+ "description": "Discovered via AST scan"
1181
+ },
1182
+ {
1183
+ "package": "libs.langgraph.bench",
1184
+ "module": "serde_allowlist",
1185
+ "functions": [
1186
+ "collect_allowlist_large",
1187
+ "collect_allowlist_small"
1188
+ ],
1189
+ "classes": [
1190
+ "Color",
1191
+ "DummyChannel",
1192
+ "InnerDataclass",
1193
+ "InnerModel",
1194
+ "InnerTyped",
1195
+ "NestedDataclass",
1196
+ "Node"
1197
+ ],
1198
+ "function_signatures": {
1199
+ "collect_allowlist_small": [],
1200
+ "collect_allowlist_large": []
1201
+ },
1202
+ "description": "Discovered via AST scan"
1203
+ },
1204
+ {
1205
+ "package": "libs.langgraph.bench",
1206
+ "module": "sequential",
1207
+ "functions": [
1208
+ "create_sequential"
1209
+ ],
1210
+ "classes": [],
1211
+ "function_signatures": {
1212
+ "create_sequential": [
1213
+ "number_nodes"
1214
+ ]
1215
+ },
1216
+ "description": "Discovered via AST scan"
1217
+ },
1218
+ {
1219
+ "package": "libs.langgraph.bench",
1220
+ "module": "wide_state",
1221
+ "functions": [
1222
+ "wide_state"
1223
+ ],
1224
+ "classes": [],
1225
+ "function_signatures": {
1226
+ "wide_state": [
1227
+ "n"
1228
+ ]
1229
+ },
1230
+ "description": "Discovered via AST scan"
1231
+ },
1232
+ {
1233
+ "package": "libs.langgraph.bench",
1234
+ "module": "__main__",
1235
+ "functions": [
1236
+ "compile_graph",
1237
+ "run",
1238
+ "run_first_event_latency"
1239
+ ],
1240
+ "classes": [],
1241
+ "function_signatures": {
1242
+ "run": [
1243
+ "graph",
1244
+ "input"
1245
+ ],
1246
+ "run_first_event_latency": [
1247
+ "graph",
1248
+ "input"
1249
+ ],
1250
+ "compile_graph": [
1251
+ "graph"
1252
+ ]
1253
+ },
1254
+ "description": "Discovered via AST scan"
1255
+ },
1256
+ {
1257
+ "package": "libs.checkpoint.langgraph.checkpoint",
1258
+ "module": "memory",
1259
+ "functions": [],
1260
+ "classes": [
1261
+ "InMemorySaver",
1262
+ "PersistentDict"
1263
+ ],
1264
+ "function_signatures": {},
1265
+ "description": "Discovered via AST scan"
1266
+ },
1267
+ {
1268
+ "package": "libs.checkpoint.langgraph.checkpoint.serde",
1269
+ "module": "jsonplus",
1270
+ "functions": [],
1271
+ "classes": [
1272
+ "InvalidModuleError",
1273
+ "JsonPlusSerializer"
1274
+ ],
1275
+ "function_signatures": {},
1276
+ "description": "Discovered via AST scan"
1277
+ },
1278
+ {
1279
+ "package": "libs.checkpoint.langgraph.checkpoint.serde",
1280
+ "module": "encrypted",
1281
+ "functions": [],
1282
+ "classes": [
1283
+ "EncryptedSerializer"
1284
+ ],
1285
+ "function_signatures": {},
1286
+ "description": "Discovered via AST scan"
1287
+ },
1288
+ {
1289
+ "package": "libs.checkpoint.langgraph.checkpoint.serde",
1290
+ "module": "types",
1291
+ "functions": [],
1292
+ "classes": [
1293
+ "ChannelProtocol",
1294
+ "SendProtocol"
1295
+ ],
1296
+ "function_signatures": {},
1297
+ "description": "Discovered via AST scan"
1298
+ },
1299
+ {
1300
+ "package": "libs.checkpoint.langgraph.checkpoint.serde",
1301
+ "module": "event_hooks",
1302
+ "functions": [
1303
+ "emit_serde_event",
1304
+ "register_serde_event_listener"
1305
+ ],
1306
+ "classes": [
1307
+ "SerdeEvent"
1308
+ ],
1309
+ "function_signatures": {
1310
+ "register_serde_event_listener": [
1311
+ "listener"
1312
+ ],
1313
+ "emit_serde_event": [
1314
+ "event"
1315
+ ]
1316
+ },
1317
+ "description": "Discovered via AST scan"
1318
+ },
1319
+ {
1320
+ "package": "libs.checkpoint.langgraph.checkpoint.serde",
1321
+ "module": "base",
1322
+ "functions": [
1323
+ "maybe_add_typed_methods"
1324
+ ],
1325
+ "classes": [
1326
+ "CipherProtocol",
1327
+ "SerializerCompat",
1328
+ "SerializerProtocol",
1329
+ "UntypedSerializerProtocol"
1330
+ ],
1331
+ "function_signatures": {
1332
+ "maybe_add_typed_methods": [
1333
+ "serde"
1334
+ ]
1335
+ },
1336
+ "description": "Discovered via AST scan"
1337
+ },
1338
+ {
1339
+ "package": "libs.checkpoint.langgraph.checkpoint.base",
1340
+ "module": "id",
1341
+ "functions": [
1342
+ "uuid6"
1343
+ ],
1344
+ "classes": [
1345
+ "UUID"
1346
+ ],
1347
+ "function_signatures": {
1348
+ "uuid6": [
1349
+ "node",
1350
+ "clock_seq"
1351
+ ]
1352
+ },
1353
+ "description": "Discovered via AST scan"
1354
+ },
1355
+ {
1356
+ "package": "libs.checkpoint.langgraph.checkpoint",
1357
+ "module": "base",
1358
+ "functions": [
1359
+ "copy_checkpoint",
1360
+ "create_checkpoint",
1361
+ "empty_checkpoint",
1362
+ "get_checkpoint_id",
1363
+ "get_checkpoint_metadata",
1364
+ "get_serializable_checkpoint_metadata"
1365
+ ],
1366
+ "classes": [
1367
+ "BaseCheckpointSaver",
1368
+ "Checkpoint",
1369
+ "CheckpointMetadata",
1370
+ "CheckpointTuple",
1371
+ "EmptyChannelError"
1372
+ ],
1373
+ "function_signatures": {
1374
+ "copy_checkpoint": [
1375
+ "checkpoint"
1376
+ ],
1377
+ "get_checkpoint_id": [
1378
+ "config"
1379
+ ],
1380
+ "get_checkpoint_metadata": [
1381
+ "config",
1382
+ "metadata"
1383
+ ],
1384
+ "get_serializable_checkpoint_metadata": [
1385
+ "config",
1386
+ "metadata"
1387
+ ],
1388
+ "empty_checkpoint": [],
1389
+ "create_checkpoint": [
1390
+ "checkpoint",
1391
+ "channels",
1392
+ "step"
1393
+ ]
1394
+ },
1395
+ "description": "Discovered via AST scan"
1396
+ },
1397
+ {
1398
+ "package": "libs.checkpoint.langgraph.cache",
1399
+ "module": "memory",
1400
+ "functions": [],
1401
+ "classes": [
1402
+ "InMemoryCache"
1403
+ ],
1404
+ "function_signatures": {},
1405
+ "description": "Discovered via AST scan"
1406
+ },
1407
+ {
1408
+ "package": "libs.checkpoint.langgraph.cache",
1409
+ "module": "redis",
1410
+ "functions": [],
1411
+ "classes": [
1412
+ "RedisCache"
1413
+ ],
1414
+ "function_signatures": {},
1415
+ "description": "Discovered via AST scan"
1416
+ },
1417
+ {
1418
+ "package": "libs.checkpoint.langgraph.cache",
1419
+ "module": "base",
1420
+ "functions": [],
1421
+ "classes": [
1422
+ "BaseCache"
1423
+ ],
1424
+ "function_signatures": {},
1425
+ "description": "Discovered via AST scan"
1426
+ },
1427
+ {
1428
+ "package": "libs.checkpoint.langgraph.store",
1429
+ "module": "memory",
1430
+ "functions": [],
1431
+ "classes": [
1432
+ "InMemoryStore"
1433
+ ],
1434
+ "function_signatures": {},
1435
+ "description": "Discovered via AST scan"
1436
+ },
1437
+ {
1438
+ "package": "libs.checkpoint.langgraph.store.base",
1439
+ "module": "embed",
1440
+ "functions": [
1441
+ "ensure_embeddings",
1442
+ "get_text_at_path",
1443
+ "tokenize_path"
1444
+ ],
1445
+ "classes": [
1446
+ "EmbeddingsLambda"
1447
+ ],
1448
+ "function_signatures": {
1449
+ "ensure_embeddings": [
1450
+ "embed"
1451
+ ],
1452
+ "get_text_at_path": [
1453
+ "obj",
1454
+ "path"
1455
+ ],
1456
+ "tokenize_path": [
1457
+ "path"
1458
+ ]
1459
+ },
1460
+ "description": "Discovered via AST scan"
1461
+ },
1462
+ {
1463
+ "package": "libs.checkpoint.langgraph.store.base",
1464
+ "module": "batch",
1465
+ "functions": [],
1466
+ "classes": [
1467
+ "AsyncBatchedBaseStore"
1468
+ ],
1469
+ "function_signatures": {},
1470
+ "description": "Discovered via AST scan"
1471
+ },
1472
+ {
1473
+ "package": "libs.checkpoint.langgraph.store",
1474
+ "module": "base",
1475
+ "functions": [],
1476
+ "classes": [
1477
+ "BaseStore",
1478
+ "GetOp",
1479
+ "IndexConfig",
1480
+ "InvalidNamespaceError",
1481
+ "Item",
1482
+ "ListNamespacesOp",
1483
+ "MatchCondition",
1484
+ "NotProvided",
1485
+ "PutOp",
1486
+ "SearchItem",
1487
+ "SearchOp",
1488
+ "TTLConfig"
1489
+ ],
1490
+ "function_signatures": {},
1491
+ "description": "Discovered via AST scan"
1492
+ },
1493
+ {
1494
+ "package": "libs.sdk-py.langgraph_sdk",
1495
+ "module": "sse",
1496
+ "functions": [
1497
+ "iter_lines_raw"
1498
+ ],
1499
+ "classes": [
1500
+ "BytesLineDecoder",
1501
+ "SSEDecoder"
1502
+ ],
1503
+ "function_signatures": {
1504
+ "iter_lines_raw": [
1505
+ "response"
1506
+ ]
1507
+ },
1508
+ "description": "Discovered via AST scan"
1509
+ },
1510
+ {
1511
+ "package": "libs.sdk-py.langgraph_sdk",
1512
+ "module": "errors",
1513
+ "functions": [],
1514
+ "classes": [
1515
+ "APIConnectionError",
1516
+ "APIError",
1517
+ "APIResponseValidationError",
1518
+ "APIStatusError",
1519
+ "APITimeoutError",
1520
+ "AuthenticationError",
1521
+ "BadRequestError",
1522
+ "ConflictError",
1523
+ "InternalServerError",
1524
+ "LangGraphError",
1525
+ "NotFoundError",
1526
+ "PermissionDeniedError",
1527
+ "RateLimitError",
1528
+ "UnprocessableEntityError"
1529
+ ],
1530
+ "function_signatures": {},
1531
+ "description": "Discovered via AST scan"
1532
+ },
1533
+ {
1534
+ "package": "libs.sdk-py.langgraph_sdk",
1535
+ "module": "schema",
1536
+ "functions": [],
1537
+ "classes": [
1538
+ "Assistant",
1539
+ "AssistantBase",
1540
+ "AssistantVersion",
1541
+ "AssistantsSearchResponse",
1542
+ "Checkpoint",
1543
+ "CheckpointPayload",
1544
+ "CheckpointTaskPayload",
1545
+ "CheckpointsStreamPart",
1546
+ "Command",
1547
+ "Config",
1548
+ "Cron",
1549
+ "CronUpdate",
1550
+ "CustomStreamPart",
1551
+ "DebugStreamPart",
1552
+ "GraphSchema",
1553
+ "Interrupt",
1554
+ "Item",
1555
+ "ListNamespaceResponse",
1556
+ "MessagesCompleteStreamPart",
1557
+ "MessagesMetadataStreamPart",
1558
+ "MessagesPartialStreamPart",
1559
+ "MessagesTupleStreamPart",
1560
+ "MetadataStreamPart",
1561
+ "Run",
1562
+ "RunCreate",
1563
+ "RunCreateMetadata",
1564
+ "RunMetadataPayload",
1565
+ "SearchItem",
1566
+ "SearchItemsResponse",
1567
+ "Send",
1568
+ "StreamPart",
1569
+ "TaskPayload",
1570
+ "TaskResultPayload",
1571
+ "TasksStreamPart",
1572
+ "Thread",
1573
+ "ThreadState",
1574
+ "ThreadTask",
1575
+ "ThreadUpdateStateResponse",
1576
+ "UpdatesStreamPart",
1577
+ "ValuesStreamPart"
1578
+ ],
1579
+ "function_signatures": {},
1580
+ "description": "Discovered via AST scan"
1581
+ },
1582
+ {
1583
+ "package": "libs.sdk-py.langgraph_sdk",
1584
+ "module": "encryption",
1585
+ "functions": [],
1586
+ "classes": [
1587
+ "DuplicateHandlerError",
1588
+ "Encryption",
1589
+ "LangGraphBetaWarning"
1590
+ ],
1591
+ "function_signatures": {},
1592
+ "description": "Discovered via AST scan"
1593
+ },
1594
+ {
1595
+ "package": "libs.sdk-py.langgraph_sdk.encryption",
1596
+ "module": "types",
1597
+ "functions": [],
1598
+ "classes": [
1599
+ "EncryptionContext"
1600
+ ],
1601
+ "function_signatures": {},
1602
+ "description": "Discovered via AST scan"
1603
+ },
1604
+ {
1605
+ "package": "libs.sdk-py.langgraph_sdk._async",
1606
+ "module": "store",
1607
+ "functions": [],
1608
+ "classes": [
1609
+ "StoreClient"
1610
+ ],
1611
+ "function_signatures": {},
1612
+ "description": "Discovered via AST scan"
1613
+ },
1614
+ {
1615
+ "package": "libs.sdk-py.langgraph_sdk._async",
1616
+ "module": "assistants",
1617
+ "functions": [],
1618
+ "classes": [
1619
+ "AssistantsClient"
1620
+ ],
1621
+ "function_signatures": {},
1622
+ "description": "Discovered via AST scan"
1623
+ },
1624
+ {
1625
+ "package": "libs.sdk-py.langgraph_sdk._async",
1626
+ "module": "cron",
1627
+ "functions": [],
1628
+ "classes": [
1629
+ "CronClient"
1630
+ ],
1631
+ "function_signatures": {},
1632
+ "description": "Discovered via AST scan"
1633
+ },
1634
+ {
1635
+ "package": "libs.sdk-py.langgraph_sdk._async",
1636
+ "module": "client",
1637
+ "functions": [
1638
+ "get_client"
1639
+ ],
1640
+ "classes": [
1641
+ "LangGraphClient"
1642
+ ],
1643
+ "function_signatures": {
1644
+ "get_client": []
1645
+ },
1646
+ "description": "Discovered via AST scan"
1647
+ },
1648
+ {
1649
+ "package": "libs.sdk-py.langgraph_sdk._async",
1650
+ "module": "threads",
1651
+ "functions": [],
1652
+ "classes": [
1653
+ "ThreadsClient"
1654
+ ],
1655
+ "function_signatures": {},
1656
+ "description": "Discovered via AST scan"
1657
+ },
1658
+ {
1659
+ "package": "libs.sdk-py.langgraph_sdk._async",
1660
+ "module": "http",
1661
+ "functions": [],
1662
+ "classes": [
1663
+ "HttpClient"
1664
+ ],
1665
+ "function_signatures": {},
1666
+ "description": "Discovered via AST scan"
1667
+ },
1668
+ {
1669
+ "package": "libs.sdk-py.langgraph_sdk._async",
1670
+ "module": "runs",
1671
+ "functions": [],
1672
+ "classes": [
1673
+ "RunsClient"
1674
+ ],
1675
+ "function_signatures": {},
1676
+ "description": "Discovered via AST scan"
1677
+ },
1678
+ {
1679
+ "package": "libs.sdk-py.langgraph_sdk",
1680
+ "module": "auth",
1681
+ "functions": [
1682
+ "is_studio_user"
1683
+ ],
1684
+ "classes": [
1685
+ "Auth"
1686
+ ],
1687
+ "function_signatures": {
1688
+ "is_studio_user": [
1689
+ "user"
1690
+ ]
1691
+ },
1692
+ "description": "Discovered via AST scan"
1693
+ },
1694
+ {
1695
+ "package": "libs.sdk-py.langgraph_sdk.auth",
1696
+ "module": "types",
1697
+ "functions": [],
1698
+ "classes": [
1699
+ "AssistantsCreate",
1700
+ "AssistantsDelete",
1701
+ "AssistantsRead",
1702
+ "AssistantsSearch",
1703
+ "AssistantsUpdate",
1704
+ "AuthContext",
1705
+ "BaseAuthContext",
1706
+ "BaseUser",
1707
+ "CronsCreate",
1708
+ "CronsDelete",
1709
+ "CronsRead",
1710
+ "CronsSearch",
1711
+ "CronsUpdate",
1712
+ "MinimalUser",
1713
+ "MinimalUserDict",
1714
+ "RunsCreate",
1715
+ "StoreDelete",
1716
+ "StoreGet",
1717
+ "StoreListNamespaces",
1718
+ "StorePut",
1719
+ "StoreSearch",
1720
+ "StudioUser",
1721
+ "ThreadTTL",
1722
+ "ThreadsCreate",
1723
+ "ThreadsDelete",
1724
+ "ThreadsRead",
1725
+ "ThreadsSearch",
1726
+ "ThreadsUpdate",
1727
+ "on"
1728
+ ],
1729
+ "function_signatures": {},
1730
+ "description": "Discovered via AST scan"
1731
+ },
1732
+ {
1733
+ "package": "libs.sdk-py.langgraph_sdk.auth",
1734
+ "module": "exceptions",
1735
+ "functions": [],
1736
+ "classes": [
1737
+ "HTTPException"
1738
+ ],
1739
+ "function_signatures": {},
1740
+ "description": "Discovered via AST scan"
1741
+ },
1742
+ {
1743
+ "package": "libs.sdk-py.langgraph_sdk._shared",
1744
+ "module": "utilities",
1745
+ "functions": [
1746
+ "configure_loopback_transports",
1747
+ "get_asgi_transport"
1748
+ ],
1749
+ "classes": [],
1750
+ "function_signatures": {
1751
+ "configure_loopback_transports": [
1752
+ "app"
1753
+ ],
1754
+ "get_asgi_transport": []
1755
+ },
1756
+ "description": "Discovered via AST scan"
1757
+ },
1758
+ {
1759
+ "package": "libs.sdk-py.langgraph_sdk._sync",
1760
+ "module": "store",
1761
+ "functions": [],
1762
+ "classes": [
1763
+ "SyncStoreClient"
1764
+ ],
1765
+ "function_signatures": {},
1766
+ "description": "Discovered via AST scan"
1767
+ },
1768
+ {
1769
+ "package": "libs.sdk-py.langgraph_sdk._sync",
1770
+ "module": "assistants",
1771
+ "functions": [],
1772
+ "classes": [
1773
+ "SyncAssistantsClient"
1774
+ ],
1775
+ "function_signatures": {},
1776
+ "description": "Discovered via AST scan"
1777
+ },
1778
+ {
1779
+ "package": "libs.sdk-py.langgraph_sdk._sync",
1780
+ "module": "cron",
1781
+ "functions": [],
1782
+ "classes": [
1783
+ "SyncCronClient"
1784
+ ],
1785
+ "function_signatures": {},
1786
+ "description": "Discovered via AST scan"
1787
+ },
1788
+ {
1789
+ "package": "libs.sdk-py.langgraph_sdk._sync",
1790
+ "module": "client",
1791
+ "functions": [
1792
+ "get_sync_client"
1793
+ ],
1794
+ "classes": [
1795
+ "SyncLangGraphClient"
1796
+ ],
1797
+ "function_signatures": {
1798
+ "get_sync_client": []
1799
+ },
1800
+ "description": "Discovered via AST scan"
1801
+ },
1802
+ {
1803
+ "package": "libs.sdk-py.langgraph_sdk._sync",
1804
+ "module": "threads",
1805
+ "functions": [],
1806
+ "classes": [
1807
+ "SyncThreadsClient"
1808
+ ],
1809
+ "function_signatures": {},
1810
+ "description": "Discovered via AST scan"
1811
+ },
1812
+ {
1813
+ "package": "libs.sdk-py.langgraph_sdk._sync",
1814
+ "module": "http",
1815
+ "functions": [],
1816
+ "classes": [
1817
+ "SyncHttpClient"
1818
+ ],
1819
+ "function_signatures": {},
1820
+ "description": "Discovered via AST scan"
1821
+ },
1822
+ {
1823
+ "package": "libs.sdk-py.langgraph_sdk._sync",
1824
+ "module": "runs",
1825
+ "functions": [],
1826
+ "classes": [
1827
+ "SyncRunsClient"
1828
+ ],
1829
+ "function_signatures": {},
1830
+ "description": "Discovered via AST scan"
1831
+ },
1832
+ {
1833
+ "package": "libs.prebuilt.langgraph.prebuilt",
1834
+ "module": "interrupt",
1835
+ "functions": [],
1836
+ "classes": [
1837
+ "ActionRequest",
1838
+ "HumanInterrupt",
1839
+ "HumanInterruptConfig",
1840
+ "HumanResponse"
1841
+ ],
1842
+ "function_signatures": {},
1843
+ "description": "Discovered via AST scan"
1844
+ },
1845
+ {
1846
+ "package": "libs.prebuilt.langgraph.prebuilt",
1847
+ "module": "tool_validator",
1848
+ "functions": [],
1849
+ "classes": [
1850
+ "ValidationNode"
1851
+ ],
1852
+ "function_signatures": {},
1853
+ "description": "Discovered via AST scan"
1854
+ },
1855
+ {
1856
+ "package": "libs.prebuilt.langgraph.prebuilt",
1857
+ "module": "chat_agent_executor",
1858
+ "functions": [
1859
+ "create_react_agent"
1860
+ ],
1861
+ "classes": [
1862
+ "AgentState",
1863
+ "AgentStatePydantic"
1864
+ ],
1865
+ "function_signatures": {
1866
+ "create_react_agent": [
1867
+ "model",
1868
+ "tools"
1869
+ ]
1870
+ },
1871
+ "description": "Discovered via AST scan"
1872
+ },
1873
+ {
1874
+ "package": "libs.prebuilt.langgraph.prebuilt",
1875
+ "module": "tool_node",
1876
+ "functions": [
1877
+ "msg_content_output",
1878
+ "tools_condition"
1879
+ ],
1880
+ "classes": [
1881
+ "InjectedState",
1882
+ "InjectedStore",
1883
+ "ToolCallRequest",
1884
+ "ToolCallWithContext",
1885
+ "ToolInvocationError",
1886
+ "ToolNode",
1887
+ "ToolRuntime"
1888
+ ],
1889
+ "function_signatures": {
1890
+ "msg_content_output": [
1891
+ "output"
1892
+ ],
1893
+ "tools_condition": [
1894
+ "state",
1895
+ "messages_key"
1896
+ ]
1897
+ },
1898
+ "description": "Discovered via AST scan"
1899
+ },
1900
+ {
1901
+ "package": "libs.cli",
1902
+ "module": "generate_schema",
1903
+ "functions": [
1904
+ "add_descriptions_to_schema",
1905
+ "generate_schema",
1906
+ "main"
1907
+ ],
1908
+ "classes": [],
1909
+ "function_signatures": {
1910
+ "add_descriptions_to_schema": [
1911
+ "schema",
1912
+ "cls"
1913
+ ],
1914
+ "generate_schema": [],
1915
+ "main": []
1916
+ },
1917
+ "description": "Discovered via AST scan"
1918
+ },
1919
+ {
1920
+ "package": "libs.cli.langgraph_cli",
1921
+ "module": "config",
1922
+ "functions": [
1923
+ "config_to_compose",
1924
+ "config_to_docker",
1925
+ "default_base_image",
1926
+ "docker_tag",
1927
+ "get_build_tools_to_uninstall",
1928
+ "has_disallowed_build_command_content",
1929
+ "node_config_to_docker",
1930
+ "python_config_to_docker",
1931
+ "validate_config",
1932
+ "validate_config_file"
1933
+ ],
1934
+ "classes": [
1935
+ "LocalDeps"
1936
+ ],
1937
+ "function_signatures": {
1938
+ "has_disallowed_build_command_content": [
1939
+ "command"
1940
+ ],
1941
+ "validate_config": [
1942
+ "config"
1943
+ ],
1944
+ "validate_config_file": [
1945
+ "config_path"
1946
+ ],
1947
+ "get_build_tools_to_uninstall": [
1948
+ "config"
1949
+ ],
1950
+ "python_config_to_docker": [
1951
+ "config_path",
1952
+ "config",
1953
+ "base_image",
1954
+ "api_version"
1955
+ ],
1956
+ "node_config_to_docker": [
1957
+ "config_path",
1958
+ "config",
1959
+ "base_image",
1960
+ "api_version",
1961
+ "install_command",
1962
+ "build_command",
1963
+ "build_context"
1964
+ ],
1965
+ "default_base_image": [
1966
+ "config",
1967
+ "engine_runtime_mode"
1968
+ ],
1969
+ "docker_tag": [
1970
+ "config",
1971
+ "base_image",
1972
+ "api_version"
1973
+ ],
1974
+ "config_to_docker": [
1975
+ "config_path",
1976
+ "config"
1977
+ ],
1978
+ "config_to_compose": [
1979
+ "config_path",
1980
+ "config",
1981
+ "base_image",
1982
+ "api_version",
1983
+ "image",
1984
+ "watch",
1985
+ "engine_runtime_mode"
1986
+ ]
1987
+ },
1988
+ "description": "Discovered via AST scan"
1989
+ },
1990
+ {
1991
+ "package": "libs.cli.langgraph_cli",
1992
+ "module": "host_backend",
1993
+ "functions": [],
1994
+ "classes": [
1995
+ "HostBackendClient",
1996
+ "HostBackendError"
1997
+ ],
1998
+ "function_signatures": {},
1999
+ "description": "Discovered via AST scan"
2000
+ },
2001
+ {
2002
+ "package": "libs.cli.langgraph_cli",
2003
+ "module": "util",
2004
+ "functions": [
2005
+ "clean_empty_lines",
2006
+ "format_deployments_table",
2007
+ "warn_non_wolfi_distro"
2008
+ ],
2009
+ "classes": [],
2010
+ "function_signatures": {
2011
+ "clean_empty_lines": [
2012
+ "input_str"
2013
+ ],
2014
+ "warn_non_wolfi_distro": [
2015
+ "config_json"
2016
+ ],
2017
+ "format_deployments_table": [
2018
+ "deployments"
2019
+ ]
2020
+ },
2021
+ "description": "Discovered via AST scan"
2022
+ },
2023
+ {
2024
+ "package": "libs.cli.langgraph_cli",
2025
+ "module": "exec",
2026
+ "functions": [
2027
+ "Runner"
2028
+ ],
2029
+ "classes": [],
2030
+ "function_signatures": {
2031
+ "Runner": []
2032
+ },
2033
+ "description": "Discovered via AST scan"
2034
+ },
2035
+ {
2036
+ "package": "libs.cli.langgraph_cli",
2037
+ "module": "docker",
2038
+ "functions": [
2039
+ "check_capabilities",
2040
+ "compose",
2041
+ "compose_as_dict",
2042
+ "debugger_compose",
2043
+ "dict_to_yaml"
2044
+ ],
2045
+ "classes": [
2046
+ "DockerCapabilities",
2047
+ "Version"
2048
+ ],
2049
+ "function_signatures": {
2050
+ "check_capabilities": [
2051
+ "runner"
2052
+ ],
2053
+ "debugger_compose": [],
2054
+ "dict_to_yaml": [
2055
+ "d"
2056
+ ],
2057
+ "compose_as_dict": [
2058
+ "capabilities"
2059
+ ],
2060
+ "compose": [
2061
+ "capabilities"
2062
+ ]
2063
+ },
2064
+ "description": "Discovered via AST scan"
2065
+ },
2066
+ {
2067
+ "package": "libs.cli.langgraph_cli",
2068
+ "module": "templates",
2069
+ "functions": [
2070
+ "create_new"
2071
+ ],
2072
+ "classes": [],
2073
+ "function_signatures": {
2074
+ "create_new": [
2075
+ "path",
2076
+ "template"
2077
+ ]
2078
+ },
2079
+ "description": "Discovered via AST scan"
2080
+ },
2081
+ {
2082
+ "package": "libs.cli.langgraph_cli",
2083
+ "module": "schemas",
2084
+ "functions": [],
2085
+ "classes": [
2086
+ "AuthConfig",
2087
+ "CacheConfig",
2088
+ "CheckpointerConfig",
2089
+ "Config",
2090
+ "ConfigurableHeaderConfig",
2091
+ "CorsConfig",
2092
+ "EncryptionConfig",
2093
+ "GraphDef",
2094
+ "HttpConfig",
2095
+ "IndexConfig",
2096
+ "SecurityConfig",
2097
+ "SerdeConfig",
2098
+ "StoreConfig",
2099
+ "TTLConfig",
2100
+ "ThreadTTLConfig",
2101
+ "WebhookUrlPolicy",
2102
+ "WebhooksConfig"
2103
+ ],
2104
+ "function_signatures": {},
2105
+ "description": "Discovered via AST scan"
2106
+ },
2107
+ {
2108
+ "package": "libs.cli.langgraph_cli",
2109
+ "module": "cli",
2110
+ "functions": [
2111
+ "build",
2112
+ "cli",
2113
+ "deploy",
2114
+ "deploy_delete",
2115
+ "deploy_list",
2116
+ "deploy_logs",
2117
+ "dev",
2118
+ "dockerfile",
2119
+ "new",
2120
+ "prepare",
2121
+ "prepare_args_and_stdin",
2122
+ "up"
2123
+ ],
2124
+ "classes": [
2125
+ "DeployGroup",
2126
+ "NestedHelpGroup"
2127
+ ],
2128
+ "function_signatures": {
2129
+ "cli": [],
2130
+ "up": [
2131
+ "config",
2132
+ "docker_compose",
2133
+ "port",
2134
+ "recreate",
2135
+ "pull",
2136
+ "watch",
2137
+ "wait",
2138
+ "verbose",
2139
+ "debugger_port",
2140
+ "debugger_base_url",
2141
+ "postgres_uri",
2142
+ "api_version",
2143
+ "engine_runtime_mode",
2144
+ "image",
2145
+ "base_image"
2146
+ ],
2147
+ "build": [
2148
+ "config",
2149
+ "docker_build_args",
2150
+ "base_image",
2151
+ "api_version",
2152
+ "engine_runtime_mode",
2153
+ "pull",
2154
+ "tag",
2155
+ "install_command",
2156
+ "build_command"
2157
+ ],
2158
+ "deploy": [
2159
+ "ctx"
2160
+ ],
2161
+ "deploy_list": [
2162
+ "api_key",
2163
+ "host_url",
2164
+ "name_contains"
2165
+ ],
2166
+ "deploy_delete": [
2167
+ "api_key",
2168
+ "host_url",
2169
+ "force",
2170
+ "deployment_id"
2171
+ ],
2172
+ "deploy_logs": [
2173
+ "api_key",
2174
+ "name",
2175
+ "deployment_id",
2176
+ "log_type",
2177
+ "revision_id",
2178
+ "level",
2179
+ "limit",
2180
+ "query",
2181
+ "start_time",
2182
+ "end_time",
2183
+ "follow",
2184
+ "host_url"
2185
+ ],
2186
+ "dockerfile": [
2187
+ "save_path",
2188
+ "config",
2189
+ "add_docker_compose",
2190
+ "base_image",
2191
+ "api_version",
2192
+ "engine_runtime_mode"
2193
+ ],
2194
+ "dev": [
2195
+ "host",
2196
+ "port",
2197
+ "no_reload",
2198
+ "config",
2199
+ "n_jobs_per_worker",
2200
+ "no_browser",
2201
+ "debug_port",
2202
+ "wait_for_client",
2203
+ "studio_url",
2204
+ "allow_blocking",
2205
+ "tunnel",
2206
+ "server_log_level"
2207
+ ],
2208
+ "new": [
2209
+ "path",
2210
+ "template"
2211
+ ],
2212
+ "prepare_args_and_stdin": [],
2213
+ "prepare": [
2214
+ "runner"
2215
+ ]
2216
+ },
2217
+ "description": "Discovered via AST scan"
2218
+ },
2219
+ {
2220
+ "package": "libs.cli.langgraph_cli",
2221
+ "module": "analytics",
2222
+ "functions": [
2223
+ "get_anonymized_params",
2224
+ "log_command",
2225
+ "log_data"
2226
+ ],
2227
+ "classes": [
2228
+ "LogData"
2229
+ ],
2230
+ "function_signatures": {
2231
+ "get_anonymized_params": [
2232
+ "kwargs"
2233
+ ],
2234
+ "log_data": [
2235
+ "data"
2236
+ ],
2237
+ "log_command": [
2238
+ "func"
2239
+ ]
2240
+ },
2241
+ "description": "Discovered via AST scan"
2242
+ },
2243
+ {
2244
+ "package": "libs.cli.langgraph_cli",
2245
+ "module": "progress",
2246
+ "functions": [],
2247
+ "classes": [
2248
+ "Progress"
2249
+ ],
2250
+ "function_signatures": {},
2251
+ "description": "Discovered via AST scan"
2252
+ },
2253
+ {
2254
+ "package": "libs.cli.langgraph_cli",
2255
+ "module": "helpers",
2256
+ "functions": [
2257
+ "format_log_entry",
2258
+ "format_timestamp",
2259
+ "level_fg",
2260
+ "resolve_deployment_id"
2261
+ ],
2262
+ "classes": [],
2263
+ "function_signatures": {
2264
+ "resolve_deployment_id": [
2265
+ "client",
2266
+ "deployment_id",
2267
+ "name"
2268
+ ],
2269
+ "format_timestamp": [
2270
+ "ts"
2271
+ ],
2272
+ "format_log_entry": [
2273
+ "entry"
2274
+ ],
2275
+ "level_fg": [
2276
+ "level"
2277
+ ]
2278
+ },
2279
+ "description": "Discovered via AST scan"
2280
+ },
2281
+ {
2282
+ "package": "libs.clithon-monorepo-example.libs.shared.src.shared",
2283
+ "module": "utils",
2284
+ "functions": [
2285
+ "get_dummy_message"
2286
+ ],
2287
+ "classes": [],
2288
+ "function_signatures": {
2289
+ "get_dummy_message": []
2290
+ },
2291
+ "description": "Discovered via AST scan"
2292
+ },
2293
+ {
2294
+ "package": "libs.clithon-monorepo-example.libs.common",
2295
+ "module": "helpers",
2296
+ "functions": [
2297
+ "get_common_prefix"
2298
+ ],
2299
+ "classes": [],
2300
+ "function_signatures": {
2301
+ "get_common_prefix": []
2302
+ },
2303
+ "description": "Discovered via AST scan"
2304
+ },
2305
+ {
2306
+ "package": "libs.clithon-monorepo-example.apps.agent.src.agent",
2307
+ "module": "graph",
2308
+ "functions": [
2309
+ "call_model",
2310
+ "should_continue"
2311
+ ],
2312
+ "classes": [],
2313
+ "function_signatures": {
2314
+ "call_model": [
2315
+ "state"
2316
+ ],
2317
+ "should_continue": [
2318
+ "state"
2319
+ ]
2320
+ },
2321
+ "description": "Discovered via AST scan"
2322
+ },
2323
+ {
2324
+ "package": "libs.clithon-monorepo-example.apps.agent.src.agent",
2325
+ "module": "state",
2326
+ "functions": [],
2327
+ "classes": [
2328
+ "State"
2329
+ ],
2330
+ "function_signatures": {},
2331
+ "description": "Discovered via AST scan"
2332
+ },
2333
+ {
2334
+ "package": "libs.cli.examples",
2335
+ "module": "my_app",
2336
+ "functions": [],
2337
+ "classes": [
2338
+ "MyContextMiddleware"
2339
+ ],
2340
+ "function_signatures": {},
2341
+ "description": "Discovered via AST scan"
2342
+ },
2343
+ {
2344
+ "package": "libs.cli.examples.graphs_reqs_b.graphs_submod",
2345
+ "module": "agent",
2346
+ "functions": [
2347
+ "call_model",
2348
+ "should_continue"
2349
+ ],
2350
+ "classes": [
2351
+ "AgentContext",
2352
+ "AgentState"
2353
+ ],
2354
+ "function_signatures": {
2355
+ "should_continue": [
2356
+ "state"
2357
+ ],
2358
+ "call_model": [
2359
+ "state",
2360
+ "runtime"
2361
+ ]
2362
+ },
2363
+ "description": "Discovered via AST scan"
2364
+ },
2365
+ {
2366
+ "package": "libs.cli.examples.graphs_reqs_b.utils",
2367
+ "module": "greeter",
2368
+ "functions": [
2369
+ "greet"
2370
+ ],
2371
+ "classes": [],
2372
+ "function_signatures": {
2373
+ "greet": []
2374
+ },
2375
+ "description": "Discovered via AST scan"
2376
+ },
2377
+ {
2378
+ "package": "libs.cli.examples.graph_prerelease_reqs_fail",
2379
+ "module": "agent",
2380
+ "functions": [
2381
+ "call_model",
2382
+ "should_continue"
2383
+ ],
2384
+ "classes": [
2385
+ "AgentState",
2386
+ "ContextSchema"
2387
+ ],
2388
+ "function_signatures": {
2389
+ "should_continue": [
2390
+ "state"
2391
+ ],
2392
+ "call_model": [
2393
+ "state",
2394
+ "config"
2395
+ ]
2396
+ },
2397
+ "description": "Discovered via AST scan"
2398
+ },
2399
+ {
2400
+ "package": "libs.cli.examples.graph_prerelease_reqs",
2401
+ "module": "agent",
2402
+ "functions": [
2403
+ "call_model",
2404
+ "should_continue"
2405
+ ],
2406
+ "classes": [
2407
+ "AgentState",
2408
+ "ContextSchema"
2409
+ ],
2410
+ "function_signatures": {
2411
+ "should_continue": [
2412
+ "state"
2413
+ ],
2414
+ "call_model": [
2415
+ "state",
2416
+ "config"
2417
+ ]
2418
+ },
2419
+ "description": "Discovered via AST scan"
2420
+ },
2421
+ {
2422
+ "package": "libs.cli.examples.graphs",
2423
+ "module": "storm",
2424
+ "functions": [
2425
+ "add_messages",
2426
+ "format_conversation",
2427
+ "format_doc",
2428
+ "format_docs",
2429
+ "route_messages",
2430
+ "swap_roles",
2431
+ "tag_with_name",
2432
+ "update_editor",
2433
+ "update_references"
2434
+ ],
2435
+ "classes": [
2436
+ "AnswerWithCitations",
2437
+ "Editor",
2438
+ "InterviewState",
2439
+ "Outline",
2440
+ "Perspectives",
2441
+ "Queries",
2442
+ "RelatedSubjects",
2443
+ "ResearchState",
2444
+ "Section",
2445
+ "SubSection",
2446
+ "Subsection",
2447
+ "WikiSection"
2448
+ ],
2449
+ "function_signatures": {
2450
+ "format_doc": [
2451
+ "doc",
2452
+ "max_length"
2453
+ ],
2454
+ "format_docs": [
2455
+ "docs"
2456
+ ],
2457
+ "add_messages": [
2458
+ "left",
2459
+ "right"
2460
+ ],
2461
+ "update_references": [
2462
+ "references",
2463
+ "new_references"
2464
+ ],
2465
+ "update_editor": [
2466
+ "editor",
2467
+ "new_editor"
2468
+ ],
2469
+ "tag_with_name": [
2470
+ "ai_message",
2471
+ "name"
2472
+ ],
2473
+ "swap_roles": [
2474
+ "state",
2475
+ "name"
2476
+ ],
2477
+ "route_messages": [
2478
+ "state",
2479
+ "name"
2480
+ ],
2481
+ "format_conversation": [
2482
+ "interview_state"
2483
+ ]
2484
+ },
2485
+ "description": "Discovered via AST scan"
2486
+ },
2487
+ {
2488
+ "package": "libs.cli.examples.graphs",
2489
+ "module": "agent",
2490
+ "functions": [
2491
+ "call_model",
2492
+ "should_continue"
2493
+ ],
2494
+ "classes": [
2495
+ "AgentContext",
2496
+ "AgentState"
2497
+ ],
2498
+ "function_signatures": {
2499
+ "should_continue": [
2500
+ "state"
2501
+ ],
2502
+ "call_model": [
2503
+ "state",
2504
+ "runtime"
2505
+ ]
2506
+ },
2507
+ "description": "Discovered via AST scan"
2508
+ },
2509
+ {
2510
+ "package": "libs.cli.examples.graphs_reqs_a.graphs_submod",
2511
+ "module": "agent",
2512
+ "functions": [
2513
+ "call_model",
2514
+ "should_continue"
2515
+ ],
2516
+ "classes": [
2517
+ "AgentContext",
2518
+ "AgentState"
2519
+ ],
2520
+ "function_signatures": {
2521
+ "should_continue": [
2522
+ "state"
2523
+ ],
2524
+ "call_model": [
2525
+ "state",
2526
+ "runtime"
2527
+ ]
2528
+ },
2529
+ "description": "Discovered via AST scan"
2530
+ },
2531
+ {
2532
+ "package": "libs.checkpoint-conformance.langgraph.checkpoint.conformance",
2533
+ "module": "test_utils",
2534
+ "functions": [
2535
+ "assert_checkpoint_equal",
2536
+ "assert_tuple_equal",
2537
+ "generate_checkpoint",
2538
+ "generate_config",
2539
+ "generate_metadata"
2540
+ ],
2541
+ "classes": [],
2542
+ "function_signatures": {
2543
+ "generate_checkpoint": [],
2544
+ "generate_config": [
2545
+ "thread_id"
2546
+ ],
2547
+ "generate_metadata": [
2548
+ "source",
2549
+ "step"
2550
+ ],
2551
+ "assert_checkpoint_equal": [
2552
+ "actual",
2553
+ "expected"
2554
+ ],
2555
+ "assert_tuple_equal": [
2556
+ "actual",
2557
+ "expected"
2558
+ ]
2559
+ },
2560
+ "description": "Discovered via AST scan"
2561
+ },
2562
+ {
2563
+ "package": "libs.checkpoint-conformance.langgraph.checkpoint.conformance",
2564
+ "module": "initializer",
2565
+ "functions": [
2566
+ "checkpointer_test"
2567
+ ],
2568
+ "classes": [
2569
+ "RegisteredCheckpointer"
2570
+ ],
2571
+ "function_signatures": {
2572
+ "checkpointer_test": [
2573
+ "name"
2574
+ ]
2575
+ },
2576
+ "description": "Discovered via AST scan"
2577
+ },
2578
+ {
2579
+ "package": "libs.checkpoint-conformance.langgraph.checkpoint.conformance",
2580
+ "module": "capabilities",
2581
+ "functions": [],
2582
+ "classes": [
2583
+ "Capability",
2584
+ "DetectedCapabilities"
2585
+ ],
2586
+ "function_signatures": {},
2587
+ "description": "Discovered via AST scan"
2588
+ },
2589
+ {
2590
+ "package": "libs.checkpoint-conformance.langgraph.checkpoint.conformance",
2591
+ "module": "report",
2592
+ "functions": [],
2593
+ "classes": [
2594
+ "CapabilityReport",
2595
+ "CapabilityResult",
2596
+ "ProgressCallbacks"
2597
+ ],
2598
+ "function_signatures": {},
2599
+ "description": "Discovered via AST scan"
2600
+ },
2601
+ {
2602
+ "package": "libs.checkpoint-sqlite.langgraph.checkpoint",
2603
+ "module": "sqlite",
2604
+ "functions": [],
2605
+ "classes": [
2606
+ "SqliteSaver"
2607
+ ],
2608
+ "function_signatures": {},
2609
+ "description": "Discovered via AST scan"
2610
+ },
2611
+ {
2612
+ "package": "libs.checkpoint-sqlite.langgraph.checkpoint.sqlite",
2613
+ "module": "utils",
2614
+ "functions": [
2615
+ "search_where"
2616
+ ],
2617
+ "classes": [],
2618
+ "function_signatures": {
2619
+ "search_where": [
2620
+ "config",
2621
+ "filter",
2622
+ "before"
2623
+ ]
2624
+ },
2625
+ "description": "Discovered via AST scan"
2626
+ },
2627
+ {
2628
+ "package": "libs.checkpoint-sqlite.langgraph.checkpoint.sqlite",
2629
+ "module": "aio",
2630
+ "functions": [],
2631
+ "classes": [
2632
+ "AsyncSqliteSaver"
2633
+ ],
2634
+ "function_signatures": {},
2635
+ "description": "Discovered via AST scan"
2636
+ },
2637
+ {
2638
+ "package": "libs.checkpoint-sqlite.langgraph.cache",
2639
+ "module": "sqlite",
2640
+ "functions": [],
2641
+ "classes": [
2642
+ "SqliteCache"
2643
+ ],
2644
+ "function_signatures": {},
2645
+ "description": "Discovered via AST scan"
2646
+ },
2647
+ {
2648
+ "package": "libs.checkpoint-sqlite.langgraph.store.sqlite",
2649
+ "module": "aio",
2650
+ "functions": [],
2651
+ "classes": [
2652
+ "AsyncSqliteStore"
2653
+ ],
2654
+ "function_signatures": {},
2655
+ "description": "Discovered via AST scan"
2656
+ },
2657
+ {
2658
+ "package": "libs.checkpoint-sqlite.langgraph.store.sqlite",
2659
+ "module": "base",
2660
+ "functions": [],
2661
+ "classes": [
2662
+ "BaseSqliteStore",
2663
+ "PreparedGetQuery",
2664
+ "SqliteIndexConfig",
2665
+ "SqliteStore"
2666
+ ],
2667
+ "function_signatures": {},
2668
+ "description": "Discovered via AST scan"
2669
+ },
2670
+ {
2671
+ "package": "examples.chatbot-simulation-evaluation",
2672
+ "module": "simulation_utils",
2673
+ "functions": [
2674
+ "add_messages",
2675
+ "create_chat_simulator",
2676
+ "create_simulated_user",
2677
+ "langchain_to_openai_messages"
2678
+ ],
2679
+ "classes": [
2680
+ "SimulationState"
2681
+ ],
2682
+ "function_signatures": {
2683
+ "langchain_to_openai_messages": [
2684
+ "messages"
2685
+ ],
2686
+ "create_simulated_user": [
2687
+ "system_prompt",
2688
+ "llm"
2689
+ ],
2690
+ "add_messages": [
2691
+ "left",
2692
+ "right"
2693
+ ],
2694
+ "create_chat_simulator": [
2695
+ "assistant",
2696
+ "simulated_user"
2697
+ ]
2698
+ },
2699
+ "description": "Discovered via AST scan"
2700
+ },
2701
+ {
2702
+ "package": ".github.scripts",
2703
+ "module": "check_sdk_methods",
2704
+ "functions": [
2705
+ "compare_sync_async_methods",
2706
+ "find_classes",
2707
+ "get_class_methods",
2708
+ "main"
2709
+ ],
2710
+ "classes": [],
2711
+ "function_signatures": {
2712
+ "get_class_methods": [
2713
+ "node"
2714
+ ],
2715
+ "find_classes": [
2716
+ "tree"
2717
+ ],
2718
+ "compare_sync_async_methods": [
2719
+ "sync_methods",
2720
+ "async_methods"
2721
+ ],
2722
+ "main": []
2723
+ },
2724
+ "description": "Discovered via AST scan"
2725
+ },
2726
+ {
2727
+ "package": ".github.scripts",
2728
+ "module": "run_langgraph_cli_test",
2729
+ "functions": [
2730
+ "test"
2731
+ ],
2732
+ "classes": [],
2733
+ "function_signatures": {
2734
+ "test": [
2735
+ "config",
2736
+ "port",
2737
+ "tag",
2738
+ "verbose"
2739
+ ]
2740
+ },
2741
+ "description": "Discovered via AST scan"
2742
+ }
2743
+ ],
2744
+ "cli_commands": [],
2745
+ "import_strategy": {
2746
+ "primary": "import",
2747
+ "fallback": "import",
2748
+ "confidence": 0.9
2749
+ },
2750
+ "dependencies": {
2751
+ "required": [],
2752
+ "optional": [
2753
+ "langgraph (expected from repository identity, not confirmed from scanned files)",
2754
+ "mcp SDK/runtime (expected from package naming, not confirmed from scanned files)"
2755
+ ]
2756
+ },
2757
+ "risk_assessment": {
2758
+ "import_feasibility": 0.22,
2759
+ "intrusiveness_risk": "medium",
2760
+ "complexity": "medium"
2761
+ }
2762
+ },
2763
+ "deepwiki_analysis": {
2764
+ "repo_url": "https://github.com/langchain-ai/langgraph",
2765
+ "repo_name": "langgraph",
2766
+ "error": "DeepWiki analysis failed",
2767
+ "model": "gpt-5.3-codex",
2768
+ "source": "llm_direct_analysis",
2769
+ "success": false
2770
+ },
2771
+ "deepwiki_options": {
2772
+ "enabled": true,
2773
+ "model": "gpt-5.3-codex"
2774
+ },
2775
+ "risk": {
2776
+ "import_feasibility": 0.22,
2777
+ "intrusiveness_risk": "medium",
2778
+ "complexity": "medium"
2779
+ }
2780
+ }
langgraph/mcp_output/diff_report.md ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Difference Report — **langgraph**
2
+
3
+ ## 1) Project Overview
4
+ - **Repository:** `langgraph`
5
+ - **Project Type:** Python library
6
+ - **Scope:** Basic functionality
7
+ - **Report Time:** 2026-03-13 15:15:29
8
+ - **Intrusiveness:** None (non-invasive additions only)
9
+
10
+ ## 2) Change Summary
11
+ - **New files:** 8
12
+ - **Modified files:** 0
13
+ - **Deleted files:** 0 (not reported)
14
+ - **Net impact:** Additive-only change set; no direct alterations to existing code paths.
15
+
16
+ ## 3) Workflow & Quality Gate Status
17
+ - **Workflow status:** ✅ Success
18
+ - **Test status:** ❌ Failed
19
+
20
+ **Interpretation:**
21
+ CI workflow executed successfully at pipeline level, but test suite did not pass. This indicates process/automation is operational, while functional or integration quality gates are currently not met.
22
+
23
+ ## 4) Difference Analysis
24
+ ### 4.1 Structural Delta
25
+ Since only new files were introduced and no existing files were modified:
26
+ - Backward compatibility risk from direct code mutation is **low**.
27
+ - Runtime behavior risk depends on whether new files are imported/executed by default.
28
+ - If files are tests/docs/config only, production risk is minimal.
29
+ - If files include new modules wired into package entry points, risk increases accordingly.
30
+
31
+ ### 4.2 Potential Impact Areas
32
+ - **Packaging:** New files may affect wheel/sdist if included via `pyproject.toml`/MANIFEST rules.
33
+ - **Imports/Discovery:** Auto-discovery mechanisms (plugins, namespace packages) may pick up new modules.
34
+ - **Test matrix:** Failing tests suggest either:
35
+ - newly added tests are failing, or
36
+ - existing tests are impacted indirectly by new assets/config.
37
+
38
+ ## 5) Technical Analysis
39
+ ## 5.1 Risk Profile
40
+ - **Code churn risk:** Low (no modified files).
41
+ - **Integration risk:** Medium (test failures indicate unresolved issues).
42
+ - **Release readiness:** Not ready for production release until tests pass.
43
+
44
+ ## 5.2 Likely Failure Categories (to validate)
45
+ 1. **Environment/dependency mismatch** (version pinning, optional extras).
46
+ 2. **Test data/path assumptions** introduced by new files.
47
+ 3. **Configuration drift** (pytest config, markers, import paths).
48
+ 4. **Static checks promoted to test failures** (if lint/type checks are part of test job).
49
+
50
+ ## 5.3 Suggested Immediate Diagnostics
51
+ - Inspect CI logs for first failing test and root stack trace.
52
+ - Run locally with:
53
+ - `pytest -x -vv`
54
+ - targeted module test runs for newly added components.
55
+ - Confirm packaging and import behavior:
56
+ - `python -m pip install -e .`
57
+ - smoke import of public API.
58
+
59
+ ## 6) Recommendations & Improvements
60
+ 1. **Stabilize tests first (highest priority).**
61
+ - Fix root-cause failures before merging/releasing.
62
+ 2. **Add/adjust test coverage for new files.**
63
+ - Ensure each added component has at least one positive-path and one edge-case test.
64
+ 3. **Validate non-intrusive intent.**
65
+ - Confirm no implicit activation of new code in default runtime path.
66
+ 4. **Strengthen CI gates.**
67
+ - Fail fast on unit tests; separate lint/type/test stages for clearer signal.
68
+ 5. **Document file purpose.**
69
+ - Add concise module-level docs/changelog entries for all 8 files.
70
+
71
+ ## 7) Deployment Information
72
+ - **Current deployment recommendation:** **Hold deployment** due to failed tests.
73
+ - **Release gate criteria:**
74
+ - All tests green across supported Python versions.
75
+ - Packaging/install smoke tests pass.
76
+ - Changelog/release notes include additive file summary.
77
+ - **Rollback complexity:** Low, as changes are additive and can be reverted by removing new files.
78
+
79
+ ## 8) Future Planning
80
+ - **Short-term (next commit):**
81
+ - Resolve failing tests.
82
+ - Re-run full CI and publish updated status.
83
+ - **Mid-term:**
84
+ - Add regression tests tied to discovered failure mode.
85
+ - Introduce coverage threshold checks for new modules.
86
+ - **Long-term:**
87
+ - Establish “additive-change checklist” (tests, docs, packaging verification) for future non-intrusive updates.
88
+
89
+ ## 9) Executive Conclusion
90
+ This update is structurally conservative (**8 new files, no modifications**) and aligns with a non-intrusive approach. However, **test failures block release readiness**. Once failures are resolved and CI quality gates pass, risk should remain manageable with minimal backward-compatibility concerns.
langgraph/mcp_output/mcp_plugin/__init__.py ADDED
File without changes
langgraph/mcp_output/mcp_plugin/adapter.py ADDED
@@ -0,0 +1,428 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ import importlib
4
+ import traceback
5
+ from typing import Any, Dict, Optional, List
6
+
7
+ source_path = os.path.join(
8
+ os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))),
9
+ "source",
10
+ )
11
+ sys.path.insert(0, source_path)
12
+
13
+
14
+ class Adapter:
15
+ """
16
+ MCP Import-mode adapter for selected modules discovered in repository analysis.
17
+
18
+ This adapter attempts direct imports from repository source paths and exposes
19
+ stable wrapper methods with unified status dictionaries.
20
+
21
+ Mode:
22
+ - import: primary runtime mode using local source imports.
23
+ """
24
+
25
+ # -------------------------------------------------------------------------
26
+ # Initialization and module management
27
+ # -------------------------------------------------------------------------
28
+ def __init__(self) -> None:
29
+ self.mode = "import"
30
+ self._loaded = False
31
+ self._errors: List[str] = []
32
+ self._imports: Dict[str, Any] = {}
33
+ self._load_modules()
34
+
35
+ def _result(
36
+ self,
37
+ status: str,
38
+ message: str,
39
+ data: Optional[Dict[str, Any]] = None,
40
+ error: Optional[str] = None,
41
+ guidance: Optional[str] = None,
42
+ ) -> Dict[str, Any]:
43
+ return {
44
+ "status": status,
45
+ "mode": self.mode,
46
+ "message": message,
47
+ "data": data or {},
48
+ "error": error,
49
+ "guidance": guidance,
50
+ }
51
+
52
+ def _load_modules(self) -> None:
53
+ """
54
+ Attempt to import all discovered modules/classes/functions using full package paths.
55
+ Any failures are recorded and exposed via get_health().
56
+ """
57
+ targets = {
58
+ "docs.generate_redirects": {
59
+ "functions": ["generate_redirects"],
60
+ "classes": [],
61
+ },
62
+ "libs.langgraph.langgraph.config": {
63
+ "functions": ["get_config", "get_store", "get_stream_writer"],
64
+ "classes": [],
65
+ },
66
+ "libs.langgraph.langgraph.warnings": {
67
+ "functions": [],
68
+ "classes": [
69
+ "LangGraphDeprecatedSinceV05",
70
+ "LangGraphDeprecatedSinceV10",
71
+ "LangGraphDeprecatedSinceV11",
72
+ ],
73
+ },
74
+ "libs.langgraph.langgraph.types": {
75
+ "functions": ["ensure_valid_checkpointer", "interrupt"],
76
+ "classes": ["CacheKey", "CachePolicy", "CheckpointPayload"],
77
+ },
78
+ }
79
+
80
+ all_ok = True
81
+ for module_path, spec in targets.items():
82
+ try:
83
+ mod = importlib.import_module(module_path)
84
+ self._imports[module_path] = {"module": mod, "functions": {}, "classes": {}}
85
+
86
+ for fn_name in spec["functions"]:
87
+ fn_obj = getattr(mod, fn_name, None)
88
+ if callable(fn_obj):
89
+ self._imports[module_path]["functions"][fn_name] = fn_obj
90
+ else:
91
+ all_ok = False
92
+ self._errors.append(
93
+ f"Function '{fn_name}' not found in module '{module_path}'."
94
+ )
95
+
96
+ for cls_name in spec["classes"]:
97
+ cls_obj = getattr(mod, cls_name, None)
98
+ if cls_obj is not None:
99
+ self._imports[module_path]["classes"][cls_name] = cls_obj
100
+ else:
101
+ all_ok = False
102
+ self._errors.append(
103
+ f"Class '{cls_name}' not found in module '{module_path}'."
104
+ )
105
+
106
+ except Exception as exc:
107
+ all_ok = False
108
+ self._errors.append(
109
+ f"Failed to import module '{module_path}': {exc}. "
110
+ f"Ensure repository source is available at '{source_path}'."
111
+ )
112
+
113
+ self._loaded = all_ok
114
+
115
+ # -------------------------------------------------------------------------
116
+ # Health and diagnostics
117
+ # -------------------------------------------------------------------------
118
+ def get_health(self) -> Dict[str, Any]:
119
+ """
120
+ Return adapter health including import status and actionable diagnostics.
121
+
122
+ Returns:
123
+ dict: Unified status dictionary with loaded modules and errors.
124
+ """
125
+ return self._result(
126
+ status="ok" if self._loaded else "degraded",
127
+ message="Adapter health check completed.",
128
+ data={
129
+ "loaded": self._loaded,
130
+ "modules": list(self._imports.keys()),
131
+ "errors": self._errors,
132
+ "source_path": source_path,
133
+ },
134
+ guidance=(
135
+ None
136
+ if self._loaded
137
+ else "Verify the local repository source layout and module paths, then retry."
138
+ ),
139
+ )
140
+
141
+ # -------------------------------------------------------------------------
142
+ # Internal callable resolver
143
+ # -------------------------------------------------------------------------
144
+ def _get_callable(self, module_path: str, kind: str, name: str) -> Any:
145
+ if module_path not in self._imports:
146
+ raise ImportError(f"Module '{module_path}' is not loaded.")
147
+ entry = self._imports[module_path]
148
+ bucket = entry.get(kind, {})
149
+ if name not in bucket:
150
+ raise AttributeError(f"{kind[:-1].capitalize()} '{name}' not available in '{module_path}'.")
151
+ return bucket[name]
152
+
153
+ # -------------------------------------------------------------------------
154
+ # docs.generate_redirects module wrappers
155
+ # -------------------------------------------------------------------------
156
+ def call_generate_redirects(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
157
+ """
158
+ Call docs.generate_redirects.generate_redirects.
159
+
160
+ Parameters:
161
+ *args: Positional arguments forwarded to generate_redirects.
162
+ **kwargs: Keyword arguments forwarded to generate_redirects.
163
+
164
+ Returns:
165
+ dict: Unified status dictionary with call result.
166
+ """
167
+ module_path = "docs.generate_redirects"
168
+ fn_name = "generate_redirects"
169
+ try:
170
+ fn = self._get_callable(module_path, "functions", fn_name)
171
+ result = fn(*args, **kwargs)
172
+ return self._result(
173
+ status="ok",
174
+ message=f"Called {module_path}.{fn_name} successfully.",
175
+ data={"result": result},
176
+ )
177
+ except Exception as exc:
178
+ return self._result(
179
+ status="error",
180
+ message=f"Failed to call {module_path}.{fn_name}.",
181
+ error=str(exc),
182
+ guidance="Check argument compatibility with the repository version.",
183
+ data={"traceback": traceback.format_exc()},
184
+ )
185
+
186
+ # -------------------------------------------------------------------------
187
+ # libs.langgraph.langgraph.config module wrappers
188
+ # -------------------------------------------------------------------------
189
+ def call_get_config(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
190
+ """
191
+ Call libs.langgraph.langgraph.config.get_config.
192
+
193
+ Parameters:
194
+ *args: Positional arguments forwarded to get_config.
195
+ **kwargs: Keyword arguments forwarded to get_config.
196
+
197
+ Returns:
198
+ dict: Unified status dictionary with call result.
199
+ """
200
+ module_path = "libs.langgraph.langgraph.config"
201
+ fn_name = "get_config"
202
+ try:
203
+ fn = self._get_callable(module_path, "functions", fn_name)
204
+ result = fn(*args, **kwargs)
205
+ return self._result("ok", f"Called {module_path}.{fn_name} successfully.", {"result": result})
206
+ except Exception as exc:
207
+ return self._result(
208
+ "error",
209
+ f"Failed to call {module_path}.{fn_name}.",
210
+ error=str(exc),
211
+ guidance="Validate runtime context and required LangGraph configuration state.",
212
+ data={"traceback": traceback.format_exc()},
213
+ )
214
+
215
+ def call_get_store(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
216
+ """
217
+ Call libs.langgraph.langgraph.config.get_store.
218
+
219
+ Parameters:
220
+ *args: Positional arguments forwarded to get_store.
221
+ **kwargs: Keyword arguments forwarded to get_store.
222
+
223
+ Returns:
224
+ dict: Unified status dictionary with call result.
225
+ """
226
+ module_path = "libs.langgraph.langgraph.config"
227
+ fn_name = "get_store"
228
+ try:
229
+ fn = self._get_callable(module_path, "functions", fn_name)
230
+ result = fn(*args, **kwargs)
231
+ return self._result("ok", f"Called {module_path}.{fn_name} successfully.", {"result": result})
232
+ except Exception as exc:
233
+ return self._result(
234
+ "error",
235
+ f"Failed to call {module_path}.{fn_name}.",
236
+ error=str(exc),
237
+ guidance="Ensure store context exists before invocation.",
238
+ data={"traceback": traceback.format_exc()},
239
+ )
240
+
241
+ def call_get_stream_writer(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
242
+ """
243
+ Call libs.langgraph.langgraph.config.get_stream_writer.
244
+
245
+ Parameters:
246
+ *args: Positional arguments forwarded to get_stream_writer.
247
+ **kwargs: Keyword arguments forwarded to get_stream_writer.
248
+
249
+ Returns:
250
+ dict: Unified status dictionary with call result.
251
+ """
252
+ module_path = "libs.langgraph.langgraph.config"
253
+ fn_name = "get_stream_writer"
254
+ try:
255
+ fn = self._get_callable(module_path, "functions", fn_name)
256
+ result = fn(*args, **kwargs)
257
+ return self._result("ok", f"Called {module_path}.{fn_name} successfully.", {"result": result})
258
+ except Exception as exc:
259
+ return self._result(
260
+ "error",
261
+ f"Failed to call {module_path}.{fn_name}.",
262
+ error=str(exc),
263
+ guidance="Ensure stream context is initialized in the current execution scope.",
264
+ data={"traceback": traceback.format_exc()},
265
+ )
266
+
267
+ # -------------------------------------------------------------------------
268
+ # libs.langgraph.langgraph.types module wrappers
269
+ # -------------------------------------------------------------------------
270
+ def call_ensure_valid_checkpointer(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
271
+ """
272
+ Call libs.langgraph.langgraph.types.ensure_valid_checkpointer.
273
+
274
+ Parameters:
275
+ *args: Positional arguments forwarded to ensure_valid_checkpointer.
276
+ **kwargs: Keyword arguments forwarded to ensure_valid_checkpointer.
277
+
278
+ Returns:
279
+ dict: Unified status dictionary with call result.
280
+ """
281
+ module_path = "libs.langgraph.langgraph.types"
282
+ fn_name = "ensure_valid_checkpointer"
283
+ try:
284
+ fn = self._get_callable(module_path, "functions", fn_name)
285
+ result = fn(*args, **kwargs)
286
+ return self._result("ok", f"Called {module_path}.{fn_name} successfully.", {"result": result})
287
+ except Exception as exc:
288
+ return self._result(
289
+ "error",
290
+ f"Failed to call {module_path}.{fn_name}.",
291
+ error=str(exc),
292
+ guidance="Pass a checkpointer object that matches the expected protocol.",
293
+ data={"traceback": traceback.format_exc()},
294
+ )
295
+
296
+ def call_interrupt(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
297
+ """
298
+ Call libs.langgraph.langgraph.types.interrupt.
299
+
300
+ Parameters:
301
+ *args: Positional arguments forwarded to interrupt.
302
+ **kwargs: Keyword arguments forwarded to interrupt.
303
+
304
+ Returns:
305
+ dict: Unified status dictionary with call result.
306
+ """
307
+ module_path = "libs.langgraph.langgraph.types"
308
+ fn_name = "interrupt"
309
+ try:
310
+ fn = self._get_callable(module_path, "functions", fn_name)
311
+ result = fn(*args, **kwargs)
312
+ return self._result("ok", f"Called {module_path}.{fn_name} successfully.", {"result": result})
313
+ except Exception as exc:
314
+ return self._result(
315
+ "error",
316
+ f"Failed to call {module_path}.{fn_name}.",
317
+ error=str(exc),
318
+ guidance="Check interrupt payload format and runtime graph context.",
319
+ data={"traceback": traceback.format_exc()},
320
+ )
321
+
322
+ # -------------------------------------------------------------------------
323
+ # Class instance constructors (warnings module)
324
+ # -------------------------------------------------------------------------
325
+ def instance_langgraph_deprecated_since_v05(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
326
+ """
327
+ Create an instance of libs.langgraph.langgraph.warnings.LangGraphDeprecatedSinceV05.
328
+
329
+ Parameters:
330
+ *args: Positional arguments for class constructor.
331
+ **kwargs: Keyword arguments for class constructor.
332
+
333
+ Returns:
334
+ dict: Unified status dictionary containing created instance.
335
+ """
336
+ return self._create_instance(
337
+ "libs.langgraph.langgraph.warnings", "LangGraphDeprecatedSinceV05", *args, **kwargs
338
+ )
339
+
340
+ def instance_langgraph_deprecated_since_v10(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
341
+ """
342
+ Create an instance of libs.langgraph.langgraph.warnings.LangGraphDeprecatedSinceV10.
343
+
344
+ Parameters:
345
+ *args: Positional arguments for class constructor.
346
+ **kwargs: Keyword arguments for class constructor.
347
+
348
+ Returns:
349
+ dict: Unified status dictionary containing created instance.
350
+ """
351
+ return self._create_instance(
352
+ "libs.langgraph.langgraph.warnings", "LangGraphDeprecatedSinceV10", *args, **kwargs
353
+ )
354
+
355
+ def instance_langgraph_deprecated_since_v11(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
356
+ """
357
+ Create an instance of libs.langgraph.langgraph.warnings.LangGraphDeprecatedSinceV11.
358
+
359
+ Parameters:
360
+ *args: Positional arguments for class constructor.
361
+ **kwargs: Keyword arguments for class constructor.
362
+
363
+ Returns:
364
+ dict: Unified status dictionary containing created instance.
365
+ """
366
+ return self._create_instance(
367
+ "libs.langgraph.langgraph.warnings", "LangGraphDeprecatedSinceV11", *args, **kwargs
368
+ )
369
+
370
+ # -------------------------------------------------------------------------
371
+ # Class instance constructors (types module)
372
+ # -------------------------------------------------------------------------
373
+ def instance_cache_key(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
374
+ """
375
+ Create an instance of libs.langgraph.langgraph.types.CacheKey.
376
+
377
+ Parameters:
378
+ *args: Positional arguments for class constructor.
379
+ **kwargs: Keyword arguments for class constructor.
380
+
381
+ Returns:
382
+ dict: Unified status dictionary containing created instance.
383
+ """
384
+ return self._create_instance("libs.langgraph.langgraph.types", "CacheKey", *args, **kwargs)
385
+
386
+ def instance_cache_policy(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
387
+ """
388
+ Create an instance of libs.langgraph.langgraph.types.CachePolicy.
389
+
390
+ Parameters:
391
+ *args: Positional arguments for class constructor.
392
+ **kwargs: Keyword arguments for class constructor.
393
+
394
+ Returns:
395
+ dict: Unified status dictionary containing created instance.
396
+ """
397
+ return self._create_instance("libs.langgraph.langgraph.types", "CachePolicy", *args, **kwargs)
398
+
399
+ def instance_checkpoint_payload(self, *args: Any, **kwargs: Any) -> Dict[str, Any]:
400
+ """
401
+ Create an instance of libs.langgraph.langgraph.types.CheckpointPayload.
402
+
403
+ Parameters:
404
+ *args: Positional arguments for class constructor.
405
+ **kwargs: Keyword arguments for class constructor.
406
+
407
+ Returns:
408
+ dict: Unified status dictionary containing created instance.
409
+ """
410
+ return self._create_instance("libs.langgraph.langgraph.types", "CheckpointPayload", *args, **kwargs)
411
+
412
+ def _create_instance(self, module_path: str, class_name: str, *args: Any, **kwargs: Any) -> Dict[str, Any]:
413
+ try:
414
+ cls = self._get_callable(module_path, "classes", class_name)
415
+ instance = cls(*args, **kwargs)
416
+ return self._result(
417
+ status="ok",
418
+ message=f"Created instance of {module_path}.{class_name} successfully.",
419
+ data={"instance": instance},
420
+ )
421
+ except Exception as exc:
422
+ return self._result(
423
+ status="error",
424
+ message=f"Failed to create instance of {module_path}.{class_name}.",
425
+ error=str(exc),
426
+ guidance="Review constructor parameters and repository version compatibility.",
427
+ data={"traceback": traceback.format_exc()},
428
+ )
langgraph/mcp_output/mcp_plugin/main.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ MCP Service Auto-Wrapper - Auto-generated
3
+ """
4
+ from mcp_service import create_app
5
+
6
+ def main():
7
+ """Main entry point"""
8
+ app = create_app()
9
+ return app
10
+
11
+ if __name__ == "__main__":
12
+ app = main()
13
+ app.run()
langgraph/mcp_output/mcp_plugin/mcp_service.py ADDED
@@ -0,0 +1,331 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+
4
+ source_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))), "source")
5
+ if source_path not in sys.path:
6
+ sys.path.insert(0, source_path)
7
+
8
+ from fastmcp import FastMCP
9
+
10
+ from docs.generate_redirects import generate_redirects
11
+ from libs.langgraph.langgraph.config import get_stream_writer, get_store, get_config
12
+ from libs.langgraph.langgraph.warnings import LangGraphDeprecatedSinceV10, LangGraphDeprecatedSinceV11, LangGraphDeprecatedSinceV05
13
+ from libs.langgraph.langgraph.types import ensure_valid_checkpointer, CachePolicy, CheckpointPayload, CacheKey, interrupt
14
+
15
+ mcp = FastMCP("unknown_service")
16
+
17
+
18
+ @mcp.tool(name="generate_redirects", description="Auto-wrapped function generate_redirects")
19
+ def generate_redirects(payload: dict):
20
+ try:
21
+ if generate_redirects is None:
22
+ return {"success": False, "result": None, "error": "Function generate_redirects is not available"}
23
+ result = generate_redirects(**payload)
24
+ return {"success": True, "result": result, "error": None}
25
+ except Exception as e:
26
+ return {"success": False, "result": None, "error": str(e)}
27
+
28
+ @mcp.tool(name="get_config", description="Auto-wrapped function get_config")
29
+ def get_config(payload: dict):
30
+ try:
31
+ if get_config is None:
32
+ return {"success": False, "result": None, "error": "Function get_config is not available"}
33
+ result = get_config(**payload)
34
+ return {"success": True, "result": result, "error": None}
35
+ except Exception as e:
36
+ return {"success": False, "result": None, "error": str(e)}
37
+
38
+ @mcp.tool(name="get_store", description="Auto-wrapped function get_store")
39
+ def get_store(payload: dict):
40
+ try:
41
+ if get_store is None:
42
+ return {"success": False, "result": None, "error": "Function get_store is not available"}
43
+ result = get_store(**payload)
44
+ return {"success": True, "result": result, "error": None}
45
+ except Exception as e:
46
+ return {"success": False, "result": None, "error": str(e)}
47
+
48
+ @mcp.tool(name="get_stream_writer", description="Auto-wrapped function get_stream_writer")
49
+ def get_stream_writer(payload: dict):
50
+ try:
51
+ if get_stream_writer is None:
52
+ return {"success": False, "result": None, "error": "Function get_stream_writer is not available"}
53
+ result = get_stream_writer(**payload)
54
+ return {"success": True, "result": result, "error": None}
55
+ except Exception as e:
56
+ return {"success": False, "result": None, "error": str(e)}
57
+
58
+ @mcp.tool(name="langgraphdeprecatedsincev05", description="LangGraphDeprecatedSinceV05 class")
59
+ def langgraphdeprecatedsincev05(*args, **kwargs):
60
+ """LangGraphDeprecatedSinceV05 class"""
61
+ try:
62
+ if LangGraphDeprecatedSinceV05 is None:
63
+ return {"success": False, "result": None, "error": "Class LangGraphDeprecatedSinceV05 is not available, path may need adjustment"}
64
+
65
+ # MCP parameter type conversion
66
+ converted_args = []
67
+ converted_kwargs = kwargs.copy()
68
+
69
+ # Handle position argument type conversion
70
+ for arg in args:
71
+ if isinstance(arg, str):
72
+ # Try to convert to numeric type
73
+ try:
74
+ if '.' in arg:
75
+ converted_args.append(float(arg))
76
+ else:
77
+ converted_args.append(int(arg))
78
+ except ValueError:
79
+ converted_args.append(arg)
80
+ else:
81
+ converted_args.append(arg)
82
+
83
+ # Handle keyword argument type conversion
84
+ for key, value in converted_kwargs.items():
85
+ if isinstance(value, str):
86
+ try:
87
+ if '.' in value:
88
+ converted_kwargs[key] = float(value)
89
+ else:
90
+ converted_kwargs[key] = int(value)
91
+ except ValueError:
92
+ pass
93
+
94
+ instance = LangGraphDeprecatedSinceV05(*converted_args, **converted_kwargs)
95
+ return {"success": True, "result": str(instance), "error": None}
96
+ except Exception as e:
97
+ return {"success": False, "result": None, "error": str(e)}
98
+
99
+ @mcp.tool(name="langgraphdeprecatedsincev10", description="LangGraphDeprecatedSinceV10 class")
100
+ def langgraphdeprecatedsincev10(*args, **kwargs):
101
+ """LangGraphDeprecatedSinceV10 class"""
102
+ try:
103
+ if LangGraphDeprecatedSinceV10 is None:
104
+ return {"success": False, "result": None, "error": "Class LangGraphDeprecatedSinceV10 is not available, path may need adjustment"}
105
+
106
+ # MCP parameter type conversion
107
+ converted_args = []
108
+ converted_kwargs = kwargs.copy()
109
+
110
+ # Handle position argument type conversion
111
+ for arg in args:
112
+ if isinstance(arg, str):
113
+ # Try to convert to numeric type
114
+ try:
115
+ if '.' in arg:
116
+ converted_args.append(float(arg))
117
+ else:
118
+ converted_args.append(int(arg))
119
+ except ValueError:
120
+ converted_args.append(arg)
121
+ else:
122
+ converted_args.append(arg)
123
+
124
+ # Handle keyword argument type conversion
125
+ for key, value in converted_kwargs.items():
126
+ if isinstance(value, str):
127
+ try:
128
+ if '.' in value:
129
+ converted_kwargs[key] = float(value)
130
+ else:
131
+ converted_kwargs[key] = int(value)
132
+ except ValueError:
133
+ pass
134
+
135
+ instance = LangGraphDeprecatedSinceV10(*converted_args, **converted_kwargs)
136
+ return {"success": True, "result": str(instance), "error": None}
137
+ except Exception as e:
138
+ return {"success": False, "result": None, "error": str(e)}
139
+
140
+ @mcp.tool(name="langgraphdeprecatedsincev11", description="LangGraphDeprecatedSinceV11 class")
141
+ def langgraphdeprecatedsincev11(*args, **kwargs):
142
+ """LangGraphDeprecatedSinceV11 class"""
143
+ try:
144
+ if LangGraphDeprecatedSinceV11 is None:
145
+ return {"success": False, "result": None, "error": "Class LangGraphDeprecatedSinceV11 is not available, path may need adjustment"}
146
+
147
+ # MCP parameter type conversion
148
+ converted_args = []
149
+ converted_kwargs = kwargs.copy()
150
+
151
+ # Handle position argument type conversion
152
+ for arg in args:
153
+ if isinstance(arg, str):
154
+ # Try to convert to numeric type
155
+ try:
156
+ if '.' in arg:
157
+ converted_args.append(float(arg))
158
+ else:
159
+ converted_args.append(int(arg))
160
+ except ValueError:
161
+ converted_args.append(arg)
162
+ else:
163
+ converted_args.append(arg)
164
+
165
+ # Handle keyword argument type conversion
166
+ for key, value in converted_kwargs.items():
167
+ if isinstance(value, str):
168
+ try:
169
+ if '.' in value:
170
+ converted_kwargs[key] = float(value)
171
+ else:
172
+ converted_kwargs[key] = int(value)
173
+ except ValueError:
174
+ pass
175
+
176
+ instance = LangGraphDeprecatedSinceV11(*converted_args, **converted_kwargs)
177
+ return {"success": True, "result": str(instance), "error": None}
178
+ except Exception as e:
179
+ return {"success": False, "result": None, "error": str(e)}
180
+
181
+ @mcp.tool(name="ensure_valid_checkpointer", description="Auto-wrapped function ensure_valid_checkpointer")
182
+ def ensure_valid_checkpointer(payload: dict):
183
+ try:
184
+ if ensure_valid_checkpointer is None:
185
+ return {"success": False, "result": None, "error": "Function ensure_valid_checkpointer is not available"}
186
+ result = ensure_valid_checkpointer(**payload)
187
+ return {"success": True, "result": result, "error": None}
188
+ except Exception as e:
189
+ return {"success": False, "result": None, "error": str(e)}
190
+
191
+ @mcp.tool(name="interrupt", description="Auto-wrapped function interrupt")
192
+ def interrupt(payload: dict):
193
+ try:
194
+ if interrupt is None:
195
+ return {"success": False, "result": None, "error": "Function interrupt is not available"}
196
+ result = interrupt(**payload)
197
+ return {"success": True, "result": result, "error": None}
198
+ except Exception as e:
199
+ return {"success": False, "result": None, "error": str(e)}
200
+
201
+ @mcp.tool(name="cachekey", description="CacheKey class")
202
+ def cachekey(*args, **kwargs):
203
+ """CacheKey class"""
204
+ try:
205
+ if CacheKey is None:
206
+ return {"success": False, "result": None, "error": "Class CacheKey is not available, path may need adjustment"}
207
+
208
+ # MCP parameter type conversion
209
+ converted_args = []
210
+ converted_kwargs = kwargs.copy()
211
+
212
+ # Handle position argument type conversion
213
+ for arg in args:
214
+ if isinstance(arg, str):
215
+ # Try to convert to numeric type
216
+ try:
217
+ if '.' in arg:
218
+ converted_args.append(float(arg))
219
+ else:
220
+ converted_args.append(int(arg))
221
+ except ValueError:
222
+ converted_args.append(arg)
223
+ else:
224
+ converted_args.append(arg)
225
+
226
+ # Handle keyword argument type conversion
227
+ for key, value in converted_kwargs.items():
228
+ if isinstance(value, str):
229
+ try:
230
+ if '.' in value:
231
+ converted_kwargs[key] = float(value)
232
+ else:
233
+ converted_kwargs[key] = int(value)
234
+ except ValueError:
235
+ pass
236
+
237
+ instance = CacheKey(*converted_args, **converted_kwargs)
238
+ return {"success": True, "result": str(instance), "error": None}
239
+ except Exception as e:
240
+ return {"success": False, "result": None, "error": str(e)}
241
+
242
+ @mcp.tool(name="cachepolicy", description="CachePolicy class")
243
+ def cachepolicy(*args, **kwargs):
244
+ """CachePolicy class"""
245
+ try:
246
+ if CachePolicy is None:
247
+ return {"success": False, "result": None, "error": "Class CachePolicy is not available, path may need adjustment"}
248
+
249
+ # MCP parameter type conversion
250
+ converted_args = []
251
+ converted_kwargs = kwargs.copy()
252
+
253
+ # Handle position argument type conversion
254
+ for arg in args:
255
+ if isinstance(arg, str):
256
+ # Try to convert to numeric type
257
+ try:
258
+ if '.' in arg:
259
+ converted_args.append(float(arg))
260
+ else:
261
+ converted_args.append(int(arg))
262
+ except ValueError:
263
+ converted_args.append(arg)
264
+ else:
265
+ converted_args.append(arg)
266
+
267
+ # Handle keyword argument type conversion
268
+ for key, value in converted_kwargs.items():
269
+ if isinstance(value, str):
270
+ try:
271
+ if '.' in value:
272
+ converted_kwargs[key] = float(value)
273
+ else:
274
+ converted_kwargs[key] = int(value)
275
+ except ValueError:
276
+ pass
277
+
278
+ instance = CachePolicy(*converted_args, **converted_kwargs)
279
+ return {"success": True, "result": str(instance), "error": None}
280
+ except Exception as e:
281
+ return {"success": False, "result": None, "error": str(e)}
282
+
283
+ @mcp.tool(name="checkpointpayload", description="CheckpointPayload class")
284
+ def checkpointpayload(*args, **kwargs):
285
+ """CheckpointPayload class"""
286
+ try:
287
+ if CheckpointPayload is None:
288
+ return {"success": False, "result": None, "error": "Class CheckpointPayload is not available, path may need adjustment"}
289
+
290
+ # MCP parameter type conversion
291
+ converted_args = []
292
+ converted_kwargs = kwargs.copy()
293
+
294
+ # Handle position argument type conversion
295
+ for arg in args:
296
+ if isinstance(arg, str):
297
+ # Try to convert to numeric type
298
+ try:
299
+ if '.' in arg:
300
+ converted_args.append(float(arg))
301
+ else:
302
+ converted_args.append(int(arg))
303
+ except ValueError:
304
+ converted_args.append(arg)
305
+ else:
306
+ converted_args.append(arg)
307
+
308
+ # Handle keyword argument type conversion
309
+ for key, value in converted_kwargs.items():
310
+ if isinstance(value, str):
311
+ try:
312
+ if '.' in value:
313
+ converted_kwargs[key] = float(value)
314
+ else:
315
+ converted_kwargs[key] = int(value)
316
+ except ValueError:
317
+ pass
318
+
319
+ instance = CheckpointPayload(*converted_args, **converted_kwargs)
320
+ return {"success": True, "result": str(instance), "error": None}
321
+ except Exception as e:
322
+ return {"success": False, "result": None, "error": str(e)}
323
+
324
+
325
+
326
+ def create_app():
327
+ """Create and return FastMCP application instance"""
328
+ return mcp
329
+
330
+ if __name__ == "__main__":
331
+ mcp.run(transport="http", host="0.0.0.0", port=8000)
langgraph/mcp_output/requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ fastmcp
2
+ fastapi
3
+ uvicorn[standard]
4
+ pydantic>=2.0.0
langgraph/mcp_output/start_mcp.py ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ """
3
+ MCP Service Startup Entry
4
+ """
5
+ import sys
6
+ import os
7
+
8
+ project_root = os.path.dirname(os.path.abspath(__file__))
9
+ mcp_plugin_dir = os.path.join(project_root, "mcp_plugin")
10
+ if mcp_plugin_dir not in sys.path:
11
+ sys.path.insert(0, mcp_plugin_dir)
12
+
13
+ from mcp_service import create_app
14
+
15
+ def main():
16
+ """Start FastMCP service"""
17
+ app = create_app()
18
+ # Use environment variable to configure port, default 8000
19
+ port = int(os.environ.get("MCP_PORT", "8000"))
20
+
21
+ # Choose transport mode based on environment variable
22
+ transport = os.environ.get("MCP_TRANSPORT", "stdio")
23
+ if transport == "http":
24
+ app.run(transport="http", host="0.0.0.0", port=port)
25
+ else:
26
+ # Default to STDIO mode
27
+ app.run()
28
+
29
+ if __name__ == "__main__":
30
+ main()
langgraph/mcp_output/workflow_summary.json ADDED
@@ -0,0 +1,220 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "repository": {
3
+ "name": "langgraph",
4
+ "url": "https://github.com/langchain-ai/langgraph",
5
+ "local_path": "/Users/ghh/Documents/Code/Code2MCP-private/workspace/langgraph",
6
+ "description": "Python library",
7
+ "features": "Basic functionality",
8
+ "tech_stack": "Python",
9
+ "stars": 0,
10
+ "forks": 0,
11
+ "language": "Python",
12
+ "last_updated": "",
13
+ "complexity": "medium",
14
+ "intrusiveness_risk": "medium"
15
+ },
16
+ "execution": {
17
+ "start_time": 1773385748.13471,
18
+ "end_time": 1773385951.607003,
19
+ "duration": 203.47229290008545,
20
+ "status": "success",
21
+ "workflow_status": "success",
22
+ "nodes_executed": [
23
+ "download",
24
+ "analysis",
25
+ "env",
26
+ "generate",
27
+ "run",
28
+ "review",
29
+ "finalize"
30
+ ],
31
+ "total_files_processed": 2,
32
+ "environment_type": "unknown",
33
+ "llm_calls": 0,
34
+ "deepwiki_calls": 0
35
+ },
36
+ "tests": {
37
+ "original_project": {
38
+ "passed": false,
39
+ "details": {},
40
+ "test_coverage": "100%",
41
+ "execution_time": 0,
42
+ "test_files": []
43
+ },
44
+ "mcp_plugin": {
45
+ "passed": true,
46
+ "details": {},
47
+ "service_health": "healthy",
48
+ "startup_time": 0,
49
+ "transport_mode": "stdio",
50
+ "fastmcp_version": "unknown",
51
+ "mcp_version": "unknown"
52
+ }
53
+ },
54
+ "analysis": {
55
+ "structure": {
56
+ "packages": [
57
+ "deployment.langgraph.source",
58
+ "mcp_output.mcp_plugin"
59
+ ]
60
+ },
61
+ "dependencies": {
62
+ "has_environment_yml": false,
63
+ "has_requirements_txt": false,
64
+ "pyproject": false,
65
+ "setup_cfg": false,
66
+ "setup_py": false
67
+ },
68
+ "entry_points": {
69
+ "imports": [],
70
+ "cli": [],
71
+ "modules": []
72
+ },
73
+ "risk_assessment": {
74
+ "import_feasibility": 0.22,
75
+ "intrusiveness_risk": "medium",
76
+ "complexity": "medium"
77
+ },
78
+ "deepwiki_analysis": {
79
+ "repo_url": "https://github.com/langchain-ai/langgraph",
80
+ "repo_name": "langgraph",
81
+ "error": "DeepWiki analysis failed",
82
+ "model": "gpt-5.3-codex",
83
+ "source": "llm_direct_analysis",
84
+ "success": false
85
+ },
86
+ "code_complexity": {
87
+ "cyclomatic_complexity": "medium",
88
+ "cognitive_complexity": "medium",
89
+ "maintainability_index": 75
90
+ },
91
+ "security_analysis": {
92
+ "vulnerabilities_found": 0,
93
+ "security_score": 85,
94
+ "recommendations": []
95
+ }
96
+ },
97
+ "plugin_generation": {
98
+ "files_created": [
99
+ "mcp_output/start_mcp.py",
100
+ "mcp_output/mcp_plugin/__init__.py",
101
+ "mcp_output/mcp_plugin/mcp_service.py",
102
+ "mcp_output/mcp_plugin/adapter.py",
103
+ "mcp_output/mcp_plugin/main.py",
104
+ "mcp_output/requirements.txt",
105
+ "mcp_output/README_MCP.md"
106
+ ],
107
+ "main_entry": "start_mcp.py",
108
+ "requirements": [
109
+ "fastmcp>=0.1.0",
110
+ "pydantic>=2.0.0"
111
+ ],
112
+ "readme_path": "/Users/ghh/Documents/Code/Code2MCP-private/workspace/langgraph/mcp_output/README_MCP.md",
113
+ "adapter_mode": "import",
114
+ "total_lines_of_code": 0,
115
+ "generated_files_size": 0,
116
+ "tool_endpoints": 0,
117
+ "supported_features": [
118
+ "Basic functionality"
119
+ ],
120
+ "generated_tools": [
121
+ "Basic tools",
122
+ "Health check tools",
123
+ "Version info tools"
124
+ ]
125
+ },
126
+ "code_review": {},
127
+ "errors": [],
128
+ "warnings": [],
129
+ "recommendations": [
130
+ "stabilize repository ingestion by adding retry/backoff and alternate fetch methods (git clone/API tarball) for SSL EOF failures",
131
+ "add a minimal reproducible lockfile and explicit dependency manifests for each package (pyproject.toml/requirements) to improve build reliability",
132
+ "gate MCP endpoint generation with an allowlist to avoid exposing hundreds of low-level/internal symbols by default",
133
+ "deduplicate and namespace-collide-proof generated endpoint names (e.g.",
134
+ "repeated interrupt/call_model/add_messages/config)",
135
+ "prioritize wrapping only stable public APIs instead of AST-discovered internals",
136
+ "add automated smoke tests for generated MCP tools (import + invoke + schema validation) and fail CI on regressions",
137
+ "introduce contract tests for sync/async parity in SDK clients and MCP adapters",
138
+ "add type-checked request/response models for each endpoint with stricter validation and clearer error messages",
139
+ "implement structured observability (request IDs",
140
+ "latency",
141
+ "error class",
142
+ "endpoint) in mcp_service.py",
143
+ "add rate limiting/timeouts/circuit breakers for potentially heavy endpoints",
144
+ "improve security posture by blocking dangerous callable exposure and enforcing explicit safe-module policies",
145
+ "create a curated “core tools” profile for MCP with optional expansion flags",
146
+ "improve README_MCP with quickstart",
147
+ "auth model",
148
+ "endpoint selection guidance",
149
+ "and troubleshooting for import failures",
150
+ "add performance benchmarks for high-fanout graph operations and store/checkpoint backends with baseline thresholds in CI",
151
+ "add compatibility matrix tests across Python versions and optional backends (sqlite/postgres/redis)",
152
+ "separate example/demo code from production endpoint discovery to reduce noise",
153
+ "add migration/versioning strategy for MCP schemas to prevent breaking clients",
154
+ "add fallback adapter mode logic (import → subprocess) when import feasibility is low",
155
+ "and track plugin quality metrics (endpoint success rate",
156
+ "median latency",
157
+ "exception rate) over time"
158
+ ],
159
+ "performance_metrics": {
160
+ "memory_usage_mb": 0,
161
+ "cpu_usage_percent": 0,
162
+ "response_time_ms": 0,
163
+ "throughput_requests_per_second": 0
164
+ },
165
+ "deployment_info": {
166
+ "supported_platforms": [
167
+ "Linux",
168
+ "Windows",
169
+ "macOS"
170
+ ],
171
+ "python_versions": [
172
+ "3.8",
173
+ "3.9",
174
+ "3.10",
175
+ "3.11",
176
+ "3.12"
177
+ ],
178
+ "deployment_methods": [
179
+ "Docker",
180
+ "pip",
181
+ "conda"
182
+ ],
183
+ "monitoring_support": true,
184
+ "logging_configuration": "structured"
185
+ },
186
+ "execution_analysis": {
187
+ "success_factors": [
188
+ "Workflow reached terminal success state and executed all planned nodes (download, analysis, env, generate, run, review, finalize).",
189
+ "Generated MCP plugin started successfully with healthy service status over stdio transport.",
190
+ "Fallback static AST-based discovery enabled progress despite repository ingestion/preprocess failure.",
191
+ "No runtime errors, warnings, or security findings were reported during generation and run phases."
192
+ ],
193
+ "failure_reasons": [
194
+ "Repository preprocessing failed due to SSL EOF during zip download, reducing analysis fidelity.",
195
+ "DeepWiki analysis failed, so architectural/contextual enrichment was unavailable.",
196
+ "Original project tests were not executed/passed (passed=false, no test files), so source baseline is unverified.",
197
+ "Generated artifact metrics are inconsistent (0 LOC/size, 0 endpoints in one section vs large endpoint list in service info), indicating telemetry/reporting gaps."
198
+ ],
199
+ "overall_assessment": "fair",
200
+ "node_performance": {
201
+ "download_time": "Node completed, but remote zip ingestion was unreliable (SSL EOF). Timing per node is unavailable; this is the main pipeline fragility.",
202
+ "analysis_time": "Completed via fallback AST scan; broad symbol discovery succeeded but likely over-inclusive and less semantically accurate.",
203
+ "generation_time": "Generation completed quickly relative to total duration (~203s overall), producing expected MCP scaffold files and runnable entrypoint.",
204
+ "test_time": "MCP smoke run succeeded (healthy), but original project tests were effectively absent; validation depth is limited."
205
+ },
206
+ "resource_usage": {
207
+ "memory_efficiency": "Unknown due to missing metrics (reported 0 MB). Instrumentation likely incomplete.",
208
+ "cpu_efficiency": "Unknown due to missing metrics (reported 0%). Need runtime profiling hooks.",
209
+ "disk_usage": "Reported as 0 generated size, conflicting with created files; disk telemetry is unreliable."
210
+ }
211
+ },
212
+ "technical_quality": {
213
+ "code_quality_score": 68,
214
+ "architecture_score": 64,
215
+ "performance_score": 52,
216
+ "maintainability_score": 61,
217
+ "security_score": 85,
218
+ "scalability_score": 58
219
+ }
220
+ }
langgraph/source/AGENTS.md ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AGENTS Instructions
2
+
3
+ This repository is a monorepo. Each library lives in a subdirectory under `libs/`.
4
+
5
+ When you modify code in any library, run the following commands in that library's directory before creating a pull request:
6
+
7
+ - `make format` – run code formatters
8
+ - `make lint` – run the linter
9
+ - `make test` – execute the test suite
10
+
11
+ To run a particular test file or to pass additional pytest options you can specify the `TEST` variable:
12
+
13
+ ```txt
14
+ TEST=path/to/test.py make test
15
+ ```
16
+
17
+ Other pytest arguments can also be supplied inside the `TEST` variable.
18
+
19
+ ## Libraries
20
+
21
+ The repository contains several Python and JavaScript/TypeScript libraries.
22
+ Below is a high-level overview:
23
+
24
+ - **checkpoint** – base interfaces for LangGraph checkpointers.
25
+ - **checkpoint-postgres** – Postgres implementation of the checkpoint saver.
26
+ - **checkpoint-sqlite** – SQLite implementation of the checkpoint saver.
27
+ - **cli** – official command-line interface for LangGraph.
28
+ - **langgraph** – core framework for building stateful, multi-actor agents.
29
+ - **prebuilt** – high-level APIs for creating and running agents and tools.
30
+ - **sdk-js** – JS/TS SDK for interacting with the LangGraph REST API.
31
+ - **sdk-py** – Python SDK for the LangGraph Server API.
32
+
33
+ ### Dependency map
34
+
35
+ The diagram below lists downstream libraries for each production dependency as
36
+ declared in that library's `pyproject.toml` (or `package.json`).
37
+
38
+ ```text
39
+ checkpoint
40
+ ├── checkpoint-postgres
41
+ ├── checkpoint-sqlite
42
+ ├── prebuilt
43
+ └── langgraph
44
+
45
+ prebuilt
46
+ └── langgraph
47
+
48
+ sdk-py
49
+ ├── langgraph
50
+ └── cli
51
+
52
+ sdk-js (standalone)
53
+ ```
54
+
55
+ Changes to a library may impact all of its dependents shown above.
56
+
57
+ - Do NOT use Sphinx-style double backtick formatting (` ``code`` `). Use single backticks (`` `code` ``) for inline code references in docstrings and comments.
langgraph/source/CLAUDE.md ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AGENTS Instructions
2
+
3
+ This repository is a monorepo. Each library lives in a subdirectory under `libs/`.
4
+
5
+ When you modify code in any library, run the following commands in that library's directory before creating a pull request:
6
+
7
+ - `make format` – run code formatters
8
+ - `make lint` – run the linter
9
+ - `make test` – execute the test suite
10
+
11
+ To run a particular test file or to pass additional pytest options you can specify the `TEST` variable:
12
+
13
+ ```
14
+ TEST=path/to/test.py make test
15
+ ```
16
+
17
+ Other pytest arguments can also be supplied inside the `TEST` variable.
18
+
19
+ ## Libraries
20
+
21
+ The repository contains several Python and JavaScript/TypeScript libraries.
22
+ Below is a high-level overview:
23
+
24
+ - **checkpoint** – base interfaces for LangGraph checkpointers.
25
+ - **checkpoint-postgres** – Postgres implementation of the checkpoint saver.
26
+ - **checkpoint-sqlite** – SQLite implementation of the checkpoint saver.
27
+ - **cli** – official command-line interface for LangGraph.
28
+ - **langgraph** – core framework for building stateful, multi-actor agents.
29
+ - **prebuilt** – high-level APIs for creating and running agents and tools.
30
+ - **sdk-js** – JS/TS SDK for interacting with the LangGraph REST API.
31
+ - **sdk-py** – Python SDK for the LangGraph Server API.
32
+
33
+ ### Dependency map
34
+
35
+ The diagram below lists downstream libraries for each production dependency as
36
+ declared in that library's `pyproject.toml` (or `package.json`).
37
+
38
+ ```text
39
+ checkpoint
40
+ ├── checkpoint-postgres
41
+ ├── checkpoint-sqlite
42
+ ├── prebuilt
43
+ └── langgraph
44
+
45
+ prebuilt
46
+ └── langgraph
47
+
48
+ sdk-py
49
+ ├── langgraph
50
+ └── cli
51
+
52
+ sdk-js (standalone)
53
+ ```
54
+
55
+ Changes to a library may impact all of its dependents shown above.
56
+
57
+ - Do NOT use Sphinx-style double backtick formatting (` ``code`` `). Use single backticks (`` `code` ``) for inline code references in docstrings and comments.
langgraph/source/LICENSE ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MIT License
2
+
3
+ Copyright (c) 2024 LangChain, Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
langgraph/source/Makefile ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Define the directories containing projects
2
+ LIBS_DIRS := $(wildcard libs/*)
3
+
4
+ # Default target
5
+ .PHONY: all
6
+ all: lint format lock test
7
+
8
+ # Install dependencies for all projects
9
+ .PHONY: install
10
+ install:
11
+ @echo "Creating virtual environment..."
12
+ @uv venv
13
+ @for dir in $(LIBS_DIRS); do \
14
+ if [ -f $$dir/pyproject.toml ]; then \
15
+ echo "Installing dependencies for $$dir"; \
16
+ uv pip install -e $$dir; \
17
+ fi; \
18
+ done
19
+
20
+ # Lint all projects
21
+ .PHONY: lint
22
+ lint:
23
+ @for dir in $(LIBS_DIRS); do \
24
+ if [ -f $$dir/Makefile ]; then \
25
+ echo "Running lint in $$dir"; \
26
+ $(MAKE) -C $$dir lint; \
27
+ fi; \
28
+ done
29
+
30
+ # Format all projects
31
+ .PHONY: format
32
+ format:
33
+ @for dir in $(LIBS_DIRS); do \
34
+ if [ -f $$dir/Makefile ]; then \
35
+ echo "Running format in $$dir"; \
36
+ $(MAKE) -C $$dir format; \
37
+ fi; \
38
+ done
39
+
40
+ # Lock all projects
41
+ .PHONY: lock
42
+ lock:
43
+ @for dir in $(LIBS_DIRS); do \
44
+ if [ -f $$dir/Makefile ]; then \
45
+ echo "Running lock in $$dir"; \
46
+ (cd $$dir && uv lock); \
47
+ fi; \
48
+ done
49
+
50
+ # Lock all projects and upgrade dependencies
51
+ .PHONY: lock-upgrade
52
+ lock-upgrade:
53
+ @for dir in $(LIBS_DIRS); do \
54
+ if [ -f $$dir/Makefile ]; then \
55
+ echo "Running lock-upgrade in $$dir"; \
56
+ (cd $$dir && uv lock --upgrade); \
57
+ fi; \
58
+ done
59
+
60
+ # Test all projects
61
+ .PHONY: test
62
+ test:
63
+ @for dir in $(LIBS_DIRS); do \
64
+ if [ -f $$dir/Makefile ]; then \
65
+ echo "Running test in $$dir"; \
66
+ $(MAKE) -C $$dir test; \
67
+ fi; \
68
+ done
langgraph/source/README.md ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <picture class="github-only">
2
+ <source media="(prefers-color-scheme: light)" srcset=".github/images/logo-light.svg">
3
+ <source media="(prefers-color-scheme: dark)" srcset=".github/images/logo-dark.svg">
4
+ <img alt="LangGraph Logo" src=".github/images/logo-dark.svg" width="50%">
5
+ </picture>
6
+
7
+ <div>
8
+ <br>
9
+ </div>
10
+
11
+ [![Version](https://img.shields.io/pypi/v/langgraph.svg)](https://pypi.org/project/langgraph/)
12
+ [![Downloads](https://static.pepy.tech/badge/langgraph/month)](https://pepy.tech/project/langgraph)
13
+ [![Open Issues](https://img.shields.io/github/issues-raw/langchain-ai/langgraph)](https://github.com/langchain-ai/langgraph/issues)
14
+ [![Docs](https://img.shields.io/badge/docs-latest-blue)](https://docs.langchain.com/oss/python/langgraph/overview)
15
+
16
+ Trusted by companies shaping the future of agents – including Klarna, Replit, Elastic, and more – LangGraph is a low-level orchestration framework for building, managing, and deploying long-running, stateful agents.
17
+
18
+ ## Get started
19
+
20
+ Install LangGraph:
21
+
22
+ ```
23
+ pip install -U langgraph
24
+ ```
25
+
26
+ Create a simple workflow:
27
+
28
+ ```python
29
+ from langgraph.graph import START, StateGraph
30
+ from typing_extensions import TypedDict
31
+
32
+
33
+ class State(TypedDict):
34
+ text: str
35
+
36
+
37
+ def node_a(state: State) -> dict:
38
+ return {"text": state["text"] + "a"}
39
+
40
+
41
+ def node_b(state: State) -> dict:
42
+ return {"text": state["text"] + "b"}
43
+
44
+
45
+ graph = StateGraph(State)
46
+ graph.add_node("node_a", node_a)
47
+ graph.add_node("node_b", node_b)
48
+ graph.add_edge(START, "node_a")
49
+ graph.add_edge("node_a", "node_b")
50
+
51
+ print(graph.compile().invoke({"text": ""}))
52
+ # {'text': 'ab'}
53
+ ```
54
+
55
+ Get started with the [LangGraph Quickstart](https://docs.langchain.com/oss/python/langgraph/quickstart).
56
+
57
+ To quickly build agents with LangChain's `create_agent` (built on LangGraph), see the [LangChain Agents documentation](https://docs.langchain.com/oss/python/langchain/agents).
58
+
59
+ > [!TIP]
60
+ > For developing, debugging, and deploying AI agents and LLM applications, see [LangSmith](https://docs.langchain.com/langsmith/home).
61
+
62
+ ## Core benefits
63
+
64
+ LangGraph provides low-level supporting infrastructure for *any* long-running, stateful workflow or agent. LangGraph does not abstract prompts or architecture, and provides the following central benefits:
65
+
66
+ - [Durable execution](https://docs.langchain.com/oss/python/langgraph/durable-execution): Build agents that persist through failures and can run for extended periods, automatically resuming from exactly where they left off.
67
+ - [Human-in-the-loop](https://docs.langchain.com/oss/python/langgraph/interrupts): Seamlessly incorporate human oversight by inspecting and modifying agent state at any point during execution.
68
+ - [Comprehensive memory](https://docs.langchain.com/oss/python/langgraph/memory): Create truly stateful agents with both short-term working memory for ongoing reasoning and long-term persistent memory across sessions.
69
+ - [Debugging with LangSmith](http://www.langchain.com/langsmith): Gain deep visibility into complex agent behavior with visualization tools that trace execution paths, capture state transitions, and provide detailed runtime metrics.
70
+ - [Production-ready deployment](https://docs.langchain.com/langsmith/app-development): Deploy sophisticated agent systems confidently with scalable infrastructure designed to handle the unique challenges of stateful, long-running workflows.
71
+
72
+ ## LangGraph’s ecosystem
73
+
74
+ While LangGraph can be used standalone, it also integrates seamlessly with any LangChain product, giving developers a full suite of tools for building agents. To improve your LLM application development, pair LangGraph with:
75
+
76
+ - [LangSmith](http://www.langchain.com/langsmith) — Helpful for agent evals and observability. Debug poor-performing LLM app runs, evaluate agent trajectories, gain visibility in production, and improve performance over time.
77
+ - [LangSmith Deployment](https://docs.langchain.com/langsmith/deployments) — Deploy and scale agents effortlessly with a purpose-built deployment platform for long running, stateful workflows. Discover, reuse, configure, and share agents across teams — and iterate quickly with visual prototyping in [LangGraph Studio](https://docs.langchain.com/oss/python/langgraph/studio).
78
+ - [LangChain](https://docs.langchain.com/oss/python/langchain/overview) – Provides integrations and composable components to streamline LLM application development.
79
+
80
+ > [!NOTE]
81
+ > Looking for the JS version of LangGraph? See the [JS repo](https://github.com/langchain-ai/langgraphjs) and the [JS docs](https://docs.langchain.com/oss/javascript/langgraph/overview).
82
+
83
+ ## Additional resources
84
+
85
+ - [Guides](https://docs.langchain.com/oss/python/langgraph/overview): Quick, actionable code snippets for topics such as streaming, adding memory & persistence, and design patterns (e.g. branching, subgraphs, etc.).
86
+ - [Reference](https://reference.langchain.com/python/langgraph/): Detailed reference on core classes, methods, how to use the graph and checkpointing APIs, and higher-level prebuilt components.
87
+ - [Examples](https://docs.langchain.com/oss/python/langgraph/agentic-rag): Guided examples on getting started with LangGraph.
88
+ - [LangChain Forum](https://forum.langchain.com/): Connect with the community and share all of your technical questions, ideas, and feedback.
89
+ - [LangChain Academy](https://academy.langchain.com/courses/intro-to-langgraph): Learn the basics of LangGraph in our free, structured course.
90
+ - [Case studies](https://www.langchain.com/built-with-langgraph): Hear how industry leaders use LangGraph to ship AI applications at scale.
91
+
92
+ ## Acknowledgements
93
+
94
+ LangGraph is inspired by [Pregel](https://research.google/pubs/pub37252/) and [Apache Beam](https://beam.apache.org/). The public interface draws inspiration from [NetworkX](https://networkx.org/documentation/latest/). LangGraph is built by LangChain Inc, the creators of LangChain, but can be used without LangChain.
langgraph/source/__init__.py ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ langgraph Project Package Initialization File
4
+ """
langgraph/source/docs/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ # -*- coding: utf-8 -*-
langgraph/source/docs/generate_redirects.py ADDED
@@ -0,0 +1,142 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Generate HTML redirect files from redirects.json.
4
+
5
+ Usage:
6
+ python generate_redirects.py
7
+
8
+ This script reads redirects.json and generates individual HTML files
9
+ for each redirect path. Each HTML file uses meta refresh (0 delay)
10
+ which is SEO-friendly and treated similarly to 301 redirects by Google.
11
+
12
+ To add new redirects, simply edit redirects.json and re-run this script.
13
+ """
14
+
15
+ import json
16
+ import os
17
+ from pathlib import Path
18
+
19
+ # Default fallback URL for any path not in the redirect map
20
+ DEFAULT_REDIRECT = "https://docs.langchain.com/oss/python/langgraph/overview"
21
+
22
+ HTML_TEMPLATE = """<!doctype html>
23
+ <html lang="en">
24
+ <head>
25
+ <meta charset="utf-8">
26
+ <title>Redirecting...</title>
27
+ <link rel="canonical" href="{url}">
28
+ <meta name="robots" content="noindex">
29
+ <script>var anchor=window.location.hash.substr(1);location.href="{url}"+(anchor?"#"+anchor:"")</script>
30
+ <meta http-equiv="refresh" content="0; url={url}">
31
+ </head>
32
+ <body>
33
+ Redirecting...
34
+ </body>
35
+ </html>
36
+ """
37
+
38
+ ROOT_HTML_TEMPLATE = """<!doctype html>
39
+ <html lang="en">
40
+ <head>
41
+ <meta charset="utf-8">
42
+ <title>Redirecting to LangGraph Documentation</title>
43
+ <link rel="canonical" href="{url}">
44
+ <meta name="robots" content="noindex">
45
+ <script>var anchor=window.location.hash.substr(1);location.href="{url}"+(anchor?"#"+anchor:"")</script>
46
+ <meta http-equiv="refresh" content="0; url={url}">
47
+ </head>
48
+ <body>
49
+ <h1>Documentation has moved</h1>
50
+ <p>The LangGraph documentation has moved to <a href="{url}">docs.langchain.com</a>.</p>
51
+ <p>Redirecting you now...</p>
52
+ </body>
53
+ </html>
54
+ """
55
+
56
+ CATCHALL_404_TEMPLATE = """<!doctype html>
57
+ <html lang="en">
58
+ <head>
59
+ <meta charset="utf-8">
60
+ <title>Redirecting to LangGraph Documentation</title>
61
+ <link rel="canonical" href="{default_url}">
62
+ <meta name="robots" content="noindex">
63
+ <script>
64
+ // Catchall redirect for any unmapped paths
65
+ window.location.replace("{default_url}");
66
+ </script>
67
+ <meta http-equiv="refresh" content="0; url={default_url}">
68
+ </head>
69
+ <body>
70
+ <h1>Documentation has moved</h1>
71
+ <p>The LangGraph documentation has moved to <a href="{default_url}">docs.langchain.com</a>.</p>
72
+ <p>Redirecting you now...</p>
73
+ </body>
74
+ </html>
75
+ """
76
+
77
+
78
+ def generate_redirects():
79
+ script_dir = Path(__file__).parent
80
+ output_dir = script_dir / "_site"
81
+
82
+ # Load redirects
83
+ with open(script_dir / "redirects.json") as f:
84
+ redirects = json.load(f)
85
+
86
+ # Clean output directory
87
+ if output_dir.exists():
88
+ import shutil
89
+ shutil.rmtree(output_dir)
90
+ output_dir.mkdir(parents=True)
91
+
92
+ # Generate individual HTML files for each redirect
93
+ for old_path, new_url in redirects.items():
94
+ # Remove leading slash and create directory structure
95
+ path = old_path.lstrip("/")
96
+
97
+ # Check if path has a file extension (e.g., .txt, .xml)
98
+ # If so, create the file directly instead of a directory with index.html
99
+ path_obj = Path(path)
100
+ has_extension = path_obj.suffix and len(path_obj.suffix) <= 5
101
+
102
+ if not path:
103
+ html_path = output_dir / "index.html"
104
+ elif has_extension:
105
+ # For files with extensions, create the file directly
106
+ html_path = output_dir / path
107
+ else:
108
+ # For directory-style URLs, create index.html inside
109
+ html_path = output_dir / path / "index.html"
110
+
111
+ # Create parent directories
112
+ html_path.parent.mkdir(parents=True, exist_ok=True)
113
+
114
+ # Write the redirect HTML
115
+ html_path.write_text(HTML_TEMPLATE.format(url=new_url))
116
+ print(f"Created: {html_path}")
117
+
118
+ # Create root index.html
119
+ root_index = output_dir / "index.html"
120
+ if not root_index.exists():
121
+ root_index.write_text(ROOT_HTML_TEMPLATE.format(url=DEFAULT_REDIRECT))
122
+ print(f"Created: {root_index}")
123
+
124
+ # Create 404.html for catchall
125
+ catchall_404 = output_dir / "404.html"
126
+ catchall_404.write_text(CATCHALL_404_TEMPLATE.format(default_url=DEFAULT_REDIRECT))
127
+ print(f"Created: {catchall_404}")
128
+
129
+ # Copy static files (like llms.txt) that can't be redirected via HTML
130
+ static_files = ["llms.txt"]
131
+ for static_file in static_files:
132
+ src = script_dir / static_file
133
+ if src.exists():
134
+ dst = output_dir / static_file
135
+ dst.write_text(src.read_text())
136
+ print(f"Copied: {dst}")
137
+
138
+ print(f"\nGenerated {len(redirects)} redirect files in {output_dir}")
139
+
140
+
141
+ if __name__ == "__main__":
142
+ generate_redirects()
langgraph/source/docs/llms.txt ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LangGraph
2
+
3
+ LangGraph documentation has moved to docs.langchain.com.
4
+
5
+ ## Overview
6
+
7
+ - [LangGraph Overview](https://docs.langchain.com/oss/python/langgraph/overview): Introduction to LangGraph, a library for building stateful, multi-actor applications with LLMs.
8
+ - [Why LangGraph?](https://docs.langchain.com/oss/python/langgraph/why-langgraph): Motivation for LangGraph and its key features.
9
+
10
+ ## Core Concepts
11
+
12
+ - [Graph API](https://docs.langchain.com/oss/python/langgraph/graph-api): Learn how to define state, create nodes, and connect them with edges.
13
+ - [Streaming](https://docs.langchain.com/oss/python/langgraph/streaming): Stream outputs from your graph for better UX.
14
+ - [Persistence](https://docs.langchain.com/oss/python/langgraph/persistence): Add memory and checkpointing to your graphs.
15
+ - [Add Memory](https://docs.langchain.com/oss/python/langgraph/add-memory): Implement short-term and long-term memory.
16
+ - [Workflows & Agents](https://docs.langchain.com/oss/python/langgraph/workflows-agents): Build agents and workflows with LangGraph.
17
+
18
+ ## How-To Guides
19
+
20
+ - [Use Subgraphs](https://docs.langchain.com/oss/python/langgraph/use-subgraphs): Compose graphs using subgraphs.
21
+ - [Observability](https://docs.langchain.com/oss/python/langgraph/observability): Add tracing and debugging to your graphs.
22
+ - [Common Errors](https://docs.langchain.com/oss/python/langgraph/common-errors): Troubleshoot common LangGraph errors.
23
+
24
+ ## Tutorials
25
+
26
+ - [Agentic RAG](https://docs.langchain.com/oss/python/langgraph/agentic-rag): Build an agentic RAG system with LangGraph.
27
+ - [SQL Agent](https://docs.langchain.com/oss/python/langgraph/sql-agent): Create a SQL agent with LangGraph.
28
+
29
+ ## Reference
30
+
31
+ - [API Reference](https://reference.langchain.com/python/langgraph/): Complete API documentation for LangGraph.
32
+
33
+ ## LangGraph Platform
34
+
35
+ For deploying LangGraph applications in production, see the [LangSmith documentation](https://docs.langchain.com/langsmith/agent-server).
langgraph/source/docs/redirects.json ADDED
@@ -0,0 +1,296 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "/how-tos/stream-values": "https://docs.langchain.com/oss/python/langgraph/streaming",
3
+ "/how-tos/stream-updates": "https://docs.langchain.com/oss/python/langgraph/streaming",
4
+ "/how-tos/streaming-content": "https://docs.langchain.com/oss/python/langgraph/streaming",
5
+ "/how-tos/stream-multiple": "https://docs.langchain.com/oss/python/langgraph/streaming",
6
+ "/how-tos/streaming-tokens-without-langchain": "https://docs.langchain.com/oss/python/langgraph/streaming",
7
+ "/how-tos/streaming-from-final-node": "https://docs.langchain.com/oss/python/langgraph/streaming",
8
+ "/how-tos/streaming-events-from-within-tools-without-langchain": "https://docs.langchain.com/oss/python/langgraph/streaming",
9
+ "/how-tos/state-reducers": "https://docs.langchain.com/oss/python/langgraph/graph-api#define-and-update-state",
10
+ "/how-tos/sequence": "https://docs.langchain.com/oss/python/langgraph/graph-api#create-a-sequence-of-steps",
11
+ "/how-tos/branching": "https://docs.langchain.com/oss/python/langgraph/graph-api#create-branches",
12
+ "/how-tos/recursion-limit": "https://docs.langchain.com/oss/python/langgraph/graph-api#create-and-control-loops",
13
+ "/how-tos/visualization": "https://docs.langchain.com/oss/python/langgraph/graph-api#visualize-your-graph",
14
+ "/how-tos/input_output_schema": "https://docs.langchain.com/oss/python/langgraph/graph-api#define-input-and-output-schemas",
15
+ "/how-tos/pass_private_state": "https://docs.langchain.com/oss/python/langgraph/graph-api#pass-private-state-between-nodes",
16
+ "/how-tos/state-model": "https://docs.langchain.com/oss/python/langgraph/graph-api#use-pydantic-models-for-graph-state",
17
+ "/how-tos/map-reduce": "https://docs.langchain.com/oss/python/langgraph/graph-api#map-reduce-and-the-send-api",
18
+ "/how-tos/command": "https://docs.langchain.com/oss/python/langgraph/graph-api#combine-control-flow-and-state-updates-with-command",
19
+ "/how-tos/configuration": "https://docs.langchain.com/oss/python/langgraph/graph-api#add-runtime-configuration",
20
+ "/how-tos/node-retries": "https://docs.langchain.com/oss/python/langgraph/graph-api#add-retry-policies",
21
+ "/how-tos/return-when-recursion-limit-hits": "https://docs.langchain.com/oss/python/langgraph/graph-api#impose-a-recursion-limit",
22
+ "/how-tos/async": "https://docs.langchain.com/oss/python/langgraph/graph-api#async",
23
+ "/how-tos/memory/manage-conversation-history": "https://docs.langchain.com/oss/python/langgraph/add-memory",
24
+ "/how-tos/memory/delete-messages": "https://docs.langchain.com/oss/python/langgraph/add-memory#delete-messages",
25
+ "/how-tos/memory/add-summary-conversation-history": "https://docs.langchain.com/oss/python/langgraph/add-memory#summarize-messages",
26
+ "/how-tos/memory": "https://docs.langchain.com/oss/python/langgraph/add-memory",
27
+ "/agents/memory": "https://docs.langchain.com/oss/python/langgraph/add-memory",
28
+ "/how-tos/subgraph-transform-state": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs#different-state-schemas",
29
+ "/how-tos/subgraphs-manage-state": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs#add-persistence",
30
+ "/how-tos/persistence_postgres": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-in-production",
31
+ "/how-tos/persistence_mongodb": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-in-production",
32
+ "/how-tos/persistence_redis": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-in-production",
33
+ "/how-tos/subgraph-persistence": "https://docs.langchain.com/oss/python/langgraph/add-memory#use-with-subgraphs",
34
+ "/how-tos/cross-thread-persistence": "https://docs.langchain.com/oss/python/langgraph/add-memory#add-long-term-memory",
35
+ "/cloud/how-tos/copy_threads": "https://docs.langchain.com/langsmith/use-threads",
36
+ "/cloud/how-tos/check-thread-status": "https://docs.langchain.com/langsmith/use-threads",
37
+ "/cloud/concepts/threads": "https://docs.langchain.com/oss/python/langgraph/persistence#threads",
38
+ "/how-tos/persistence": "https://docs.langchain.com/oss/python/langgraph/add-memory",
39
+ "/how-tos/tool-calling-errors": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
40
+ "/how-tos/pass-config-to-tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
41
+ "/how-tos/pass-run-time-values-to-tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
42
+ "/how-tos/update-state-from-tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
43
+ "/agents/tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
44
+ "/how-tos/agent-handoffs": "https://docs.langchain.com/oss/python/langgraph/graph-api",
45
+ "/how-tos/multi-agent-network": "https://docs.langchain.com/oss/python/langgraph/graph-api",
46
+ "/how-tos/multi-agent-multi-turn-convo": "https://docs.langchain.com/oss/python/langgraph/graph-api",
47
+ "/cloud/index": "https://docs.langchain.com/oss/python/langgraph/overview",
48
+ "/cloud/how-tos/index": "https://docs.langchain.com/langsmith/home",
49
+ "/cloud/concepts/api": "https://docs.langchain.com/langsmith/agent-server",
50
+ "/cloud/concepts/cloud": "https://docs.langchain.com/langsmith/cloud",
51
+ "/cloud/faq/studio": "https://docs.langchain.com/langsmith/studio",
52
+ "/cloud/how-tos/human_in_the_loop_edit_state": "https://docs.langchain.com/langsmith/add-human-in-the-loop",
53
+ "/cloud/how-tos/human_in_the_loop_user_input": "https://docs.langchain.com/langsmith/add-human-in-the-loop",
54
+ "/concepts/platform_architecture": "https://docs.langchain.com/langsmith/cloud#architecture",
55
+ "/cloud/how-tos/stream_values": "https://docs.langchain.com/langsmith/streaming",
56
+ "/cloud/how-tos/stream_updates": "https://docs.langchain.com/langsmith/streaming",
57
+ "/cloud/how-tos/stream_messages": "https://docs.langchain.com/langsmith/streaming",
58
+ "/cloud/how-tos/stream_events": "https://docs.langchain.com/langsmith/streaming",
59
+ "/cloud/how-tos/stream_debug": "https://docs.langchain.com/langsmith/streaming",
60
+ "/cloud/how-tos/stream_multiple": "https://docs.langchain.com/langsmith/streaming",
61
+ "/cloud/concepts/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming",
62
+ "/agents/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming",
63
+ "/how-tos/create-react-agent": "https://docs.langchain.com/oss/python/langchain/agents#basic-configuration",
64
+ "/how-tos/create-react-agent-memory": "https://docs.langchain.com/oss/python/langgraph/add-memory",
65
+ "/how-tos/create-react-agent-system-prompt": "https://docs.langchain.com/oss/python/langgraph/add-memory",
66
+ "/how-tos/create-react-agent-structured-output": "https://docs.langchain.com/oss/python/langchain/agents#structured-output",
67
+ "/prebuilt": "https://docs.langchain.com/oss/python/langchain/agents",
68
+ "/reference/prebuilt": "https://reference.langchain.com/python/langgraph/agents/",
69
+ "/concepts/high_level": "https://docs.langchain.com/oss/python/langgraph/overview",
70
+ "/concepts/index": "https://docs.langchain.com/oss/python/langgraph/overview",
71
+ "/concepts/v0-human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/interrupts",
72
+ "/how-tos/index": "https://docs.langchain.com/oss/python/langgraph/overview",
73
+ "/tutorials/introduction": "https://docs.langchain.com/oss/python/langgraph/overview",
74
+ "/agents/deployment": "https://docs.langchain.com/oss/python/langgraph/local-server",
75
+ "/how-tos/deploy-self-hosted": "https://docs.langchain.com/langsmith/platform-setup",
76
+ "/concepts/self_hosted": "https://docs.langchain.com/langsmith/platform-setup",
77
+ "/tutorials/deployment": "https://docs.langchain.com/langsmith/deployments",
78
+ "/cloud/how-tos/assistant_versioning": "https://docs.langchain.com/langsmith/configuration-cloud",
79
+ "/cloud/concepts/runs": "https://docs.langchain.com/langsmith/assistants#execution",
80
+ "/how-tos/wait-user-input-functional": "https://docs.langchain.com/oss/python/langgraph/functional-api",
81
+ "/how-tos/review-tool-calls-functional": "https://docs.langchain.com/oss/python/langgraph/functional-api",
82
+ "/how-tos/create-react-agent-hitl": "https://docs.langchain.com/oss/python/langgraph/interrupts",
83
+ "/agents/human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/interrupts",
84
+ "/how-tos/human_in_the_loop/dynamic_breakpoints": "https://docs.langchain.com/oss/python/langgraph/interrupts",
85
+ "/concepts/breakpoints": "https://docs.langchain.com/oss/python/langgraph/interrupts",
86
+ "/how-tos/human_in_the_loop/breakpoints": "https://docs.langchain.com/oss/python/langgraph/interrupts",
87
+ "/cloud/how-tos/human_in_the_loop_breakpoint": "https://docs.langchain.com/langsmith/add-human-in-the-loop",
88
+ "/how-tos/human_in_the_loop/edit-graph-state": "https://docs.langchain.com/oss/python/langgraph/use-time-travel",
89
+ "/examples/index": "https://docs.langchain.com/oss/python/langgraph/case-studies",
90
+ "/guides/index": "https://docs.langchain.com/oss/python/langchain/overview",
91
+ "/tutorials/index": "https://docs.langchain.com/oss/python/learn",
92
+ "/llms-txt-overview": "https://docs.langchain.com/llms.txt",
93
+ "/tutorials/rag/langgraph_adaptive_rag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
94
+ "/tutorials/multi_agent/multi-agent-collaboration": "https://docs.langchain.com/oss/python/langchain/multi-agent",
95
+ "/how-tos/create-react-agent-manage-message-history": "https://docs.langchain.com/oss/python/langgraph/add-memory",
96
+ "/how-tos/many-tools": "https://docs.langchain.com/oss/python/langchain/tools",
97
+ "/tutorials/customer-support/customer-support": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
98
+ "/how-tos/react-agent-structured-output": "https://docs.langchain.com/oss/python/langchain/agents#structured-output",
99
+ "/tutorials/code_assistant/langgraph_code_assistant": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
100
+ "/tutorials/multi_agent/hierarchical_agent_teams": "https://docs.langchain.com/oss/python/langchain/supervisor",
101
+ "/tutorials/auth/getting_started": "https://docs.langchain.com/langsmith/auth",
102
+ "/tutorials/auth/resource_auth": "https://docs.langchain.com/langsmith/resource-auth",
103
+ "/tutorials/auth/add_auth_server": "https://docs.langchain.com/langsmith/add-auth-server",
104
+ "/how-tos/use-remote-graph": "https://docs.langchain.com/langsmith/use-remote-graph",
105
+ "/how-tos/autogen-integration": "https://docs.langchain.com/langsmith/autogen-integration",
106
+ "/how-tos/human_in_the_loop/wait-user-input": "https://docs.langchain.com/oss/python/langgraph/interrupts",
107
+ "/cloud/how-tos/use_stream_react": "https://docs.langchain.com/langsmith/use-stream-react",
108
+ "/cloud/how-tos/generative_ui_react": "https://docs.langchain.com/langsmith/generative-ui-react",
109
+ "/concepts/langgraph_platform": "https://docs.langchain.com/langsmith/home",
110
+ "/concepts/langgraph_components": "https://docs.langchain.com/langsmith/components",
111
+ "/concepts/langgraph_server": "https://docs.langchain.com/langsmith/agent-server",
112
+ "/concepts/langgraph_data_plane": "https://docs.langchain.com/langsmith/data-plane",
113
+ "/concepts/langgraph_control_plane": "https://docs.langchain.com/langsmith/control-plane",
114
+ "/concepts/langgraph_cli": "https://docs.langchain.com/langsmith/cli",
115
+ "/concepts/langgraph_studio": "https://docs.langchain.com/langsmith/studio",
116
+ "/cloud/how-tos/studio/quick_start": "https://docs.langchain.com/langsmith/quick-start-studio",
117
+ "/cloud/how-tos/invoke_studio": "https://docs.langchain.com/langsmith/use-studio",
118
+ "/cloud/how-tos/studio/manage_assistants": "https://docs.langchain.com/langsmith/use-studio",
119
+ "/cloud/how-tos/threads_studio": "https://docs.langchain.com/langsmith/use-threads",
120
+ "/cloud/how-tos/iterate_graph_studio": "https://docs.langchain.com/langsmith/use-studio",
121
+ "/cloud/how-tos/studio/run_evals": "https://docs.langchain.com/langsmith/observability",
122
+ "/cloud/how-tos/clone_traces_studio": "https://docs.langchain.com/langsmith/observability",
123
+ "/cloud/how-tos/datasets_studio": "https://docs.langchain.com/langsmith/use-studio",
124
+ "/concepts/sdk": "https://docs.langchain.com/langsmith/sdk",
125
+ "/concepts/plans": "https://docs.langchain.com/langsmith/home",
126
+ "/concepts/application_structure": "https://docs.langchain.com/langsmith/application-structure",
127
+ "/concepts/scalability_and_resilience": "https://docs.langchain.com/langsmith/scalability-and-resilience",
128
+ "/concepts/auth": "https://docs.langchain.com/langsmith/auth",
129
+ "/how-tos/auth/custom_auth": "https://docs.langchain.com/langsmith/custom-auth",
130
+ "/how-tos/auth/openapi_security": "https://docs.langchain.com/langsmith/openapi-security",
131
+ "/concepts/assistants": "https://docs.langchain.com/langsmith/assistants",
132
+ "/cloud/how-tos/configuration_cloud": "https://docs.langchain.com/langsmith/configuration-cloud",
133
+ "/cloud/how-tos/use_threads": "https://docs.langchain.com/langsmith/use-threads",
134
+ "/cloud/how-tos/background_run": "https://docs.langchain.com/langsmith/background-run",
135
+ "/cloud/how-tos/same-thread": "https://docs.langchain.com/langsmith/same-thread",
136
+ "/cloud/how-tos/stateless_runs": "https://docs.langchain.com/langsmith/stateless-runs",
137
+ "/cloud/how-tos/configurable_headers": "https://docs.langchain.com/langsmith/configurable-headers",
138
+ "/concepts/double_texting": "https://docs.langchain.com/langsmith/double-texting",
139
+ "/cloud/how-tos/interrupt_concurrent": "https://docs.langchain.com/langsmith/interrupt-concurrent",
140
+ "/cloud/how-tos/rollback_concurrent": "https://docs.langchain.com/langsmith/rollback-concurrent",
141
+ "/cloud/how-tos/reject_concurrent": "https://docs.langchain.com/langsmith/reject-concurrent",
142
+ "/cloud/how-tos/enqueue_concurrent": "https://docs.langchain.com/langsmith/enqueue-concurrent",
143
+ "/cloud/concepts/webhooks": "https://docs.langchain.com/langsmith/use-webhooks",
144
+ "/cloud/how-tos/webhooks": "https://docs.langchain.com/langsmith/use-webhooks",
145
+ "/cloud/concepts/cron_jobs": "https://docs.langchain.com/langsmith/cron-jobs",
146
+ "/cloud/how-tos/cron_jobs": "https://docs.langchain.com/langsmith/cron-jobs",
147
+ "/how-tos/http/custom_lifespan": "https://docs.langchain.com/langsmith/custom-lifespan",
148
+ "/how-tos/http/custom_middleware": "https://docs.langchain.com/langsmith/custom-middleware",
149
+ "/how-tos/http/custom_routes": "https://docs.langchain.com/langsmith/custom-routes",
150
+ "/cloud/concepts/data_storage_and_privacy": "https://docs.langchain.com/langsmith/data-storage-and-privacy",
151
+ "/cloud/deployment/semantic_search": "https://docs.langchain.com/langsmith/semantic-search",
152
+ "/how-tos/ttl/configure_ttl": "https://docs.langchain.com/langsmith/configure-ttl",
153
+ "/concepts/deployment_options": "https://docs.langchain.com/langsmith/deployments",
154
+ "/cloud/quick_start": "https://docs.langchain.com/langsmith/deployment-quickstart",
155
+ "/cloud/deployment/setup": "https://docs.langchain.com/langsmith/setup-app-requirements-txt",
156
+ "/cloud/deployment/setup_pyproject": "https://docs.langchain.com/langsmith/setup-pyproject",
157
+ "/cloud/deployment/setup_javascript": "https://docs.langchain.com/langsmith/setup-javascript",
158
+ "/cloud/deployment/custom_docker": "https://docs.langchain.com/langsmith/custom-docker",
159
+ "/cloud/deployment/graph_rebuild": "https://docs.langchain.com/langsmith/graph-rebuild",
160
+ "/concepts/langgraph_cloud": "https://docs.langchain.com/langsmith/cloud",
161
+ "/concepts/langgraph_self_hosted_data_plane": "https://docs.langchain.com/langsmith/platform-setup",
162
+ "/concepts/langgraph_self_hosted_control_plane": "https://docs.langchain.com/langsmith/platform-setup",
163
+ "/concepts/langgraph_standalone_container": "https://docs.langchain.com/langsmith/docker",
164
+ "/cloud/deployment/cloud": "https://docs.langchain.com/langsmith/cloud",
165
+ "/cloud/deployment/self_hosted_data_plane": "https://docs.langchain.com/langsmith/platform-setup",
166
+ "/cloud/deployment/self_hosted_control_plane": "https://docs.langchain.com/langsmith/platform-setup",
167
+ "/cloud/deployment/standalone_container": "https://docs.langchain.com/langsmith/docker",
168
+ "/concepts/server-mcp": "https://docs.langchain.com/langsmith/server-mcp",
169
+ "/cloud/how-tos/human_in_the_loop_time_travel": "https://docs.langchain.com/langsmith/human-in-the-loop-time-travel",
170
+ "/cloud/how-tos/add-human-in-the-loop": "https://docs.langchain.com/langsmith/add-human-in-the-loop",
171
+ "/cloud/deployment/egress": "https://docs.langchain.com/langsmith/env-var",
172
+ "/cloud/how-tos/streaming": "https://docs.langchain.com/langsmith/streaming",
173
+ "/cloud/reference/api/api_ref": "https://docs.langchain.com/langsmith/server-api-ref",
174
+ "/cloud/reference/langgraph_server_changelog": "https://docs.langchain.com/langsmith/agent-server-changelog",
175
+ "/cloud/reference/api/api_ref_control_plane": "https://docs.langchain.com/langsmith/api-ref-control-plane",
176
+ "/cloud/reference/cli": "https://docs.langchain.com/langsmith/cli",
177
+ "/cloud/reference/env_var": "https://docs.langchain.com/langsmith/env-var",
178
+ "/troubleshooting/studio": "https://docs.langchain.com/langsmith/troubleshooting-studio",
179
+ "/index": "https://docs.langchain.com/oss/python/langgraph/overview",
180
+ "/agents/agents": "https://docs.langchain.com/oss/python/langchain/agents",
181
+ "/concepts/why-langgraph": "https://docs.langchain.com/oss/python/langgraph/overview",
182
+ "/tutorials/get-started/1-build-basic-chatbot": "https://docs.langchain.com/oss/python/langgraph/quickstart",
183
+ "/tutorials/get-started/2-add-tools": "https://docs.langchain.com/oss/python/langgraph/quickstart",
184
+ "/tutorials/get-started/3-add-memory": "https://docs.langchain.com/oss/python/langgraph/quickstart",
185
+ "/tutorials/get-started/4-human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/quickstart",
186
+ "/tutorials/get-started/5-customize-state": "https://docs.langchain.com/oss/python/langgraph/quickstart",
187
+ "/tutorials/get-started/6-time-travel": "https://docs.langchain.com/oss/python/langgraph/quickstart",
188
+ "/tutorials/langsmith/local-server": "https://docs.langchain.com/oss/python/langgraph/local-server",
189
+ "/tutorials/workflows": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
190
+ "/tutorials/plan-and-execute/plan-and-execute": "https://docs.langchain.com/oss/python/langchain/middleware/built-in#to-do-list",
191
+ "/tutorials/langgraph-platform/local-server/local-server": "https://docs.langchain.com/langsmith/local-server",
192
+ "/concepts/agentic_concepts": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
193
+ "/agents/overview": "https://docs.langchain.com/oss/python/langchain/agents",
194
+ "/agents/run_agents": "https://docs.langchain.com/oss/python/langgraph/quickstart",
195
+ "/concepts/low_level": "https://docs.langchain.com/oss/python/langgraph/graph-api",
196
+ "/how-tos/graph-api": "https://docs.langchain.com/oss/python/langgraph/graph-api",
197
+ "/how-tos/react-agent-from-scratch": "https://docs.langchain.com/oss/python/langchain/quickstart",
198
+ "/concepts/functional_api": "https://docs.langchain.com/oss/python/langgraph/functional-api",
199
+ "/how-tos/use-functional-api": "https://docs.langchain.com/oss/python/langgraph/functional-api",
200
+ "/concepts/pregel": "https://docs.langchain.com/oss/python/langgraph/pregel",
201
+ "/concepts/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming",
202
+ "/how-tos/streaming": "https://docs.langchain.com/oss/python/langgraph/streaming",
203
+ "/concepts/persistence": "https://docs.langchain.com/oss/python/langgraph/persistence",
204
+ "/concepts/durable_execution": "https://docs.langchain.com/oss/python/langgraph/durable-execution",
205
+ "/concepts/memory": "https://docs.langchain.com/oss/python/langgraph/memory",
206
+ "/how-tos/memory/add-memory": "https://docs.langchain.com/oss/python/langgraph/add-memory",
207
+ "/agents/context": "https://docs.langchain.com/oss/python/langgraph/add-memory",
208
+ "/agents/models": "https://docs.langchain.com/oss/python/langgraph/overview",
209
+ "/concepts/tools": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
210
+ "/how-tos/tool-calling": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
211
+ "/concepts/human_in_the_loop": "https://docs.langchain.com/oss/python/langgraph/interrupts",
212
+ "/how-tos/human_in_the_loop/add-human-in-the-loop": "https://docs.langchain.com/oss/python/langgraph/interrupts",
213
+ "/concepts/time-travel": "https://docs.langchain.com/oss/python/langgraph/persistence",
214
+ "/how-tos/human_in_the_loop/time-travel": "https://docs.langchain.com/oss/python/langgraph/use-time-travel",
215
+ "/concepts/subgraphs": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs",
216
+ "/how-tos/subgraph": "https://docs.langchain.com/oss/python/langgraph/use-subgraphs",
217
+ "/concepts/multi_agent": "https://docs.langchain.com/oss/python/langgraph/graph-api",
218
+ "/agents/multi-agent": "https://docs.langchain.com/oss/python/langchain/multi-agent",
219
+ "/how-tos/multi_agent": "https://docs.langchain.com/oss/python/langgraph/graph-api",
220
+ "/concepts/mcp": "https://docs.langchain.com/oss/python/langgraph/overview",
221
+ "/agents/mcp": "https://docs.langchain.com/oss/python/langgraph/overview",
222
+ "/concepts/tracing": "https://docs.langchain.com/oss/python/langgraph/observability",
223
+ "/how-tos/enable-tracing": "https://docs.langchain.com/oss/python/langgraph/observability",
224
+ "/agents/evals": "https://docs.langchain.com/oss/python/langgraph/overview",
225
+ "/concepts/template_applications": "https://docs.langchain.com/oss/python/langgraph/overview",
226
+ "/tutorials/rag/langgraph_agentic_rag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
227
+ "/tutorials/multi_agent/agent_supervisor": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
228
+ "/tutorials/sql/sql-agent": "https://docs.langchain.com/oss/python/langgraph/sql-agent",
229
+ "/agents/ui": "https://docs.langchain.com/oss/python/langgraph/ui",
230
+ "/how-tos/run-id-langsmith": "https://docs.langchain.com/oss/python/langgraph/observability",
231
+ "/troubleshooting/errors/index": "https://docs.langchain.com/oss/python/langgraph/common-errors",
232
+ "/troubleshooting/errors/INVALID_CHAT_HISTORY": "https://docs.langchain.com/oss/python/langgraph/INVALID_CHAT_HISTORY",
233
+ "/troubleshooting/errors/INVALID_LICENSE": "https://docs.langchain.com/oss/python/langgraph/common-errors",
234
+ "/adopters": "https://docs.langchain.com/oss/python/langgraph/case-studies",
235
+ "/concepts/faq": "https://docs.langchain.com/oss/python/langgraph/overview",
236
+ "/agents/prebuilt": "https://docs.langchain.com/oss/python/langchain/agents",
237
+ "/reference/index": "https://reference.langchain.com/python/langgraph/",
238
+ "/reference/graphs": "https://reference.langchain.com/python/langgraph/graphs/",
239
+ "/reference/func": "https://reference.langchain.com/python/langgraph/func/",
240
+ "/reference/pregel": "https://reference.langchain.com/python/langgraph/pregel/",
241
+ "/reference/checkpoints": "https://reference.langchain.com/python/langgraph/checkpoints/",
242
+ "/reference/store": "https://reference.langchain.com/python/langgraph/store/",
243
+ "/reference/cache": "https://reference.langchain.com/python/langgraph/cache/",
244
+ "/reference/types": "https://reference.langchain.com/python/langgraph/types/",
245
+ "/reference/runtime": "https://reference.langchain.com/python/langgraph/runtime/",
246
+ "/reference/config": "https://reference.langchain.com/python/langgraph/config/",
247
+ "/reference/errors": "https://reference.langchain.com/python/langgraph/errors/",
248
+ "/reference/constants": "https://reference.langchain.com/python/langgraph/constants/",
249
+ "/reference/channels": "https://reference.langchain.com/python/langgraph/channels/",
250
+ "/reference/agents": "https://reference.langchain.com/python/langgraph/agents/",
251
+ "/reference/supervisor": "https://reference.langchain.com/python/langgraph/supervisor/",
252
+ "/reference/swarm": "https://reference.langchain.com/python/langgraph/swarm/",
253
+ "/reference/mcp": "https://reference.langchain.com/python/langgraph/mcp/",
254
+ "/cloud/reference/sdk/python_sdk_ref": "https://reference.langchain.com/python/langsmith/deployment/sdk/",
255
+ "/reference/remote_graph": "https://reference.langchain.com/python/langsmith/deployment/remote_graph/",
256
+ "/additional-resources/index": "https://docs.langchain.com/oss/python/langchain/overview",
257
+ "/cloud/reference/sdk/js_ts_sdk_ref": "https://reference.langchain.com/javascript/modules/langsmith.html",
258
+ "/snippets/chat_model_tabs": "https://docs.langchain.com/oss/python/langchain/overview",
259
+ "/troubleshooting/errors/GRAPH_RECURSION_LIMIT": "https://docs.langchain.com/oss/python/langgraph/GRAPH_RECURSION_LIMIT",
260
+ "/troubleshooting/errors/INVALID_CONCURRENT_GRAPH_UPDATE": "https://docs.langchain.com/oss/python/langgraph/INVALID_CONCURRENT_GRAPH_UPDATE",
261
+ "/troubleshooting/errors/INVALID_GRAPH_NODE_RETURN_VALUE": "https://docs.langchain.com/oss/python/langgraph/INVALID_GRAPH_NODE_RETURN_VALUE",
262
+ "/troubleshooting/errors/MULTIPLE_SUBGRAPHS": "https://docs.langchain.com/oss/python/langgraph/MULTIPLE_SUBGRAPHS",
263
+ "/tutorials/rag/langgraph_self_rag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
264
+ "/additional-resources": "https://docs.langchain.com/oss/python/langgraph/overview",
265
+ "/examples": "https://docs.langchain.com/oss/python/langgraph/overview",
266
+ "/guides": "https://docs.langchain.com/oss/python/langgraph/overview",
267
+ "/how-tos/autogen-integration-functional": "https://docs.langchain.com/oss/python/langgraph/overview",
268
+ "/how-tos/cross-thread-persistence-functional": "https://docs.langchain.com/oss/python/langgraph/add-memory#add-long-term-memory",
269
+ "/how-tos/disable-streaming": "https://docs.langchain.com/oss/python/langgraph/streaming",
270
+ "/how-tos/memory/semantic-search": "https://docs.langchain.com/oss/python/langgraph/add-memory",
271
+ "/how-tos/multi-agent-multi-turn-convo-functional": "https://docs.langchain.com/oss/python/langgraph/graph-api",
272
+ "/how-tos/multi-agent-network-functional": "https://docs.langchain.com/oss/python/langgraph/graph-api",
273
+ "/how-tos/persistence-functional": "https://docs.langchain.com/oss/python/langgraph/add-memory",
274
+ "/how-tos/react-agent-from-scratch-functional": "https://docs.langchain.com/oss/python/langgraph/workflows-agents",
275
+ "/reference": "https://reference.langchain.com/python/langgraph/",
276
+ "/troubleshooting/errors": "https://docs.langchain.com/oss/python/langgraph/common-errors",
277
+ "/tutorials/chatbot-simulation-evaluation/agent-simulation-evaluation": "https://docs.langchain.com/oss/python/langgraph/overview",
278
+ "/tutorials/chatbot-simulation-evaluation/langsmith-agent-simulation-evaluation": "https://docs.langchain.com/oss/python/langgraph/overview",
279
+ "/tutorials/chatbots/information-gather-prompting": "https://docs.langchain.com/oss/python/langgraph/overview",
280
+ "/tutorials/extraction/retries": "https://docs.langchain.com/oss/python/langgraph/overview",
281
+ "/tutorials/langgraph-platform/local-server": "https://docs.langchain.com/langsmith/agent-server",
282
+ "/tutorials/lats/lats": "https://docs.langchain.com/oss/python/langgraph/overview",
283
+ "/tutorials/llm-compiler/LLMCompiler": "https://docs.langchain.com/oss/python/langgraph/overview",
284
+ "/tutorials/rag/langgraph_adaptive_rag_local": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
285
+ "/tutorials/rag/langgraph_crag": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
286
+ "/tutorials/rag/langgraph_crag_local": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
287
+ "/tutorials/rag/langgraph_self_rag_local": "https://docs.langchain.com/oss/python/langgraph/agentic-rag",
288
+ "/tutorials/reflection/reflection": "https://docs.langchain.com/oss/python/langgraph/overview",
289
+ "/tutorials/reflexion/reflexion": "https://docs.langchain.com/oss/python/langgraph/overview",
290
+ "/tutorials/rewoo/rewoo": "https://docs.langchain.com/oss/python/langgraph/overview",
291
+ "/tutorials/self-discover/self-discover": "https://docs.langchain.com/oss/python/langgraph/overview",
292
+ "/tutorials/tnt-llm/tnt-llm": "https://docs.langchain.com/oss/python/langgraph/overview",
293
+ "/tutorials/tot/tot": "https://docs.langchain.com/oss/python/langgraph/overview",
294
+ "/tutorials/usaco/usaco": "https://docs.langchain.com/oss/python/langgraph/overview",
295
+ "/tutorials/web-navigation/web_voyager": "https://docs.langchain.com/oss/python/langgraph/overview"
296
+ }
langgraph/source/examples/README.md ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ # LangGraph examples
2
+
3
+ This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview). Please refer to the LangChain docs for the most up-to-date examples and usage guidelines for LangGraph.
langgraph/source/examples/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ # -*- coding: utf-8 -*-
langgraph/source/examples/chatbot-simulation-evaluation/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ # -*- coding: utf-8 -*-
langgraph/source/examples/chatbot-simulation-evaluation/agent-simulation-evaluation.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "10251c1c",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/chatbot-simulation-evaluation/agent-simulation-evaluation.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "c5fc63df",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.1"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/chatbot-simulation-evaluation/langsmith-agent-simulation-evaluation.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "a4351a24",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/chatbot-simulation-evaluation/langsmith-agent-simulation-evaluation.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "4cc9af1e",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.2"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/chatbot-simulation-evaluation/simulation_utils.py ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import functools
2
+ from typing import Annotated, Any, Callable, Dict, List, Optional, Union
3
+
4
+ from langchain_community.adapters.openai import convert_message_to_dict
5
+ from langchain_core.messages import AIMessage, AnyMessage, BaseMessage, HumanMessage
6
+ from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
7
+ from langchain_core.runnables import Runnable, RunnableLambda
8
+ from langchain_core.runnables import chain as as_runnable
9
+ from langchain_openai import ChatOpenAI
10
+ from typing_extensions import TypedDict
11
+
12
+ from langgraph.graph import END, StateGraph, START
13
+
14
+
15
+ def langchain_to_openai_messages(messages: List[BaseMessage]):
16
+ """
17
+ Convert a list of langchain base messages to a list of openai messages.
18
+
19
+ Parameters:
20
+ messages (List[BaseMessage]): A list of langchain base messages.
21
+
22
+ Returns:
23
+ List[dict]: A list of openai messages.
24
+ """
25
+
26
+ return [
27
+ convert_message_to_dict(m) if isinstance(m, BaseMessage) else m
28
+ for m in messages
29
+ ]
30
+
31
+
32
+ def create_simulated_user(
33
+ system_prompt: str, llm: Runnable | None = None
34
+ ) -> Runnable[Dict, AIMessage]:
35
+ """
36
+ Creates a simulated user for chatbot simulation.
37
+
38
+ Args:
39
+ system_prompt (str): The system prompt to be used by the simulated user.
40
+ llm (Runnable | None, optional): The language model to be used for the simulation.
41
+ Defaults to gpt-3.5-turbo.
42
+
43
+ Returns:
44
+ Runnable[Dict, AIMessage]: The simulated user for chatbot simulation.
45
+ """
46
+ return ChatPromptTemplate.from_messages(
47
+ [
48
+ ("system", system_prompt),
49
+ MessagesPlaceholder(variable_name="messages"),
50
+ ]
51
+ ) | (llm or ChatOpenAI(model="gpt-3.5-turbo")).with_config(
52
+ run_name="simulated_user"
53
+ )
54
+
55
+
56
+ Messages = Union[list[AnyMessage], AnyMessage]
57
+
58
+
59
+ def add_messages(left: Messages, right: Messages) -> Messages:
60
+ if not isinstance(left, list):
61
+ left = [left]
62
+ if not isinstance(right, list):
63
+ right = [right]
64
+ return left + right
65
+
66
+
67
+ class SimulationState(TypedDict):
68
+ """
69
+ Represents the state of a simulation.
70
+
71
+ Attributes:
72
+ messages (List[AnyMessage]): A list of messages in the simulation.
73
+ inputs (Optional[dict[str, Any]]): Optional inputs for the simulation.
74
+ """
75
+
76
+ messages: Annotated[List[AnyMessage], add_messages]
77
+ inputs: Optional[dict[str, Any]]
78
+
79
+
80
+ def create_chat_simulator(
81
+ assistant: (
82
+ Callable[[List[AnyMessage]], str | AIMessage]
83
+ | Runnable[List[AnyMessage], str | AIMessage]
84
+ ),
85
+ simulated_user: Runnable[Dict, AIMessage],
86
+ *,
87
+ input_key: str,
88
+ max_turns: int = 6,
89
+ should_continue: Optional[Callable[[SimulationState], str]] = None,
90
+ ):
91
+ """Creates a chat simulator for evaluating a chatbot.
92
+
93
+ Args:
94
+ assistant: The chatbot assistant function or runnable object.
95
+ simulated_user: The simulated user object.
96
+ input_key: The key for the input to the chat simulation.
97
+ max_turns: The maximum number of turns in the chat simulation. Default is 6.
98
+ should_continue: Optional function to determine if the simulation should continue.
99
+ If not provided, a default function will be used.
100
+
101
+ Returns:
102
+ The compiled chat simulation graph.
103
+
104
+ """
105
+ graph_builder = StateGraph(SimulationState)
106
+ graph_builder.add_node(
107
+ "user",
108
+ _create_simulated_user_node(simulated_user),
109
+ )
110
+ graph_builder.add_node(
111
+ "assistant", _fetch_messages | assistant | _coerce_to_message
112
+ )
113
+ graph_builder.add_edge("assistant", "user")
114
+ graph_builder.add_conditional_edges(
115
+ "user",
116
+ should_continue or functools.partial(_should_continue, max_turns=max_turns),
117
+ )
118
+ # If your dataset has a 'leading question/input', then we route first to the assistant, otherwise, we let the user take the lead.
119
+ graph_builder.add_edge(START, "assistant" if input_key is not None else "user")
120
+
121
+ return (
122
+ RunnableLambda(_prepare_example).bind(input_key=input_key)
123
+ | graph_builder.compile()
124
+ )
125
+
126
+
127
+ ## Private methods
128
+
129
+
130
+ def _prepare_example(inputs: dict[str, Any], input_key: Optional[str] = None):
131
+ if input_key is not None:
132
+ if input_key not in inputs:
133
+ raise ValueError(
134
+ f"Dataset's example input must contain the provided input key: '{input_key}'.\nFound: {list(inputs.keys())}"
135
+ )
136
+ messages = [HumanMessage(content=inputs[input_key])]
137
+ return {
138
+ "inputs": {k: v for k, v in inputs.items() if k != input_key},
139
+ "messages": messages,
140
+ }
141
+ return {"inputs": inputs, "messages": []}
142
+
143
+
144
+ def _invoke_simulated_user(state: SimulationState, simulated_user: Runnable):
145
+ """Invoke the simulated user node."""
146
+ runnable = (
147
+ simulated_user
148
+ if isinstance(simulated_user, Runnable)
149
+ else RunnableLambda(simulated_user)
150
+ )
151
+ inputs = state.get("inputs", {})
152
+ inputs["messages"] = state["messages"]
153
+ return runnable.invoke(inputs)
154
+
155
+
156
+ def _swap_roles(state: SimulationState):
157
+ new_messages = []
158
+ for m in state["messages"]:
159
+ if isinstance(m, AIMessage):
160
+ new_messages.append(HumanMessage(content=m.content))
161
+ else:
162
+ new_messages.append(AIMessage(content=m.content))
163
+ return {
164
+ "inputs": state.get("inputs", {}),
165
+ "messages": new_messages,
166
+ }
167
+
168
+
169
+ @as_runnable
170
+ def _fetch_messages(state: SimulationState):
171
+ """Invoke the simulated user node."""
172
+ return state["messages"]
173
+
174
+
175
+ def _convert_to_human_message(message: BaseMessage):
176
+ return {"messages": [HumanMessage(content=message.content)]}
177
+
178
+
179
+ def _create_simulated_user_node(simulated_user: Runnable):
180
+ """Simulated user accepts a {"messages": [...]} argument and returns a single message."""
181
+ return (
182
+ _swap_roles
183
+ | RunnableLambda(_invoke_simulated_user).bind(simulated_user=simulated_user)
184
+ | _convert_to_human_message
185
+ )
186
+
187
+
188
+ def _coerce_to_message(assistant_output: str | BaseMessage):
189
+ if isinstance(assistant_output, str):
190
+ return {"messages": [AIMessage(content=assistant_output)]}
191
+ else:
192
+ return {"messages": [assistant_output]}
193
+
194
+
195
+ def _should_continue(state: SimulationState, max_turns: int = 6):
196
+ messages = state["messages"]
197
+ # TODO support other stop criteria
198
+ if len(messages) > max_turns:
199
+ return END
200
+ elif messages[-1].content.strip() == "FINISHED":
201
+ return END
202
+ else:
203
+ return "assistant"
langgraph/source/examples/chatbots/information-gather-prompting.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "a9014f94",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/chatbots/information-gather-prompting.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "f47ce992",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.9"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/code_assistant/langgraph_code_assistant.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "1f2f13ca",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/code_assistant/langgraph_code_assistant.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "5e4c9bfe",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.12.2"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/code_assistant/langgraph_code_assistant_mistral.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/customer-support/customer-support.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "a8232bc9",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/customer-support/customer-support.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "63da8671",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.12.2"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/extraction/retries.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "8dbdba5b",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/extraction/retries.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "1d444b7f",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.12.2"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/human_in_the_loop/wait-user-input.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "3ecab357",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/how-tos/human_in_the_loop/wait-user-input.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "3f2866bd",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.9"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/lats/lats.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "09038b53",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/lats/lats.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "b1669748",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.12.2"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/llm-compiler/LLMCompiler.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "85205e97",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/llm-compiler/LLMCompiler.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "2fdab366",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.9"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/multi_agent/hierarchical_agent_teams.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "5cc8a2ad",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/multi_agent/hierarchical_agent_teams.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "b9f3508a",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.9"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/multi_agent/multi-agent-collaboration.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "d2b507b9",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/multi_agent/multi-agent-collaboration.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "41a8f10a",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.2"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/plan-and-execute/plan-and-execute.ipynb ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "9138f92e",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/tutorials/plan-and-execute/plan-and-execute.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "id": "093678ba",
14
+ "metadata": {},
15
+ "source": [
16
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
17
+ ]
18
+ }
19
+ ],
20
+ "metadata": {
21
+ "kernelspec": {
22
+ "display_name": "Python 3 (ipykernel)",
23
+ "language": "python",
24
+ "name": "python3"
25
+ },
26
+ "language_info": {
27
+ "codemirror_mode": {
28
+ "name": "ipython",
29
+ "version": 3
30
+ },
31
+ "file_extension": ".py",
32
+ "mimetype": "text/x-python",
33
+ "name": "python",
34
+ "nbconvert_exporter": "python",
35
+ "pygments_lexer": "ipython3",
36
+ "version": "3.11.2"
37
+ }
38
+ },
39
+ "nbformat": 4,
40
+ "nbformat_minor": 5
41
+ }
langgraph/source/examples/rag/langgraph_adaptive_rag.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_adaptive_rag_cohere.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_adaptive_rag_local.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_agentic_rag.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_crag.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_crag_local.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_self_rag.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_self_rag_local.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/rag/langgraph_self_rag_pinecone_movies.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
langgraph/source/examples/react-agent-from-scratch.ipynb ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "294995c4",
6
+ "metadata": {},
7
+ "source": [
8
+ "[This file has been moved](https://github.com/langchain-ai/langgraph/blob/23961cff61a42b52525f3b20b4094d8d2fba1744/docs/docs/how-tos/react-agent-from-scratch.ipynb)"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "markdown",
13
+ "metadata": {},
14
+ "source": [
15
+ "This directory is retained purely for archival purposes and is no longer updated. The examples previously found here have been moved to the newly [consolidated LangChain documentation](https://docs.langchain.com/oss/python/langgraph/overview)."
16
+ ]
17
+ }
18
+ ],
19
+ "metadata": {
20
+ "kernelspec": {
21
+ "display_name": "Python 3",
22
+ "language": "python",
23
+ "name": "python3"
24
+ },
25
+ "language_info": {
26
+ "codemirror_mode": {
27
+ "name": "ipython",
28
+ "version": 3
29
+ },
30
+ "file_extension": ".py",
31
+ "mimetype": "text/x-python",
32
+ "name": "python",
33
+ "nbconvert_exporter": "python",
34
+ "pygments_lexer": "ipython3",
35
+ "version": "3.11.9"
36
+ }
37
+ },
38
+ "nbformat": 4,
39
+ "nbformat_minor": 2
40
+ }