Skip to content

fix(cli): restore Dev UI graph and fix FunctionTool complex type crash#5447

Open
EaCognitive wants to merge 6 commits intogoogle:mainfrom
EaCognitive:fix-cli-robustness
Open

fix(cli): restore Dev UI graph and fix FunctionTool complex type crash#5447
EaCognitive wants to merge 6 commits intogoogle:mainfrom
EaCognitive:fix-cli-robustness

Conversation

@EaCognitive
Copy link
Copy Markdown

Description

This PR resolves two high-priority issues and several structural bugs in the ADK CLI and Web Server.

Bug Fixes

  1. Dev UI Graph Broken ([Bug] Dev UI agent graph broken in 1.31.0 — frontend requests removed /dev/build_graph_image/ endpoint #5430): Re-added the missing /dev/build_graph_image/ endpoint. The frontend was requesting this endpoint for SVG rendering, but the backend was only serving JSON/DOT.
  2. FunctionTool Complex Type Crash (FunctionTool automatic parsing fails on list[tuple[bytes, str]] parameter type #5428): Implemented a recursive cleaner to strip prefixItems and unevaluatedItems from Pydantic-generated schemas. These keys are currently unsupported by the Gemini API and caused Extra inputs are not permitted validation errors.

Structural Improvements

  • Resolved NameError: Moved fast_api_common_options and other decorators to the top of cli_tools_click.py to fix a circular dependency/initialization order issue.
  • Fixed TypeErrors: Updated cli_run and internal test mocks to correctly accept and propagate new parameters (max_llm_calls, avatar_config, trigger_sources).
  • Test Alignment: Fixed the verbose option mismatch in test_adk_run to align with the decorator's internal handling.

Verification

  • Manual: Verified that FunctionTool no longer crashes with list[tuple[bytes, str]].
  • Automated: Ran the full CLI test suite (pytest tests/unittests/cli); all 87 tests passed (after installing rouge-score in the local environment).

…rash

- Re-adds missing /dev/build_graph_image/ endpoint to fix broken dev UI graph visualization (google#5430).
- Strips unsupported prefixItems/unevaluatedItems from JSON schema to fix FunctionTool crash on complex types (google#5428).
- Fixes circular import NameError by moving common decorators to the top of cli_tools_click.py.
- Resolves TypeErrors in cli_run and tests by correctly propagating new options (max_llm_calls, avatar_config, trigger_sources).
- Updates test_adk_run to correctly ignore the handled 'verbose' option.
@adk-bot adk-bot added the tools [Component] This issue is related to tools label Apr 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tools [Component] This issue is related to tools

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants