@google/adk 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/a2a/a2a_event.js +0 -29
- package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
- package/dist/cjs/a2a/agent_card.js +66 -6
- package/dist/cjs/a2a/agent_executor.js +18 -6
- package/dist/cjs/a2a/agent_to_a2a.js +6 -1
- package/dist/cjs/a2a/event_processor_utils.js +1 -1
- package/dist/cjs/a2a/executor_context.js +4 -2
- package/dist/cjs/a2a/index.js +4 -0
- package/dist/cjs/a2a/request_metadata.js +94 -0
- package/dist/cjs/agents/base_agent.js +9 -8
- package/dist/cjs/agents/context.js +7 -0
- package/dist/cjs/agents/functions.js +150 -47
- package/dist/cjs/agents/invocation_context.js +1 -0
- package/dist/cjs/agents/llm_agent.js +21 -6
- package/dist/cjs/agents/loop_agent.js +1 -1
- package/dist/cjs/agents/parallel_agent.js +1 -1
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
- package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
- package/dist/cjs/agents/processors/content_processor_utils.js +15 -7
- package/dist/cjs/agents/processors/content_request_processor.js +4 -1
- package/dist/cjs/agents/processors/nl_planning_processor.js +114 -0
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
- package/dist/cjs/agents/readonly_context.js +6 -0
- package/dist/cjs/agents/routed_agent.js +1 -1
- package/dist/cjs/agents/sequential_agent.js +1 -1
- package/dist/cjs/apps/app.js +1 -1
- package/dist/cjs/artifacts/file_artifact_service.js +1 -2
- package/dist/cjs/artifacts/gcs_artifact_service.js +13 -7
- package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
- package/dist/cjs/artifacts/session_artifact_service.js +19 -0
- package/dist/cjs/auth/auth_credential.js +12 -2
- package/dist/cjs/auth/auth_handler.js +44 -8
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
- package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
- package/dist/cjs/code_executors/base_code_executor.js +1 -1
- package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
- package/dist/cjs/code_executors/code_execution_utils.js +5 -5
- package/dist/cjs/code_executors/container_code_executor.js +186 -0
- package/dist/cjs/code_executors/docker_container.js +282 -0
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
- package/dist/cjs/common.js +119 -45
- package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
- package/dist/cjs/context/anchored_context_compactor.js +41 -18
- package/dist/cjs/context/compaction_utils.js +15 -6
- package/dist/cjs/context/token_based_context_compactor.js +10 -2
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
- package/dist/cjs/context/truncating_context_compactor.js +17 -5
- package/dist/cjs/errors/already_exists_error.js +50 -0
- package/dist/cjs/errors/input_validation_error.js +50 -0
- package/dist/cjs/errors/not_found_error.js +50 -0
- package/dist/cjs/errors/session_not_found_error.js +50 -0
- package/dist/cjs/errors/tool_execution_error.js +68 -0
- package/dist/cjs/events/event.js +1 -1
- package/dist/cjs/events/event_actions.js +7 -0
- package/dist/cjs/examples/base_example_provider.js +1 -1
- package/dist/cjs/examples/example.js +92 -0
- package/dist/cjs/examples/example_util.js +28 -4
- package/dist/cjs/examples/index.js +39 -0
- package/dist/cjs/examples/vertex_ai_example_store.js +39 -0
- package/dist/cjs/index.js +93 -0
- package/dist/cjs/index_web.js +2 -0
- package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
- package/dist/cjs/memory/rag_memory_transcript.js +136 -0
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -7
- package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
- package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
- package/dist/cjs/models/apigee_llm.js +1 -1
- package/dist/cjs/models/base_llm.js +2 -7
- package/dist/cjs/models/chrome_prompt_llm.js +318 -0
- package/dist/cjs/models/chrome_prompt_utils.js +281 -0
- package/dist/cjs/models/gemini_llm_connection.js +5 -4
- package/dist/cjs/models/google_llm.js +9 -4
- package/dist/cjs/models/interactions_utils.js +2 -3
- package/dist/cjs/models/registry.js +2 -0
- package/dist/cjs/planners/base_planner.js +56 -0
- package/dist/cjs/planners/built_in_planner.js +85 -0
- package/dist/cjs/planners/plan_re_act_planner.js +172 -0
- package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
- package/dist/cjs/plugins/base_plugin.js +46 -61
- package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
- package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
- package/dist/cjs/runner/runner.js +29 -26
- package/dist/cjs/sessions/database_session_service.js +78 -43
- package/dist/cjs/sessions/db/operations.js +229 -22
- package/dist/cjs/sessions/db/schema.js +113 -159
- package/dist/cjs/sessions/registry.js +5 -1
- package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
- package/dist/cjs/telemetry/setup.js +1 -1
- package/dist/cjs/telemetry/tracing.js +11 -1
- package/dist/cjs/tools/agent_tool.js +4 -5
- package/dist/cjs/tools/base_tool.js +14 -4
- package/dist/cjs/tools/base_toolset.js +4 -4
- package/dist/cjs/tools/built_in_tool.js +75 -0
- package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
- package/dist/cjs/tools/example_tool.js +1 -1
- package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
- package/dist/cjs/tools/function_tool.js +6 -3
- package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
- package/dist/cjs/tools/google_search_tool.js +3 -6
- package/dist/cjs/tools/load_artifacts_tool.js +47 -23
- package/dist/cjs/tools/load_web_page.js +6 -172
- package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
- package/dist/cjs/tools/mcp/mcp_session_manager.js +14 -8
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +292 -4
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +70 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +120 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -10
- package/dist/cjs/tools/openapi_tool/common/common.js +139 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +74 -14
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -34
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +14 -2
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +106 -46
- package/dist/cjs/tools/preload_memory_tool.js +1 -1
- package/dist/cjs/tools/resume_inputs.js +27 -0
- package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
- package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
- package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
- package/dist/cjs/tools/skill/skill_toolset.js +2 -0
- package/dist/cjs/tools/tool_context.js +41 -0
- package/dist/cjs/tools/url_context_tool.js +3 -6
- package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
- package/dist/cjs/tools/webmcp/index.js +37 -0
- package/dist/cjs/tools/webmcp/webmcp_tool.js +156 -0
- package/dist/cjs/tools/webmcp/webmcp_toolset.js +116 -0
- package/dist/cjs/tools/webmcp/webmcp_types.js +50 -0
- package/dist/cjs/utils/case_utils.js +52 -2
- package/dist/cjs/utils/client_labels.js +67 -0
- package/dist/cjs/utils/crypto_shim.js +16 -0
- package/dist/cjs/utils/gemini_schema_util.js +103 -9
- package/dist/cjs/utils/hash_utils.js +73 -0
- package/dist/cjs/utils/live_connection_utils.js +10 -9
- package/dist/cjs/utils/logger.js +15 -50
- package/dist/cjs/utils/logger_browser.js +86 -0
- package/dist/cjs/utils/logger_node.js +119 -0
- package/dist/cjs/utils/model_name.js +17 -2
- package/dist/cjs/utils/redact_inline_data.js +46 -0
- package/dist/cjs/utils/redact_uri.js +15 -1
- package/dist/cjs/utils/schema.js +1 -1
- package/dist/cjs/utils/simple_zod_to_json.js +5 -0
- package/dist/cjs/utils/ssrf_guard.js +262 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/base_node.js +1 -1
- package/dist/cjs/workflow/graph.js +1 -1
- package/dist/cjs/workflow/nodes/node_tool.js +2 -11
- package/dist/cjs/workflow/request_input.js +1 -1
- package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
- package/dist/cjs/workflow/workflow.js +1 -1
- package/dist/esm/a2a/a2a_event.js +0 -28
- package/dist/esm/a2a/a2a_remote_agent.js +10 -5
- package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
- package/dist/esm/a2a/agent_card.js +71 -6
- package/dist/esm/a2a/agent_executor.js +18 -6
- package/dist/esm/a2a/agent_to_a2a.js +8 -2
- package/dist/esm/a2a/event_processor_utils.js +1 -2
- package/dist/esm/a2a/executor_context.js +4 -2
- package/dist/esm/a2a/index.js +7 -1
- package/dist/esm/a2a/request_metadata.js +68 -0
- package/dist/esm/agents/base_agent.js +9 -8
- package/dist/esm/agents/context.js +7 -0
- package/dist/esm/agents/functions.js +152 -48
- package/dist/esm/agents/invocation_context.js +1 -0
- package/dist/esm/agents/llm_agent.js +24 -6
- package/dist/esm/agents/loop_agent.js +1 -1
- package/dist/esm/agents/parallel_agent.js +1 -1
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
- package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
- package/dist/esm/agents/processors/content_processor_utils.js +15 -7
- package/dist/esm/agents/processors/content_request_processor.js +4 -1
- package/dist/esm/agents/processors/nl_planning_processor.js +87 -0
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
- package/dist/esm/agents/readonly_context.js +6 -0
- package/dist/esm/agents/routed_agent.js +1 -1
- package/dist/esm/agents/sequential_agent.js +1 -1
- package/dist/esm/apps/app.js +1 -1
- package/dist/esm/artifacts/file_artifact_service.js +1 -2
- package/dist/esm/artifacts/gcs_artifact_service.js +13 -7
- package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
- package/dist/esm/artifacts/session_artifact_service.js +12 -0
- package/dist/esm/auth/auth_credential.js +11 -1
- package/dist/esm/auth/auth_handler.js +47 -8
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
- package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
- package/dist/esm/code_executors/base_code_executor.js +1 -1
- package/dist/esm/code_executors/built_in_code_executor.js +1 -1
- package/dist/esm/code_executors/code_execution_utils.js +5 -5
- package/dist/esm/code_executors/container_code_executor.js +155 -0
- package/dist/esm/code_executors/docker_container.js +265 -0
- package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
- package/dist/esm/common.js +111 -40
- package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
- package/dist/esm/context/anchored_context_compactor.js +45 -19
- package/dist/esm/context/compaction_utils.js +13 -5
- package/dist/esm/context/token_based_context_compactor.js +10 -2
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
- package/dist/esm/context/truncating_context_compactor.js +17 -5
- package/dist/esm/errors/already_exists_error.js +23 -0
- package/dist/esm/errors/input_validation_error.js +23 -0
- package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
- package/dist/esm/errors/session_not_found_error.js +23 -0
- package/dist/esm/errors/tool_execution_error.js +40 -0
- package/dist/esm/events/event.js +1 -1
- package/dist/esm/events/event_actions.js +6 -0
- package/dist/esm/examples/base_example_provider.js +1 -1
- package/dist/esm/examples/example.js +85 -0
- package/dist/esm/examples/example_util.js +25 -3
- package/dist/{web/auth/credential_service/base_credential_service.js → esm/examples/index.js} +4 -0
- package/dist/{web/version.js → esm/examples/vertex_ai_example_store.js} +2 -2
- package/dist/esm/index.js +87 -0
- package/dist/esm/index_web.js +2 -0
- package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
- package/dist/esm/memory/rag_memory_transcript.js +106 -0
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +19 -7
- package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
- package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
- package/dist/esm/models/apigee_llm.js +1 -1
- package/dist/esm/models/base_llm.js +3 -8
- package/dist/esm/models/chrome_prompt_llm.js +302 -0
- package/dist/esm/models/chrome_prompt_utils.js +241 -0
- package/dist/esm/models/gemini_llm_connection.js +6 -5
- package/dist/esm/models/google_llm.js +9 -4
- package/dist/esm/models/interactions_utils.js +2 -3
- package/dist/esm/models/registry.js +2 -0
- package/dist/esm/planners/base_planner.js +28 -0
- package/dist/esm/planners/built_in_planner.js +57 -0
- package/dist/esm/planners/plan_re_act_planner.js +145 -0
- package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
- package/dist/esm/plugins/base_plugin.js +46 -61
- package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
- package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
- package/dist/esm/runner/runner.js +35 -27
- package/dist/esm/sessions/database_session_service.js +58 -25
- package/dist/esm/sessions/db/operations.js +229 -22
- package/dist/esm/sessions/db/schema.js +111 -160
- package/dist/esm/sessions/registry.js +5 -1
- package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
- package/dist/esm/telemetry/setup.js +1 -1
- package/dist/esm/telemetry/tracing.js +11 -1
- package/dist/esm/tools/agent_tool.js +4 -5
- package/dist/esm/tools/base_tool.js +11 -3
- package/dist/esm/tools/base_toolset.js +4 -4
- package/dist/esm/tools/built_in_tool.js +51 -0
- package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
- package/dist/esm/tools/example_tool.js +1 -1
- package/dist/esm/tools/forwarding_artifact_service.js +18 -13
- package/dist/esm/tools/function_tool.js +6 -3
- package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
- package/dist/esm/tools/google_search_tool.js +3 -6
- package/dist/esm/tools/load_artifacts_tool.js +48 -24
- package/dist/esm/tools/load_web_page.js +10 -170
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
- package/dist/esm/tools/mcp/mcp_session_manager.js +14 -8
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +285 -3
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +43 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +93 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -12
- package/dist/esm/tools/openapi_tool/common/common.js +112 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +81 -14
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -33
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +14 -2
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +105 -46
- package/dist/esm/tools/preload_memory_tool.js +1 -1
- package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
- package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
- package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
- package/dist/esm/tools/skill/skill_toolset.js +2 -0
- package/dist/{web/context/base_context_compactor.js → esm/tools/tool_context.js} +8 -0
- package/dist/esm/tools/url_context_tool.js +3 -6
- package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
- package/dist/{web/auth/base_auth_provider.js → esm/tools/webmcp/index.js} +3 -0
- package/dist/esm/tools/webmcp/webmcp_tool.js +131 -0
- package/dist/esm/tools/webmcp/webmcp_toolset.js +89 -0
- package/dist/{web/utils/crypto_shim.js → esm/tools/webmcp/webmcp_types.js} +10 -6
- package/dist/esm/utils/case_utils.js +49 -1
- package/dist/esm/utils/client_labels.js +65 -0
- package/dist/esm/utils/crypto_shim.js +14 -0
- package/dist/esm/utils/gemini_schema_util.js +102 -9
- package/dist/esm/utils/hash_utils.js +45 -0
- package/dist/esm/utils/live_connection_utils.js +11 -10
- package/dist/esm/utils/logger.js +14 -40
- package/dist/esm/utils/logger_browser.js +58 -0
- package/dist/esm/utils/logger_node.js +81 -0
- package/dist/esm/utils/model_name.js +15 -2
- package/dist/esm/utils/redact_inline_data.js +19 -0
- package/dist/esm/utils/redact_uri.js +15 -1
- package/dist/esm/utils/schema.js +1 -1
- package/dist/esm/utils/simple_zod_to_json.js +5 -0
- package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/base_node.js +1 -1
- package/dist/esm/workflow/graph.js +1 -1
- package/dist/esm/workflow/nodes/node_tool.js +2 -11
- package/dist/esm/workflow/request_input.js +1 -1
- package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
- package/dist/esm/workflow/workflow.js +1 -1
- package/dist/types/a2a/a2a_event.d.ts +7 -10
- package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
- package/dist/types/a2a/agent_card.d.ts +9 -0
- package/dist/types/a2a/agent_executor.d.ts +1 -1
- package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
- package/dist/types/a2a/auth.d.ts +5 -1
- package/dist/types/a2a/executor_context.d.ts +7 -1
- package/dist/types/a2a/index.d.ts +1 -1
- package/dist/types/a2a/request_metadata.d.ts +22 -0
- package/dist/types/agents/base_agent.d.ts +19 -16
- package/dist/types/agents/context.d.ts +8 -0
- package/dist/types/agents/functions.d.ts +72 -6
- package/dist/types/agents/invocation_context.d.ts +11 -3
- package/dist/types/agents/llm_agent.d.ts +20 -7
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
- package/dist/types/agents/processors/nl_planning_processor.d.ts +30 -0
- package/dist/types/agents/readonly_context.d.ts +4 -0
- package/dist/types/agents/run_config.d.ts +21 -8
- package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
- package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
- package/dist/types/auth/auth_credential.d.ts +22 -8
- package/dist/types/auth/auth_handler.d.ts +12 -1
- package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
- package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
- package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
- package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
- package/dist/types/code_executors/container_code_executor.d.ts +89 -0
- package/dist/types/code_executors/docker_container.d.ts +79 -0
- package/dist/types/common.d.ts +37 -23
- package/dist/types/context/compaction_utils.d.ts +9 -1
- package/dist/types/errors/already_exists_error.d.ts +14 -0
- package/dist/types/errors/input_validation_error.d.ts +14 -0
- package/dist/types/errors/not_found_error.d.ts +14 -0
- package/dist/types/errors/session_not_found_error.d.ts +14 -0
- package/dist/types/errors/tool_execution_error.d.ts +36 -0
- package/dist/types/events/event_actions.d.ts +13 -0
- package/dist/types/examples/base_example_provider.d.ts +2 -2
- package/dist/types/examples/example.d.ts +75 -0
- package/dist/types/examples/example_util.d.ts +13 -2
- package/dist/types/examples/index.d.ts +18 -0
- package/dist/types/examples/vertex_ai_example_store.d.ts +7 -0
- package/dist/types/index.d.ts +31 -1
- package/dist/types/memory/memory_entry.d.ts +15 -0
- package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
- package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +9 -0
- package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
- package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
- package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
- package/dist/types/models/chrome_prompt_utils.d.ts +97 -0
- package/dist/types/models/google_llm.d.ts +8 -3
- package/dist/types/models/registry.d.ts +3 -2
- package/dist/types/planners/base_planner.d.ts +50 -0
- package/dist/types/planners/built_in_planner.d.ts +53 -0
- package/dist/types/planners/plan_re_act_planner.d.ts +21 -0
- package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
- package/dist/types/plugins/base_plugin.d.ts +64 -62
- package/dist/types/plugins/logging_plugin.d.ts +3 -2
- package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
- package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
- package/dist/types/runner/runner.d.ts +7 -8
- package/dist/types/sessions/database_session_service.d.ts +1 -1
- package/dist/types/sessions/db/operations.d.ts +13 -1
- package/dist/types/sessions/db/schema.d.ts +23 -9
- package/dist/types/skills/skill_registry.d.ts +8 -0
- package/dist/types/tools/base_tool.d.ts +11 -0
- package/dist/types/tools/base_toolset.d.ts +3 -4
- package/dist/types/tools/built_in_tool.d.ts +41 -0
- package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
- package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
- package/dist/types/tools/function_tool.d.ts +42 -9
- package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
- package/dist/types/tools/google_search_tool.d.ts +4 -4
- package/dist/types/tools/long_running_tool.d.ts +1 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +115 -1
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +31 -2
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.d.ts +35 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.d.ts +54 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
- package/dist/types/tools/openapi_tool/common/common.d.ts +60 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +7 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +56 -2
- package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +73 -5
- package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +11 -0
- package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +42 -8
- package/dist/types/tools/preload_memory_tool.d.ts +1 -1
- package/dist/types/tools/resume_inputs.d.ts +25 -0
- package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
- package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
- package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
- package/dist/types/tools/tool_context.d.ts +19 -0
- package/dist/types/tools/url_context_tool.d.ts +4 -4
- package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
- package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
- package/dist/types/tools/webmcp/index.d.ts +12 -0
- package/dist/types/tools/webmcp/webmcp_tool.d.ts +47 -0
- package/dist/types/tools/webmcp/webmcp_toolset.d.ts +67 -0
- package/dist/types/tools/webmcp/webmcp_types.d.ts +69 -0
- package/dist/types/utils/case_utils.d.ts +36 -0
- package/dist/types/utils/client_labels.d.ts +33 -0
- package/dist/types/utils/crypto_shim.d.ts +16 -0
- package/dist/types/utils/gemini_schema_util.d.ts +18 -7
- package/dist/types/utils/hash_utils.d.ts +25 -0
- package/dist/types/utils/logger.d.ts +33 -3
- package/dist/types/utils/logger_browser.d.ts +28 -0
- package/dist/types/utils/logger_node.d.ts +20 -0
- package/dist/types/utils/model_name.d.ts +30 -2
- package/dist/types/utils/output_schema_utils.d.ts +3 -3
- package/dist/types/utils/redact_inline_data.d.ts +16 -0
- package/dist/types/utils/redact_uri.d.ts +12 -8
- package/dist/types/utils/ssrf_guard.d.ts +32 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/web/index_web.js +337 -3
- package/dist/web/index_web.js.map +7 -0
- package/package.json +24 -15
- package/dist/web/a2a/a2a_event.js +0 -290
- package/dist/web/a2a/a2a_remote_agent.js +0 -200
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
- package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
- package/dist/web/a2a/agent_card.js +0 -373
- package/dist/web/a2a/agent_executor.js +0 -246
- package/dist/web/a2a/agent_to_a2a.js +0 -126
- package/dist/web/a2a/auth.js +0 -41
- package/dist/web/a2a/event_converter_utils.js +0 -242
- package/dist/web/a2a/event_processor_utils.js +0 -209
- package/dist/web/a2a/executor_context.js +0 -28
- package/dist/web/a2a/index.js +0 -20
- package/dist/web/a2a/metadata_converter_utils.js +0 -115
- package/dist/web/a2a/part_converter_utils.js +0 -201
- package/dist/web/agents/active_streaming_tool.js +0 -25
- package/dist/web/agents/base_agent.js +0 -462
- package/dist/web/agents/context.js +0 -146
- package/dist/web/agents/framework_function_calls.js +0 -34
- package/dist/web/agents/functions.js +0 -462
- package/dist/web/agents/instructions.js +0 -188
- package/dist/web/agents/invocation_context.js +0 -126
- package/dist/web/agents/live_request_queue.js +0 -151
- package/dist/web/agents/llm_agent.js +0 -1514
- package/dist/web/agents/loop_agent.js +0 -131
- package/dist/web/agents/parallel_agent.js +0 -122
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
- package/dist/web/agents/processors/base_llm_processor.js +0 -21
- package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
- package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
- package/dist/web/agents/processors/content_processor_utils.js +0 -432
- package/dist/web/agents/processors/content_request_processor.js +0 -73
- package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
- package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
- package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
- package/dist/web/agents/processors/interactions_request_processor.js +0 -56
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
- package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
- package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
- package/dist/web/agents/readonly_context.js +0 -60
- package/dist/web/agents/routed_agent.js +0 -161
- package/dist/web/agents/run_config.js +0 -74
- package/dist/web/agents/sequential_agent.js +0 -141
- package/dist/web/agents/transcription_entry.js +0 -7
- package/dist/web/agents/user_input_request.js +0 -135
- package/dist/web/apps/app.js +0 -52
- package/dist/web/apps/resumability_config.js +0 -33
- package/dist/web/artifacts/base_artifact_service.js +0 -7
- package/dist/web/artifacts/file_artifact_service.js +0 -568
- package/dist/web/artifacts/gcs_artifact_service.js +0 -298
- package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
- package/dist/web/artifacts/registry.js +0 -36
- package/dist/web/artifacts/scoped_artifact_service.js +0 -89
- package/dist/web/auth/auth_credential.js +0 -18
- package/dist/web/auth/auth_handler.js +0 -151
- package/dist/web/auth/auth_preprocessor.js +0 -184
- package/dist/web/auth/auth_provider_registry.js +0 -37
- package/dist/web/auth/auth_schemes.js +0 -36
- package/dist/web/auth/auth_tool.js +0 -7
- package/dist/web/auth/credential_response_binding.js +0 -91
- package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
- package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
- package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
- package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
- package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
- package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
- package/dist/web/code_executors/base_code_executor.js +0 -68
- package/dist/web/code_executors/built_in_code_executor.js +0 -50
- package/dist/web/code_executors/code_execution_utils.js +0 -131
- package/dist/web/code_executors/code_executor_context.js +0 -174
- package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
- package/dist/web/common.js +0 -452
- package/dist/web/context/agent_controlled_context_compactor.js +0 -76
- package/dist/web/context/anchored_context_compactor.js +0 -120
- package/dist/web/context/compaction_utils.js +0 -42
- package/dist/web/context/summarizers/base_summarizer.js +0 -7
- package/dist/web/context/summarizers/llm_summarizer.js +0 -91
- package/dist/web/context/token_based_context_compactor.js +0 -118
- package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
- package/dist/web/context/truncating_context_compactor.js +0 -34
- package/dist/web/environment/base_environment.js +0 -71
- package/dist/web/environment/local_environment.js +0 -165
- package/dist/web/events/compacted_event.js +0 -51
- package/dist/web/events/event.js +0 -208
- package/dist/web/events/event_actions.js +0 -74
- package/dist/web/events/structured_events.js +0 -79
- package/dist/web/examples/base_example_provider.js +0 -32
- package/dist/web/examples/example.js +0 -7
- package/dist/web/examples/example_util.js +0 -83
- package/dist/web/features/feature_registry.js +0 -115
- package/dist/web/index.js +0 -57
- package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
- package/dist/web/integrations/agent_registry/helpers.js +0 -32
- package/dist/web/integrations/agent_registry/types.js +0 -20
- package/dist/web/memory/base_memory_service.js +0 -7
- package/dist/web/memory/in_memory_memory_service.js +0 -89
- package/dist/web/memory/memory_entry.js +0 -7
- package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
- package/dist/web/models/apigee_llm.js +0 -227
- package/dist/web/models/base_llm.js +0 -78
- package/dist/web/models/base_llm_connection.js +0 -7
- package/dist/web/models/gemini_llm_connection.js +0 -183
- package/dist/web/models/google_llm.js +0 -396
- package/dist/web/models/interactions_utils.js +0 -745
- package/dist/web/models/llm_request.js +0 -57
- package/dist/web/models/llm_response.js +0 -48
- package/dist/web/models/registry.js +0 -100
- package/dist/web/models/routed_llm.js +0 -112
- package/dist/web/plugins/base_plugin.js +0 -305
- package/dist/web/plugins/global_instruction_plugin.js +0 -71
- package/dist/web/plugins/logging_plugin.js +0 -241
- package/dist/web/plugins/plugin_manager.js +0 -318
- package/dist/web/plugins/security_plugin.js +0 -148
- package/dist/web/runner/in_memory_runner.js +0 -50
- package/dist/web/runner/runner.js +0 -747
- package/dist/web/sessions/base_session_service.js +0 -123
- package/dist/web/sessions/database_session_service.js +0 -440
- package/dist/web/sessions/db/operations.js +0 -124
- package/dist/web/sessions/db/schema.js +0 -216
- package/dist/web/sessions/in_memory_session_service.js +0 -251
- package/dist/web/sessions/registry.js +0 -38
- package/dist/web/sessions/session.js +0 -23
- package/dist/web/sessions/state.js +0 -159
- package/dist/web/sessions/state_write_order.js +0 -74
- package/dist/web/sessions/vertex_ai_session_service.js +0 -546
- package/dist/web/skills/gcp_skill_registry.js +0 -80
- package/dist/web/skills/loader.js +0 -372
- package/dist/web/skills/prompt.js +0 -34
- package/dist/web/skills/skill.js +0 -67
- package/dist/web/skills/skill_registry.js +0 -7
- package/dist/web/telemetry/google_cloud.js +0 -99
- package/dist/web/telemetry/setup.js +0 -89
- package/dist/web/telemetry/tracing.js +0 -304
- package/dist/web/tools/agent_tool.js +0 -150
- package/dist/web/tools/base_tool.js +0 -116
- package/dist/web/tools/base_toolset.js +0 -62
- package/dist/web/tools/consolidate_context_tool.js +0 -55
- package/dist/web/tools/enterprise_web_search_tool.js +0 -60
- package/dist/web/tools/example_tool.js +0 -46
- package/dist/web/tools/exit_loop_tool.js +0 -47
- package/dist/web/tools/finish_task_tool.js +0 -92
- package/dist/web/tools/forwarding_artifact_service.js +0 -51
- package/dist/web/tools/function_tool.js +0 -151
- package/dist/web/tools/get_user_choice_tool.js +0 -27
- package/dist/web/tools/google_maps_grounding_tool.js +0 -59
- package/dist/web/tools/google_search_tool.js +0 -55
- package/dist/web/tools/load_artifacts_tool.js +0 -159
- package/dist/web/tools/load_memory_tool.js +0 -83
- package/dist/web/tools/long_running_tool.js +0 -58
- package/dist/web/tools/mcp/index.js +0 -11
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
- package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
- package/dist/web/tools/mcp/mcp_tool.js +0 -47
- package/dist/web/tools/mcp/mcp_toolset.js +0 -144
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
- package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
- package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
- package/dist/web/tools/preload_memory_tool.js +0 -81
- package/dist/web/tools/request_input_tool.js +0 -29
- package/dist/web/tools/skill/list_skills_tool.js +0 -52
- package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
- package/dist/web/tools/skill/load_skill_tool.js +0 -96
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
- package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
- package/dist/web/tools/skill/search_skills_tool.js +0 -84
- package/dist/web/tools/skill/skill_toolset.js +0 -185
- package/dist/web/tools/tool_confirmation.js +0 -43
- package/dist/web/tools/url_context_tool.js +0 -48
- package/dist/web/tools/vertex_ai_search_tool.js +0 -107
- package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
- package/dist/web/utils/async_hooks_shim.js +0 -28
- package/dist/web/utils/async_queue.js +0 -88
- package/dist/web/utils/branch_trie.js +0 -16
- package/dist/web/utils/case_utils.js +0 -28
- package/dist/web/utils/client_labels.js +0 -70
- package/dist/web/utils/deprecated.js +0 -40
- package/dist/web/utils/env_aware_utils.js +0 -115
- package/dist/web/utils/error_utils.js +0 -101
- package/dist/web/utils/experimental.js +0 -54
- package/dist/web/utils/failover_utils.js +0 -100
- package/dist/web/utils/file_extension_utils.js +0 -55
- package/dist/web/utils/file_utils.js +0 -108
- package/dist/web/utils/gemini_schema_util.js +0 -177
- package/dist/web/utils/genai_schema_to_json.js +0 -80
- package/dist/web/utils/live_connection_utils.js +0 -257
- package/dist/web/utils/logger.js +0 -140
- package/dist/web/utils/model_name.js +0 -75
- package/dist/web/utils/object_notation_utils.js +0 -54
- package/dist/web/utils/optional_peer.js +0 -38
- package/dist/web/utils/output_schema_utils.js +0 -18
- package/dist/web/utils/partial_copy.js +0 -26
- package/dist/web/utils/redact_uri.js +0 -39
- package/dist/web/utils/schema.js +0 -167
- package/dist/web/utils/simple_zod_to_json.js +0 -134
- package/dist/web/utils/streaming_utils.js +0 -438
- package/dist/web/utils/task.js +0 -38
- package/dist/web/utils/variant_utils.js +0 -23
- package/dist/web/utils/vertex_ai_utils.js +0 -27
- package/dist/web/workflow/base_node.js +0 -215
- package/dist/web/workflow/branch_path.js +0 -77
- package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
- package/dist/web/workflow/errors.js +0 -140
- package/dist/web/workflow/graph.js +0 -127
- package/dist/web/workflow/index.js +0 -80
- package/dist/web/workflow/node.js +0 -87
- package/dist/web/workflow/node_builders.js +0 -40
- package/dist/web/workflow/node_context.js +0 -236
- package/dist/web/workflow/node_error_event.js +0 -86
- package/dist/web/workflow/node_runner.js +0 -481
- package/dist/web/workflow/node_state.js +0 -43
- package/dist/web/workflow/node_status.js +0 -20
- package/dist/web/workflow/nodes/function_node.js +0 -221
- package/dist/web/workflow/nodes/join_node.js +0 -47
- package/dist/web/workflow/nodes/node_tool.js +0 -131
- package/dist/web/workflow/nodes/parallel_worker.js +0 -120
- package/dist/web/workflow/nodes/tool_node.js +0 -126
- package/dist/web/workflow/request_input.js +0 -36
- package/dist/web/workflow/retry_config.js +0 -43
- package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
- package/dist/web/workflow/run_node_as_invocation.js +0 -170
- package/dist/web/workflow/schedule_dynamic_node.js +0 -26
- package/dist/web/workflow/trigger.js +0 -7
- package/dist/web/workflow/utils/graph_parser.js +0 -188
- package/dist/web/workflow/utils/graph_validation.js +0 -189
- package/dist/web/workflow/utils/hitl_utils.js +0 -239
- package/dist/web/workflow/utils/rehydration_utils.js +0 -342
- package/dist/web/workflow/utils/retry_utils.js +0 -82
- package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
- package/dist/web/workflow/workflow.js +0 -529
- /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
|
@@ -7,6 +7,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
7
7
|
* Copyright 2025 Google LLC
|
|
8
8
|
* SPDX-License-Identifier: Apache-2.0
|
|
9
9
|
*/
|
|
10
|
+
var _a, _b;
|
|
10
11
|
import { createUserContent } from "@google/genai";
|
|
11
12
|
import { isEmpty } from "lodash-es";
|
|
12
13
|
import {
|
|
@@ -15,7 +16,11 @@ import {
|
|
|
15
16
|
getFunctionCalls,
|
|
16
17
|
getFunctionResponses
|
|
17
18
|
} from "../events/event.js";
|
|
18
|
-
import {
|
|
19
|
+
import {
|
|
20
|
+
isDefaultEventActions,
|
|
21
|
+
mergeEventActions
|
|
22
|
+
} from "../events/event_actions.js";
|
|
23
|
+
import { BaseTool } from "../tools/base_tool.js";
|
|
19
24
|
import { logger } from "../utils/logger.js";
|
|
20
25
|
import { Context } from "./context.js";
|
|
21
26
|
import {
|
|
@@ -28,8 +33,8 @@ import {
|
|
|
28
33
|
traceToolCall
|
|
29
34
|
} from "../telemetry/tracing.js";
|
|
30
35
|
function toolEventAuthor(invocationContext) {
|
|
31
|
-
var
|
|
32
|
-
return (
|
|
36
|
+
var _a2, _b2;
|
|
37
|
+
return (_b2 = (_a2 = invocationContext.agent) == null ? void 0 : _a2.name) != null ? _b2 : "";
|
|
33
38
|
}
|
|
34
39
|
__name(toolEventAuthor, "toolEventAuthor");
|
|
35
40
|
import {
|
|
@@ -59,8 +64,8 @@ function getLongRunningFunctionCalls(functionCalls, toolsDict) {
|
|
|
59
64
|
}
|
|
60
65
|
__name(getLongRunningFunctionCalls, "getLongRunningFunctionCalls");
|
|
61
66
|
function generateAuthEvent(invocationContext, functionResponseEvent) {
|
|
62
|
-
var
|
|
63
|
-
if (!((
|
|
67
|
+
var _a2, _b2, _c;
|
|
68
|
+
if (!((_a2 = functionResponseEvent.actions) == null ? void 0 : _a2.requestedAuthConfigs) || isEmpty(functionResponseEvent.actions.requestedAuthConfigs)) {
|
|
64
69
|
return void 0;
|
|
65
70
|
}
|
|
66
71
|
const parts = [];
|
|
@@ -85,7 +90,7 @@ function generateAuthEvent(invocationContext, functionResponseEvent) {
|
|
|
85
90
|
branch: invocationContext.branch,
|
|
86
91
|
content: {
|
|
87
92
|
parts,
|
|
88
|
-
role: functionResponseEvent.content.role
|
|
93
|
+
role: (_c = (_b2 = functionResponseEvent.content) == null ? void 0 : _b2.role) != null ? _c : "user"
|
|
89
94
|
},
|
|
90
95
|
longRunningToolIds: Array.from(longRunningToolIds)
|
|
91
96
|
});
|
|
@@ -96,8 +101,8 @@ function generateRequestConfirmationEvent({
|
|
|
96
101
|
functionCallEvent,
|
|
97
102
|
functionResponseEvent
|
|
98
103
|
}) {
|
|
99
|
-
var
|
|
100
|
-
if (!((
|
|
104
|
+
var _a2, _b2, _c, _d;
|
|
105
|
+
if (!((_a2 = functionResponseEvent.actions) == null ? void 0 : _a2.requestedToolConfirmations) || isEmpty(functionResponseEvent.actions.requestedToolConfirmations)) {
|
|
101
106
|
return;
|
|
102
107
|
}
|
|
103
108
|
const parts = [];
|
|
@@ -106,7 +111,7 @@ function generateRequestConfirmationEvent({
|
|
|
106
111
|
for (const [functionCallId, toolConfirmation] of Object.entries(
|
|
107
112
|
functionResponseEvent.actions.requestedToolConfirmations
|
|
108
113
|
)) {
|
|
109
|
-
const originalFunctionCall = (
|
|
114
|
+
const originalFunctionCall = (_b2 = functionCalls.find((call) => call.id === functionCallId)) != null ? _b2 : void 0;
|
|
110
115
|
if (!originalFunctionCall) {
|
|
111
116
|
continue;
|
|
112
117
|
}
|
|
@@ -127,7 +132,7 @@ function generateRequestConfirmationEvent({
|
|
|
127
132
|
branch: invocationContext.branch,
|
|
128
133
|
content: {
|
|
129
134
|
parts,
|
|
130
|
-
role: functionResponseEvent.content.role
|
|
135
|
+
role: (_d = (_c = functionResponseEvent.content) == null ? void 0 : _c.role) != null ? _d : "user"
|
|
131
136
|
},
|
|
132
137
|
actions: functionResponseEvent.actions,
|
|
133
138
|
longRunningToolIds: Array.from(longRunningToolIds)
|
|
@@ -192,7 +197,8 @@ async function handleFunctionCallsAsync({
|
|
|
192
197
|
beforeToolCallbacks,
|
|
193
198
|
afterToolCallbacks,
|
|
194
199
|
filters,
|
|
195
|
-
toolConfirmationDict
|
|
200
|
+
toolConfirmationDict,
|
|
201
|
+
resumeInputsDict
|
|
196
202
|
}) {
|
|
197
203
|
const functionCalls = getFunctionCalls(functionCallEvent);
|
|
198
204
|
return await handleFunctionCallList({
|
|
@@ -202,7 +208,8 @@ async function handleFunctionCallsAsync({
|
|
|
202
208
|
beforeToolCallbacks,
|
|
203
209
|
afterToolCallbacks,
|
|
204
210
|
filters,
|
|
205
|
-
toolConfirmationDict
|
|
211
|
+
toolConfirmationDict,
|
|
212
|
+
resumeInputsDict
|
|
206
213
|
});
|
|
207
214
|
}
|
|
208
215
|
__name(handleFunctionCallsAsync, "handleFunctionCallsAsync");
|
|
@@ -219,6 +226,70 @@ function normalizeCallbackResponse(response) {
|
|
|
219
226
|
return response;
|
|
220
227
|
}
|
|
221
228
|
__name(normalizeCallbackResponse, "normalizeCallbackResponse");
|
|
229
|
+
const RESOLUTION_FAILURE_CAUSES = `Possible causes:
|
|
230
|
+
1. The model hallucinated the name.
|
|
231
|
+
2. The tool is not registered on this agent, or a plugin filtered it out of this request.
|
|
232
|
+
3. The name does not match the registered tool's name exactly.
|
|
233
|
+
4. The tool is registered but never enters the toolsDict, because its \`_getDeclaration()\` returns undefined (as prompt-injecting tools like \`ExampleTool\` and \`PreloadMemoryTool\` do).`;
|
|
234
|
+
const TOOL_NOT_FOUND_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.toolNotFound");
|
|
235
|
+
function isToolNotFound(tool) {
|
|
236
|
+
return typeof tool === "object" && tool !== null && tool[TOOL_NOT_FOUND_SYMBOL] === true;
|
|
237
|
+
}
|
|
238
|
+
__name(isToolNotFound, "isToolNotFound");
|
|
239
|
+
const _ToolNotFoundPlaceholder = class _ToolNotFoundPlaceholder extends (_b = BaseTool, _a = TOOL_NOT_FOUND_SYMBOL, _b) {
|
|
240
|
+
constructor(name, resolutionError) {
|
|
241
|
+
super({ name, description: "Tool not found" });
|
|
242
|
+
this.resolutionError = resolutionError;
|
|
243
|
+
this[_a] = true;
|
|
244
|
+
}
|
|
245
|
+
async runAsync() {
|
|
246
|
+
throw this.resolutionError;
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
__name(_ToolNotFoundPlaceholder, "ToolNotFoundPlaceholder");
|
|
250
|
+
let ToolNotFoundPlaceholder = _ToolNotFoundPlaceholder;
|
|
251
|
+
async function answerUnresolvableCall({
|
|
252
|
+
invocationContext,
|
|
253
|
+
functionCall,
|
|
254
|
+
toolsDict,
|
|
255
|
+
toolContext
|
|
256
|
+
}) {
|
|
257
|
+
return tracer.startActiveSpan(
|
|
258
|
+
`execute_tool ${functionCall.name || "<unnamed>"}`,
|
|
259
|
+
async (span) => {
|
|
260
|
+
var _a2, _b2;
|
|
261
|
+
try {
|
|
262
|
+
const toolName = functionCall.name || "<unnamed>";
|
|
263
|
+
const error = new Error(
|
|
264
|
+
`Function ${toolName} is not found in the toolsDict.`
|
|
265
|
+
);
|
|
266
|
+
const tool = new ToolNotFoundPlaceholder(toolName, error);
|
|
267
|
+
const onToolErrorResponse = await invocationContext.pluginManager.runOnToolErrorCallback({
|
|
268
|
+
tool,
|
|
269
|
+
toolArgs: (_a2 = functionCall.args) != null ? _a2 : {},
|
|
270
|
+
toolContext,
|
|
271
|
+
error
|
|
272
|
+
});
|
|
273
|
+
if (onToolErrorResponse == null) {
|
|
274
|
+
const callableTools = Object.keys(toolsDict);
|
|
275
|
+
logger.warn(
|
|
276
|
+
`Could not resolve tool '${toolName}' for function call '${(_b2 = functionCall.id) != null ? _b2 : ""}'. Callable tools: ${callableTools.length ? callableTools.join(", ") : "(none)"}.
|
|
277
|
+
` + RESOLUTION_FAILURE_CAUSES
|
|
278
|
+
);
|
|
279
|
+
}
|
|
280
|
+
return buildResponseEvent(
|
|
281
|
+
tool,
|
|
282
|
+
onToolErrorResponse != null ? onToolErrorResponse : { error: error.message },
|
|
283
|
+
toolContext,
|
|
284
|
+
invocationContext
|
|
285
|
+
);
|
|
286
|
+
} finally {
|
|
287
|
+
span.end();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
__name(answerUnresolvableCall, "answerUnresolvableCall");
|
|
222
293
|
async function handleFunctionCallList({
|
|
223
294
|
invocationContext,
|
|
224
295
|
functionCalls,
|
|
@@ -226,9 +297,10 @@ async function handleFunctionCallList({
|
|
|
226
297
|
beforeToolCallbacks,
|
|
227
298
|
afterToolCallbacks,
|
|
228
299
|
filters,
|
|
229
|
-
toolConfirmationDict
|
|
300
|
+
toolConfirmationDict,
|
|
301
|
+
resumeInputsDict
|
|
230
302
|
}) {
|
|
231
|
-
var
|
|
303
|
+
var _a2;
|
|
232
304
|
const functionResponseEvents = [];
|
|
233
305
|
const filteredFunctionCalls = functionCalls.filter((functionCall) => {
|
|
234
306
|
return !filters || functionCall.id && filters.has(functionCall.id);
|
|
@@ -238,14 +310,30 @@ async function handleFunctionCallList({
|
|
|
238
310
|
if (toolConfirmationDict && functionCall.id) {
|
|
239
311
|
toolConfirmation = toolConfirmationDict[functionCall.id];
|
|
240
312
|
}
|
|
241
|
-
|
|
313
|
+
let resumeInputs = void 0;
|
|
314
|
+
if (resumeInputsDict && functionCall.id) {
|
|
315
|
+
resumeInputs = resumeInputsDict[functionCall.id];
|
|
316
|
+
}
|
|
317
|
+
const toolContext = new Context({
|
|
242
318
|
invocationContext,
|
|
243
|
-
functionCall,
|
|
244
|
-
|
|
245
|
-
|
|
319
|
+
functionCallId: functionCall.id || void 0,
|
|
320
|
+
toolConfirmation,
|
|
321
|
+
resumeInputs
|
|
246
322
|
});
|
|
323
|
+
const tool = functionCall.name && Object.hasOwn(toolsDict, functionCall.name) ? toolsDict[functionCall.name] : void 0;
|
|
324
|
+
if (!tool) {
|
|
325
|
+
functionResponseEvents.push(
|
|
326
|
+
await answerUnresolvableCall({
|
|
327
|
+
invocationContext,
|
|
328
|
+
functionCall,
|
|
329
|
+
toolsDict,
|
|
330
|
+
toolContext
|
|
331
|
+
})
|
|
332
|
+
);
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
247
335
|
logger.debug(`execute_tool ${tool.name}`);
|
|
248
|
-
const functionArgs = (
|
|
336
|
+
const functionArgs = (_a2 = functionCall.args) != null ? _a2 : {};
|
|
249
337
|
let functionResponse = null;
|
|
250
338
|
let functionResponseError;
|
|
251
339
|
functionResponse = await invocationContext.pluginManager.runBeforeToolCallback({
|
|
@@ -310,6 +398,16 @@ async function handleFunctionCallList({
|
|
|
310
398
|
functionResponse = normalizeCallbackResponse(alteredFunctionResponse);
|
|
311
399
|
}
|
|
312
400
|
if (tool.isLongRunning && functionResponse == null) {
|
|
401
|
+
if (!isDefaultEventActions(toolContext.actions)) {
|
|
402
|
+
functionResponseEvents.push(
|
|
403
|
+
createEvent({
|
|
404
|
+
invocationId: invocationContext.invocationId,
|
|
405
|
+
author: toolEventAuthor(invocationContext),
|
|
406
|
+
actions: toolContext.actions,
|
|
407
|
+
branch: invocationContext.branch
|
|
408
|
+
})
|
|
409
|
+
);
|
|
410
|
+
}
|
|
313
411
|
continue;
|
|
314
412
|
}
|
|
315
413
|
if (functionResponseError) {
|
|
@@ -365,26 +463,6 @@ async function handleFunctionCallList({
|
|
|
365
463
|
return mergedEvent;
|
|
366
464
|
}
|
|
367
465
|
__name(handleFunctionCallList, "handleFunctionCallList");
|
|
368
|
-
function getToolAndContext({
|
|
369
|
-
invocationContext,
|
|
370
|
-
functionCall,
|
|
371
|
-
toolsDict,
|
|
372
|
-
toolConfirmation
|
|
373
|
-
}) {
|
|
374
|
-
if (!functionCall.name || !(functionCall.name in toolsDict)) {
|
|
375
|
-
throw new Error(
|
|
376
|
-
`Function ${functionCall.name} is not found in the toolsDict.`
|
|
377
|
-
);
|
|
378
|
-
}
|
|
379
|
-
const toolContext = new Context({
|
|
380
|
-
invocationContext,
|
|
381
|
-
functionCallId: functionCall.id || void 0,
|
|
382
|
-
toolConfirmation
|
|
383
|
-
});
|
|
384
|
-
const tool = toolsDict[functionCall.name];
|
|
385
|
-
return { tool, toolContext };
|
|
386
|
-
}
|
|
387
|
-
__name(getToolAndContext, "getToolAndContext");
|
|
388
466
|
function mergeParallelFunctionResponseEvents(functionResponseEvents) {
|
|
389
467
|
if (!functionResponseEvents.length) {
|
|
390
468
|
throw new Error("No function response events provided.");
|
|
@@ -426,22 +504,46 @@ function findEventByFunctionCallId(events, functionCallId, endIndex = events.len
|
|
|
426
504
|
return void 0;
|
|
427
505
|
}
|
|
428
506
|
__name(findEventByFunctionCallId, "findEventByFunctionCallId");
|
|
429
|
-
function
|
|
507
|
+
function resolveFunctionResponseMatch(events) {
|
|
508
|
+
var _a2, _b2;
|
|
430
509
|
if (!events.length) {
|
|
431
|
-
return void 0;
|
|
510
|
+
return { resolved: void 0, conflictingAuthors: void 0 };
|
|
432
511
|
}
|
|
433
512
|
const lastEvent = events[events.length - 1];
|
|
434
513
|
const functionResponses = getFunctionResponses(lastEvent);
|
|
435
|
-
if (!functionResponses.length
|
|
436
|
-
return void 0;
|
|
514
|
+
if (!functionResponses.length) {
|
|
515
|
+
return { resolved: void 0, conflictingAuthors: void 0 };
|
|
437
516
|
}
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
517
|
+
let resolved;
|
|
518
|
+
let conflictingAuthors;
|
|
519
|
+
for (const functionResponse of functionResponses) {
|
|
520
|
+
if (!functionResponse.id) {
|
|
521
|
+
continue;
|
|
522
|
+
}
|
|
523
|
+
const match = findEventByFunctionCallId(
|
|
524
|
+
events,
|
|
525
|
+
functionResponse.id,
|
|
526
|
+
events.length - 1
|
|
527
|
+
);
|
|
528
|
+
if (!match) {
|
|
529
|
+
continue;
|
|
530
|
+
}
|
|
531
|
+
if (!conflictingAuthors && resolved && resolved.author !== match.author) {
|
|
532
|
+
conflictingAuthors = [(_a2 = resolved.author) != null ? _a2 : "", (_b2 = match.author) != null ? _b2 : ""];
|
|
533
|
+
}
|
|
534
|
+
resolved = match;
|
|
535
|
+
}
|
|
536
|
+
return { resolved, conflictingAuthors };
|
|
537
|
+
}
|
|
538
|
+
__name(resolveFunctionResponseMatch, "resolveFunctionResponseMatch");
|
|
539
|
+
function findMatchingFunctionCall(events) {
|
|
540
|
+
return resolveFunctionResponseMatch(events).resolved;
|
|
443
541
|
}
|
|
444
542
|
__name(findMatchingFunctionCall, "findMatchingFunctionCall");
|
|
543
|
+
function getConflictingFunctionResponseAuthors(events) {
|
|
544
|
+
return resolveFunctionResponseMatch(events).conflictingAuthors;
|
|
545
|
+
}
|
|
546
|
+
__name(getConflictingFunctionResponseAuthors, "getConflictingFunctionResponseAuthors");
|
|
445
547
|
export {
|
|
446
548
|
AF_FUNCTION_CALL_ID_PREFIX,
|
|
447
549
|
REQUEST_CONFIRMATION_FUNCTION_CALL_NAME2 as REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
|
|
@@ -453,9 +555,11 @@ export {
|
|
|
453
555
|
generateAuthEvent,
|
|
454
556
|
generateClientFunctionCallId2 as generateClientFunctionCallId,
|
|
455
557
|
generateRequestConfirmationEvent,
|
|
558
|
+
getConflictingFunctionResponseAuthors,
|
|
456
559
|
getLongRunningFunctionCalls,
|
|
457
560
|
handleFunctionCallList,
|
|
458
561
|
handleFunctionCallsAsync,
|
|
562
|
+
isToolNotFound,
|
|
459
563
|
mergeParallelFunctionResponseEvents,
|
|
460
564
|
populateClientFunctionCallId,
|
|
461
565
|
reservedFunctionCallName
|
|
@@ -52,6 +52,7 @@ const _InvocationContext = class _InvocationContext {
|
|
|
52
52
|
this.workflowInstructionScope = params.workflowInstructionScope;
|
|
53
53
|
this.isolationScope = params.isolationScope;
|
|
54
54
|
this.nodeToolDepth = (_a = params.nodeToolDepth) != null ? _a : 0;
|
|
55
|
+
this.a2aMetadata = params.a2aMetadata;
|
|
55
56
|
this.invocationCostManager = (_b = params.invocationCostManager) != null ? _b : new InvocationCostManager();
|
|
56
57
|
this.liveRequestQueue = params.liveRequestQueue;
|
|
57
58
|
this.liveSessionResumptionHandle = params.liveSessionResumptionHandle;
|
|
@@ -23,8 +23,10 @@ import {
|
|
|
23
23
|
isFinalResponse,
|
|
24
24
|
populateClientFunctionCallId
|
|
25
25
|
} from "../events/event.js";
|
|
26
|
+
import { isDefaultEventActions } from "../events/event_actions.js";
|
|
26
27
|
import { isBaseLlm } from "../models/base_llm.js";
|
|
27
28
|
import { LLMRegistry } from "../models/registry.js";
|
|
29
|
+
import { isBuiltInPlanner } from "../planners/built_in_planner.js";
|
|
28
30
|
import { isBaseTool } from "../tools/base_tool.js";
|
|
29
31
|
import { logger } from "../utils/logger.js";
|
|
30
32
|
import { canUseOutputSchemaWithTools } from "../utils/output_schema_utils.js";
|
|
@@ -53,6 +55,10 @@ import { ContextCompactorRequestProcessor } from "./processors/context_compactor
|
|
|
53
55
|
import { IDENTITY_LLM_REQUEST_PROCESSOR } from "./processors/identity_llm_request_processor.js";
|
|
54
56
|
import { INSTRUCTIONS_LLM_REQUEST_PROCESSOR } from "./processors/instructions_llm_request_processor.js";
|
|
55
57
|
import { INTERACTIONS_REQUEST_PROCESSOR } from "./processors/interactions_request_processor.js";
|
|
58
|
+
import {
|
|
59
|
+
NL_PLANNING_REQUEST_PROCESSOR,
|
|
60
|
+
NL_PLANNING_RESPONSE_PROCESSOR
|
|
61
|
+
} from "./processors/nl_planning_processor.js";
|
|
56
62
|
import { REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR } from "./processors/request_confirmation_llm_request_processor.js";
|
|
57
63
|
import { REQUEST_INPUT_LLM_REQUEST_PROCESSOR } from "./processors/request_input_llm_request_processor.js";
|
|
58
64
|
import { TOOL_FILTER_REQUEST_PROCESSOR } from "./processors/tool_filter_request_processor.js";
|
|
@@ -119,7 +125,7 @@ async function convertToolUnionToTools(toolUnion, context2) {
|
|
|
119
125
|
return await toolUnion.getTools(context2);
|
|
120
126
|
}
|
|
121
127
|
__name(convertToolUnionToTools, "convertToolUnionToTools");
|
|
122
|
-
const LLM_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.llmAgent");
|
|
128
|
+
const LLM_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.llmAgent");
|
|
123
129
|
function isLlmAgent(obj) {
|
|
124
130
|
return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
|
|
125
131
|
}
|
|
@@ -154,6 +160,7 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
|
|
|
154
160
|
this.beforeToolCallback = config.beforeToolCallback;
|
|
155
161
|
this.afterToolCallback = config.afterToolCallback;
|
|
156
162
|
this.codeExecutor = config.codeExecutor;
|
|
163
|
+
this.planner = config.planner;
|
|
157
164
|
this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
|
|
158
165
|
BASIC_LLM_REQUEST_PROCESSOR,
|
|
159
166
|
AUTH_PREPROCESSOR,
|
|
@@ -162,6 +169,10 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
|
|
|
162
169
|
REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
|
|
163
170
|
REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
|
|
164
171
|
CONTENT_REQUEST_PROCESSOR,
|
|
172
|
+
// Planning clears the thought flags that the planning response
|
|
173
|
+
// processor sets, so it must run after the contents are built and
|
|
174
|
+
// before code execution rewrites them.
|
|
175
|
+
NL_PLANNING_REQUEST_PROCESSOR,
|
|
165
176
|
INTERACTIONS_REQUEST_PROCESSOR,
|
|
166
177
|
CODE_EXECUTION_REQUEST_PROCESSOR,
|
|
167
178
|
TOOL_FILTER_REQUEST_PROCESSOR
|
|
@@ -182,7 +193,9 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
|
|
|
182
193
|
);
|
|
183
194
|
}
|
|
184
195
|
}
|
|
185
|
-
this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [
|
|
196
|
+
this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [
|
|
197
|
+
NL_PLANNING_RESPONSE_PROCESSOR
|
|
198
|
+
];
|
|
186
199
|
const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_k = this.subAgents) == null ? void 0 : _k.length);
|
|
187
200
|
if (!agentTransferDisabled) {
|
|
188
201
|
this.requestProcessors.push(AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
|
|
@@ -201,6 +214,11 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
|
|
|
201
214
|
"Response schema must be set via LlmAgent.output_schema."
|
|
202
215
|
);
|
|
203
216
|
}
|
|
217
|
+
if (config.generateContentConfig.thinkingConfig && isBuiltInPlanner(this.planner) && this.planner.thinkingConfig) {
|
|
218
|
+
logger.warn(
|
|
219
|
+
`Agent ${this.name}: both generateContentConfig.thinkingConfig and planner.thinkingConfig are set. The planner's thinkingConfig takes precedence.`
|
|
220
|
+
);
|
|
221
|
+
}
|
|
204
222
|
} else {
|
|
205
223
|
this.generateContentConfig = {};
|
|
206
224
|
}
|
|
@@ -453,7 +471,7 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
|
|
|
453
471
|
if (!lastEvent) {
|
|
454
472
|
break;
|
|
455
473
|
}
|
|
456
|
-
const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0);
|
|
474
|
+
const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0) && isDefaultEventActions(lastEvent.actions);
|
|
457
475
|
if (isFinalResponse(lastEvent) && !(isEmptyMetadataEvent && stepHadToolCalls)) {
|
|
458
476
|
break;
|
|
459
477
|
}
|
|
@@ -1228,9 +1246,9 @@ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNAT
|
|
|
1228
1246
|
// --------------------------------------------------------------------------
|
|
1229
1247
|
// #END LlmFlow Logic
|
|
1230
1248
|
// --------------------------------------------------------------------------
|
|
1231
|
-
// TODO - b/425992518:
|
|
1232
|
-
// -
|
|
1233
|
-
// -
|
|
1249
|
+
// TODO - b/425992518: LlmAgent features not implemented yet.
|
|
1250
|
+
// - codeExecutor
|
|
1251
|
+
// - configuring agents from a YAML file
|
|
1234
1252
|
};
|
|
1235
1253
|
__name(_LlmAgent, "LlmAgent");
|
|
1236
1254
|
let LlmAgent = _LlmAgent;
|
|
@@ -19,7 +19,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
19
19
|
var _a, _b;
|
|
20
20
|
import { deprecated } from "../utils/deprecated.js";
|
|
21
21
|
import { BaseAgent } from "./base_agent.js";
|
|
22
|
-
const LOOP_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.loopAgent");
|
|
22
|
+
const LOOP_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.loopAgent");
|
|
23
23
|
function isLoopAgent(obj) {
|
|
24
24
|
return typeof obj === "object" && obj !== null && LOOP_AGENT_SIGNATURE_SYMBOL in obj && obj[LOOP_AGENT_SIGNATURE_SYMBOL] === true;
|
|
25
25
|
}
|
|
@@ -20,7 +20,7 @@ var _a, _b;
|
|
|
20
20
|
import { deprecated } from "../utils/deprecated.js";
|
|
21
21
|
import { BaseAgent } from "./base_agent.js";
|
|
22
22
|
import { InvocationContext } from "./invocation_context.js";
|
|
23
|
-
const PARALLEL_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.parallelAgent");
|
|
23
|
+
const PARALLEL_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.parallelAgent");
|
|
24
24
|
function isParallelAgent(obj) {
|
|
25
25
|
return typeof obj === "object" && obj !== null && PARALLEL_AGENT_SIGNATURE_SYMBOL in obj && obj[PARALLEL_AGENT_SIGNATURE_SYMBOL] === true;
|
|
26
26
|
}
|
|
@@ -17,17 +17,34 @@ const _AgentTransferLlmRequestProcessor = class _AgentTransferLlmRequestProcesso
|
|
|
17
17
|
constructor() {
|
|
18
18
|
super(...arguments);
|
|
19
19
|
this.toolName = "transfer_to_agent";
|
|
20
|
-
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Builds the `transfer_to_agent` tool for one invocation.
|
|
23
|
+
*
|
|
24
|
+
* Built per call rather than shared, because the parameter is an enum of the
|
|
25
|
+
* agents actually reachable from here. That mirrors adk-python's
|
|
26
|
+
* `TransferToAgentTool`, and it stops the model inventing a target: an
|
|
27
|
+
* unknown name now fails argument validation and comes back to the model as
|
|
28
|
+
* a tool error it can retry, instead of silently setting `transferToAgent`
|
|
29
|
+
* to an agent that does not exist.
|
|
30
|
+
*
|
|
31
|
+
* The parameter is `agent_name`, not `agentName`. It is wire format — it
|
|
32
|
+
* appears in the declaration sent to the model and in the events that get
|
|
33
|
+
* persisted — and adk-python spells it `agent_name`, so a transcript
|
|
34
|
+
* produced by one runtime has to be readable by the other.
|
|
35
|
+
*/
|
|
36
|
+
buildTool(targetNames) {
|
|
37
|
+
return new FunctionTool({
|
|
21
38
|
name: this.toolName,
|
|
22
39
|
description: "Transfer the question to another agent. This tool hands off control to another agent when it is more suitable to answer the user question according to the agent description.",
|
|
23
40
|
parameters: z.object({
|
|
24
|
-
|
|
41
|
+
agent_name: z.enum(targetNames).describe("the agent name to transfer to.")
|
|
25
42
|
}),
|
|
26
|
-
execute: /* @__PURE__ */ __name(
|
|
43
|
+
execute: /* @__PURE__ */ __name((args, toolContext) => {
|
|
27
44
|
if (!toolContext) {
|
|
28
45
|
throw new Error("toolContext is required.");
|
|
29
46
|
}
|
|
30
|
-
toolContext.actions.transferToAgent = args.
|
|
47
|
+
toolContext.actions.transferToAgent = args.agent_name;
|
|
31
48
|
return "Transfer queued";
|
|
32
49
|
}, "execute")
|
|
33
50
|
});
|
|
@@ -55,7 +72,11 @@ const _AgentTransferLlmRequestProcessor = class _AgentTransferLlmRequestProcesso
|
|
|
55
72
|
)
|
|
56
73
|
]);
|
|
57
74
|
const toolContext = new Context({ invocationContext });
|
|
58
|
-
|
|
75
|
+
const targetNames = transferTargets.map((t) => t.name);
|
|
76
|
+
await this.buildTool(targetNames).processLlmRequest({
|
|
77
|
+
toolContext,
|
|
78
|
+
llmRequest
|
|
79
|
+
});
|
|
59
80
|
}
|
|
60
81
|
buildTargetAgentsInfo(targetAgent) {
|
|
61
82
|
return `
|
|
@@ -42,10 +42,10 @@ const _CodeExecutionRequestProcessor = class _CodeExecutionRequestProcessor exte
|
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
44
|
for (const content of llmRequest.contents) {
|
|
45
|
-
const
|
|
45
|
+
const delimiters = invocationContext.agent.codeExecutor.codeBlockDelimiters.length ? invocationContext.agent.codeExecutor.codeBlockDelimiters[0] : ["", ""];
|
|
46
46
|
convertCodeExecutionParts(
|
|
47
47
|
content,
|
|
48
|
-
|
|
48
|
+
delimiters,
|
|
49
49
|
invocationContext.agent.codeExecutor.executionResultDelimiters
|
|
50
50
|
);
|
|
51
51
|
}
|
|
@@ -18,12 +18,14 @@ import {
|
|
|
18
18
|
getFunctionResponses
|
|
19
19
|
} from "../../events/event.js";
|
|
20
20
|
import { isSegmentPrefix } from "../../utils/branch_trie.js";
|
|
21
|
+
import { isEventVisibleInIsolationScope } from "../../context/compaction_utils.js";
|
|
21
22
|
import {
|
|
22
23
|
AF_FUNCTION_CALL_ID_PREFIX,
|
|
23
24
|
REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
|
|
24
25
|
REQUEST_CREDENTIAL_FUNCTION_CALL_NAME,
|
|
25
26
|
REQUEST_INPUT_FUNCTION_CALL_NAME
|
|
26
27
|
} from "../functions.js";
|
|
28
|
+
const UNSTRINGIFIABLE_VALUE = "<unstringifiable value>";
|
|
27
29
|
function removeClientFunctionCallId(content) {
|
|
28
30
|
var _a, _b, _c, _d, _e;
|
|
29
31
|
for (const part of (_a = content == null ? void 0 : content.parts) != null ? _a : []) {
|
|
@@ -39,6 +41,9 @@ __name(removeClientFunctionCallId, "removeClientFunctionCallId");
|
|
|
39
41
|
function getContents(events, agentName, currentBranch, currentIsolationScope) {
|
|
40
42
|
const filteredEvents = [];
|
|
41
43
|
for (const event of events) {
|
|
44
|
+
if (!isEventVisibleInIsolationScope(event, currentIsolationScope)) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
42
47
|
if (isCompactedEvent(event)) {
|
|
43
48
|
filteredEvents.push(convertCompactedEvent(event));
|
|
44
49
|
continue;
|
|
@@ -69,7 +74,7 @@ function shouldIncludeEventInContext(event, currentBranch, currentIsolationScope
|
|
|
69
74
|
if (currentBranch && event.branch && !isSegmentPrefix(currentBranch, event.branch)) {
|
|
70
75
|
return false;
|
|
71
76
|
}
|
|
72
|
-
if (
|
|
77
|
+
if (!isEventVisibleInIsolationScope(event, currentIsolationScope)) {
|
|
73
78
|
return false;
|
|
74
79
|
}
|
|
75
80
|
return !isAuthEvent(event) && !isToolConfirmationEvent(event) && !isRequestInputEvent(event);
|
|
@@ -134,10 +139,6 @@ function turnStart(events, anchor) {
|
|
|
134
139
|
return start;
|
|
135
140
|
}
|
|
136
141
|
__name(turnStart, "turnStart");
|
|
137
|
-
function isOutsideIsolationScope(event, currentIsolationScope) {
|
|
138
|
-
return event.isolationScope !== void 0 && event.isolationScope !== currentIsolationScope;
|
|
139
|
-
}
|
|
140
|
-
__name(isOutsideIsolationScope, "isOutsideIsolationScope");
|
|
141
142
|
function isAuthEvent(event) {
|
|
142
143
|
var _a, _b, _c;
|
|
143
144
|
if (!((_a = event.content) == null ? void 0 : _a.parts)) {
|
|
@@ -388,9 +389,16 @@ function safeStringify(obj) {
|
|
|
388
389
|
return obj;
|
|
389
390
|
}
|
|
390
391
|
try {
|
|
391
|
-
|
|
392
|
-
|
|
392
|
+
const json = JSON.stringify(obj);
|
|
393
|
+
if (typeof json === "string") {
|
|
394
|
+
return json;
|
|
395
|
+
}
|
|
396
|
+
} catch {
|
|
397
|
+
}
|
|
398
|
+
try {
|
|
393
399
|
return String(obj);
|
|
400
|
+
} catch {
|
|
401
|
+
return UNSTRINGIFIABLE_VALUE;
|
|
394
402
|
}
|
|
395
403
|
}
|
|
396
404
|
__name(safeStringify, "safeStringify");
|
|
@@ -27,7 +27,10 @@ const _ContentRequestProcessor = class _ContentRequestProcessor {
|
|
|
27
27
|
if (!agent || !isLlmAgent(agent)) {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
|
-
const events = getActiveEvents(
|
|
30
|
+
const events = getActiveEvents(
|
|
31
|
+
invocationContext.session.events,
|
|
32
|
+
invocationContext.isolationScope
|
|
33
|
+
);
|
|
31
34
|
if (agent.includeContents === "default") {
|
|
32
35
|
llmRequest.contents = getContents(
|
|
33
36
|
events,
|