Skip to content

Commit 3fd7973

Browse files
authored
Merge pull request #201 from esnible/upgrade-dep-version
Chore: Upgrade library versions to avoid CVEs. This PR also introduces some new `make` targets to avoid problems in Docker builds.
2 parents 1f976ec + 6d28812 commit 3fd7973

36 files changed

Lines changed: 3172 additions & 1017 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,3 +221,6 @@ secrets.*
221221

222222
# Orchestration working directory
223223
.repos/
224+
225+
# Bogus lock files created by running uv in home directory.
226+
uv.lock

CONTRIBUTING.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Please follow our [Developer's Guide](https://github.com/kagenti/kagenti/blob/ma
1616

1717
Please note that the section concerning pre-commit does not apply to this repository.
1818

19+
Please run `make test` before pushing PRs.
20+
1921
## Claiming an Issue
2022

2123
Comment `/claim` on an issue to have it automatically assigned to you. Issues labeled `blocked` or `in-progress` cannot be claimed this way. If you need to release an issue, comment `/unassign` or ask a maintainer.

Makefile

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,50 @@
1-
.PHONY: lint fmt
1+
.PHONY: lint fmt test-docker test-a2a test-mcp sync-all-uv sync-a2a sync-mcp
22

33
lint:
44
pre-commit run --all-files
55

66
fmt:
77
ruff format .
88
ruff check --fix .
9+
10+
# This builds all of the A2A and MCP example Docker images to verify they can be built successfully.
11+
test-docker: test-a2a test-mcp
12+
13+
# Verify all of the A2A example Docker images can be built
14+
# (Optional KAGENTI_DOCKER_FLAGS for docker build, e.g. --no-cache or --load)
15+
test-a2a:
16+
@for f in $(shell find a2a -mindepth 1 -maxdepth 1 -type d); do \
17+
pushd $${f} || exit; \
18+
echo "Building Docker image for $${f}..."; \
19+
docker build ${KAGENTI_DOCKER_FLAGS} --tag $${f##*/} . || exit; \
20+
popd; \
21+
done
22+
23+
# Verify all of the MCP example Docker images can be built
24+
# (Optional KAGENTI_DOCKER_FLAGS for docker build, e.g. --no-cache or --load)
25+
test-mcp:
26+
@for f in $(shell find mcp -mindepth 1 -maxdepth 1 -type d); do \
27+
pushd $${f} || exit; \
28+
echo "Building Docker image for $${f}..."; \
29+
docker build ${KAGENTI_DOCKER_FLAGS} --tag $${f##*/} . || exit; \
30+
popd; \
31+
done
32+
33+
# After changing pyproject.toml, run this to sync dependencies for all examples
34+
sync-all-uv: sync-a2a sync-mcp
35+
36+
sync-a2a:
37+
@for f in $(shell find a2a -mindepth 1 -maxdepth 1 -type d); do \
38+
pushd $${f} || exit; \
39+
echo "Syncing dependencies for $${f}..."; \
40+
uv sync --no-dev || exit; \
41+
popd; \
42+
done
43+
44+
sync-mcp:
45+
@for f in $(shell find mcp -mindepth 1 -maxdepth 1 -type d); do \
46+
pushd $${f} || exit; \
47+
echo "Syncing dependencies for $${f}..."; \
48+
uv sync --no-dev || exit; \
49+
popd; \
50+
done

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# agent-examples
22

33
This repo collects several examples of community agents and MCP tools written in different
4-
frameworks and exposed with agent-to-agent protocols and tools protocols such as A2A and MCP.
4+
frameworks and exposed with agent-to-agent protocols and tools protocols such as A2A and MCP.

a2a/a2a_contact_extractor/pyproject.toml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,14 @@ readme = "README.md"
66
requires-python = ">=3.12"
77
dependencies = [
88
"marvin>=3.0.0",
9-
"a2a-sdk>=0.2.5,<0.4.0"
9+
"a2a-sdk>=0.2.5,<0.4.0",
10+
"urllib3>=2.6.3", # Indirect; prevents CVE-2025-66418
11+
"python-multipart>=0.0.22", # Indirect; prevents CVE-2026-24486
12+
"starlette>=0.49.1", # Indirect; prevents CVE-2025-62727
13+
"mcp>=1.23.0", # Indirect; prevents CVE-2025-66416
14+
"pyasn1>=0.6.3", # Indirect; prevents CVE-2026-30922
15+
"pydantic-ai>=1.56.0", # Indirect; prevents CVE-2026-25580
16+
"filelock>=3.20.1", # Indirect; prevents CVE-2025-68146
1017
]
1118

1219
[tool.uv.sources]

a2a/a2a_contact_extractor/uv.lock

Lines changed: 2194 additions & 534 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

a2a/a2a_currency_converter/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ dependencies = [
2020
# The following are to avoid CVEs reported by Trivy and checked by our CI
2121
"urllib3>=2.6.0",
2222
"starlette>=0.49.1",
23-
"pyasn1>=0.6.2",
23+
"pyasn1>=0.6.3", # Indirect; prevents CVE-2026-30922
2424
"protobuf>=5.29.6",
2525
"langgraph-checkpoint>=3.0.0",
2626
"langchain-core>=0.3.81"

a2a/a2a_currency_converter/uv.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

a2a/file_organizer/pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,17 @@ requires-python = ">=3.11"
1111
dependencies = [
1212
"a2a-sdk>=0.2.16",
1313
"langgraph>=0.2.55",
14-
"langchain-community>=0.3.9",
14+
"langchain-core>=1.2.11",
15+
"langchain-community>=0.3.27",
1516
"langchain-ollama>=0.2.1",
1617
"langchain-openai>=0.3.7",
1718
"openinference-instrumentation-langchain>=0.1.36",
1819
"pydantic-settings>=2.8.1",
1920
"langchain-mcp-adapters>=0.1.0",
2021
"python-keycloak>=5.5.1",
2122
"opentelemetry-exporter-otlp",
23+
"urllib3>=2.6.3", # Indirect; prevents CVE-2025-66418
24+
"python-multipart>=0.0.22", # Indirect; prevents CVE-2026-24486
2225
]
2326

2427
[project.scripts]

0 commit comments

Comments
 (0)