Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
d5fbd3a
feat: frontend docs
christian-bromann Mar 4, 2026
b1b02f2
fix CI
christian-bromann Mar 4, 2026
5b77be0
install deps
christian-bromann Mar 4, 2026
2d7b91c
test relative paths
christian-bromann Mar 5, 2026
0d000cd
try this
christian-bromann Mar 5, 2026
d2c9b07
fix import
christian-bromann Mar 5, 2026
191acc5
add new pattern for rendering basic markdown
christian-bromann Mar 5, 2026
b866406
pass agent as generic
christian-bromann Mar 6, 2026
dba0644
various improvements
christian-bromann Mar 6, 2026
3da389b
bump playground component
christian-bromann Mar 6, 2026
b02323f
lint fixes
christian-bromann Mar 9, 2026
ec687d4
add generative-ui, remove optimistic-updates
christian-bromann Mar 10, 2026
b76b40e
remove async generator tools
christian-bromann Mar 10, 2026
366656f
remove link
christian-bromann Mar 10, 2026
04b0ca8
remove async iterator tools
christian-bromann Mar 10, 2026
872e2b2
add note for required langgraph deployment
christian-bromann Mar 10, 2026
3438ed7
fix link
christian-bromann Mar 10, 2026
cb2a024
Update src/oss/langchain/frontend/tool-calling.mdx
christian-bromann Mar 11, 2026
22e79a3
Update src/oss/langchain/frontend/tool-calling.mdx
christian-bromann Mar 11, 2026
71a56d7
Update src/oss/deepagents/frontend/subagent-streaming.mdx
christian-bromann Mar 11, 2026
b5e0384
Update src/oss/deepagents/frontend/subagent-streaming.mdx
christian-bromann Mar 11, 2026
eb8706b
Update src/oss/deepagents/frontend/subagent-streaming.mdx
christian-bromann Mar 11, 2026
806496b
Update src/oss/deepagents/frontend/todo-list.mdx
christian-bromann Mar 11, 2026
15d8754
Update src/oss/deepagents/frontend/todo-list.mdx
christian-bromann Mar 11, 2026
09caad5
Update src/oss/deepagents/frontend/todo-list.mdx
christian-bromann Mar 11, 2026
1afc427
Update src/oss/langgraph/frontend/graph-execution.mdx
christian-bromann Mar 11, 2026
3e2919d
Update src/oss/langgraph/frontend/graph-execution.mdx
christian-bromann Mar 11, 2026
b084613
Update src/oss/langgraph/frontend/graph-execution.mdx
christian-bromann Mar 11, 2026
c18b59e
Update src/oss/langgraph/frontend/graph-execution.mdx
christian-bromann Mar 11, 2026
d04bfe3
Update src/oss/langchain/frontend/tool-calling.mdx
christian-bromann Mar 11, 2026
8f91ed0
Update src/oss/langchain/frontend/markdown-messages.mdx
christian-bromann Mar 11, 2026
1a20f4f
Update src/oss/langchain/frontend/tool-calling.mdx
christian-bromann Mar 11, 2026
d455af8
Update src/oss/langchain/frontend/tool-calling.mdx
christian-bromann Mar 11, 2026
d39d1a1
Update src/oss/deepagents/frontend/todo-list.mdx
christian-bromann Mar 11, 2026
21bbaa5
Update src/oss/deepagents/frontend/todo-list.mdx
christian-bromann Mar 11, 2026
6987cb2
Update src/oss/langchain/overview.mdx
christian-bromann Mar 11, 2026
9e6eaf6
update
christian-bromann Mar 11, 2026
6ac7f41
fix icon
christian-bromann Mar 11, 2026
5a9c70b
Update src/oss/langchain/frontend/reasoning-tokens.mdx
christian-bromann Mar 11, 2026
73178cd
Update src/oss/langchain/frontend/human-in-the-loop.mdx
christian-bromann Mar 11, 2026
27e639e
Update src/oss/langchain/frontend/tool-calling.mdx
christian-bromann Mar 11, 2026
b4ee0df
Update src/oss/langchain/frontend/message-queues.mdx
christian-bromann Mar 11, 2026
77fcc59
fix
christian-bromann Mar 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
legacy-peer-deps=true
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ all: help

dev:
@echo "Starting development mode..."
npm install
PYTHONPATH=$(CURDIR) uv run pipeline dev

build:
@echo "Building documentation..."
npm install
PYTHONPATH=$(CURDIR) uv run pipeline build

