feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(templates): upgrade A2A agents to SDK v1 - #1810

Merged
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates
Jul 27, 2026
Merged

feat(templates): upgrade A2A agents to SDK v1#1810
notgitika merged 2 commits into
aws:mainfrom
notgitika:feat/a2a-sdk-v1-templates

Conversation

@notgitika

@notgitikanotgitika commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate the Google ADK and LangGraph A2A templates to a2a-sdk v1 types and agent cards
  • use the opt-in bedrock-agentcore[a2a-v1] dependency path introduced by feat(a2a): migrate runtime integration to a2a-sdk v1 bedrock-agentcore-sdk-python#591
  • preserve the Strands template on its supported a2a-sdk 0.3 path and native StrandsA2AExecutor
  • discover the v1 agent-card endpoint with a fallback for existing v0.3 agents
  • add unit coverage for both CLI and web UI endpoint fallback paths

Release coordination

This PR depends on aws/bedrock-agentcore-sdk-python#591 and publication of bedrock-agentcore >= 1.19.0, which provides the a2a-v1 extra. Do not release a CLI version containing these Google ADK and LangGraph template changes until that SDK version is available on PyPI. The Strands template is not gated on that release and continues to use the currently published [a2a] / a2a-sdk 0.3 path.

Validation

  • full unit suite: 5,983 passed
  • focused A2A and asset snapshot suite: 139 passed
  • TypeScript typecheck, ESLint, Prettier, secretlint, and pre-commit hooks pass
  • asset snapshots regenerated after merging current main

Closes#1146

@notgitika
notgitika requested a review from a teamJuly 22, 2026 21:15
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 22, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to a2a-sdk v1feat(templates): upgrade A2A agents to SDK v1Jul 22, 2026
@github-actions

github-actionsBot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.24.2.tgz

How to install

gh release download pr-1810-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.24.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 22, 2026
@github-actionsgithub-actionsBot added agentcore-harness-reviewing AgentCore Harness review in progress and removed agentcore-harness-reviewing AgentCore Harness review in progress labels Jul 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Templates now require bedrock-agentcore[a2a] >= 1.19.0, but the latest published version on PyPI is currently 1.18.1 (see https://pypi.org/project/bedrock-agentcore/#history). The PR description acknowledges this dependency on aws/bedrock-agentcore-sdk-python#591 and its subsequent release.

If this PR is merged before the SDK release lands on PyPI, agentcore create for the Google ADK / LangGraph / Strands A2A frameworks will produce projects that fail at uv sync / pip install time with "no matching distribution found." This is a hard release-coordination gate.

Options:

  1. Hold this PR until bedrock-agentcore 1.19.x is published to PyPI, then merge.
  2. Cut a coordinated CLI release only after the SDK release ships.
  3. If a partial rollout is intentional, please document that in the PR body (e.g., "do not release CLI until X").

Otherwise the code changes themselves look correct — AgentInterface(url=..., protocol_binding=..., protocol_version=...) matches the a2a-sdk 1.x proto definition, the v0.3→v1 endpoint fallback in fetchA2AAgentCard and handleA2AAgentCard is sensible, and the new tests cover both branches of the fallback.

A couple of smaller items I'd like a second look at, but which I don't consider blockers:

  • src/cli/operations/dev/web-ui/handlers/a2a-proxy.ts: the fallback here only triggers on HTTP 404, and there are no tests for it (no a2a-proxy.test.ts exists at all). Would be nice to add a small test in this PR while you're touching the file, mirroring the ones you added for fetchA2AAgentCard.
  • src/cli/operations/dev/invoke-a2a.ts (lines 30-49): the return null; after the inner for (const path of ...) loop is unreachable — the inner loop either returns a card, returns null on a non-404 error, or continues past agent-card.json to agent.json, where a non-ok status now falls through the if (res.status === 404 && path === '/.well-known/agent-card.json') guard and returns null with the warn log. Not a bug, just dead code you can drop.

Comment threadsrc/assets/python/a2a/googleadk/base/pyproject.toml
Comment threadsrc/cli/operations/dev/invoke-a2a.ts Outdated
Comment threadsrc/cli/operations/dev/web-ui/handlers/a2a-proxy.ts
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): upgrade A2A agents to SDK v1feat(templates): add A2A SDK v1 supportJul 23, 2026
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jul 23, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jul 23, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jul 23, 2026
@notgitikanotgitika changed the title feat(templates): add A2A SDK v1 supportfeat(templates): upgrade A2A agents to SDK v1Jul 23, 2026
@notgitika
notgitika merged commit 4a9ce31 into aws:mainJul 27, 2026
35 of 38 checks passed
@notgitika
notgitika deleted the feat/a2a-sdk-v1-templates branch July 27, 2026 17:59
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: upgrade A2A templates to a2a-sdk 1.0 protocol spec

3 participants

@notgitika@jariy17@agentcore-cli-automation