diff --git a/pipeline/core/builder.py b/pipeline/core/builder.py index f7488e399..08becb850 100644 --- a/pipeline/core/builder.py +++ b/pipeline/core/builder.py @@ -51,6 +51,7 @@ def __init__(self, src_dir: Path, build_dir: Path) -> None: ".yaml", ".css", ".js", + ".html", } # Mapping of language codes to full names for URLs @@ -156,8 +157,8 @@ def rewrite_link(match: re.Match) -> str: url = match.group(2) # The URL post = match.group(3) # Everything after the URL - # Only rewrite absolute /oss/ paths that don't contain 'images' - if url.startswith("/oss/") and "images" not in url: + # Only rewrite absolute /oss/ paths that don't contain 'images' or 'plugins' + if url.startswith("/oss/") and "images" not in url and "plugins" not in url: parts = url.split("/") # Insert full language name after "oss" parts.insert(2, self.language_url_names[target_language]) @@ -743,8 +744,11 @@ def is_shared_file(self, file_path: Path) -> bool: if "snippets" in relative_path.parts: return True + if "plugins" in relative_path.parts: + return True + # JavaScript and CSS files should be shared (used for custom scripts/styles) - return file_path.suffix.lower() in {".js", ".css"} + return file_path.suffix.lower() in {".js", ".css", ".html", ".json"} def _copy_shared_files(self) -> None: """Copy files that should be shared between versions.""" diff --git a/pyproject.toml b/pyproject.toml index 4231dbe5f..b9abdd8cf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,8 @@ asyncio_default_fixture_loop_scope = "function" line-length = 88 extend-exclude = [ "scripts/update_mdx.py", - "pipeline/tools/notebook/convert.py" + "pipeline/tools/notebook/convert.py", + "src/plugins/middleware_visualization/generate_middleware_diagrams.py" ] @@ -133,3 +134,9 @@ ignore = [ [tool.ruff.lint.pydocstyle] convention = "google" + + +[tool.mypy] +exclude = [ + "src/plugins/middleware_visualization/generate_middleware_diagrams.py", +] diff --git a/src/oss/images/0000.svg b/src/oss/images/0000.svg deleted file mode 100644 index c6ac7fdfc..000000000 --- a/src/oss/images/0000.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

__end__

diff --git a/src/oss/images/0001.svg b/src/oss/images/0001.svg deleted file mode 100644 index 79d79403f..000000000 --- a/src/oss/images/0001.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

__end__

diff --git a/src/oss/images/0010.svg b/src/oss/images/0010.svg deleted file mode 100644 index b6ecf5516..000000000 --- a/src/oss/images/0010.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

pre_model_hook

__end__

diff --git a/src/oss/images/0011.svg b/src/oss/images/0011.svg deleted file mode 100644 index 1f218281b..000000000 --- a/src/oss/images/0011.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

pre_model_hook

__end__

diff --git a/src/oss/images/0100.svg b/src/oss/images/0100.svg deleted file mode 100644 index 8fa789f7a..000000000 --- a/src/oss/images/0100.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

post_model_hook

__end__

diff --git a/src/oss/images/0101.svg b/src/oss/images/0101.svg deleted file mode 100644 index e746496fd..000000000 --- a/src/oss/images/0101.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

post_model_hook

__end__

diff --git a/src/oss/images/0110.svg b/src/oss/images/0110.svg deleted file mode 100644 index 34f2ee59e..000000000 --- a/src/oss/images/0110.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

pre_model_hook

post_model_hook

__end__

diff --git a/src/oss/images/0111.svg b/src/oss/images/0111.svg deleted file mode 100644 index 4a8f5c77e..000000000 --- a/src/oss/images/0111.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

pre_model_hook

post_model_hook

__end__

diff --git a/src/oss/images/1000.svg b/src/oss/images/1000.svg deleted file mode 100644 index 84d439aba..000000000 --- a/src/oss/images/1000.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

generate_structured_response

__end__

diff --git a/src/oss/images/1001.svg b/src/oss/images/1001.svg deleted file mode 100644 index 3066654d9..000000000 --- a/src/oss/images/1001.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

generate_structured_response

__end__

diff --git a/src/oss/images/1010.svg b/src/oss/images/1010.svg deleted file mode 100644 index 445f405c5..000000000 --- a/src/oss/images/1010.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

pre_model_hook

generate_structured_response

__end__

diff --git a/src/oss/images/1011.svg b/src/oss/images/1011.svg deleted file mode 100644 index ed5ab0bb5..000000000 --- a/src/oss/images/1011.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

pre_model_hook

generate_structured_response

__end__

diff --git a/src/oss/images/1100.svg b/src/oss/images/1100.svg deleted file mode 100644 index 23e2d5b71..000000000 --- a/src/oss/images/1100.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

post_model_hook

generate_structured_response

__end__

diff --git a/src/oss/images/1101.svg b/src/oss/images/1101.svg deleted file mode 100644 index acc1d0403..000000000 --- a/src/oss/images/1101.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

post_model_hook

generate_structured_response

__end__

diff --git a/src/oss/images/1110.svg b/src/oss/images/1110.svg deleted file mode 100644 index efe832965..000000000 --- a/src/oss/images/1110.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

pre_model_hook

post_model_hook

generate_structured_response

__end__

diff --git a/src/oss/images/1111.svg b/src/oss/images/1111.svg deleted file mode 100644 index b903b4ed6..000000000 --- a/src/oss/images/1111.svg +++ /dev/null @@ -1 +0,0 @@ -

__start__

agent

tools

pre_model_hook

post_model_hook

generate_structured_response

__end__

diff --git a/src/oss/langchain/middleware.mdx b/src/oss/langchain/middleware.mdx index 49a51fb3b..fe4bb7e87 100644 --- a/src/oss/langchain/middleware.mdx +++ b/src/oss/langchain/middleware.mdx @@ -877,21 +877,15 @@ Build custom middleware by implementing hooks that run at specific points in the #### Node-style hooks -Run at specific points in the execution flow: +Run at specific points in the execution flow. -:::python -- `before_agent` - Before agent starts (once per invocation) -- `before_model` - Before each model call -- `after_model` - After each model response -- `after_agent` - After agent completes (up to once per invocation) -::: +**Try it:** The interactive widget below shows all available hooks and lets you toggle different combinations to see how they affect the agent execution graph: -:::js -- `beforeAgent` - Before agent starts (once per invocation) -- `beforeModel` - Before each model call -- `afterModel` - After each model response -- `afterAgent` - After agent completes (up to once per invocation) -::: +