# Define a variable for the test file path.
Expand Down Expand Up @@ -64,6 +66,7 @@ test:
install:
@echo "Installing all dependencies"
uv sync --all-groups
npm install
npm install -g mint@latest

clean:
Expand Down
21 changes: 20 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"name": "docs",
"version": "1.0.0",
"description": "Docs for the project",
"private": true,
"dependencies": {
"@langchain/docs-sandbox": "0.0.5"
}
}
42 changes: 42 additions & 0 deletions pipeline/core/builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ def __init__(self, src_dir: Path, build_dir: Path) -> None:
".yaml",
".css",
".js",
".jsx",
".tsx",
".txt",
".woff2",
".woff",
Expand Down Expand Up @@ -103,6 +105,10 @@ def build_all(self) -> None:
logger.info("Copying shared files...")
self._copy_shared_files()

# Copy snippet components from @langchain/docs-sandbox npm package
logger.info("Copying npm snippet components...")
self._copy_npm_snippets()

logger.info("✅ New structure build complete")

def _convert_yaml_to_json(self, yaml_file_path: Path, output_path: Path) -> None:
Expand Down Expand Up @@ -819,6 +825,42 @@ def _copy_shared_files(self) -> None:

logger.info("✅ Shared files copied: %d files", copied_count)

# Maps npm dist filenames to their output names in build/snippets/
_NPM_SNIPPET_FILES: dict[str, str] = {
"PatternEmbed.jsx": "pattern-embed.jsx",
}

def _copy_npm_snippets(self) -> None:
"""Copy snippet components from the @langchain/docs-sandbox npm package.

Overwrites any source-tree versions already copied by _copy_shared_files
so the build always uses the latest published component.
"""
pkg_dist = (
self.src_dir.parent
/ "node_modules"
/ "@langchain"
/ "docs-sandbox"
/ "dist"
)
if not pkg_dist.is_dir():
logger.warning(
"@langchain/docs-sandbox not installed — run `npm install` first"
)
return

snippets_dir = self.build_dir / "snippets"
snippets_dir.mkdir(parents=True, exist_ok=True)

for src_name, dest_name in self._NPM_SNIPPET_FILES.items():
src_file = pkg_dist / src_name
if not src_file.is_file():
logger.warning("Expected file not found in npm package: %s", src_file)
continue
dest_file = snippets_dir / dest_name
shutil.copy2(src_file, dest_file)
logger.info("Copied npm snippet: %s → snippets/%s", src_name, dest_name)

