gitextract_mn7a6x6v/ ├── .gemini/ │ └── settings.json ├── .github/ │ ├── .release-please-manifest-v2.json │ ├── .release-please-manifest.json │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ ├── pull_request_template.md │ ├── release-please-config-v2.json │ ├── release-please-config.json │ └── workflows/ │ ├── analyze-releases-for-adk-docs-updates.yml │ ├── check-file-contents.yml │ ├── copybara-pr-handler.yml │ ├── discussion_answering.yml │ ├── isort.yml │ ├── issue-monitor.yml │ ├── mypy-new-errors.yml │ ├── mypy.yml │ ├── pr-triage.yml │ ├── pyink.yml │ ├── python-unit-tests.yml │ ├── release-cherry-pick.yml │ ├── release-cut.yml │ ├── release-finalize.yml │ ├── release-please.yml │ ├── release-publish.yml │ ├── release-v2-cherry-pick.yml │ ├── release-v2-cut.yml │ ├── release-v2-finalize.yml │ ├── release-v2-please.yml │ ├── release-v2-publish.yml │ ├── stale-bot.yml │ ├── triage.yml │ ├── upload-adk-docs-to-vertex-ai-search.yml │ └── v2-sync.yml ├── .gitignore ├── AGENTS.md ├── CHANGELOG.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── autoformat.sh ├── contributing/ │ ├── README.md │ ├── adk_project_overview_and_architecture.md │ ├── dev/ │ │ └── utils/ │ │ └── build_llms_txt.py │ └── samples/ │ ├── a2a_auth/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── remote_a2a/ │ │ └── bigquery_agent/ │ │ ├── __init__.py │ │ ├── agent.json │ │ └── agent.py │ ├── a2a_basic/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── remote_a2a/ │ │ └── check_prime_agent/ │ │ ├── __init__.py │ │ ├── agent.json │ │ └── agent.py │ ├── a2a_human_in_loop/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── remote_a2a/ │ │ └── human_in_loop/ │ │ ├── __init__.py │ │ ├── agent.json │ │ └── agent.py │ ├── a2a_root/ │ │ ├── README.md │ │ ├── agent.py │ │ └── remote_a2a/ │ │ └── hello_world/ │ │ ├── __init__.py │ │ └── agent.py │ ├── adk_answering_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── gemini_assistant/ │ │ │ ├── __init__.py │ │ │ └── agent.py │ │ ├── main.py │ │ ├── settings.py │ │ ├── tools.py │ │ ├── upload_docs_to_vertex_ai_search.py │ │ └── utils.py │ ├── adk_documentation/ │ │ ├── __init__.py │ │ ├── adk_docs_updater/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ └── main.py │ │ ├── adk_release_analyzer/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ └── main.py │ │ ├── settings.py │ │ ├── tools.py │ │ └── utils.py │ ├── adk_issue_formatting_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── settings.py │ │ └── utils.py │ ├── adk_issue_monitoring_agent/ │ │ ├── PROMPT_INSTRUCTION.txt │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ ├── settings.py │ │ └── utils.py │ ├── adk_knowledge_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.json │ │ ├── agent.py │ │ └── requirements.txt │ ├── adk_pr_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── adk_pr_triaging_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ ├── settings.py │ │ └── utils.py │ ├── adk_stale_agent/ │ │ ├── PROMPT_INSTRUCTION.txt │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ ├── settings.py │ │ └── utils.py │ ├── adk_triaging_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ ├── settings.py │ │ └── utils.py │ ├── agent_engine_code_execution/ │ │ ├── README │ │ ├── __init__.py │ │ └── agent.py │ ├── agent_registry_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── api_registry_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── application_integration_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── artifact_save_text/ │ │ ├── __init__.py │ │ └── agent.py │ ├── authn-adk-all-in-one/ │ │ ├── README.md │ │ ├── adk_agents/ │ │ │ ├── agent_openapi_tools/ │ │ │ │ ├── __init__.py │ │ │ │ ├── agent.py │ │ │ │ └── openapi.yaml │ │ │ ├── requirements.txt │ │ │ └── sample.env │ │ ├── hotel_booker_app/ │ │ │ ├── hotelbooker_core.py │ │ │ ├── main.py │ │ │ └── openapi.yaml │ │ ├── idp/ │ │ │ ├── app.py │ │ │ ├── sample.env │ │ │ ├── sample.jwks.json │ │ │ └── templates/ │ │ │ ├── admin.html │ │ │ ├── consent.html │ │ │ └── login.html │ │ └── requirements.txt │ ├── bigquery/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── bigquery_mcp/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── bigtable/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── built_in_multi_tools/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── cache_analysis/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── run_cache_experiments.py │ │ └── utils.py │ ├── callbacks/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── code_execution/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── gke_sandbox_agent.py │ ├── computer_use/ │ │ ├── README.md │ │ ├── agent.py │ │ ├── playwright.py │ │ └── requirements.txt │ ├── context_offloading_with_artifact/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── core_basic_config/ │ │ ├── README.md │ │ └── root_agent.yaml │ ├── core_callback_config/ │ │ ├── __init__.py │ │ ├── callbacks.py │ │ ├── root_agent.yaml │ │ └── tools.py │ ├── core_custom_agent_config/ │ │ ├── __init__.py │ │ ├── my_agents.py │ │ └── root_agent.yaml │ ├── core_generate_content_config_config/ │ │ └── root_agent.yaml │ ├── crewai_tool_kwargs/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── custom_code_execution/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── data_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── dummy_services.py │ ├── fields_output_schema/ │ │ ├── __init__.py │ │ └── agent.py │ ├── fields_planner/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── files_retrieval_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── data/ │ │ ├── adk_overview.txt │ │ └── tools_guide.txt │ ├── generate_image/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── sample.session.json │ ├── gepa/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── adk_agent.py │ │ ├── adk_agent_test.py │ │ ├── experiment.py │ │ ├── gepa_tau_bench.ipynb │ │ ├── rater_lib.py │ │ ├── rubric_validation_template.txt │ │ ├── run_experiment.py │ │ ├── tau_bench_agent.py │ │ ├── utils.py │ │ └── voter_agent/ │ │ ├── eval_prompts.txt │ │ ├── gepa.ipynb │ │ ├── optimized_prompt.txt │ │ ├── prompts.txt │ │ ├── rubric_validation_template.txt │ │ └── tools.py │ ├── gke_agent_sandbox/ │ │ └── deployment_rbac.yaml │ ├── google_api/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── google_search_agent/ │ │ ├── __init__.py │ │ └── agent.py │ ├── hello_world/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_anthropic/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_apigeellm/ │ │ ├── .env-sample │ │ ├── README.md │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_app/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_gemma/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_gemma3_ollama/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_litellm/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_litellm_add_function_to_prompt/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_ma/ │ │ ├── __init__.py │ │ └── agent.py │ ├── hello_world_ollama/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── hello_world_stream_fc_args/ │ │ ├── __init__.py │ │ └── agent.py │ ├── history_management/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── human_in_loop/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── human_tool_confirmation/ │ │ ├── __init__.py │ │ └── agent.py │ ├── integration_connector_euc_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── interactions_api/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── jira_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── tools.py │ ├── json_passing_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── langchain_structured_tool_agent/ │ │ ├── __init__.py │ │ └── agent.py │ ├── langchain_youtube_search_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── requirements.txt │ ├── litellm_inline_tool_call/ │ │ ├── __init__.py │ │ └── agent.py │ ├── litellm_streaming/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── litellm_structured_output/ │ │ ├── __init__.py │ │ └── agent.py │ ├── litellm_with_fallback_models/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── live_agent_api_server_example/ │ │ ├── live_agent_example.py │ │ └── readme.md │ ├── live_bidi_debug_utils/ │ │ └── pcm_audio_player.py │ ├── live_bidi_streaming_multi_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── readme.md │ ├── live_bidi_streaming_single_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── readme.md │ ├── live_bidi_streaming_tools_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── readme.md │ ├── live_tool_callbacks_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── readme.md │ ├── logprobs/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── manual_ollama_test/ │ │ ├── __init__.py │ │ └── agent.py │ ├── mcp_dynamic_header_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── header_server.py │ ├── mcp_in_agent_tool_remote/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── mcp_in_agent_tool_stdio/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── mcp_postgres_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── mcp_progress_callback_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── mock_progress_server.py │ ├── mcp_server_side_sampling/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── mcp_server.py │ ├── mcp_service_account_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── mcp_sse_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── filesystem_server.py │ ├── mcp_stdio_notion_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── mcp_stdio_server_agent/ │ │ ├── __init__.py │ │ └── agent.py │ ├── mcp_streamablehttp_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── filesystem_server.py │ ├── mcp_toolset_auth/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ └── oauth_mcp_server.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── migrate_session_db/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ └── sample-output/ │ │ ├── alembic/ │ │ │ ├── README │ │ │ ├── env.py │ │ │ └── script.py.mako │ │ └── alembic.ini │ ├── multi_agent_basic_config/ │ │ ├── README.md │ │ ├── code_tutor_agent.yaml │ │ ├── math_tutor_agent.yaml │ │ └── root_agent.yaml │ ├── multi_agent_llm_config/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── prime_agent.yaml │ │ ├── roll_agent.yaml │ │ └── root_agent.yaml │ ├── multi_agent_loop_config/ │ │ ├── README.md │ │ ├── loop_agent.yaml │ │ ├── root_agent.yaml │ │ └── writer_agents/ │ │ ├── critic_agent.yaml │ │ ├── initial_writer_agent.yaml │ │ └── refiner_agent.yaml │ ├── multi_agent_seq_config/ │ │ ├── README.md │ │ ├── root_agent.yaml │ │ └── sub_agents/ │ │ ├── code_refactorer_agent.yaml │ │ ├── code_reviewer_agent.yaml │ │ └── code_writer_agent.yaml │ ├── multimodal_tool_results/ │ │ ├── __init__.py │ │ └── agent.py │ ├── non_llm_sequential/ │ │ ├── __init__.py │ │ └── agent.py │ ├── oauth2_client_credentials/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ └── oauth2_test_server.py │ ├── oauth_calendar_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── output_schema_with_tools/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── parallel_functions/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── plugin_basic/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── count_plugin.py │ │ └── main.py │ ├── plugin_debug_logging/ │ │ ├── __init__.py │ │ └── agent.py │ ├── plugin_reflect_tool_retry/ │ │ ├── README.md │ │ ├── basic/ │ │ │ ├── __init__.py │ │ │ └── agent.py │ │ └── hallucinating_func_name/ │ │ ├── __init__.py │ │ └── agent.py │ ├── postgres_session_service/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── compose.yml │ │ └── main.py │ ├── pubsub/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── pydantic_argument/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── quickstart/ │ │ ├── __init__.py │ │ └── agent.py │ ├── rag_agent/ │ │ ├── __init__.py │ │ └── agent.py │ ├── rewind_session/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── runner_debug_example/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── services.py │ ├── services.yaml │ ├── session_state_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── input.json │ ├── simple_sequential_agent/ │ │ ├── __init__.py │ │ └── agent.py │ ├── skills_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── skills/ │ │ ├── weather-skill/ │ │ │ ├── SKILL.md │ │ │ ├── references/ │ │ │ │ └── weather_info.md │ │ │ └── scripts/ │ │ │ └── get_humidity.py │ │ └── weather_skill/ │ │ └── SKILL.md │ ├── skills_agent_gcs/ │ │ ├── __init__.py │ │ └── agent.py │ ├── slack_agent/ │ │ └── agent.py │ ├── spanner/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── spanner_admin/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── spanner_rag_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── static_instruction/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── static_non_text_content/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── sub_agents_config/ │ │ ├── __init__.py │ │ ├── life_agent.py │ │ ├── root_agent.yaml │ │ └── work_agent.yaml │ ├── telemetry/ │ │ ├── agent.py │ │ └── main.py │ ├── token_usage/ │ │ ├── __init__.py │ │ ├── agent.py │ │ └── main.py │ ├── tool_agent_tool_config/ │ │ ├── root_agent.yaml │ │ ├── summarizer_agent.yaml │ │ └── web_search_agent.yaml │ ├── tool_builtin_config/ │ │ └── root_agent.yaml │ ├── tool_functions_config/ │ │ ├── __init__.py │ │ ├── root_agent.yaml │ │ └── tools.py │ ├── tool_human_in_the_loop_config/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── root_agent.yaml │ │ └── tools.py │ ├── tool_mcp_stdio_notion_config/ │ │ ├── README.md │ │ └── root_agent.yaml │ ├── toolbox_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ └── tools.yaml │ ├── vertex_code_execution/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── agent.py │ ├── workflow_agent_seq/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── main.py │ │ └── sample.output │ └── workflow_triage/ │ ├── README.md │ ├── __init__.py │ ├── agent.py │ └── execution_agent.py ├── llms-full.txt ├── llms.txt ├── pylintrc ├── pyproject.toml ├── scripts/ │ ├── db_migration.sh │ └── unittests.sh ├── src/ │ └── google/ │ └── adk/ │ ├── __init__.py │ ├── a2a/ │ │ ├── __init__.py │ │ ├── agent/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ ├── interceptors/ │ │ │ │ ├── __init__.py │ │ │ │ └── new_integration_extension.py │ │ │ └── utils.py │ │ ├── converters/ │ │ │ ├── __init__.py │ │ │ ├── event_converter.py │ │ │ ├── from_adk_event.py │ │ │ ├── long_running_functions.py │ │ │ ├── part_converter.py │ │ │ ├── request_converter.py │ │ │ ├── to_adk_event.py │ │ │ └── utils.py │ │ ├── executor/ │ │ │ ├── __init__.py │ │ │ ├── a2a_agent_executor.py │ │ │ ├── a2a_agent_executor_impl.py │ │ │ ├── config.py │ │ │ ├── executor_context.py │ │ │ ├── task_result_aggregator.py │ │ │ └── utils.py │ │ ├── experimental.py │ │ └── utils/ │ │ ├── __init__.py │ │ ├── agent_card_builder.py │ │ └── agent_to_a2a.py │ ├── agents/ │ │ ├── __init__.py │ │ ├── active_streaming_tool.py │ │ ├── agent_config.py │ │ ├── base_agent.py │ │ ├── base_agent_config.py │ │ ├── callback_context.py │ │ ├── common_configs.py │ │ ├── config_agent_utils.py │ │ ├── config_schemas/ │ │ │ └── AgentConfig.json │ │ ├── context.py │ │ ├── context_cache_config.py │ │ ├── invocation_context.py │ │ ├── langgraph_agent.py │ │ ├── live_request_queue.py │ │ ├── llm_agent.py │ │ ├── llm_agent_config.py │ │ ├── loop_agent.py │ │ ├── loop_agent_config.py │ │ ├── mcp_instruction_provider.py │ │ ├── parallel_agent.py │ │ ├── parallel_agent_config.py │ │ ├── readonly_context.py │ │ ├── remote_a2a_agent.py │ │ ├── run_config.py │ │ ├── sequential_agent.py │ │ ├── sequential_agent_config.py │ │ └── transcription_entry.py │ ├── apps/ │ │ ├── __init__.py │ │ ├── app.py │ │ ├── base_events_summarizer.py │ │ ├── compaction.py │ │ └── llm_event_summarizer.py │ ├── artifacts/ │ │ ├── __init__.py │ │ ├── artifact_util.py │ │ ├── base_artifact_service.py │ │ ├── file_artifact_service.py │ │ ├── gcs_artifact_service.py │ │ └── in_memory_artifact_service.py │ ├── auth/ │ │ ├── __init__.py │ │ ├── auth_credential.py │ │ ├── auth_handler.py │ │ ├── auth_preprocessor.py │ │ ├── auth_provider_registry.py │ │ ├── auth_schemes.py │ │ ├── auth_tool.py │ │ ├── base_auth_provider.py │ │ ├── credential_manager.py │ │ ├── credential_service/ │ │ │ ├── __init__.py │ │ │ ├── base_credential_service.py │ │ │ ├── in_memory_credential_service.py │ │ │ └── session_state_credential_service.py │ │ ├── exchanger/ │ │ │ ├── __init__.py │ │ │ ├── base_credential_exchanger.py │ │ │ ├── credential_exchanger_registry.py │ │ │ └── oauth2_credential_exchanger.py │ │ ├── oauth2_credential_util.py │ │ ├── oauth2_discovery.py │ │ └── refresher/ │ │ ├── __init__.py │ │ ├── base_credential_refresher.py │ │ ├── credential_refresher_registry.py │ │ └── oauth2_credential_refresher.py │ ├── cli/ │ │ ├── __init__.py │ │ ├── __main__.py │ │ ├── adk_web_server.py │ │ ├── agent_graph.py │ │ ├── browser/ │ │ │ ├── assets/ │ │ │ │ ├── audio-processor.js │ │ │ │ └── config/ │ │ │ │ └── runtime-config.json │ │ │ ├── chunk-5MGPUGAY.js │ │ │ ├── chunk-66RH7XMI.js │ │ │ ├── chunk-AF27AUNK.js │ │ │ ├── chunk-ARP3QDVK.js │ │ │ ├── chunk-BI6TV3NL.js │ │ │ ├── chunk-FZZPD3K2.js │ │ │ ├── chunk-GFARMTUE.js │ │ │ ├── chunk-GLGQFQO2.js │ │ │ ├── chunk-GLGRLUIJ.js │ │ │ ├── chunk-MBYWPZQV.js │ │ │ ├── chunk-N3RKSFBU.js │ │ │ ├── chunk-R2IMOXM4.js │ │ │ ├── chunk-RGCH6K7F.js │ │ │ ├── chunk-ROC2DVJ2.js │ │ │ ├── chunk-SGO5R2ED.js │ │ │ ├── chunk-W7GRJBO5.js │ │ │ ├── chunk-YI5XBR2B.js │ │ │ ├── chunk-ZLSAKILO.js │ │ │ ├── index.html │ │ │ ├── main-7SJG752M.js │ │ │ ├── polyfills-5CFQRCPP.js │ │ │ └── styles-YY6V3TJU.css │ │ ├── built_in_agents/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── adk_agent_builder_assistant.py │ │ │ ├── agent.py │ │ │ ├── instruction_embedded.template │ │ │ ├── sub_agents/ │ │ │ │ ├── __init__.py │ │ │ │ ├── google_search_agent.py │ │ │ │ └── url_context_agent.py │ │ │ ├── tools/ │ │ │ │ ├── __init__.py │ │ │ │ ├── cleanup_unused_files.py │ │ │ │ ├── delete_files.py │ │ │ │ ├── explore_project.py │ │ │ │ ├── query_schema.py │ │ │ │ ├── read_config_files.py │ │ │ │ ├── read_files.py │ │ │ │ ├── search_adk_knowledge.py │ │ │ │ ├── search_adk_source.py │ │ │ │ ├── write_config_files.py │ │ │ │ └── write_files.py │ │ │ └── utils/ │ │ │ ├── __init__.py │ │ │ ├── adk_source_utils.py │ │ │ ├── path_normalizer.py │ │ │ └── resolve_root_directory.py │ │ ├── cli.py │ │ ├── cli_create.py │ │ ├── cli_deploy.py │ │ ├── cli_eval.py │ │ ├── cli_tools_click.py │ │ ├── conformance/ │ │ │ ├── __init__.py │ │ │ ├── _conformance_test_google_llm.py │ │ │ ├── _generate_markdown_utils.py │ │ │ ├── _generated_file_utils.py │ │ │ ├── _replay_validators.py │ │ │ ├── adk_web_server_client.py │ │ │ ├── cli_record.py │ │ │ ├── cli_test.py │ │ │ └── test_case.py │ │ ├── fast_api.py │ │ ├── plugins/ │ │ │ ├── __init__.py │ │ │ ├── recordings_plugin.py │ │ │ ├── recordings_schema.py │ │ │ └── replay_plugin.py │ │ ├── service_registry.py │ │ └── utils/ │ │ ├── __init__.py │ │ ├── agent_change_handler.py │ │ ├── agent_loader.py │ │ ├── base_agent_loader.py │ │ ├── cleanup.py │ │ ├── common.py │ │ ├── dot_adk_folder.py │ │ ├── envs.py │ │ ├── evals.py │ │ ├── local_storage.py │ │ ├── logs.py │ │ ├── service_factory.py │ │ ├── shared_value.py │ │ └── state.py │ ├── code_executors/ │ │ ├── __init__.py │ │ ├── agent_engine_sandbox_code_executor.py │ │ ├── base_code_executor.py │ │ ├── built_in_code_executor.py │ │ ├── code_execution_utils.py │ │ ├── code_executor_context.py │ │ ├── container_code_executor.py │ │ ├── gke_code_executor.py │ │ ├── unsafe_local_code_executor.py │ │ └── vertex_ai_code_executor.py │ ├── dependencies/ │ │ ├── __init__.py │ │ ├── rouge_scorer.py │ │ └── vertexai.py │ ├── errors/ │ │ ├── __init__.py │ │ ├── already_exists_error.py │ │ ├── input_validation_error.py │ │ ├── not_found_error.py │ │ ├── session_not_found_error.py │ │ └── tool_execution_error.py │ ├── evaluation/ │ │ ├── __init__.py │ │ ├── _eval_set_results_manager_utils.py │ │ ├── _eval_sets_manager_utils.py │ │ ├── _retry_options_utils.py │ │ ├── agent_evaluator.py │ │ ├── app_details.py │ │ ├── base_eval_service.py │ │ ├── common.py │ │ ├── constants.py │ │ ├── conversation_scenarios.py │ │ ├── custom_metric_evaluator.py │ │ ├── eval_case.py │ │ ├── eval_config.py │ │ ├── eval_metrics.py │ │ ├── eval_result.py │ │ ├── eval_rubrics.py │ │ ├── eval_set.py │ │ ├── eval_set_results_manager.py │ │ ├── eval_sets_manager.py │ │ ├── evaluation_constants.py │ │ ├── evaluation_generator.py │ │ ├── evaluator.py │ │ ├── final_response_match_v1.py │ │ ├── final_response_match_v2.py │ │ ├── gcs_eval_set_results_manager.py │ │ ├── gcs_eval_sets_manager.py │ │ ├── hallucinations_v1.py │ │ ├── in_memory_eval_sets_manager.py │ │ ├── llm_as_judge.py │ │ ├── llm_as_judge_utils.py │ │ ├── local_eval_service.py │ │ ├── local_eval_set_results_manager.py │ │ ├── local_eval_sets_manager.py │ │ ├── metric_evaluator_registry.py │ │ ├── metric_info_providers.py │ │ ├── multi_turn_task_success_evaluator.py │ │ ├── multi_turn_tool_use_quality_evaluator.py │ │ ├── multi_turn_trajectory_quality_evaluator.py │ │ ├── request_intercepter_plugin.py │ │ ├── response_evaluator.py │ │ ├── rubric_based_evaluator.py │ │ ├── rubric_based_final_response_quality_v1.py │ │ ├── rubric_based_tool_use_quality_v1.py │ │ ├── safety_evaluator.py │ │ ├── simulation/ │ │ │ ├── __init__.py │ │ │ ├── llm_backed_user_simulator.py │ │ │ ├── llm_backed_user_simulator_prompts.py │ │ │ ├── per_turn_user_simulator_quality_prompts.py │ │ │ ├── per_turn_user_simulator_quality_v1.py │ │ │ ├── pre_built_personas.py │ │ │ ├── static_user_simulator.py │ │ │ ├── user_simulator.py │ │ │ ├── user_simulator_personas.py │ │ │ └── user_simulator_provider.py │ │ ├── trajectory_evaluator.py │ │ └── vertex_ai_eval_facade.py │ ├── events/ │ │ ├── __init__.py │ │ ├── event.py │ │ ├── event_actions.py │ │ └── ui_widget.py │ ├── examples/ │ │ ├── __init__.py │ │ ├── base_example_provider.py │ │ ├── example.py │ │ ├── example_util.py │ │ └── vertex_ai_example_store.py │ ├── features/ │ │ ├── __init__.py │ │ ├── _feature_decorator.py │ │ └── _feature_registry.py │ ├── flows/ │ │ ├── __init__.py │ │ └── llm_flows/ │ │ ├── __init__.py │ │ ├── _base_llm_processor.py │ │ ├── _code_execution.py │ │ ├── _nl_planning.py │ │ ├── _output_schema_processor.py │ │ ├── agent_transfer.py │ │ ├── audio_cache_manager.py │ │ ├── audio_transcriber.py │ │ ├── auto_flow.py │ │ ├── base_llm_flow.py │ │ ├── basic.py │ │ ├── compaction.py │ │ ├── contents.py │ │ ├── context_cache_processor.py │ │ ├── functions.py │ │ ├── identity.py │ │ ├── instructions.py │ │ ├── interactions_processor.py │ │ ├── request_confirmation.py │ │ ├── single_flow.py │ │ └── transcription_manager.py │ ├── integrations/ │ │ ├── README.md │ │ ├── agent_registry/ │ │ │ ├── __init__.py │ │ │ └── agent_registry.py │ │ ├── api_registry/ │ │ │ ├── __init__.py │ │ │ └── api_registry.py │ │ ├── crewai/ │ │ │ ├── __init__.py │ │ │ └── crewai_tool.py │ │ ├── langchain/ │ │ │ ├── __init__.py │ │ │ └── langchain_tool.py │ │ └── slack/ │ │ ├── README.md │ │ ├── __init__.py │ │ └── slack_runner.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── _utils.py │ │ ├── base_memory_service.py │ │ ├── in_memory_memory_service.py │ │ ├── memory_entry.py │ │ ├── vertex_ai_memory_bank_service.py │ │ └── vertex_ai_rag_memory_service.py │ ├── models/ │ │ ├── __init__.py │ │ ├── anthropic_llm.py │ │ ├── apigee_llm.py │ │ ├── base_llm.py │ │ ├── base_llm_connection.py │ │ ├── cache_metadata.py │ │ ├── gemini_context_cache_manager.py │ │ ├── gemini_llm_connection.py │ │ ├── gemma_llm.py │ │ ├── google_llm.py │ │ ├── interactions_utils.py │ │ ├── lite_llm.py │ │ ├── llm_request.py │ │ ├── llm_response.py │ │ └── registry.py │ ├── optimization/ │ │ ├── __init__.py │ │ ├── agent_optimizer.py │ │ ├── data_types.py │ │ ├── gepa_root_agent_prompt_optimizer.py │ │ ├── local_eval_sampler.py │ │ ├── sampler.py │ │ └── simple_prompt_optimizer.py │ ├── planners/ │ │ ├── __init__.py │ │ ├── base_planner.py │ │ ├── built_in_planner.py │ │ └── plan_re_act_planner.py │ ├── platform/ │ │ ├── __init__.py │ │ ├── thread.py │ │ ├── time.py │ │ └── uuid.py │ ├── plugins/ │ │ ├── __init__.py │ │ ├── base_plugin.py │ │ ├── bigquery_agent_analytics_plugin.py │ │ ├── context_filter_plugin.py │ │ ├── debug_logging_plugin.py │ │ ├── global_instruction_plugin.py │ │ ├── logging_plugin.py │ │ ├── multimodal_tool_results_plugin.py │ │ ├── plugin_manager.py │ │ ├── reflect_retry_tool_plugin.py │ │ └── save_files_as_artifacts_plugin.py │ ├── py.typed │ ├── runners.py │ ├── sessions/ │ │ ├── __init__.py │ │ ├── _session_util.py │ │ ├── base_session_service.py │ │ ├── database_session_service.py │ │ ├── in_memory_session_service.py │ │ ├── migration/ │ │ │ ├── README.md │ │ │ ├── _schema_check_utils.py │ │ │ ├── migrate_from_sqlalchemy_pickle.py │ │ │ ├── migrate_from_sqlalchemy_sqlite.py │ │ │ └── migration_runner.py │ │ ├── schemas/ │ │ │ ├── shared.py │ │ │ ├── v0.py │ │ │ └── v1.py │ │ ├── session.py │ │ ├── sqlite_session_service.py │ │ ├── state.py │ │ └── vertex_ai_session_service.py │ ├── skills/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── _utils.py │ │ ├── models.py │ │ └── prompt.py │ ├── telemetry/ │ │ ├── __init__.py │ │ ├── _experimental_semconv.py │ │ ├── google_cloud.py │ │ ├── setup.py │ │ ├── sqlite_span_exporter.py │ │ └── tracing.py │ ├── tools/ │ │ ├── __init__.py │ │ ├── _automatic_function_calling_util.py │ │ ├── _forwarding_artifact_service.py │ │ ├── _function_parameter_parse_util.py │ │ ├── _function_tool_declarations.py │ │ ├── _gemini_schema_util.py │ │ ├── _google_credentials.py │ │ ├── _memory_entry_utils.py │ │ ├── agent_simulator/ │ │ │ ├── __init__.py │ │ │ ├── agent_simulator_config.py │ │ │ ├── agent_simulator_engine.py │ │ │ ├── agent_simulator_factory.py │ │ │ ├── agent_simulator_plugin.py │ │ │ ├── strategies/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ └── tool_spec_mock_strategy.py │ │ │ ├── tool_connection_analyzer.py │ │ │ └── tool_connection_map.py │ │ ├── agent_tool.py │ │ ├── api_registry.py │ │ ├── apihub_tool/ │ │ │ ├── __init__.py │ │ │ ├── apihub_toolset.py │ │ │ └── clients/ │ │ │ ├── __init__.py │ │ │ ├── apihub_client.py │ │ │ └── secret_client.py │ │ ├── application_integration_tool/ │ │ │ ├── __init__.py │ │ │ ├── application_integration_toolset.py │ │ │ ├── clients/ │ │ │ │ ├── connections_client.py │ │ │ │ └── integration_client.py │ │ │ └── integration_connector_tool.py │ │ ├── authenticated_function_tool.py │ │ ├── base_authenticated_tool.py │ │ ├── base_tool.py │ │ ├── base_toolset.py │ │ ├── bash_tool.py │ │ ├── bigquery/ │ │ │ ├── __init__.py │ │ │ ├── bigquery_credentials.py │ │ │ ├── bigquery_toolset.py │ │ │ ├── client.py │ │ │ ├── config.py │ │ │ ├── data_insights_tool.py │ │ │ ├── metadata_tool.py │ │ │ ├── query_tool.py │ │ │ └── search_tool.py │ │ ├── bigtable/ │ │ │ ├── __init__.py │ │ │ ├── bigtable_credentials.py │ │ │ ├── bigtable_toolset.py │ │ │ ├── client.py │ │ │ ├── metadata_tool.py │ │ │ ├── query_tool.py │ │ │ └── settings.py │ │ ├── computer_use/ │ │ │ ├── __init__.py │ │ │ ├── base_computer.py │ │ │ ├── computer_use_tool.py │ │ │ └── computer_use_toolset.py │ │ ├── crewai_tool.py │ │ ├── data_agent/ │ │ │ ├── __init__.py │ │ │ ├── config.py │ │ │ ├── credentials.py │ │ │ ├── data_agent_tool.py │ │ │ └── data_agent_toolset.py │ │ ├── discovery_engine_search_tool.py │ │ ├── enterprise_search_tool.py │ │ ├── environment_simulation/ │ │ │ ├── __init__.py │ │ │ ├── environment_simulation_config.py │ │ │ ├── environment_simulation_engine.py │ │ │ ├── environment_simulation_factory.py │ │ │ ├── environment_simulation_plugin.py │ │ │ ├── strategies/ │ │ │ │ ├── __init__.py │ │ │ │ ├── base.py │ │ │ │ └── tool_spec_mock_strategy.py │ │ │ ├── tool_connection_analyzer.py │ │ │ └── tool_connection_map.py │ │ ├── example_tool.py │ │ ├── exit_loop_tool.py │ │ ├── function_tool.py │ │ ├── get_user_choice_tool.py │ │ ├── google_api_tool/ │ │ │ ├── __init__.py │ │ │ ├── google_api_tool.py │ │ │ ├── google_api_toolset.py │ │ │ ├── google_api_toolsets.py │ │ │ └── googleapi_to_openapi_converter.py │ │ ├── google_maps_grounding_tool.py │ │ ├── google_search_agent_tool.py │ │ ├── google_search_tool.py │ │ ├── google_tool.py │ │ ├── langchain_tool.py │ │ ├── load_artifacts_tool.py │ │ ├── load_mcp_resource_tool.py │ │ ├── load_memory_tool.py │ │ ├── load_web_page.py │ │ ├── long_running_tool.py │ │ ├── mcp_tool/ │ │ │ ├── __init__.py │ │ │ ├── conversion_utils.py │ │ │ ├── mcp_session_manager.py │ │ │ ├── mcp_tool.py │ │ │ ├── mcp_toolset.py │ │ │ └── session_context.py │ │ ├── openapi_tool/ │ │ │ ├── __init__.py │ │ │ ├── auth/ │ │ │ │ ├── __init__.py │ │ │ │ ├── auth_helpers.py │ │ │ │ └── credential_exchangers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── auto_auth_credential_exchanger.py │ │ │ │ ├── base_credential_exchanger.py │ │ │ │ ├── oauth2_exchanger.py │ │ │ │ └── service_account_exchanger.py │ │ │ ├── common/ │ │ │ │ ├── __init__.py │ │ │ │ └── common.py │ │ │ └── openapi_spec_parser/ │ │ │ ├── __init__.py │ │ │ ├── openapi_spec_parser.py │ │ │ ├── openapi_toolset.py │ │ │ ├── operation_parser.py │ │ │ ├── rest_api_tool.py │ │ │ └── tool_auth_handler.py │ │ ├── preload_memory_tool.py │ │ ├── pubsub/ │ │ │ ├── __init__.py │ │ │ ├── client.py │ │ │ ├── config.py │ │ │ ├── message_tool.py │ │ │ ├── pubsub_credentials.py │ │ │ └── pubsub_toolset.py │ │ ├── retrieval/ │ │ │ ├── __init__.py │ │ │ ├── base_retrieval_tool.py │ │ │ ├── files_retrieval.py │ │ │ ├── llama_index_retrieval.py │ │ │ └── vertex_ai_rag_retrieval.py │ │ ├── set_model_response_tool.py │ │ ├── skill_toolset.py │ │ ├── spanner/ │ │ │ ├── __init__.py │ │ │ ├── admin_tool.py │ │ │ ├── admin_toolset.py │ │ │ ├── client.py │ │ │ ├── metadata_tool.py │ │ │ ├── query_tool.py │ │ │ ├── search_tool.py │ │ │ ├── settings.py │ │ │ ├── spanner_credentials.py │ │ │ ├── spanner_toolset.py │ │ │ └── utils.py │ │ ├── tool_configs.py │ │ ├── tool_confirmation.py │ │ ├── tool_context.py │ │ ├── toolbox_toolset.py │ │ ├── transfer_to_agent_tool.py │ │ ├── url_context_tool.py │ │ └── vertex_ai_search_tool.py │ ├── utils/ │ │ ├── __init__.py │ │ ├── _client_labels_utils.py │ │ ├── _debug_output.py │ │ ├── _google_client_headers.py │ │ ├── _schema_utils.py │ │ ├── cache_performance_analyzer.py │ │ ├── content_utils.py │ │ ├── context_utils.py │ │ ├── env_utils.py │ │ ├── feature_decorator.py │ │ ├── instructions_utils.py │ │ ├── model_name_utils.py │ │ ├── output_schema_utils.py │ │ ├── streaming_utils.py │ │ ├── variant_utils.py │ │ ├── vertex_ai_utils.py │ │ └── yaml_utils.py │ └── version.py └── tests/ ├── __init__.py ├── integration/ │ ├── __init__.py │ ├── conftest.py │ ├── fixture/ │ │ ├── __init__.py │ │ ├── agent_with_config/ │ │ │ ├── __init__.py │ │ │ └── agent.py │ │ ├── bigquery_agent/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ ├── simple.test.json │ │ │ └── test_config.json │ │ ├── callback_agent/ │ │ │ ├── __init__.py │ │ │ └── agent.py │ │ ├── context_update_test/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ └── successful_test.session.json │ │ ├── context_variable_agent/ │ │ │ ├── __init__.py │ │ │ └── agent.py │ │ ├── ecommerce_customer_service_agent/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ ├── order_query.test.json │ │ │ └── test_config.json │ │ ├── flow_complex_spark/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ └── sample.session.json │ │ ├── hello_world_agent/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ ├── roll_die.test.json │ │ │ └── test_config.json │ │ ├── hello_world_agent_async/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ ├── roll_die.test.json │ │ │ └── test_config.json │ │ ├── home_automation_agent/ │ │ │ ├── __init__.py │ │ │ ├── agent.py │ │ │ ├── simple_test.test.json │ │ │ ├── simple_test2.test.json │ │ │ ├── test_config.json │ │ │ └── test_files/ │ │ │ ├── dependent_tool_calls.test.json │ │ │ ├── memorizing_past_events/ │ │ │ │ ├── eval_data.test.json │ │ │ │ └── test_config.json │ │ │ ├── simple_multi_turn_conversation.test.json │ │ │ ├── simple_test.test.json │ │ │ ├── simple_test2.test.json │ │ │ └── test_config.json │ │ ├── tool_agent/ │ │ │ ├── __init__.py │ │ │ └── agent.py │ │ └── trip_planner_agent/ │ │ ├── __init__.py │ │ ├── agent.py │ │ ├── test_config.json │ │ ├── test_files/ │ │ │ ├── test_config.json │ │ │ └── trip_inquiry_sub_agent.test.json │ │ └── trip_inquiry_multi_turn.test.json │ ├── models/ │ │ ├── __init__.py │ │ ├── test_gemma_llm.py │ │ ├── test_google_llm.py │ │ ├── test_litellm_no_function.py │ │ └── test_litellm_with_function.py │ ├── test_callback.py │ ├── test_context_variable.py │ ├── test_evaluate_agent_in_fixture.py │ ├── test_multi_agent.py │ ├── test_multi_turn.py │ ├── test_single_agent.py │ ├── test_sub_agent.py │ ├── test_system_instruction.py │ ├── test_tools.py │ ├── test_vertex_ai_search_grounding_streaming.py │ ├── test_with_test_file.py │ ├── tools/ │ │ └── __init__.py │ └── utils/ │ ├── __init__.py │ ├── asserts.py │ └── test_runner.py └── unittests/ ├── __init__.py ├── a2a/ │ ├── __init__.py │ ├── converters/ │ │ ├── __init__.py │ │ ├── test_event_converter.py │ │ ├── test_event_round_trip.py │ │ ├── test_from_adk.py │ │ ├── test_part_converter.py │ │ ├── test_request_converter.py │ │ ├── test_to_adk.py │ │ └── test_utils.py │ ├── executor/ │ │ ├── __init__.py │ │ ├── test_a2a_agent_executor.py │ │ ├── test_a2a_agent_executor_impl.py │ │ └── test_task_result_aggregator.py │ └── utils/ │ ├── __init__.py │ ├── test_agent_card_builder.py │ └── test_agent_to_a2a.py ├── agents/ │ ├── __init__.py │ ├── test_agent_clone.py │ ├── test_agent_config.py │ ├── test_base_agent.py │ ├── test_callback_context.py │ ├── test_context.py │ ├── test_context_cache_config.py │ ├── test_gemini_context_cache_manager.py │ ├── test_invocation_context.py │ ├── test_langgraph_agent.py │ ├── test_live_request_queue.py │ ├── test_llm_agent_callbacks.py │ ├── test_llm_agent_error_messages.py │ ├── test_llm_agent_fields.py │ ├── test_llm_agent_include_contents.py │ ├── test_llm_agent_output_save.py │ ├── test_loop_agent.py │ ├── test_mcp_instruction_provider.py │ ├── test_model_callback_chain.py │ ├── test_parallel_agent.py │ ├── test_readonly_context.py │ ├── test_remote_a2a_agent.py │ ├── test_resumable_llm_agent.py │ ├── test_run_config.py │ └── test_sequential_agent.py ├── apps/ │ ├── __init__.py │ ├── test_apps.py │ ├── test_compaction.py │ └── test_llm_event_summarizer.py ├── artifacts/ │ ├── __init__.py │ ├── test_artifact_service.py │ └── test_artifact_util.py ├── auth/ │ ├── __init__.py │ ├── credential_service/ │ │ ├── __init__.py │ │ ├── test_in_memory_credential_service.py │ │ └── test_session_state_credential_service.py │ ├── exchanger/ │ │ ├── __init__.py │ │ ├── test_credential_exchanger_registry.py │ │ └── test_oauth2_credential_exchanger.py │ ├── refresher/ │ │ ├── __init__.py │ │ ├── test_credential_refresher_registry.py │ │ └── test_oauth2_credential_refresher.py │ ├── test_auth_config.py │ ├── test_auth_handler.py │ ├── test_auth_preprocessor.py │ ├── test_auth_provider_registry.py │ ├── test_credential_manager.py │ ├── test_oauth2_credential_util.py │ ├── test_oauth2_discovery.py │ └── test_toolset_auth.py ├── cli/ │ ├── __init__.py │ ├── conformance/ │ │ ├── __init__.py │ │ └── test_adk_web_server_client.py │ ├── test_adk_web_server_run_live.py │ ├── test_cli_feature_options.py │ ├── test_cli_tools_click_option_mismatch.py │ ├── test_cors_regex.py │ ├── test_fast_api.py │ ├── test_service_registry.py │ └── utils/ │ ├── __init__.py │ ├── test_agent_change_handler.py │ ├── test_agent_loader.py │ ├── test_cli.py │ ├── test_cli_create.py │ ├── test_cli_deploy.py │ ├── test_cli_deploy_to_cloud_run.py │ ├── test_cli_eval.py │ ├── test_cli_tools_click.py │ ├── test_dot_adk_folder.py │ ├── test_envs.py │ ├── test_evals.py │ ├── test_local_storage.py │ └── test_service_factory.py ├── code_executors/ │ ├── __init__.py │ ├── test_agent_engine_sandbox_code_executor.py │ ├── test_built_in_code_executor.py │ ├── test_code_executor_context.py │ ├── test_gke_code_executor.py │ └── test_unsafe_local_code_executor.py ├── conftest.py ├── evaluation/ │ ├── __init__.py │ ├── mock_gcs_utils.py │ ├── simulation/ │ │ ├── __init__.py │ │ ├── test_llm_backed_user_simulator.py │ │ ├── test_llm_backed_user_simulator_prompts.py │ │ ├── test_per_turn_user_simulation_quality_prompts.py │ │ ├── test_per_turn_user_simulation_quality_v1.py │ │ ├── test_pre_built_personas.py │ │ ├── test_static_user_simulator.py │ │ ├── test_user_simulator.py │ │ ├── test_user_simulator_personas.py │ │ └── test_user_simulator_provider.py │ ├── test_app_details.py │ ├── test_custom_metric_evaluator.py │ ├── test_eval_case.py │ ├── test_eval_config.py │ ├── test_evaluation_generator.py │ ├── test_final_response_match_v1.py │ ├── test_final_response_match_v2.py │ ├── test_gcs_eval_set_results_manager.py │ ├── test_gcs_eval_sets_manager.py │ ├── test_hallucinations_v1.py │ ├── test_in_memory_eval_sets_manager.py │ ├── test_llm_as_judge.py │ ├── test_llm_as_judge_utils.py │ ├── test_local_eval_service.py │ ├── test_local_eval_set_results_manager.py │ ├── test_local_eval_sets_manager.py │ ├── test_metric_evaluator_registry.py │ ├── test_multi_turn_task_success_evaluator.py │ ├── test_multi_turn_tool_use_quality_evaluator.py │ ├── test_multi_turn_trajectory_quality_evaluator.py │ ├── test_request_intercepter_plugin.py │ ├── test_response_evaluator.py │ ├── test_retry_options_utils.py │ ├── test_rubric_based_evaluator.py │ ├── test_rubric_based_final_response_quality_v1.py │ ├── test_rubric_based_tool_use_quality_v1.py │ ├── test_safety_evaluator.py │ ├── test_trajectory_evaluator.py │ └── test_vertex_ai_eval_facade.py ├── features/ │ ├── test_feature_decorator.py │ └── test_feature_registry.py ├── flows/ │ ├── __init__.py │ └── llm_flows/ │ ├── __init__.py │ ├── test_agent_transfer.py │ ├── test_agent_transfer_system_instructions.py │ ├── test_async_tool_callbacks.py │ ├── test_audio_cache_manager.py │ ├── test_base_llm_flow.py │ ├── test_base_llm_flow_partial_handling.py │ ├── test_base_llm_flow_realtime.py │ ├── test_basic_processor.py │ ├── test_code_execution.py │ ├── test_compaction_processor.py │ ├── test_contents.py │ ├── test_contents_branch.py │ ├── test_contents_function.py │ ├── test_contents_other_agent.py │ ├── test_context_cache_processor.py │ ├── test_functions_error_messages.py │ ├── test_functions_long_running.py │ ├── test_functions_parallel.py │ ├── test_functions_request_euc.py │ ├── test_functions_sequential.py │ ├── test_functions_simple.py │ ├── test_functions_thread_pool.py │ ├── test_identity.py │ ├── test_instructions.py │ ├── test_interactions_processor.py │ ├── test_live_tool_callbacks.py │ ├── test_model_callbacks.py │ ├── test_nl_planning.py │ ├── test_other_configs.py │ ├── test_output_schema_processor.py │ ├── test_plugin_model_callbacks.py │ ├── test_plugin_tool_callbacks.py │ ├── test_progressive_sse_streaming.py │ ├── test_request_confirmation.py │ ├── test_tool_callbacks.py │ ├── test_tool_telemetry.py │ └── test_transcription_manager.py ├── integrations/ │ ├── agent_registry/ │ │ ├── __init__.py │ │ └── test_agent_registry.py │ ├── api_registry/ │ │ ├── __init__.py │ │ └── test_api_registry.py │ ├── crewai/ │ │ └── test_crewai_tool.py │ ├── langchain/ │ │ └── test_langchain_tool.py │ └── slack/ │ └── test_slack_runner.py ├── memory/ │ ├── test_in_memory_memory_service.py │ └── test_vertex_ai_memory_bank_service.py ├── models/ │ ├── __init__.py │ ├── test_anthropic_llm.py │ ├── test_apigee_llm.py │ ├── test_cache_metadata.py │ ├── test_completions_http_client.py │ ├── test_gemini_llm_connection.py │ ├── test_gemma_llm.py │ ├── test_google_llm.py │ ├── test_interactions_utils.py │ ├── test_litellm.py │ ├── test_litellm_import.py │ ├── test_llm_request.py │ ├── test_llm_response.py │ └── test_models.py ├── optimization/ │ ├── gepa_root_agent_prompt_optimizer_test.py │ ├── local_eval_sampler_test.py │ └── simple_prompt_optimizer_test.py ├── platform/ │ ├── __init__.py │ ├── test_time.py │ └── test_uuid.py ├── plugins/ │ ├── __init__.py │ ├── test_base_plugin.py │ ├── test_bigquery_agent_analytics_plugin.py │ ├── test_context_filtering_plugin.py │ ├── test_debug_logging_plugin.py │ ├── test_global_instruction_plugin.py │ ├── test_multimodal_tool_results_plugin.py │ ├── test_plugin_manager.py │ ├── test_reflect_retry_tool_plugin.py │ └── test_save_files_as_artifacts.py ├── runners/ │ ├── __init__.py │ ├── test_pause_invocation.py │ ├── test_resume_invocation.py │ ├── test_run_tool_confirmation.py │ ├── test_runner_debug.py │ └── test_runner_rewind.py ├── sessions/ │ ├── __init__.py │ ├── migration/ │ │ ├── test_database_schema.py │ │ └── test_migration.py │ ├── test_dynamic_pickle_type.py │ ├── test_session_service.py │ ├── test_v0_storage_event.py │ └── test_vertex_ai_session_service.py ├── skills/ │ ├── __init__.py │ ├── test__utils.py │ ├── test_models.py │ └── test_prompt.py ├── streaming/ │ ├── __init__.py │ ├── test_live_streaming_configs.py │ ├── test_multi_agent_streaming.py │ ├── test_streaming.py │ └── test_streaming_audio_storage.py ├── telemetry/ │ ├── __init__.py │ ├── test_functional.py │ ├── test_google_cloud.py │ ├── test_setup.py │ ├── test_spans.py │ └── test_sqlite_span_exporter.py ├── test_runners.py ├── testing_utils.py ├── tools/ │ ├── __init__.py │ ├── apihub_tool/ │ │ ├── clients/ │ │ │ ├── test_apihub_client.py │ │ │ └── test_secret_client.py │ │ └── test_apihub_toolset.py │ ├── application_integration_tool/ │ │ ├── clients/ │ │ │ ├── test_connections_client.py │ │ │ └── test_integration_client.py │ │ ├── test_application_integration_toolset.py │ │ └── test_integration_connector_tool.py │ ├── bigquery/ │ │ ├── __init__ │ │ ├── test_bigquery_client.py │ │ ├── test_bigquery_credentials.py │ │ ├── test_bigquery_data_insights_tool.py │ │ ├── test_bigquery_metadata_tool.py │ │ ├── test_bigquery_query_tool.py │ │ ├── test_bigquery_search_tool.py │ │ ├── test_bigquery_tool_config.py │ │ ├── test_bigquery_toolset.py │ │ └── test_data/ │ │ └── ask_data_insights_penguins_highest_mass.yaml │ ├── bigtable/ │ │ ├── __init__ │ │ ├── test_bigtable_credentials.py │ │ ├── test_bigtable_metadata_tool.py │ │ ├── test_bigtable_query_tool.py │ │ ├── test_bigtable_toolset.py │ │ └── test_client.py │ ├── computer_use/ │ │ ├── __init__.py │ │ ├── test_base_computer.py │ │ ├── test_computer_use_tool.py │ │ └── test_computer_use_toolset.py │ ├── data_agent/ │ │ ├── test_data_agent_tool.py │ │ └── test_data_agent_toolset.py │ ├── environment_simulation/ │ │ ├── __init__.py │ │ ├── test_environment_simulation_engine.py │ │ ├── test_environment_simulation_factory.py │ │ └── test_environment_simulation_plugin.py │ ├── google_api_tool/ │ │ ├── __init__.py │ │ ├── test_docs_batchupdate.py │ │ ├── test_google_api_tool.py │ │ ├── test_google_api_toolset.py │ │ └── test_googleapi_to_openapi_converter.py │ ├── mcp_tool/ │ │ ├── __init__.py │ │ ├── test_conversion_utils.py │ │ ├── test_mcp_session_manager.py │ │ ├── test_mcp_tool.py │ │ ├── test_mcp_toolset.py │ │ ├── test_mcp_toolset_auth.py │ │ └── test_session_context.py │ ├── openapi_tool/ │ │ ├── auth/ │ │ │ ├── credential_exchangers/ │ │ │ │ ├── test_auto_auth_credential_exchanger.py │ │ │ │ ├── test_base_auth_credential_exchanger.py │ │ │ │ ├── test_oauth2_exchanger.py │ │ │ │ └── test_service_account_exchanger.py │ │ │ └── test_auth_helper.py │ │ ├── common/ │ │ │ └── test_common.py │ │ └── openapi_spec_parser/ │ │ ├── test.yaml │ │ ├── test_openapi_spec_parser.py │ │ ├── test_openapi_toolset.py │ │ ├── test_operation_parser.py │ │ ├── test_rest_api_tool.py │ │ └── test_tool_auth_handler.py │ ├── pubsub/ │ │ ├── test_pubsub_client.py │ │ ├── test_pubsub_config.py │ │ ├── test_pubsub_credentials.py │ │ ├── test_pubsub_message_tool.py │ │ └── test_pubsub_toolset.py │ ├── retrieval/ │ │ ├── __init__.py │ │ ├── test_base_retrieval_tool.py │ │ ├── test_files_retrieval.py │ │ └── test_vertex_ai_rag_retrieval.py │ ├── spanner/ │ │ ├── __init__ │ │ ├── test_admin_tool.py │ │ ├── test_admin_toolset.py │ │ ├── test_metadata_tool.py │ │ ├── test_search_tool.py │ │ ├── test_spanner_client.py │ │ ├── test_spanner_credentials.py │ │ ├── test_spanner_query_tool.py │ │ ├── test_spanner_tool_settings.py │ │ ├── test_spanner_toolset.py │ │ └── test_utils.py │ ├── test_agent_tool.py │ ├── test_authenticated_function_tool.py │ ├── test_base_authenticated_tool.py │ ├── test_base_google_credentials_manager.py │ ├── test_base_tool.py │ ├── test_base_toolset.py │ ├── test_bash_tool.py │ ├── test_build_function_declaration.py │ ├── test_discovery_engine_search_tool.py │ ├── test_enterprise_web_search_tool.py │ ├── test_from_function_with_options.py │ ├── test_function_tool.py │ ├── test_function_tool_declarations.py │ ├── test_function_tool_pydantic.py │ ├── test_function_tool_with_import_annotations.py │ ├── test_gemini_schema_util.py │ ├── test_google_maps_grounding_tool.py │ ├── test_google_search_agent_tool.py │ ├── test_google_search_tool.py │ ├── test_google_tool.py │ ├── test_load_artifacts_tool.py │ ├── test_load_mcp_resource_tool.py │ ├── test_load_memory_tool.py │ ├── test_long_running_tool.py │ ├── test_set_model_response_tool.py │ ├── test_skill_toolset.py │ ├── test_tool_config.py │ ├── test_transfer_to_agent_tool.py │ ├── test_url_context_tool.py │ └── test_vertex_ai_search_tool.py └── utils/ ├── __init__.py ├── test_cache_performance_analyzer.py ├── test_client_labels_utils.py ├── test_context_utils.py ├── test_env_utils.py ├── test_feature_decorator.py ├── test_google_client_headers.py ├── test_instructions_utils.py ├── test_model_name_utils.py ├── test_output_schema_utils.py ├── test_schema_utils.py ├── test_streaming_utils.py ├── test_vertex_ai_utils.py └── test_yaml_utils.py