diff --git a/go/basic-agent/README.md b/go/basic-agent/README.md index 55542c2..fa272d4 100644 --- a/go/basic-agent/README.md +++ b/go/basic-agent/README.md @@ -29,7 +29,7 @@ Minimal Go example showing how to initialize the Agent Assembly Go SDK and execu | Requirement | Version | |---|---| | Go | >= 1.26 | -| Agent Assembly Go SDK | v0.0.1-rc.3 | +| Agent Assembly Go SDK | v0.0.1-rc.5 | A live Agent Assembly gateway is **not required** to run this example. It uses an offline mock `GovernanceClient` by default. To use a real gateway, replace `mockClient` diff --git a/go/cli-runtime-integration/README.md b/go/cli-runtime-integration/README.md index 8a44d59..db3ce14 100644 --- a/go/cli-runtime-integration/README.md +++ b/go/cli-runtime-integration/README.md @@ -29,7 +29,7 @@ Go example showing how to integrate the `aasm` CLI runtime sidecar into a Go age | Requirement | Version | |---|---| | Go | >= 1.26 | -| Agent Assembly Go SDK | v0.0.1-rc.3 | +| Agent Assembly Go SDK | v0.0.1-rc.5 | | `aasm` binary | Optional — example runs in fallback mode without it | ### Install `aasm` (optional) diff --git a/go/langchaingo/README.md b/go/langchaingo/README.md index 70e38ef..663abec 100644 --- a/go/langchaingo/README.md +++ b/go/langchaingo/README.md @@ -33,7 +33,7 @@ agent's tool calls with Agent Assembly. | Requirement | Version | |---|---| | Go | >= 1.26 | -| Agent Assembly Go SDK | v0.0.1-rc.3 | +| Agent Assembly Go SDK | v0.0.1-rc.5 | | LangChainGo | v0.1.14 | No live gateway and no LLM API key are required. Policy rules are applied by an diff --git a/go/tool-policy/README.md b/go/tool-policy/README.md index 5c05f29..cb69182 100644 --- a/go/tool-policy/README.md +++ b/go/tool-policy/README.md @@ -29,7 +29,7 @@ Go example showing explicit allow and deny behavior using Agent Assembly policy | Requirement | Version | |---|---| | Go | >= 1.26 | -| Agent Assembly Go SDK | v0.0.1-rc.3 | +| Agent Assembly Go SDK | v0.0.1-rc.5 | No live gateway is required. Policy rules are applied by an in-process mock client. diff --git a/python/agno-tool-policy/README.md b/python/agno-tool-policy/README.md index a1e4527..125e2f5 100644 --- a/python/agno-tool-policy/README.md +++ b/python/agno-tool-policy/README.md @@ -34,7 +34,7 @@ Agno runs every function-tool call through a single chokepoint — `agno.tools.f |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1b4 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | | Agno | >= 2.0.0 | No API key or running gateway is required for the offline demo. diff --git a/python/autogen-tool-policy/README.md b/python/autogen-tool-policy/README.md index 63ca21f..c401ecb 100644 --- a/python/autogen-tool-policy/README.md +++ b/python/autogen-tool-policy/README.md @@ -34,7 +34,7 @@ AutoGen (the `autogen-core` runtime shared by AutoGen and the ag2 fork) has **no |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | | autogen-core | >= 0.7.5 | No API key or running gateway is required for the offline demo. diff --git a/python/crewai-research-crew/README.md b/python/crewai-research-crew/README.md index 8d03728..90d23ba 100644 --- a/python/crewai-research-crew/README.md +++ b/python/crewai-research-crew/README.md @@ -42,7 +42,7 @@ audit event. |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | The mock demo needs no gateway, no `crewai`, and no API keys. The optional `live` extra (`crewai`) is only required for the real-crew integration. diff --git a/python/custom-tool-policy/README.md b/python/custom-tool-policy/README.md index 16ed1be..f3aff7c 100644 --- a/python/custom-tool-policy/README.md +++ b/python/custom-tool-policy/README.md @@ -35,7 +35,7 @@ Demonstrates how to add [Agent Assembly](https://github.com/ai-agent-assembly/ex |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No API key, no gateway, and no AI framework are required. diff --git a/python/google-adk/README.md b/python/google-adk/README.md index 98f6e32..409ecad 100644 --- a/python/google-adk/README.md +++ b/python/google-adk/README.md @@ -39,7 +39,7 @@ In ADK 1.x, concrete tools (`FunctionTool` and custom `BaseTool` subclasses) ove |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No running Agent Assembly gateway and no Google Cloud credentials are required for the offline demo. diff --git a/python/haystack-tool-policy/README.md b/python/haystack-tool-policy/README.md index bcc8db0..0c93f42 100644 --- a/python/haystack-tool-policy/README.md +++ b/python/haystack-tool-policy/README.md @@ -35,7 +35,7 @@ Haystack has a native adapter: `HaystackPatch` hooks `haystack.tools.Tool.invoke |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | | Haystack | >= 2.0.0, < 3.0 | No API key or running gateway is required for the offline demo — the tools are driven through a `ToolInvoker` with a hand-built `ToolCall`, so no LLM is involved. diff --git a/python/langchain-basic-agent/README.md b/python/langchain-basic-agent/README.md index d523e89..36b7c45 100644 --- a/python/langchain-basic-agent/README.md +++ b/python/langchain-basic-agent/README.md @@ -33,7 +33,7 @@ Demonstrates how to integrate [Agent Assembly](https://github.com/ai-agent-assem |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No running Agent Assembly gateway is required for the offline demo. diff --git a/python/langchain-research-agent/README.md b/python/langchain-research-agent/README.md index ccf8a3a..37af373 100644 --- a/python/langchain-research-agent/README.md +++ b/python/langchain-research-agent/README.md @@ -41,7 +41,7 @@ a single *balanced* governance policy. |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1b2 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No running Agent Assembly gateway and no API keys are required for the mock demo. diff --git a/python/langgraph/README.md b/python/langgraph/README.md index bc56844..5152165 100644 --- a/python/langgraph/README.md +++ b/python/langgraph/README.md @@ -36,7 +36,7 @@ The example runs **fully offline**: the graph is driven with deterministic nodes |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No running Agent Assembly gateway is required for the offline demo. diff --git a/python/llamaindex-tool-policy/README.md b/python/llamaindex-tool-policy/README.md index 15b2e4f..6dbe5ba 100644 --- a/python/llamaindex-tool-policy/README.md +++ b/python/llamaindex-tool-policy/README.md @@ -34,7 +34,7 @@ LlamaIndex has a native Agent Assembly adapter (`agent_assembly.adapters.llamain |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 (with the LlamaIndex adapter) | +| Agent Assembly Python SDK | >= 0.0.1rc5 (with the LlamaIndex adapter) | No API key or running gateway is required for the offline demo. diff --git a/python/microsoft-agent-framework-tool-policy/README.md b/python/microsoft-agent-framework-tool-policy/README.md index 2de3e36..c4153ce 100644 --- a/python/microsoft-agent-framework-tool-policy/README.md +++ b/python/microsoft-agent-framework-tool-policy/README.md @@ -39,7 +39,7 @@ Like the rest of this gallery, the example runs two ways: |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No running Agent Assembly gateway is required for the offline demo. diff --git a/python/openai-agents-sdk/README.md b/python/openai-agents-sdk/README.md index b8a52f9..365e61e 100644 --- a/python/openai-agents-sdk/README.md +++ b/python/openai-agents-sdk/README.md @@ -33,7 +33,7 @@ Demonstrates how to integrate [Agent Assembly](https://github.com/ai-agent-assem |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No `OPENAI_API_KEY` is required for the offline demo. diff --git a/python/pydantic-ai/README.md b/python/pydantic-ai/README.md index 1ae62dc..faf517f 100644 --- a/python/pydantic-ai/README.md +++ b/python/pydantic-ai/README.md @@ -32,7 +32,7 @@ Demonstrates how to integrate [Agent Assembly](https://github.com/ai-agent-assem |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No running Agent Assembly gateway is required for the offline demo. diff --git a/python/semantic-kernel-tool-policy/README.md b/python/semantic-kernel-tool-policy/README.md index e04fa9b..5a90cf4 100644 --- a/python/semantic-kernel-tool-policy/README.md +++ b/python/semantic-kernel-tool-policy/README.md @@ -36,7 +36,7 @@ Because Semantic Kernel has no native adapter, this example governs it the frame |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | | semantic-kernel | >= 1.36.0 | No API key or running gateway is required for the offline demo — the tools are native (code) `KernelFunction`s, so no LLM connector is configured. diff --git a/python/smolagents-tool-policy/README.md b/python/smolagents-tool-policy/README.md index baa10f7..015e4a5 100644 --- a/python/smolagents-tool-policy/README.md +++ b/python/smolagents-tool-policy/README.md @@ -40,7 +40,7 @@ This is not a mock: the tools are real `smolagents.Tool` subclasses and the gove |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | | smolagents | >= 1.0, < 2.0 | No running Agent Assembly gateway and no model/API credentials are required for the offline demo. diff --git a/python/strands-agents-tool-policy/README.md b/python/strands-agents-tool-policy/README.md index 5e24486..d841e39 100644 --- a/python/strands-agents-tool-policy/README.md +++ b/python/strands-agents-tool-policy/README.md @@ -34,7 +34,7 @@ Strands Agents has **no native Agent Assembly adapter**, so this example governs |---|---| | Python | >= 3.12 | | [uv](https://github.com/astral-sh/uv) | latest | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | | strands-agents | >= 1.47.0 | No API key or running gateway is required for the offline demo. diff --git a/scenarios/policy-enforcement/README.md b/scenarios/policy-enforcement/README.md index 1ca8d22..a00bcbd 100644 --- a/scenarios/policy-enforcement/README.md +++ b/scenarios/policy-enforcement/README.md @@ -50,7 +50,7 @@ Rules are evaluated top-to-bottom. Any tool not listed falls through to the | Node.js | >= 20 | | [pnpm](https://pnpm.io) | latest | | Go | >= 1.22 | -| Agent Assembly Python SDK | >= 0.0.1rc3 | +| Agent Assembly Python SDK | >= 0.0.1rc5 | No API key or gateway is required — this scenario runs fully offline. diff --git a/scripts/generate_example_metadata.py b/scripts/generate_example_metadata.py index 35af397..9a55ecf 100755 --- a/scripts/generate_example_metadata.py +++ b/scripts/generate_example_metadata.py @@ -365,6 +365,61 @@ def rewrite_go_readme(path: Path, sdk: GoSdk) -> bool: return _write_if_changed(path, new_text) +# --------------------------------------------------------------------------- +# Hand-written "Prerequisites" table row +# --------------------------------------------------------------------------- +# +# Many READMEs carry, in their prose ``## Prerequisites`` table, a row of the +# form ``| Agent Assembly SDK | |`` that sits *outside* the +# generated sdk-install block. Left to hand-maintenance it drifts from the SoT +# (AAASM-4703): the generated block advertised rc.5 while these rows still said +# rc.3 / an old beta. The generator now owns the version literal in that row too +# so the two can never disagree again. +# +# The label cell is matched *exactly* (``Agent Assembly SDK`` with no +# trailing parenthetical), which is precisely what distinguishes this prose row +# from the generated block's row (``... SDK () | ...``) — so this pass +# never touches the generated block. + + +# A PEP 440 / SemVer-ish pre-release version literal, covering the shapes used +# across these examples: ``0.0.1rc5`` (python), ``v0.0.1-rc.5`` (go), and any +# alpha/beta/rc pre-release suffix. Only the version token is rewritten, so an +# operator prefix (``>= ``) and any trailing note (``(with the LlamaIndex +# adapter)``) are preserved verbatim. +_VERSION_TOKEN_RE = re.compile( + r"v?\d+\.\d+\.\d+(?:[-.]?(?:rc|beta|alpha|b|a)\.?\d+)?" +) + + +def _prereq_row_re(label: str) -> re.Pattern[str]: + return re.compile( + r"^(?P
\|[ \t]*Agent Assembly "
+        + re.escape(label)
+        + r" SDK[ \t]*\|[ \t]*)(?P[^|]*?)(?P[ \t]*\|[ \t]*)$",
+        re.MULTILINE,
+    )
+
+
+def rewrite_prereq_row(path: Path, label: str, version: str) -> bool:
+    """Align the ``Agent Assembly