def _process_snippet_markdown_file(
self, input_path: Path, output_path: Path
) -> None:
Expand Down
114 changes: 84 additions & 30 deletions src/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -991,14 +991,16 @@
"oss/python/deepagents/human-in-the-loop",
"oss/python/deepagents/long-term-memory",
"oss/python/deepagents/skills",
"oss/python/deepagents/sandboxes"
"oss/python/deepagents/sandboxes",
"oss/python/deepagents/streaming"
]
},
{
"group": "Streaming",
"group": "Frontend",
"pages": [
"oss/python/deepagents/streaming/overview",
"oss/python/deepagents/streaming/frontend"
"oss/python/deepagents/frontend/overview",
"oss/python/deepagents/frontend/subagent-streaming",
"oss/python/deepagents/frontend/todo-list"
]
},
{
Expand Down Expand Up @@ -1039,13 +1041,7 @@
"oss/python/langchain/messages",
"oss/python/langchain/tools",
"oss/python/langchain/short-term-memory",
{
"group": "Streaming",
"pages": [
"oss/python/langchain/streaming/overview",
"oss/python/langchain/streaming/frontend"
]
},
"oss/python/langchain/streaming",
"oss/python/langchain/structured-output"
]
},
Expand All @@ -1057,6 +1053,22 @@
"oss/python/langchain/middleware/custom"
]
},
{
"group": "Frontend",
"pages": [
"oss/python/langchain/frontend/overview",
"oss/python/langchain/frontend/markdown-messages",
"oss/python/langchain/frontend/tool-calling",
"oss/python/langchain/frontend/human-in-the-loop",
"oss/python/langchain/frontend/branching-chat",
"oss/python/langchain/frontend/reasoning-tokens",
"oss/python/langchain/frontend/structured-output",
"oss/python/langchain/frontend/message-queues",
"oss/python/langchain/frontend/join-rejoin",
"oss/python/langchain/frontend/time-travel",
"oss/python/langchain/frontend/generative-ui"
]
},
{
"group": "Advanced usage",
"pages": [
Expand Down Expand Up @@ -1143,6 +1155,13 @@
"oss/python/langgraph/observability"
]
},
{
"group": "Frontend",
"pages": [
"oss/python/langgraph/frontend/overview",
"oss/python/langgraph/frontend/graph-execution"
]
},
{
"group": "LangGraph APIs",
"pages": [
Expand Down Expand Up @@ -1381,11 +1400,13 @@
"oss/javascript/deepagents/sandboxes"
]
},
"oss/javascript/deepagents/streaming",
{
"group": "Streaming",
"group": "Frontend",
"pages": [
"oss/javascript/deepagents/streaming/overview",
"oss/javascript/deepagents/streaming/frontend"
"oss/javascript/deepagents/frontend/overview",
"oss/javascript/deepagents/frontend/subagent-streaming",
"oss/javascript/deepagents/frontend/todo-list"
]
},
{
Expand Down Expand Up @@ -1418,16 +1439,26 @@
"oss/javascript/langchain/messages",
"oss/javascript/langchain/tools",
"oss/javascript/langchain/short-term-memory",
{
"group": "Streaming",
"pages": [
"oss/javascript/langchain/streaming/overview",
"oss/javascript/langchain/streaming/frontend"
]
},
"oss/javascript/langchain/streaming",
"oss/javascript/langchain/structured-output"
]
},
{
"group": "Frontend",
"pages": [
"oss/javascript/langchain/frontend/overview",
"oss/javascript/langchain/frontend/markdown-messages",
"oss/javascript/langchain/frontend/tool-calling",
"oss/javascript/langchain/frontend/human-in-the-loop",
"oss/javascript/langchain/frontend/branching-chat",
"oss/javascript/langchain/frontend/reasoning-tokens",
"oss/javascript/langchain/frontend/structured-output",
"oss/javascript/langchain/frontend/message-queues",
"oss/javascript/langchain/frontend/join-rejoin",
"oss/javascript/langchain/frontend/time-travel",
"oss/javascript/langchain/frontend/generative-ui"
]
},
{
"group": "Middleware",
"pages": [
Expand Down Expand Up @@ -1522,6 +1553,13 @@
"oss/javascript/langgraph/observability"
]
},
{
"group": "Frontend",
"pages": [
"oss/javascript/langgraph/frontend/overview",
"oss/javascript/langgraph/frontend/graph-execution"
]
},
{
"group": "LangGraph APIs",
"pages": [
Expand Down Expand Up @@ -1889,12 +1927,20 @@
"destination": "/oss/javascript/langchain/test/evals"
},
{
"source": "/oss/python/deepagents/streaming",
"destination": "/oss/python/deepagents/streaming/overview"
"source": "/oss/python/deepagents/streaming/overview",
"destination": "/oss/python/deepagents/streaming"
},
{
"source": "/oss/javascript/deepagents/streaming/overview",
"destination": "/oss/javascript/deepagents/streaming"
},
{
"source": "/oss/javascript/deepagents/streaming",
"destination": "/oss/javascript/deepagents/streaming/overview"
"source": "/oss/python/deepagents/streaming/frontend",
"destination": "/oss/python/deepagents/frontend/overview"
},
{
"source": "/oss/javascript/deepagents/streaming/frontend",
"destination": "/oss/javascript/deepagents/frontend/overview"
},
{
"source": "/langsmith",
Expand Down Expand Up @@ -2189,16 +2235,24 @@
"destination": "/oss/javascript/langchain/middleware/overview"
},
{
"source": "/oss/python/langchain/streaming",
"destination": "/oss/python/langchain/streaming/overview"
"source": "/oss/python/langchain/streaming/overview",
"destination": "/oss/python/langchain/streaming"
},
{
"source": "/oss/javascript/langchain/streaming/overview",
"destination": "/oss/javascript/langchain/streaming"
},
{
"source": "/oss/python/langchain/streaming/frontend",
"destination": "/oss/python/langchain/frontend/overview"
},
{
"source": "/oss/javascript/langchain/streaming",
"destination": "/oss/javascript/langchain/streaming/overview"
"source": "/oss/javascript/langchain/streaming/frontend",
"destination": "/oss/javascript/langchain/frontend/overview"
},
{
"source": "/langsmith/use-stream-react",
"destination": "/oss/langchain/streaming/frontend"
"destination": "/oss/langchain/frontend/overview"
},
{
"source": "/oss/python/integrations/tools/toolbox",
Expand Down
Loading
Loading