@google/adk 1.6.0 → 2.1.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 +17 -28
- package/dist/cjs/a2a/a2a_remote_agent.js +13 -7
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +111 -2
- package/dist/cjs/a2a/agent_card.js +90 -8
- package/dist/cjs/a2a/agent_executor.js +34 -18
- package/dist/cjs/a2a/agent_to_a2a.js +28 -11
- package/dist/cjs/a2a/auth.js +3 -0
- package/dist/cjs/a2a/event_converter_utils.js +10 -0
- package/dist/cjs/a2a/event_processor_utils.js +71 -35
- package/dist/cjs/a2a/executor_context.js +6 -2
- package/dist/cjs/a2a/index.js +57 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
- package/dist/cjs/a2a/part_converter_utils.js +12 -0
- package/dist/cjs/a2a/request_metadata.js +94 -0
- package/dist/cjs/agents/active_streaming_tool.js +5 -2
- package/dist/cjs/agents/base_agent.js +55 -17
- package/dist/cjs/agents/context.js +12 -2
- package/dist/cjs/agents/framework_function_calls.js +64 -0
- package/dist/cjs/agents/functions.js +185 -60
- package/dist/cjs/agents/instructions.js +51 -12
- package/dist/cjs/agents/invocation_context.js +43 -8
- package/dist/cjs/agents/live_request_queue.js +29 -5
- package/dist/cjs/agents/llm_agent.js +541 -50
- package/dist/cjs/agents/loop_agent.js +20 -3
- package/dist/cjs/agents/parallel_agent.js +22 -3
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +32 -8
- package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +6 -3
- package/dist/cjs/agents/processors/code_execution_request_processor.js +20 -7
- package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
- package/dist/cjs/agents/processors/content_request_processor.js +13 -5
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
- package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -2
- package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
- package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +320 -92
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +214 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
- package/dist/cjs/agents/readonly_context.js +13 -3
- package/dist/cjs/agents/routed_agent.js +7 -14
- package/dist/cjs/agents/run_config.js +12 -0
- package/dist/cjs/agents/sequential_agent.js +21 -4
- package/dist/cjs/agents/user_input_request.js +145 -0
- package/dist/cjs/apps/app.js +12 -12
- package/dist/cjs/apps/resumability_config.js +2 -0
- package/dist/cjs/artifacts/file_artifact_service.js +22 -4
- package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
- package/dist/cjs/artifacts/in_memory_artifact_service.js +9 -2
- package/dist/cjs/artifacts/registry.js +6 -1
- package/dist/cjs/artifacts/scoped_artifact_service.js +14 -2
- package/dist/cjs/artifacts/session_artifact_service.js +19 -0
- package/dist/cjs/auth/auth_handler.js +49 -10
- package/dist/cjs/auth/auth_preprocessor.js +48 -40
- package/dist/cjs/auth/auth_provider_registry.js +5 -2
- package/dist/cjs/auth/auth_schemes.js +2 -0
- package/dist/cjs/auth/credential_response_binding.js +101 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +5 -2
- package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
- package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
- package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
- package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +6 -3
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
- package/dist/cjs/auth/oauth2/oauth2_utils.js +23 -2
- package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
- package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
- package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/cjs/code_executors/base_code_executor.js +7 -3
- package/dist/cjs/code_executors/built_in_code_executor.js +7 -3
- package/dist/cjs/code_executors/code_execution_utils.js +8 -2
- package/dist/cjs/code_executors/code_executor_context.js +5 -2
- 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 +19 -8
- package/dist/cjs/common.js +180 -46
- package/dist/cjs/context/agent_controlled_context_compactor.js +15 -7
- package/dist/cjs/context/anchored_context_compactor.js +46 -20
- package/dist/cjs/context/compaction_utils.js +18 -6
- package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
- package/dist/cjs/context/token_based_context_compactor.js +19 -5
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +22 -12
- package/dist/cjs/context/truncating_context_compactor.js +22 -7
- package/dist/cjs/environment/base_environment.js +97 -0
- package/dist/cjs/environment/local_environment.js +186 -0
- 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/compacted_event.js +4 -0
- package/dist/cjs/events/event.js +38 -3
- package/dist/cjs/events/event_actions.js +12 -0
- package/dist/cjs/events/structured_events.js +2 -0
- package/dist/cjs/examples/base_example_provider.js +7 -3
- package/dist/cjs/examples/example_util.js +3 -0
- package/dist/cjs/features/feature_registry.js +7 -0
- package/dist/cjs/index.js +54 -25
- package/dist/cjs/index_web.js +2 -0
- package/dist/cjs/integrations/agent_registry/agent_registry.js +10 -6
- package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
- package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
- package/dist/cjs/memory/in_memory_memory_service.js +8 -2
- package/dist/cjs/memory/rag_memory_transcript.js +136 -0
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -4
- 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 +10 -4
- package/dist/cjs/models/base_llm.js +8 -4
- package/dist/cjs/models/chrome_prompt_llm.js +304 -0
- package/dist/cjs/models/chrome_prompt_utils.js +229 -0
- package/dist/cjs/models/gemini_llm_connection.js +5 -2
- package/dist/cjs/models/google_llm.js +33 -16
- package/dist/cjs/models/interactions_utils.js +18 -3
- package/dist/cjs/models/llm_request.js +4 -0
- package/dist/cjs/models/llm_response.js +2 -0
- package/dist/cjs/models/registry.js +8 -2
- package/dist/cjs/models/routed_llm.js +4 -13
- package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
- package/dist/cjs/plugins/base_plugin.js +39 -5
- package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
- package/dist/cjs/plugins/logging_plugin.js +13 -8
- package/dist/cjs/plugins/plugin_manager.js +37 -2
- 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/plugins/security_plugin.js +15 -8
- package/dist/cjs/runner/in_memory_runner.js +5 -2
- package/dist/cjs/runner/runner.js +236 -43
- package/dist/cjs/sessions/base_session_service.js +13 -2
- package/dist/cjs/sessions/database_session_service.js +84 -45
- package/dist/cjs/sessions/db/operations.js +259 -24
- package/dist/cjs/sessions/db/schema.js +118 -156
- package/dist/cjs/sessions/in_memory_session_service.js +22 -14
- package/dist/cjs/sessions/registry.js +9 -2
- package/dist/cjs/sessions/session.js +2 -0
- package/dist/cjs/sessions/state.js +80 -8
- package/dist/cjs/sessions/state_write_order.js +105 -0
- package/dist/cjs/sessions/vertex_ai_session_service.js +112 -17
- package/dist/cjs/skills/gcp_skill_registry.js +2 -0
- package/dist/cjs/skills/loader.js +22 -10
- package/dist/cjs/skills/prompt.js +3 -0
- package/dist/cjs/telemetry/google_cloud.js +42 -9
- package/dist/cjs/telemetry/setup.js +6 -1
- package/dist/cjs/telemetry/tracing.js +71 -5
- package/dist/cjs/tools/agent_tool.js +10 -7
- package/dist/cjs/tools/base_tool.js +38 -6
- package/dist/cjs/tools/base_toolset.js +10 -6
- package/dist/cjs/tools/built_in_tool.js +75 -0
- package/dist/cjs/tools/consolidate_context_tool.js +5 -2
- package/dist/cjs/tools/enterprise_web_search_tool.js +8 -7
- package/dist/cjs/tools/example_tool.js +5 -2
- package/dist/cjs/tools/exit_loop_tool.js +5 -2
- package/dist/cjs/tools/finish_task_tool.js +119 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +23 -15
- package/dist/cjs/tools/function_tool.js +79 -11
- package/dist/cjs/tools/get_user_choice_tool.js +3 -2
- package/dist/cjs/tools/google_maps_grounding_tool.js +8 -7
- package/dist/cjs/tools/google_search_tool.js +7 -7
- package/dist/cjs/tools/load_artifacts_tool.js +55 -25
- package/dist/cjs/tools/load_memory_tool.js +5 -2
- package/dist/cjs/tools/load_web_page.js +14 -160
- package/dist/cjs/tools/long_running_tool.js +5 -2
- package/dist/cjs/tools/mcp/index.js +39 -0
- package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +39 -7
- package/dist/cjs/tools/mcp/mcp_session_manager.js +36 -8
- package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
- package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +15 -2
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +3 -1
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +39 -23
- package/dist/cjs/tools/preload_memory_tool.js +6 -3
- package/dist/cjs/tools/request_input_tool.js +6 -4
- 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/list_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
- package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/skill_toolset.js +35 -0
- package/dist/cjs/tools/tool_confirmation.js +26 -3
- package/dist/cjs/tools/url_context_tool.js +7 -7
- package/dist/cjs/tools/vertex_ai_search_tool.js +8 -9
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +7 -11
- package/dist/cjs/utils/async_hooks_shim.js +5 -2
- package/dist/cjs/utils/async_queue.js +45 -18
- package/dist/cjs/utils/branch_trie.js +2 -0
- package/dist/cjs/utils/case_utils.js +2 -0
- package/dist/cjs/utils/client_labels.js +5 -0
- package/dist/cjs/utils/crypto_shim.js +18 -0
- package/dist/cjs/utils/deprecated.js +68 -0
- package/dist/cjs/utils/env_aware_utils.js +41 -0
- package/dist/cjs/utils/error_utils.js +8 -0
- package/dist/cjs/utils/experimental.js +9 -2
- package/dist/cjs/utils/failover_utils.js +3 -0
- package/dist/cjs/utils/file_extension_utils.js +3 -0
- package/dist/cjs/utils/file_utils.js +7 -2
- package/dist/cjs/utils/gemini_schema_util.js +6 -8
- package/dist/cjs/utils/genai_schema_to_json.js +107 -0
- package/dist/cjs/utils/live_connection_utils.js +5 -2
- package/dist/cjs/utils/logger.js +28 -54
- 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 +8 -0
- package/dist/cjs/utils/object_notation_utils.js +7 -3
- package/dist/cjs/utils/optional_peer.js +68 -0
- package/dist/cjs/utils/output_schema_utils.js +2 -0
- package/dist/cjs/utils/partial_copy.js +2 -0
- package/dist/cjs/utils/redact_inline_data.js +46 -0
- package/dist/cjs/utils/redact_uri.js +80 -0
- package/dist/cjs/utils/schema.js +178 -0
- package/dist/cjs/utils/simple_zod_to_json.js +17 -4
- package/dist/cjs/utils/ssrf_guard.js +262 -0
- package/dist/cjs/utils/streaming_utils.js +14 -6
- package/dist/cjs/utils/task.js +7 -4
- package/dist/cjs/utils/variant_utils.js +3 -1
- package/dist/cjs/utils/vertex_ai_utils.js +3 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/base_node.js +211 -0
- package/dist/cjs/workflow/branch_path.js +108 -0
- package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
- package/dist/cjs/workflow/errors.js +178 -0
- package/dist/cjs/workflow/graph.js +158 -0
- package/dist/cjs/workflow/index.js +131 -0
- package/dist/cjs/workflow/node.js +65 -0
- package/dist/cjs/workflow/node_builders.js +68 -0
- package/dist/cjs/workflow/node_context.js +246 -0
- package/dist/cjs/workflow/node_error_event.js +86 -0
- package/dist/cjs/workflow/node_runner.js +459 -0
- package/dist/cjs/workflow/node_state.js +57 -0
- package/dist/cjs/workflow/node_status.js +48 -0
- package/dist/cjs/workflow/nodes/function_node.js +195 -0
- package/dist/cjs/workflow/nodes/join_node.js +56 -0
- package/dist/cjs/workflow/nodes/node_tool.js +147 -0
- package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
- package/dist/cjs/workflow/nodes/tool_node.js +117 -0
- package/dist/cjs/workflow/request_input.js +64 -0
- package/dist/cjs/workflow/retry_config.js +71 -0
- package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
- package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
- package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
- package/dist/cjs/workflow/trigger.js +27 -0
- package/dist/cjs/workflow/utils/graph_parser.js +212 -0
- package/dist/cjs/workflow/utils/graph_validation.js +216 -0
- package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
- package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
- package/dist/cjs/workflow/utils/retry_utils.js +112 -0
- package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
- package/dist/cjs/workflow/workflow.js +509 -0
- package/dist/esm/a2a/a2a_event.js +18 -27
- package/dist/esm/a2a/a2a_remote_agent.js +16 -7
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/esm/a2a/a2a_remote_agent_utils.js +110 -2
- package/dist/esm/a2a/agent_card.js +96 -8
- package/dist/esm/a2a/agent_executor.js +36 -19
- package/dist/esm/a2a/agent_to_a2a.js +52 -17
- package/dist/esm/a2a/auth.js +4 -0
- package/dist/esm/a2a/event_converter_utils.js +11 -0
- package/dist/esm/a2a/event_processor_utils.js +74 -35
- package/dist/esm/a2a/executor_context.js +7 -2
- package/dist/esm/a2a/index.js +26 -0
- package/dist/esm/a2a/metadata_converter_utils.js +6 -0
- package/dist/esm/a2a/part_converter_utils.js +13 -0
- package/dist/esm/a2a/request_metadata.js +68 -0
- package/dist/esm/agents/active_streaming_tool.js +6 -2
- package/dist/esm/agents/base_agent.js +56 -17
- package/dist/esm/agents/context.js +13 -2
- package/dist/esm/agents/framework_function_calls.js +34 -0
- package/dist/esm/agents/functions.js +191 -58
- package/dist/esm/agents/instructions.js +52 -12
- package/dist/esm/agents/invocation_context.js +42 -7
- package/dist/esm/agents/live_request_queue.js +30 -5
- package/dist/esm/agents/llm_agent.js +542 -50
- package/dist/esm/agents/loop_agent.js +22 -3
- package/dist/esm/agents/parallel_agent.js +24 -3
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +33 -8
- package/dist/esm/agents/processors/base_llm_processor.js +10 -4
- package/dist/esm/agents/processors/basic_llm_request_processor.js +7 -3
- package/dist/esm/agents/processors/code_execution_request_processor.js +21 -7
- package/dist/esm/agents/processors/content_processor_utils.js +88 -16
- package/dist/esm/agents/processors/content_request_processor.js +14 -5
- package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
- package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +6 -2
- package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
- package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +325 -93
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +193 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/esm/agents/readonly_context.js +14 -3
- package/dist/esm/agents/routed_agent.js +7 -15
- package/dist/esm/agents/run_config.js +13 -0
- package/dist/esm/agents/sequential_agent.js +23 -4
- package/dist/esm/agents/user_input_request.js +120 -0
- package/dist/esm/apps/app.js +15 -12
- package/dist/esm/apps/resumability_config.js +3 -0
- package/dist/esm/artifacts/file_artifact_service.js +23 -4
- package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
- package/dist/esm/artifacts/in_memory_artifact_service.js +10 -2
- package/dist/esm/artifacts/registry.js +7 -1
- package/dist/esm/artifacts/scoped_artifact_service.js +15 -2
- package/dist/esm/artifacts/session_artifact_service.js +12 -0
- package/dist/esm/auth/auth_handler.js +53 -10
- package/dist/esm/auth/auth_preprocessor.js +50 -41
- package/dist/esm/auth/auth_provider_registry.js +6 -2
- package/dist/esm/auth/auth_schemes.js +3 -0
- package/dist/esm/auth/credential_response_binding.js +74 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +6 -2
- package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
- package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
- package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
- package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
- package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +7 -3
- package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/esm/auth/oauth2/oauth2_utils.js +22 -2
- package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
- package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
- package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/esm/code_executors/base_code_executor.js +8 -3
- package/dist/esm/code_executors/built_in_code_executor.js +8 -3
- package/dist/esm/code_executors/code_execution_utils.js +9 -2
- package/dist/esm/code_executors/code_executor_context.js +6 -2
- 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 +20 -8
- package/dist/esm/common.js +181 -41
- package/dist/esm/context/agent_controlled_context_compactor.js +16 -7
- package/dist/esm/context/anchored_context_compactor.js +51 -21
- package/dist/esm/context/compaction_utils.js +17 -5
- package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
- package/dist/esm/context/token_based_context_compactor.js +20 -5
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +23 -12
- package/dist/esm/context/truncating_context_compactor.js +23 -7
- package/dist/esm/environment/base_environment.js +71 -0
- package/dist/esm/environment/local_environment.js +150 -0
- package/dist/esm/errors/already_exists_error.js +23 -0
- package/dist/esm/errors/input_validation_error.js +23 -0
- package/dist/esm/errors/not_found_error.js +23 -0
- 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/compacted_event.js +5 -0
- package/dist/esm/events/event.js +38 -3
- package/dist/esm/events/event_actions.js +12 -0
- package/dist/esm/events/structured_events.js +3 -0
- package/dist/esm/examples/base_example_provider.js +8 -3
- package/dist/esm/examples/example_util.js +4 -0
- package/dist/esm/features/feature_registry.js +8 -0
- package/dist/esm/index.js +41 -15
- package/dist/esm/index_web.js +2 -0
- package/dist/esm/integrations/agent_registry/agent_registry.js +11 -6
- package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
- package/dist/esm/integrations/agent_registry/helpers.js +4 -0
- package/dist/esm/memory/in_memory_memory_service.js +9 -2
- package/dist/esm/memory/rag_memory_transcript.js +106 -0
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +20 -4
- 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 +11 -4
- package/dist/esm/models/base_llm.js +9 -4
- package/dist/esm/models/chrome_prompt_llm.js +285 -0
- package/dist/esm/models/chrome_prompt_utils.js +192 -0
- package/dist/esm/models/gemini_llm_connection.js +6 -2
- package/dist/esm/models/google_llm.js +35 -17
- package/dist/esm/models/interactions_utils.js +19 -3
- package/dist/esm/models/llm_request.js +5 -0
- package/dist/esm/models/llm_response.js +3 -0
- package/dist/esm/models/registry.js +9 -2
- package/dist/esm/models/routed_llm.js +4 -14
- package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
- package/dist/esm/plugins/base_plugin.js +39 -5
- package/dist/esm/plugins/global_instruction_plugin.js +6 -2
- package/dist/esm/plugins/logging_plugin.js +14 -8
- package/dist/esm/plugins/plugin_manager.js +38 -2
- 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/plugins/security_plugin.js +14 -6
- package/dist/esm/runner/in_memory_runner.js +6 -2
- package/dist/esm/runner/runner.js +249 -46
- package/dist/esm/sessions/base_session_service.js +14 -2
- package/dist/esm/sessions/database_session_service.js +65 -27
- package/dist/esm/sessions/db/operations.js +259 -24
- package/dist/esm/sessions/db/schema.js +116 -157
- package/dist/esm/sessions/in_memory_session_service.js +23 -14
- package/dist/esm/sessions/registry.js +10 -2
- package/dist/esm/sessions/session.js +3 -0
- package/dist/esm/sessions/state.js +78 -7
- package/dist/esm/sessions/state_write_order.js +74 -0
- package/dist/esm/sessions/vertex_ai_session_service.js +111 -16
- package/dist/esm/skills/gcp_skill_registry.js +2 -0
- package/dist/esm/skills/loader.js +23 -10
- package/dist/esm/skills/prompt.js +4 -0
- package/dist/esm/telemetry/google_cloud.js +54 -9
- package/dist/esm/telemetry/setup.js +7 -1
- package/dist/esm/telemetry/tracing.js +70 -5
- package/dist/esm/tools/agent_tool.js +11 -7
- package/dist/esm/tools/base_tool.js +36 -5
- package/dist/esm/tools/base_toolset.js +11 -6
- package/dist/esm/tools/built_in_tool.js +51 -0
- package/dist/esm/tools/consolidate_context_tool.js +6 -2
- package/dist/esm/tools/enterprise_web_search_tool.js +9 -7
- package/dist/esm/tools/example_tool.js +6 -2
- package/dist/esm/tools/exit_loop_tool.js +6 -2
- package/dist/esm/tools/finish_task_tool.js +92 -0
- package/dist/esm/tools/forwarding_artifact_service.js +24 -15
- package/dist/esm/tools/function_tool.js +80 -11
- package/dist/esm/tools/get_user_choice_tool.js +4 -2
- package/dist/esm/tools/google_maps_grounding_tool.js +9 -7
- package/dist/esm/tools/google_search_tool.js +8 -7
- package/dist/esm/tools/load_artifacts_tool.js +57 -26
- package/dist/esm/tools/load_memory_tool.js +6 -2
- package/dist/esm/tools/load_web_page.js +19 -158
- package/dist/esm/tools/long_running_tool.js +6 -2
- package/dist/{web/context/summarizers/base_summarizer.js → esm/tools/mcp/index.js} +4 -0
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +40 -7
- package/dist/esm/tools/mcp/mcp_session_manager.js +45 -9
- package/dist/esm/tools/mcp/mcp_tool.js +6 -2
- package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +18 -2
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +3 -1
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +39 -23
- package/dist/esm/tools/preload_memory_tool.js +7 -3
- package/dist/esm/tools/request_input_tool.js +7 -4
- 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/list_skills_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_tool.js +4 -1
- package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/esm/tools/skill/search_skills_tool.js +2 -0
- package/dist/esm/tools/skill/skill_toolset.js +25 -0
- package/dist/esm/tools/tool_confirmation.js +24 -2
- package/dist/esm/tools/url_context_tool.js +8 -7
- package/dist/esm/tools/vertex_ai_search_tool.js +9 -9
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +8 -11
- package/dist/esm/utils/async_hooks_shim.js +6 -2
- package/dist/esm/utils/async_queue.js +46 -18
- package/dist/esm/utils/branch_trie.js +3 -0
- package/dist/esm/utils/case_utils.js +3 -0
- package/dist/esm/utils/client_labels.js +6 -0
- package/dist/esm/utils/crypto_shim.js +17 -0
- package/dist/esm/utils/deprecated.js +40 -0
- package/dist/esm/utils/env_aware_utils.js +41 -0
- package/dist/esm/utils/error_utils.js +9 -0
- package/dist/esm/utils/experimental.js +10 -2
- package/dist/esm/utils/failover_utils.js +4 -0
- package/dist/esm/utils/file_extension_utils.js +4 -0
- package/dist/esm/utils/file_utils.js +8 -2
- package/dist/esm/utils/gemini_schema_util.js +7 -8
- package/dist/esm/utils/genai_schema_to_json.js +80 -0
- package/dist/esm/utils/live_connection_utils.js +6 -2
- package/dist/esm/utils/logger.js +28 -44
- 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 +9 -0
- package/dist/esm/utils/object_notation_utils.js +8 -3
- package/dist/esm/utils/optional_peer.js +41 -0
- package/dist/esm/utils/output_schema_utils.js +3 -0
- package/dist/esm/utils/partial_copy.js +3 -0
- package/dist/esm/utils/redact_inline_data.js +19 -0
- package/dist/esm/utils/redact_uri.js +53 -0
- package/dist/esm/utils/schema.js +152 -0
- package/dist/esm/utils/simple_zod_to_json.js +15 -4
- package/dist/esm/utils/ssrf_guard.js +230 -0
- package/dist/esm/utils/streaming_utils.js +15 -6
- package/dist/esm/utils/task.js +8 -4
- package/dist/esm/utils/variant_utils.js +5 -2
- package/dist/esm/utils/vertex_ai_utils.js +5 -2
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/base_node.js +182 -0
- package/dist/esm/workflow/branch_path.js +77 -0
- package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
- package/dist/esm/workflow/errors.js +140 -0
- package/dist/esm/workflow/graph.js +127 -0
- package/dist/esm/workflow/index.js +80 -0
- package/dist/esm/workflow/node.js +38 -0
- package/dist/esm/workflow/node_builders.js +40 -0
- package/dist/esm/workflow/node_context.js +219 -0
- package/dist/esm/workflow/node_error_event.js +57 -0
- package/dist/esm/workflow/node_runner.js +439 -0
- package/dist/esm/workflow/node_state.js +29 -0
- package/dist/esm/workflow/node_status.js +20 -0
- package/dist/esm/workflow/nodes/function_node.js +172 -0
- package/dist/esm/workflow/nodes/join_node.js +29 -0
- package/dist/esm/workflow/nodes/node_tool.js +122 -0
- package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
- package/dist/esm/workflow/nodes/tool_node.js +90 -0
- package/dist/esm/workflow/request_input.js +36 -0
- package/dist/esm/workflow/retry_config.js +43 -0
- package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
- package/dist/esm/workflow/run_node_as_invocation.js +139 -0
- package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
- package/dist/esm/workflow/utils/graph_parser.js +188 -0
- package/dist/esm/workflow/utils/graph_validation.js +189 -0
- package/dist/esm/workflow/utils/hitl_utils.js +222 -0
- package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
- package/dist/esm/workflow/utils/retry_utils.js +82 -0
- package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
- package/dist/esm/workflow/workflow.js +493 -0
- 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 +12 -3
- package/dist/types/a2a/agent_executor.d.ts +1 -1
- package/dist/types/a2a/agent_to_a2a.d.ts +6 -4
- package/dist/types/a2a/auth.d.ts +5 -1
- package/dist/types/a2a/event_processor_utils.d.ts +17 -2
- package/dist/types/a2a/executor_context.d.ts +7 -1
- package/dist/types/a2a/index.d.ts +18 -0
- package/dist/types/a2a/request_metadata.d.ts +22 -0
- package/dist/types/agents/base_agent.d.ts +56 -25
- package/dist/types/agents/context.d.ts +8 -0
- package/dist/types/agents/framework_function_calls.d.ts +26 -0
- package/dist/types/agents/functions.d.ts +73 -8
- package/dist/types/agents/invocation_context.d.ts +106 -6
- package/dist/types/agents/live_request_queue.d.ts +7 -1
- package/dist/types/agents/llm_agent.d.ts +86 -8
- package/dist/types/agents/loop_agent.d.ts +5 -0
- package/dist/types/agents/parallel_agent.d.ts +5 -0
- package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
- package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
- package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
- package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
- package/dist/types/agents/readonly_context.d.ts +4 -0
- package/dist/types/agents/run_config.d.ts +72 -4
- package/dist/types/agents/sequential_agent.d.ts +5 -0
- package/dist/types/agents/user_input_request.d.ts +71 -0
- package/dist/types/apps/app.d.ts +8 -3
- package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
- 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 +13 -8
- package/dist/types/auth/auth_handler.d.ts +12 -1
- package/dist/types/auth/credential_response_binding.d.ts +24 -0
- 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 +39 -27
- package/dist/types/context/compaction_utils.d.ts +9 -1
- package/dist/types/environment/base_environment.d.ts +101 -0
- package/dist/types/environment/local_environment.d.ts +72 -0
- 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.d.ts +94 -1
- package/dist/types/events/event_actions.d.ts +23 -0
- package/dist/types/index.d.ts +27 -14
- package/dist/types/memory/rag_memory_transcript.d.ts +55 -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/apigee_llm.d.ts +4 -4
- package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
- package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
- package/dist/types/models/google_llm.d.ts +10 -4
- package/dist/types/models/registry.d.ts +3 -2
- package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
- package/dist/types/plugins/base_plugin.d.ts +47 -10
- package/dist/types/plugins/logging_plugin.d.ts +3 -2
- package/dist/types/plugins/plugin_manager.d.ts +20 -0
- 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/plugins/security_plugin.d.ts +4 -2
- package/dist/types/runner/in_memory_runner.d.ts +2 -2
- package/dist/types/runner/runner.d.ts +64 -9
- package/dist/types/sessions/base_session_service.d.ts +2 -2
- 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/sessions/state.d.ts +34 -1
- package/dist/types/sessions/state_write_order.d.ts +39 -0
- package/dist/types/telemetry/tracing.d.ts +15 -0
- package/dist/types/tools/base_tool.d.ts +26 -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/finish_task_tool.d.ts +47 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
- package/dist/types/tools/function_tool.d.ts +88 -10
- 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/index.d.ts +13 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
- package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
- package/dist/types/tools/mcp/mcp_toolset.d.ts +12 -11
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
- package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
- package/dist/types/tools/preload_memory_tool.d.ts +1 -1
- package/dist/types/tools/request_input_tool.d.ts +6 -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/skill/skill_toolset.d.ts +26 -0
- package/dist/types/tools/tool_confirmation.d.ts +47 -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/utils/async_queue.d.ts +34 -2
- package/dist/types/utils/crypto_shim.d.ts +16 -0
- package/dist/types/utils/deprecated.d.ts +21 -0
- package/dist/types/utils/env_aware_utils.d.ts +16 -0
- package/dist/types/utils/file_utils.d.ts +10 -2
- package/dist/types/utils/gemini_schema_util.d.ts +5 -7
- package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
- package/dist/types/utils/logger.d.ts +23 -1
- package/dist/types/utils/logger_browser.d.ts +28 -0
- package/dist/types/utils/logger_node.d.ts +20 -0
- package/dist/types/utils/optional_peer.d.ts +36 -0
- 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 +32 -0
- package/dist/types/utils/schema.d.ts +73 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
- package/dist/types/utils/ssrf_guard.d.ts +32 -0
- package/dist/types/utils/vertex_ai_utils.d.ts +4 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/workflow/base_node.d.ts +142 -0
- package/dist/types/workflow/branch_path.d.ts +40 -0
- package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
- package/dist/types/workflow/errors.d.ts +132 -0
- package/dist/types/workflow/graph.d.ts +127 -0
- package/dist/types/workflow/index.d.ts +46 -0
- package/dist/types/workflow/node.d.ts +48 -0
- package/dist/types/workflow/node_builders.d.ts +25 -0
- package/dist/types/workflow/node_context.d.ts +208 -0
- package/dist/types/workflow/node_error_event.d.ts +18 -0
- package/dist/types/workflow/node_runner.d.ts +82 -0
- package/dist/types/workflow/node_state.d.ts +47 -0
- package/dist/types/workflow/node_status.d.ts +28 -0
- package/dist/types/workflow/nodes/function_node.d.ts +78 -0
- package/dist/types/workflow/nodes/join_node.d.ts +24 -0
- package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
- package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
- package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
- package/dist/types/workflow/request_input.d.ts +73 -0
- package/dist/types/workflow/retry_config.d.ts +84 -0
- package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
- package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
- package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
- package/dist/types/workflow/trigger.d.ts +22 -0
- package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
- package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
- package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
- package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
- package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
- package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
- package/dist/types/workflow/workflow.d.ts +115 -0
- package/dist/web/index_web.js +304 -3
- package/dist/web/index_web.js.map +7 -0
- package/package.json +97 -20
- package/dist/web/a2a/a2a_event.js +0 -271
- package/dist/web/a2a/a2a_remote_agent.js +0 -196
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -184
- package/dist/web/a2a/a2a_remote_agent_utils.js +0 -133
- package/dist/web/a2a/agent_card.js +0 -342
- package/dist/web/a2a/agent_executor.js +0 -218
- package/dist/web/a2a/agent_to_a2a.js +0 -97
- package/dist/web/a2a/auth.js +0 -37
- package/dist/web/a2a/event_converter_utils.js +0 -232
- package/dist/web/a2a/event_processor_utils.js +0 -170
- package/dist/web/a2a/executor_context.js +0 -25
- package/dist/web/a2a/metadata_converter_utils.js +0 -110
- package/dist/web/a2a/part_converter_utils.js +0 -188
- package/dist/web/agents/active_streaming_tool.js +0 -21
- package/dist/web/agents/base_agent.js +0 -423
- package/dist/web/agents/context.js +0 -142
- package/dist/web/agents/functions.js +0 -433
- package/dist/web/agents/instructions.js +0 -148
- package/dist/web/agents/invocation_context.js +0 -77
- package/dist/web/agents/live_request_queue.js +0 -126
- package/dist/web/agents/llm_agent.js +0 -936
- package/dist/web/agents/loop_agent.js +0 -112
- package/dist/web/agents/parallel_agent.js +0 -101
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -109
- package/dist/web/agents/processors/base_llm_processor.js +0 -15
- package/dist/web/agents/processors/basic_llm_request_processor.js +0 -81
- package/dist/web/agents/processors/code_execution_request_processor.js +0 -367
- package/dist/web/agents/processors/content_processor_utils.js +0 -361
- package/dist/web/agents/processors/content_request_processor.js +0 -67
- package/dist/web/agents/processors/context_compactor_request_processor.js +0 -74
- package/dist/web/agents/processors/identity_llm_request_processor.js +0 -50
- package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -81
- package/dist/web/agents/processors/interactions_request_processor.js +0 -52
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -168
- package/dist/web/agents/processors/tool_filter_request_processor.js +0 -68
- package/dist/web/agents/readonly_context.js +0 -55
- package/dist/web/agents/routed_agent.js +0 -169
- package/dist/web/agents/run_config.js +0 -62
- package/dist/web/agents/sequential_agent.js +0 -122
- package/dist/web/agents/transcription_entry.js +0 -7
- package/dist/web/apps/app.js +0 -49
- package/dist/web/apps/resumability_config.js +0 -31
- package/dist/web/artifacts/base_artifact_service.js +0 -7
- package/dist/web/artifacts/file_artifact_service.js +0 -548
- package/dist/web/artifacts/gcs_artifact_service.js +0 -253
- package/dist/web/artifacts/in_memory_artifact_service.js +0 -164
- package/dist/web/artifacts/registry.js +0 -30
- package/dist/web/artifacts/scoped_artifact_service.js +0 -86
- package/dist/web/auth/auth_credential.js +0 -18
- package/dist/web/auth/auth_handler.js +0 -148
- package/dist/web/auth/auth_preprocessor.js +0 -175
- package/dist/web/auth/auth_provider_registry.js +0 -33
- package/dist/web/auth/auth_schemes.js +0 -33
- package/dist/web/auth/auth_tool.js +0 -7
- package/dist/web/auth/credential_service/base_credential_service.js +0 -7
- package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -46
- package/dist/web/auth/credential_service/session_state_credential_service.js +0 -23
- package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -12
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -31
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -188
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -102
- package/dist/web/auth/oauth2/oauth2_discovery.js +0 -190
- package/dist/web/auth/oauth2/oauth2_utils.js +0 -98
- package/dist/web/auth/refresher/base_credential_refresher.js +0 -16
- package/dist/web/auth/refresher/credential_refresher_registry.js +0 -40
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -281
- package/dist/web/code_executors/base_code_executor.js +0 -63
- package/dist/web/code_executors/built_in_code_executor.js +0 -45
- package/dist/web/code_executors/code_execution_utils.js +0 -124
- package/dist/web/code_executors/code_executor_context.js +0 -170
- package/dist/web/code_executors/unsafe_local_code_executor.js +0 -214
- package/dist/web/common.js +0 -347
- package/dist/web/context/agent_controlled_context_compactor.js +0 -72
- package/dist/web/context/anchored_context_compactor.js +0 -117
- package/dist/web/context/base_context_compactor.js +0 -7
- package/dist/web/context/compaction_utils.js +0 -38
- package/dist/web/context/summarizers/llm_summarizer.js +0 -87
- package/dist/web/context/token_based_context_compactor.js +0 -111
- package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -43
- package/dist/web/context/truncating_context_compactor.js +0 -30
- package/dist/web/events/compacted_event.js +0 -47
- package/dist/web/events/event.js +0 -174
- package/dist/web/events/event_actions.js +0 -69
- package/dist/web/events/structured_events.js +0 -76
- package/dist/web/examples/base_example_provider.js +0 -27
- package/dist/web/examples/example.js +0 -7
- package/dist/web/examples/example_util.js +0 -79
- package/dist/web/features/feature_registry.js +0 -107
- package/dist/web/index.js +0 -68
- package/dist/web/integrations/agent_registry/agent_registry.js +0 -333
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -117
- package/dist/web/integrations/agent_registry/helpers.js +0 -28
- 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 -82
- package/dist/web/memory/memory_entry.js +0 -7
- package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -481
- package/dist/web/models/apigee_llm.js +0 -221
- package/dist/web/models/base_llm.js +0 -73
- package/dist/web/models/base_llm_connection.js +0 -7
- package/dist/web/models/gemini_llm_connection.js +0 -179
- package/dist/web/models/google_llm.js +0 -384
- package/dist/web/models/interactions_utils.js +0 -728
- package/dist/web/models/llm_request.js +0 -52
- package/dist/web/models/llm_response.js +0 -45
- package/dist/web/models/registry.js +0 -95
- package/dist/web/models/routed_llm.js +0 -122
- package/dist/web/plugins/base_plugin.js +0 -271
- package/dist/web/plugins/global_instruction_plugin.js +0 -67
- package/dist/web/plugins/logging_plugin.js +0 -235
- package/dist/web/plugins/plugin_manager.js +0 -282
- package/dist/web/plugins/security_plugin.js +0 -140
- package/dist/web/runner/in_memory_runner.js +0 -46
- package/dist/web/runner/runner.js +0 -535
- package/dist/web/sessions/base_session_service.js +0 -111
- package/dist/web/sessions/database_session_service.js +0 -436
- package/dist/web/sessions/db/operations.js +0 -96
- package/dist/web/sessions/db/schema.js +0 -208
- package/dist/web/sessions/in_memory_session_service.js +0 -242
- package/dist/web/sessions/registry.js +0 -34
- package/dist/web/sessions/session.js +0 -20
- package/dist/web/sessions/state.js +0 -89
- package/dist/web/sessions/vertex_ai_session_service.js +0 -443
- package/dist/web/skills/gcp_skill_registry.js +0 -78
- package/dist/web/skills/loader.js +0 -360
- package/dist/web/skills/prompt.js +0 -30
- 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 -54
- package/dist/web/telemetry/setup.js +0 -83
- package/dist/web/telemetry/tracing.js +0 -234
- package/dist/web/tools/agent_tool.js +0 -145
- package/dist/web/tools/base_tool.js +0 -93
- package/dist/web/tools/base_toolset.js +0 -57
- package/dist/web/tools/consolidate_context_tool.js +0 -51
- package/dist/web/tools/enterprise_web_search_tool.js +0 -55
- package/dist/web/tools/example_tool.js +0 -42
- package/dist/web/tools/exit_loop_tool.js +0 -43
- package/dist/web/tools/forwarding_artifact_service.js +0 -47
- package/dist/web/tools/function_tool.js +0 -85
- package/dist/web/tools/get_user_choice_tool.js +0 -25
- package/dist/web/tools/google_maps_grounding_tool.js +0 -54
- package/dist/web/tools/google_search_tool.js +0 -51
- package/dist/web/tools/load_artifacts_tool.js +0 -152
- package/dist/web/tools/load_memory_tool.js +0 -79
- package/dist/web/tools/load_web_page.js +0 -221
- package/dist/web/tools/long_running_tool.js +0 -55
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -107
- package/dist/web/tools/mcp/mcp_session_manager.js +0 -78
- package/dist/web/tools/mcp/mcp_tool.js +0 -43
- package/dist/web/tools/mcp/mcp_toolset.js +0 -141
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -48
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -60
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -111
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -221
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -198
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -94
- package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -97
- package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -229
- package/dist/web/tools/preload_memory_tool.js +0 -77
- package/dist/web/tools/request_input_tool.js +0 -26
- package/dist/web/tools/skill/list_skills_tool.js +0 -50
- package/dist/web/tools/skill/load_skill_resource_tool.js +0 -190
- package/dist/web/tools/skill/load_skill_tool.js +0 -93
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -167
- package/dist/web/tools/skill/run_skill_script_tool.js +0 -201
- package/dist/web/tools/skill/search_skills_tool.js +0 -82
- package/dist/web/tools/skill/skill_toolset.js +0 -160
- package/dist/web/tools/tool_confirmation.js +0 -21
- package/dist/web/tools/url_context_tool.js +0 -44
- package/dist/web/tools/vertex_ai_search_tool.js +0 -103
- package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -36
- package/dist/web/utils/async_hooks_shim.js +0 -24
- package/dist/web/utils/async_queue.js +0 -60
- package/dist/web/utils/branch_trie.js +0 -13
- package/dist/web/utils/case_utils.js +0 -25
- package/dist/web/utils/client_labels.js +0 -64
- package/dist/web/utils/crypto_shim.js +0 -15
- package/dist/web/utils/env_aware_utils.js +0 -74
- package/dist/web/utils/error_utils.js +0 -92
- package/dist/web/utils/experimental.js +0 -46
- package/dist/web/utils/failover_utils.js +0 -96
- package/dist/web/utils/file_extension_utils.js +0 -51
- package/dist/web/utils/file_utils.js +0 -103
- package/dist/web/utils/gemini_schema_util.js +0 -173
- package/dist/web/utils/live_connection_utils.js +0 -254
- package/dist/web/utils/logger.js +0 -130
- package/dist/web/utils/model_name.js +0 -66
- package/dist/web/utils/object_notation_utils.js +0 -49
- package/dist/web/utils/output_schema_utils.js +0 -15
- package/dist/web/utils/partial_copy.js +0 -23
- package/dist/web/utils/simple_zod_to_json.js +0 -123
- package/dist/web/utils/streaming_utils.js +0 -430
- package/dist/web/utils/task.js +0 -34
- package/dist/web/utils/variant_utils.js +0 -20
- package/dist/web/utils/vertex_ai_utils.js +0 -24
- package/dist/web/version.js +0 -11
- /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
- /package/dist/{web/auth/base_auth_provider.js → esm/workflow/trigger.js} +0 -0
|
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
|
|
|
9
9
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
10
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
11
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
12
13
|
var __export = (target, all) => {
|
|
13
14
|
for (var name in all)
|
|
14
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -29,8 +30,14 @@ __export(llm_agent_exports, {
|
|
|
29
30
|
});
|
|
30
31
|
module.exports = __toCommonJS(llm_agent_exports);
|
|
31
32
|
var import_api = require("@opentelemetry/api");
|
|
33
|
+
var import_finish_task_tool = require("../tools/finish_task_tool.js");
|
|
32
34
|
var import_function_tool = require("../tools/function_tool.js");
|
|
35
|
+
var import_async_queue = require("../utils/async_queue.js");
|
|
36
|
+
var import_base_node = require("../workflow/base_node.js");
|
|
37
|
+
var import_node_tool = require("../workflow/nodes/node_tool.js");
|
|
38
|
+
var import_run_llm_agent_as_node = require("../workflow/run_llm_agent_as_node.js");
|
|
33
39
|
var import_event = require("../events/event.js");
|
|
40
|
+
var import_event_actions = require("../events/event_actions.js");
|
|
34
41
|
var import_base_llm = require("../models/base_llm.js");
|
|
35
42
|
var import_registry = require("../models/registry.js");
|
|
36
43
|
var import_base_tool = require("../tools/base_tool.js");
|
|
@@ -38,10 +45,12 @@ var import_logger = require("../utils/logger.js");
|
|
|
38
45
|
var import_output_schema_utils = require("../utils/output_schema_utils.js");
|
|
39
46
|
var import_context = require("./context.js");
|
|
40
47
|
var import_tracing = require("../telemetry/tracing.js");
|
|
48
|
+
var import_schema = require("../utils/schema.js");
|
|
41
49
|
var import_simple_zod_to_json = require("../utils/simple_zod_to_json.js");
|
|
42
50
|
var import_base_agent = require("./base_agent.js");
|
|
43
51
|
var import_functions = require("./functions.js");
|
|
44
52
|
var import_auth_preprocessor = require("../auth/auth_preprocessor.js");
|
|
53
|
+
var import_invocation_context = require("./invocation_context.js");
|
|
45
54
|
var import_agent_transfer_llm_request_processor = require("./processors/agent_transfer_llm_request_processor.js");
|
|
46
55
|
var import_basic_llm_request_processor = require("./processors/basic_llm_request_processor.js");
|
|
47
56
|
var import_code_execution_request_processor = require("./processors/code_execution_request_processor.js");
|
|
@@ -51,6 +60,7 @@ var import_identity_llm_request_processor = require("./processors/identity_llm_r
|
|
|
51
60
|
var import_instructions_llm_request_processor = require("./processors/instructions_llm_request_processor.js");
|
|
52
61
|
var import_interactions_request_processor = require("./processors/interactions_request_processor.js");
|
|
53
62
|
var import_request_confirmation_llm_request_processor = require("./processors/request_confirmation_llm_request_processor.js");
|
|
63
|
+
var import_request_input_llm_request_processor = require("./processors/request_input_llm_request_processor.js");
|
|
54
64
|
var import_tool_filter_request_processor = require("./processors/tool_filter_request_processor.js");
|
|
55
65
|
var import_readonly_context = require("./readonly_context.js");
|
|
56
66
|
var import_run_config = require("./run_config.js");
|
|
@@ -60,45 +70,109 @@ var import_run_config = require("./run_config.js");
|
|
|
60
70
|
* SPDX-License-Identifier: Apache-2.0
|
|
61
71
|
*/
|
|
62
72
|
var _a, _b;
|
|
73
|
+
const MAX_LIVE_RECONNECT_ATTEMPTS = 5;
|
|
74
|
+
const TRANSFER_AGENT_DELAY_MS = 1e3;
|
|
75
|
+
const _LiveReconnectSignal = class _LiveReconnectSignal extends Error {
|
|
76
|
+
constructor(reason) {
|
|
77
|
+
super(`live reconnect requested: ${reason}`);
|
|
78
|
+
this.reason = reason;
|
|
79
|
+
this.name = "LiveReconnectSignal";
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
__name(_LiveReconnectSignal, "LiveReconnectSignal");
|
|
83
|
+
let LiveReconnectSignal = _LiveReconnectSignal;
|
|
84
|
+
function isRecoverableLiveError(err) {
|
|
85
|
+
var _a2;
|
|
86
|
+
if (err instanceof LiveReconnectSignal) return true;
|
|
87
|
+
if (!(err instanceof Error)) return false;
|
|
88
|
+
const code = err.code;
|
|
89
|
+
if (code === 1006 || code === 1011 || code === 1012) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
const message = (_a2 = err.message) != null ? _a2 : "";
|
|
93
|
+
return /ConnectionClosed|connection closed|ECONNRESET|socket hang up/i.test(
|
|
94
|
+
message
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
__name(isRecoverableLiveError, "isRecoverableLiveError");
|
|
98
|
+
function sleep(ms) {
|
|
99
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
100
|
+
}
|
|
101
|
+
__name(sleep, "sleep");
|
|
102
|
+
const LIVE_KEYS = [
|
|
103
|
+
"responseModalities",
|
|
104
|
+
"speechConfig",
|
|
105
|
+
"outputAudioTranscription",
|
|
106
|
+
"inputAudioTranscription",
|
|
107
|
+
"realtimeInputConfig",
|
|
108
|
+
"contextWindowCompression",
|
|
109
|
+
"proactivity",
|
|
110
|
+
"enableAffectiveDialog"
|
|
111
|
+
];
|
|
112
|
+
function applyLiveRunConfig(runConfig, llmRequest) {
|
|
113
|
+
var _a2;
|
|
114
|
+
if (!runConfig) return;
|
|
115
|
+
const liveConfig = (_a2 = llmRequest.liveConnectConfig) != null ? _a2 : llmRequest.liveConnectConfig = {};
|
|
116
|
+
for (const k of LIVE_KEYS) {
|
|
117
|
+
if (runConfig[k] !== void 0) {
|
|
118
|
+
liveConfig[k] = runConfig[k];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
__name(applyLiveRunConfig, "applyLiveRunConfig");
|
|
63
123
|
const ADK_AGENT_NAME_LABEL_KEY = "adk_agent_name";
|
|
64
124
|
async function convertToolUnionToTools(toolUnion, context2) {
|
|
65
125
|
if ((0, import_base_tool.isBaseTool)(toolUnion)) {
|
|
66
126
|
return [toolUnion];
|
|
67
127
|
}
|
|
128
|
+
if ((0, import_base_node.isBaseNode)(toolUnion)) {
|
|
129
|
+
return [new import_node_tool.NodeTool(toolUnion)];
|
|
130
|
+
}
|
|
68
131
|
return await toolUnion.getTools(context2);
|
|
69
132
|
}
|
|
70
|
-
|
|
133
|
+
__name(convertToolUnionToTools, "convertToolUnionToTools");
|
|
134
|
+
const LLM_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.llmAgent");
|
|
71
135
|
function isLlmAgent(obj) {
|
|
72
136
|
return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
|
|
73
137
|
}
|
|
74
|
-
|
|
138
|
+
__name(isLlmAgent, "isLlmAgent");
|
|
139
|
+
const _LlmAgent = class _LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
75
140
|
constructor(config) {
|
|
76
|
-
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
|
|
77
|
-
super(
|
|
141
|
+
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
142
|
+
super({
|
|
143
|
+
...config,
|
|
144
|
+
rerunOnResume: (_a2 = config.rerunOnResume) != null ? _a2 : true,
|
|
145
|
+
waitForOutput: (_b2 = config.waitForOutput) != null ? _b2 : config.mode === "task"
|
|
146
|
+
});
|
|
78
147
|
/** A unique symbol to identify ADK LLM agent class. */
|
|
79
148
|
this[_a] = true;
|
|
80
149
|
this.model = config.model;
|
|
81
|
-
this.instruction = (
|
|
82
|
-
this.globalInstruction = (
|
|
83
|
-
this.tools = (
|
|
150
|
+
this.instruction = (_c = config.instruction) != null ? _c : "";
|
|
151
|
+
this.globalInstruction = (_d = config.globalInstruction) != null ? _d : "";
|
|
152
|
+
this.tools = (_e = config.tools) != null ? _e : [];
|
|
84
153
|
this.generateContentConfig = config.generateContentConfig;
|
|
85
|
-
this.disallowTransferToParent = (
|
|
86
|
-
this.disallowTransferToPeers = (
|
|
87
|
-
this.includeContents = (
|
|
154
|
+
this.disallowTransferToParent = (_f = config.disallowTransferToParent) != null ? _f : false;
|
|
155
|
+
this.disallowTransferToPeers = (_g = config.disallowTransferToPeers) != null ? _g : false;
|
|
156
|
+
this.includeContents = (_h = config.includeContents) != null ? _h : "default";
|
|
157
|
+
this.includeContentsExplicit = config.includeContents !== void 0;
|
|
158
|
+
this.inputSchemaSource = config.inputSchema;
|
|
159
|
+
this.outputSchemaSource = config.outputSchema;
|
|
88
160
|
this.inputSchema = (0, import_simple_zod_to_json.isZodObject)(config.inputSchema) ? (0, import_simple_zod_to_json.zodObjectToSchema)(config.inputSchema) : config.inputSchema;
|
|
89
161
|
this.outputSchema = (0, import_simple_zod_to_json.isZodObject)(config.outputSchema) ? (0, import_simple_zod_to_json.zodObjectToSchema)(config.outputSchema) : config.outputSchema;
|
|
162
|
+
this.mode = config.mode;
|
|
90
163
|
this.outputKey = config.outputKey;
|
|
91
164
|
this.beforeModelCallback = config.beforeModelCallback;
|
|
92
165
|
this.afterModelCallback = config.afterModelCallback;
|
|
93
166
|
this.beforeToolCallback = config.beforeToolCallback;
|
|
94
167
|
this.afterToolCallback = config.afterToolCallback;
|
|
95
168
|
this.codeExecutor = config.codeExecutor;
|
|
96
|
-
this.requestProcessors = (
|
|
169
|
+
this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
|
|
97
170
|
import_basic_llm_request_processor.BASIC_LLM_REQUEST_PROCESSOR,
|
|
98
171
|
import_auth_preprocessor.AUTH_PREPROCESSOR,
|
|
99
172
|
import_identity_llm_request_processor.IDENTITY_LLM_REQUEST_PROCESSOR,
|
|
100
173
|
import_instructions_llm_request_processor.INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
|
|
101
174
|
import_request_confirmation_llm_request_processor.REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
|
|
175
|
+
import_request_input_llm_request_processor.REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
|
|
102
176
|
import_content_request_processor.CONTENT_REQUEST_PROCESSOR,
|
|
103
177
|
import_interactions_request_processor.INTERACTIONS_REQUEST_PROCESSOR,
|
|
104
178
|
import_code_execution_request_processor.CODE_EXECUTION_REQUEST_PROCESSOR,
|
|
@@ -120,8 +194,8 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
120
194
|
);
|
|
121
195
|
}
|
|
122
196
|
}
|
|
123
|
-
this.responseProcessors = (
|
|
124
|
-
const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((
|
|
197
|
+
this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [];
|
|
198
|
+
const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_k = this.subAgents) == null ? void 0 : _k.length);
|
|
125
199
|
if (!agentTransferDisabled) {
|
|
126
200
|
this.requestProcessors.push(import_agent_transfer_llm_request_processor.AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
|
|
127
201
|
}
|
|
@@ -143,13 +217,14 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
143
217
|
this.generateContentConfig = {};
|
|
144
218
|
}
|
|
145
219
|
if (this.outputSchema) {
|
|
146
|
-
|
|
220
|
+
const transferRequested = config.disallowTransferToParent === false || config.disallowTransferToPeers === false || !!((_l = this.subAgents) == null ? void 0 : _l.length);
|
|
221
|
+
if (transferRequested) {
|
|
147
222
|
import_logger.logger.warn(
|
|
148
223
|
`Invalid config for agent ${this.name}: outputSchema cannot co-exist with agent transfer configurations. Setting disallowTransferToParent=true, disallowTransferToPeers=true`
|
|
149
224
|
);
|
|
150
|
-
this.disallowTransferToParent = true;
|
|
151
|
-
this.disallowTransferToPeers = true;
|
|
152
225
|
}
|
|
226
|
+
this.disallowTransferToParent = true;
|
|
227
|
+
this.disallowTransferToPeers = true;
|
|
153
228
|
}
|
|
154
229
|
}
|
|
155
230
|
/**
|
|
@@ -173,6 +248,16 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
173
248
|
}
|
|
174
249
|
throw new Error(`No model found for ${this.name}.`);
|
|
175
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* The `finish_task` tool for this agent (task mode). Lazily created and cached
|
|
253
|
+
* so its declaration (derived from `outputSchema`) is stable across turns.
|
|
254
|
+
*/
|
|
255
|
+
get finishTaskTool() {
|
|
256
|
+
if (!this._finishTaskTool) {
|
|
257
|
+
this._finishTaskTool = new import_finish_task_tool.FinishTaskTool(this.outputSchema);
|
|
258
|
+
}
|
|
259
|
+
return this._finishTaskTool;
|
|
260
|
+
}
|
|
176
261
|
/**
|
|
177
262
|
* The resolved instruction field to construct instruction for this
|
|
178
263
|
* agent.
|
|
@@ -245,7 +330,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
245
330
|
* This method is only for use by Agent Development Kit.
|
|
246
331
|
*/
|
|
247
332
|
get canonicalBeforeModelCallbacks() {
|
|
248
|
-
return
|
|
333
|
+
return _LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
|
|
249
334
|
}
|
|
250
335
|
/**
|
|
251
336
|
* The resolved afterModelCallback field as a list of
|
|
@@ -254,7 +339,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
254
339
|
* This method is only for use by Agent Development Kit.
|
|
255
340
|
*/
|
|
256
341
|
get canonicalAfterModelCallbacks() {
|
|
257
|
-
return
|
|
342
|
+
return _LlmAgent.normalizeCallbackArray(this.afterModelCallback);
|
|
258
343
|
}
|
|
259
344
|
/**
|
|
260
345
|
* The resolved beforeToolCallback field as a list of
|
|
@@ -263,7 +348,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
263
348
|
* This method is only for use by Agent Development Kit.
|
|
264
349
|
*/
|
|
265
350
|
get canonicalBeforeToolCallbacks() {
|
|
266
|
-
return
|
|
351
|
+
return _LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
|
|
267
352
|
}
|
|
268
353
|
/**
|
|
269
354
|
* The resolved afterToolCallback field as a list of AfterToolCallback.
|
|
@@ -271,7 +356,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
271
356
|
* This method is only for use by Agent Development Kit.
|
|
272
357
|
*/
|
|
273
358
|
get canonicalAfterToolCallbacks() {
|
|
274
|
-
return
|
|
359
|
+
return _LlmAgent.normalizeCallbackArray(this.afterToolCallback);
|
|
275
360
|
}
|
|
276
361
|
/**
|
|
277
362
|
* Saves the agent's final response to the session state if configured.
|
|
@@ -314,14 +399,53 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
314
399
|
if (!resultStr.trim()) {
|
|
315
400
|
return;
|
|
316
401
|
}
|
|
402
|
+
let parsed;
|
|
317
403
|
try {
|
|
318
|
-
|
|
404
|
+
parsed = JSON.parse(resultStr);
|
|
319
405
|
} catch (e) {
|
|
320
406
|
import_logger.logger.error(`Error parsing output for agent ${this.name}`, e);
|
|
407
|
+
event.actions.stateDelta[this.outputKey] = resultStr;
|
|
408
|
+
return;
|
|
409
|
+
}
|
|
410
|
+
try {
|
|
411
|
+
result = this.validateOutput(parsed);
|
|
412
|
+
} catch (e) {
|
|
413
|
+
import_logger.logger.error(
|
|
414
|
+
`Output for agent ${this.name} does not satisfy its output schema`,
|
|
415
|
+
e
|
|
416
|
+
);
|
|
417
|
+
result = parsed;
|
|
321
418
|
}
|
|
322
419
|
}
|
|
323
420
|
event.actions.stateDelta[this.outputKey] = result;
|
|
324
421
|
}
|
|
422
|
+
/**
|
|
423
|
+
* Validates a value against this agent's output schema, in whichever dialect
|
|
424
|
+
* it was declared, and returns the parsed value.
|
|
425
|
+
*
|
|
426
|
+
* Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
|
|
427
|
+
* form derived from it, since the conversion drops constraints Zod can
|
|
428
|
+
* express and genai cannot.
|
|
429
|
+
*
|
|
430
|
+
* @throws if the value does not satisfy the schema.
|
|
431
|
+
*/
|
|
432
|
+
validateOutput(value) {
|
|
433
|
+
var _a2;
|
|
434
|
+
return (0, import_schema.parseWithSchema)((_a2 = this.outputSchemaSource) != null ? _a2 : this.outputSchema, value);
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Runs this agent as a workflow node.
|
|
438
|
+
*
|
|
439
|
+
* Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
|
|
440
|
+
* `LlmAgent` has a node input to inject into the conversation, instruction
|
|
441
|
+
* placeholders to resolve against it, a reply to promote to node output, and
|
|
442
|
+
* — in `task` mode — a `finish_task` round-trip to drive. All of that lives
|
|
443
|
+
* in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
|
|
444
|
+
* delegating to `run_llm_agent_as_node`.
|
|
445
|
+
*/
|
|
446
|
+
async *runImpl(ctx, nodeInput) {
|
|
447
|
+
yield* (0, import_run_llm_agent_as_node.runLlmAgentAsNode)(this, ctx, nodeInput);
|
|
448
|
+
}
|
|
325
449
|
async *runAsyncImpl(context2) {
|
|
326
450
|
var _a2, _b2;
|
|
327
451
|
while (true) {
|
|
@@ -341,7 +465,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
341
465
|
if (!lastEvent) {
|
|
342
466
|
break;
|
|
343
467
|
}
|
|
344
|
-
const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0);
|
|
468
|
+
const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0) && (0, import_event_actions.isDefaultEventActions)(lastEvent.actions);
|
|
345
469
|
if ((0, import_event.isFinalResponse)(lastEvent) && !(isEmptyMetadataEvent && stepHadToolCalls)) {
|
|
346
470
|
break;
|
|
347
471
|
}
|
|
@@ -381,10 +505,350 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
381
505
|
* times. Subsequent reconnects skip `sendHistory` because the server
|
|
382
506
|
* already holds the conversation state associated with the handle.
|
|
383
507
|
*/
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
508
|
+
async *runLiveFlow(invocationContext) {
|
|
509
|
+
var _a2, _b2, _c, _d;
|
|
510
|
+
if (!invocationContext.liveRequestQueue) {
|
|
511
|
+
throw new Error("liveRequestQueue is required for LlmAgent.runLiveFlow.");
|
|
512
|
+
}
|
|
513
|
+
const llmRequest = {
|
|
514
|
+
contents: [],
|
|
515
|
+
toolsDict: {},
|
|
516
|
+
liveConnectConfig: {}
|
|
517
|
+
};
|
|
518
|
+
for await (const event of this.runLivePreprocess(
|
|
519
|
+
invocationContext,
|
|
520
|
+
llmRequest
|
|
521
|
+
)) {
|
|
522
|
+
yield event;
|
|
523
|
+
}
|
|
524
|
+
if (invocationContext.endInvocation || ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted)) {
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
applyLiveRunConfig(invocationContext.runConfig, llmRequest);
|
|
528
|
+
const llm = this.canonicalModel;
|
|
529
|
+
let reconnectAttempts = 0;
|
|
530
|
+
while (true) {
|
|
531
|
+
if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
534
|
+
const handle = invocationContext.liveSessionResumptionHandle;
|
|
535
|
+
if (handle) {
|
|
536
|
+
(_c = llmRequest.liveConnectConfig) != null ? _c : llmRequest.liveConnectConfig = {};
|
|
537
|
+
llmRequest.liveConnectConfig.sessionResumption = {
|
|
538
|
+
handle,
|
|
539
|
+
transparent: true
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
let connection;
|
|
543
|
+
try {
|
|
544
|
+
connection = await llm.connect(llmRequest);
|
|
545
|
+
} catch (err) {
|
|
546
|
+
if (isRecoverableLiveError(err) && invocationContext.liveSessionResumptionHandle) {
|
|
547
|
+
reconnectAttempts += 1;
|
|
548
|
+
if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
|
|
549
|
+
import_logger.logger.error(
|
|
550
|
+
`Max live reconnection attempts reached (${reconnectAttempts}).`,
|
|
551
|
+
err
|
|
552
|
+
);
|
|
553
|
+
throw err;
|
|
554
|
+
}
|
|
555
|
+
import_logger.logger.info(
|
|
556
|
+
`Live connect failed (attempt ${reconnectAttempts}); retrying with session handle.`,
|
|
557
|
+
err
|
|
558
|
+
);
|
|
559
|
+
continue;
|
|
560
|
+
}
|
|
561
|
+
throw err;
|
|
562
|
+
}
|
|
563
|
+
if (llmRequest.contents.length > 0 && !invocationContext.liveSessionResumptionHandle) {
|
|
564
|
+
await connection.sendHistory(llmRequest.contents);
|
|
565
|
+
}
|
|
566
|
+
let sendError;
|
|
567
|
+
const sendAbort = new AbortController();
|
|
568
|
+
const combinedAbort = invocationContext.abortSignal ? AbortSignal.any([invocationContext.abortSignal, sendAbort.signal]) : sendAbort.signal;
|
|
569
|
+
const sendTask = this.runSendLoop(
|
|
570
|
+
connection,
|
|
571
|
+
invocationContext.liveRequestQueue,
|
|
572
|
+
combinedAbort,
|
|
573
|
+
invocationContext.abortSignal
|
|
574
|
+
);
|
|
575
|
+
sendTask.catch((error) => {
|
|
576
|
+
import_logger.logger.error("Error in live send loop:", error);
|
|
577
|
+
sendError = error;
|
|
578
|
+
sendAbort.abort(error);
|
|
579
|
+
connection.close().catch((err) => {
|
|
580
|
+
import_logger.logger.warn("Error closing connection after send loop failure:", err);
|
|
581
|
+
});
|
|
582
|
+
});
|
|
583
|
+
let reconnect = false;
|
|
584
|
+
try {
|
|
585
|
+
yield* this.runReceiveLoop(
|
|
586
|
+
invocationContext,
|
|
587
|
+
connection,
|
|
588
|
+
llmRequest,
|
|
589
|
+
sendAbort
|
|
590
|
+
);
|
|
591
|
+
} catch (err) {
|
|
592
|
+
const canReconnect = !!invocationContext.liveSessionResumptionHandle && (err instanceof LiveReconnectSignal || isRecoverableLiveError(err));
|
|
593
|
+
if (canReconnect) {
|
|
594
|
+
reconnect = true;
|
|
595
|
+
import_logger.logger.info(
|
|
596
|
+
"Live connection closed; will reconnect with session handle.",
|
|
597
|
+
err
|
|
598
|
+
);
|
|
599
|
+
} else {
|
|
600
|
+
await this.teardownLiveConnection(sendAbort, connection, sendTask);
|
|
601
|
+
throw err;
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
await this.teardownLiveConnection(sendAbort, connection, sendTask);
|
|
605
|
+
if ((_d = invocationContext.abortSignal) == null ? void 0 : _d.aborted) {
|
|
606
|
+
return;
|
|
607
|
+
}
|
|
608
|
+
if (sendError) {
|
|
609
|
+
throw sendError;
|
|
610
|
+
}
|
|
611
|
+
if (!reconnect) {
|
|
612
|
+
return;
|
|
613
|
+
}
|
|
614
|
+
reconnectAttempts += 1;
|
|
615
|
+
if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
|
|
616
|
+
throw new Error(
|
|
617
|
+
`Max live reconnection attempts reached (${reconnectAttempts}).`
|
|
618
|
+
);
|
|
619
|
+
}
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
async *runLivePreprocess(invocationContext, llmRequest) {
|
|
623
|
+
var _a2, _b2;
|
|
624
|
+
for (const processor of this.requestProcessors) {
|
|
625
|
+
for await (const event of processor.runAsync(
|
|
626
|
+
invocationContext,
|
|
627
|
+
llmRequest
|
|
628
|
+
)) {
|
|
629
|
+
if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
630
|
+
return;
|
|
631
|
+
}
|
|
632
|
+
yield event;
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
for (const toolUnion of this.tools) {
|
|
636
|
+
const toolContext = new import_context.Context({ invocationContext });
|
|
637
|
+
const tools = (await convertToolUnionToTools(
|
|
638
|
+
toolUnion,
|
|
639
|
+
new import_readonly_context.ReadonlyContext(invocationContext)
|
|
640
|
+
)).filter(
|
|
641
|
+
(tool) => !llmRequest.allowedTools || llmRequest.allowedTools.includes(tool.name)
|
|
642
|
+
);
|
|
643
|
+
for (const tool of tools) {
|
|
644
|
+
await tool.processLlmRequest({ toolContext, llmRequest });
|
|
645
|
+
if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
}
|
|
651
|
+
async runSendLoop(connection, liveRequestQueue, sendAbortSignal, invocationAbortSignal) {
|
|
652
|
+
while (true) {
|
|
653
|
+
if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
|
|
654
|
+
return;
|
|
655
|
+
}
|
|
656
|
+
let liveRequest;
|
|
657
|
+
try {
|
|
658
|
+
liveRequest = await liveRequestQueue.get(sendAbortSignal);
|
|
659
|
+
} catch (error) {
|
|
660
|
+
if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
|
|
661
|
+
return;
|
|
662
|
+
}
|
|
663
|
+
throw error;
|
|
664
|
+
}
|
|
665
|
+
try {
|
|
666
|
+
await this.dispatchLiveRequest(connection, liveRequest);
|
|
667
|
+
} catch (error) {
|
|
668
|
+
if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
|
|
669
|
+
import_logger.logger.debug("Send failed after teardown:", error);
|
|
670
|
+
return;
|
|
671
|
+
}
|
|
672
|
+
import_logger.logger.error("Error dispatching live request to model:", error);
|
|
673
|
+
throw error;
|
|
674
|
+
}
|
|
675
|
+
await Promise.resolve();
|
|
676
|
+
if (liveRequest.close) {
|
|
677
|
+
return;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
async dispatchLiveRequest(connection, liveRequest) {
|
|
682
|
+
var _a2, _b2;
|
|
683
|
+
if (liveRequest.close) {
|
|
684
|
+
await connection.close();
|
|
685
|
+
return;
|
|
686
|
+
}
|
|
687
|
+
if (liveRequest.activityStart) {
|
|
688
|
+
await ((_a2 = connection.sendActivityStart) == null ? void 0 : _a2.call(connection));
|
|
689
|
+
return;
|
|
690
|
+
}
|
|
691
|
+
if (liveRequest.activityEnd) {
|
|
692
|
+
await ((_b2 = connection.sendActivityEnd) == null ? void 0 : _b2.call(connection));
|
|
693
|
+
return;
|
|
694
|
+
}
|
|
695
|
+
if (liveRequest.blob) {
|
|
696
|
+
await connection.sendRealtime(liveRequest.blob);
|
|
697
|
+
return;
|
|
698
|
+
}
|
|
699
|
+
if (liveRequest.content) {
|
|
700
|
+
await connection.sendContent(liveRequest.content);
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
* Tears down a live attempt: stops the send loop, closes the connection
|
|
705
|
+
* (swallowing close errors), and waits for the send task to settle. Used
|
|
706
|
+
* before reconnecting or propagating an error.
|
|
707
|
+
*/
|
|
708
|
+
async teardownLiveConnection(sendAbort, connection, sendTask) {
|
|
709
|
+
sendAbort.abort();
|
|
710
|
+
try {
|
|
711
|
+
await connection.close();
|
|
712
|
+
} catch (error) {
|
|
713
|
+
import_logger.logger.warn("Error closing live connection:", error);
|
|
714
|
+
}
|
|
715
|
+
await sendTask.catch(() => void 0);
|
|
716
|
+
}
|
|
717
|
+
async *runReceiveLoop(invocationContext, connection, llmRequest, sendAbort) {
|
|
718
|
+
var _a2, _b2, _c, _d;
|
|
719
|
+
for await (const llmResponse of connection.receive()) {
|
|
720
|
+
if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
721
|
+
return;
|
|
722
|
+
}
|
|
723
|
+
if (sendAbort.signal.aborted) {
|
|
724
|
+
return;
|
|
725
|
+
}
|
|
726
|
+
if ((_b2 = llmResponse.liveSessionResumptionUpdate) == null ? void 0 : _b2.newHandle) {
|
|
727
|
+
invocationContext.liveSessionResumptionHandle = llmResponse.liveSessionResumptionUpdate.newHandle;
|
|
728
|
+
}
|
|
729
|
+
if (llmResponse.goAway) {
|
|
730
|
+
import_logger.logger.info("Received goAway from live server; triggering reconnect.");
|
|
731
|
+
throw new LiveReconnectSignal("goAway");
|
|
732
|
+
}
|
|
733
|
+
const author = llmResponse.inputTranscription || ((_c = llmResponse.content) == null ? void 0 : _c.role) === "user" ? "user" : this.name;
|
|
734
|
+
const modelResponseEvent = (0, import_event.createEvent)({
|
|
735
|
+
invocationId: invocationContext.invocationId,
|
|
736
|
+
author,
|
|
737
|
+
branch: invocationContext.branch
|
|
738
|
+
});
|
|
739
|
+
for await (const event of this.postprocessLive(
|
|
740
|
+
invocationContext,
|
|
741
|
+
llmRequest,
|
|
742
|
+
llmResponse,
|
|
743
|
+
modelResponseEvent
|
|
744
|
+
)) {
|
|
745
|
+
yield event;
|
|
746
|
+
if (event.content && (0, import_event.getFunctionResponses)(event).length > 0) {
|
|
747
|
+
await connection.sendContent(event.content);
|
|
748
|
+
}
|
|
749
|
+
const taskCompleted = (0, import_event.getFunctionResponses)(event).some(
|
|
750
|
+
(r) => r.name === "task_completed"
|
|
751
|
+
);
|
|
752
|
+
if (taskCompleted) {
|
|
753
|
+
await sleep(TRANSFER_AGENT_DELAY_MS);
|
|
754
|
+
return;
|
|
755
|
+
}
|
|
756
|
+
const transferTo = (_d = event.actions) == null ? void 0 : _d.transferToAgent;
|
|
757
|
+
if (transferTo) {
|
|
758
|
+
await sleep(TRANSFER_AGENT_DELAY_MS);
|
|
759
|
+
sendAbort.abort();
|
|
760
|
+
await connection.close();
|
|
761
|
+
const agent = (0, import_invocation_context.requireAgent)(invocationContext);
|
|
762
|
+
const subAgent = agent.rootAgent.findAgent(transferTo);
|
|
763
|
+
if (subAgent) {
|
|
764
|
+
const previousAgent = invocationContext.agent;
|
|
765
|
+
invocationContext.agent = subAgent;
|
|
766
|
+
const previousHandle = invocationContext.liveSessionResumptionHandle;
|
|
767
|
+
invocationContext.liveSessionResumptionHandle = void 0;
|
|
768
|
+
try {
|
|
769
|
+
for await (const subEvent of subAgent.runLive(
|
|
770
|
+
invocationContext
|
|
771
|
+
)) {
|
|
772
|
+
yield subEvent;
|
|
773
|
+
}
|
|
774
|
+
} finally {
|
|
775
|
+
invocationContext.agent = previousAgent;
|
|
776
|
+
invocationContext.liveSessionResumptionHandle = previousHandle;
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
return;
|
|
780
|
+
}
|
|
781
|
+
}
|
|
782
|
+
}
|
|
783
|
+
}
|
|
784
|
+
async *postprocessLive(invocationContext, llmRequest, llmResponse, modelResponseEvent) {
|
|
785
|
+
for (const processor of this.responseProcessors) {
|
|
786
|
+
for await (const event of processor.runAsync(
|
|
787
|
+
invocationContext,
|
|
788
|
+
llmResponse
|
|
789
|
+
)) {
|
|
790
|
+
yield event;
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
if (!llmResponse.content && !llmResponse.errorCode && !llmResponse.interrupted && !llmResponse.turnComplete && !llmResponse.inputTranscription && !llmResponse.outputTranscription && !llmResponse.usageMetadata && !llmResponse.liveSessionResumptionUpdate) {
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
796
|
+
if (llmResponse.liveSessionResumptionUpdate) {
|
|
797
|
+
yield (0, import_event.createEvent)({
|
|
798
|
+
...modelResponseEvent,
|
|
799
|
+
liveSessionResumptionUpdate: llmResponse.liveSessionResumptionUpdate
|
|
800
|
+
});
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
803
|
+
if (llmResponse.inputTranscription) {
|
|
804
|
+
yield (0, import_event.createEvent)({
|
|
805
|
+
...modelResponseEvent,
|
|
806
|
+
inputTranscription: llmResponse.inputTranscription,
|
|
807
|
+
partial: llmResponse.partial
|
|
808
|
+
});
|
|
809
|
+
return;
|
|
810
|
+
}
|
|
811
|
+
if (llmResponse.outputTranscription) {
|
|
812
|
+
yield (0, import_event.createEvent)({
|
|
813
|
+
...modelResponseEvent,
|
|
814
|
+
outputTranscription: llmResponse.outputTranscription,
|
|
815
|
+
partial: llmResponse.partial
|
|
816
|
+
});
|
|
817
|
+
return;
|
|
818
|
+
}
|
|
819
|
+
const mergedEvent = (0, import_event.createEvent)({
|
|
820
|
+
...modelResponseEvent,
|
|
821
|
+
...llmResponse
|
|
822
|
+
});
|
|
823
|
+
const functionCalls = (0, import_event.getFunctionCalls)(mergedEvent);
|
|
824
|
+
if (mergedEvent.content && functionCalls.length) {
|
|
825
|
+
(0, import_event.populateClientFunctionCallId)(mergedEvent);
|
|
826
|
+
mergedEvent.longRunningToolIds = Array.from(
|
|
827
|
+
(0, import_functions.getLongRunningFunctionCalls)(functionCalls, llmRequest.toolsDict)
|
|
828
|
+
);
|
|
829
|
+
}
|
|
830
|
+
yield mergedEvent;
|
|
831
|
+
if (!functionCalls.length) {
|
|
832
|
+
return;
|
|
833
|
+
}
|
|
834
|
+
const functionResponseEvent = await (0, import_functions.handleFunctionCallsAsync)({
|
|
835
|
+
invocationContext,
|
|
836
|
+
functionCallEvent: mergedEvent,
|
|
837
|
+
toolsDict: llmRequest.toolsDict,
|
|
838
|
+
beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
|
|
839
|
+
afterToolCallbacks: this.canonicalAfterToolCallbacks
|
|
840
|
+
});
|
|
841
|
+
if (!functionResponseEvent) {
|
|
842
|
+
return;
|
|
843
|
+
}
|
|
844
|
+
const authEvent = (0, import_functions.generateAuthEvent)(
|
|
845
|
+
invocationContext,
|
|
846
|
+
functionResponseEvent
|
|
847
|
+
);
|
|
848
|
+
if (authEvent) {
|
|
849
|
+
yield authEvent;
|
|
850
|
+
}
|
|
851
|
+
yield functionResponseEvent;
|
|
388
852
|
}
|
|
389
853
|
async *runOneStepAsync(invocationContext) {
|
|
390
854
|
var _a2, _b2, _c;
|
|
@@ -405,22 +869,32 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
405
869
|
}
|
|
406
870
|
}
|
|
407
871
|
const allTools = [...this.tools];
|
|
408
|
-
if (this.
|
|
872
|
+
if (this.mode === "task") {
|
|
873
|
+
allTools.push(this.finishTaskTool);
|
|
874
|
+
} else if (this.outputSchema && allTools.length > 0 && !(0, import_output_schema_utils.canUseOutputSchemaWithTools)(this.canonicalModel.model)) {
|
|
409
875
|
const setModelResponseTool = new import_function_tool.FunctionTool({
|
|
410
876
|
name: "set_model_response",
|
|
411
877
|
description: "Call this tool to submit your final response conforming to the output schema. Use this tool only when you have collected all the information and are ready to return the final answer.",
|
|
412
878
|
parameters: this.outputSchema,
|
|
413
|
-
execute: async (args, toolContext) => {
|
|
879
|
+
execute: /* @__PURE__ */ __name(async (args, toolContext) => {
|
|
414
880
|
if (toolContext) {
|
|
415
881
|
toolContext.actions.skipSummarization = true;
|
|
416
882
|
}
|
|
417
883
|
return JSON.stringify(args);
|
|
418
|
-
}
|
|
884
|
+
}, "execute")
|
|
419
885
|
});
|
|
420
886
|
allTools.push(setModelResponseTool);
|
|
421
887
|
}
|
|
888
|
+
const modelResponseEvent = (0, import_event.createEvent)({
|
|
889
|
+
invocationId: invocationContext.invocationId,
|
|
890
|
+
author: this.name,
|
|
891
|
+
branch: invocationContext.branch
|
|
892
|
+
});
|
|
422
893
|
for (const toolUnion of allTools) {
|
|
423
|
-
const toolContext = new import_context.Context({
|
|
894
|
+
const toolContext = new import_context.Context({
|
|
895
|
+
invocationContext,
|
|
896
|
+
eventActions: modelResponseEvent.actions
|
|
897
|
+
});
|
|
424
898
|
const tools = (await convertToolUnionToTools(
|
|
425
899
|
toolUnion,
|
|
426
900
|
new import_readonly_context.ReadonlyContext(invocationContext)
|
|
@@ -437,18 +911,13 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
437
911
|
if (invocationContext.endInvocation || ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted)) {
|
|
438
912
|
return;
|
|
439
913
|
}
|
|
440
|
-
const modelResponseEvent = (0, import_event.createEvent)({
|
|
441
|
-
invocationId: invocationContext.invocationId,
|
|
442
|
-
author: this.name,
|
|
443
|
-
branch: invocationContext.branch
|
|
444
|
-
});
|
|
445
914
|
const span = import_tracing.tracer.startSpan("call_llm");
|
|
446
915
|
const ctx = import_api.trace.setSpan(import_api.context.active(), span);
|
|
447
916
|
yield* (0, import_tracing.runAsyncGeneratorWithOtelContext)(
|
|
448
917
|
ctx,
|
|
449
918
|
this,
|
|
450
919
|
async function* () {
|
|
451
|
-
const responsesGenerator = async function* () {
|
|
920
|
+
const responsesGenerator = /* @__PURE__ */ __name(async function* () {
|
|
452
921
|
var _a3, _b3;
|
|
453
922
|
for await (const llmResponse of this.callLlmAsync(
|
|
454
923
|
invocationContext,
|
|
@@ -472,7 +941,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
472
941
|
yield event;
|
|
473
942
|
}
|
|
474
943
|
}
|
|
475
|
-
};
|
|
944
|
+
}, "responsesGenerator");
|
|
476
945
|
yield* this.runAndHandleError(
|
|
477
946
|
responsesGenerator.call(this),
|
|
478
947
|
invocationContext,
|
|
@@ -496,7 +965,8 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
496
965
|
yield event;
|
|
497
966
|
}
|
|
498
967
|
}
|
|
499
|
-
|
|
968
|
+
const isUsageOnlyReport = !llmResponse.content && !!llmResponse.usageMetadata;
|
|
969
|
+
if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted && !isUsageOnlyReport) {
|
|
500
970
|
return;
|
|
501
971
|
}
|
|
502
972
|
const mergedEvent = (0, import_event.createEvent)({
|
|
@@ -527,13 +997,32 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
527
997
|
invocationContext.endInvocation = true;
|
|
528
998
|
return;
|
|
529
999
|
}
|
|
530
|
-
const
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
1000
|
+
const eventQueue = new import_async_queue.AsyncQueue();
|
|
1001
|
+
invocationContext.eventQueue = eventQueue;
|
|
1002
|
+
const toolTask = (async () => {
|
|
1003
|
+
try {
|
|
1004
|
+
const event = await (0, import_functions.handleFunctionCallsAsync)({
|
|
1005
|
+
invocationContext,
|
|
1006
|
+
functionCallEvent: mergedEvent,
|
|
1007
|
+
toolsDict: llmRequest.toolsDict,
|
|
1008
|
+
beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
|
|
1009
|
+
afterToolCallbacks: this.canonicalAfterToolCallbacks
|
|
1010
|
+
});
|
|
1011
|
+
return { event };
|
|
1012
|
+
} catch (error) {
|
|
1013
|
+
return { event: null, error };
|
|
1014
|
+
} finally {
|
|
1015
|
+
eventQueue.close();
|
|
1016
|
+
}
|
|
1017
|
+
})();
|
|
1018
|
+
for await (const queuedEvent of eventQueue) {
|
|
1019
|
+
yield queuedEvent;
|
|
1020
|
+
}
|
|
1021
|
+
const { event: functionResponseEvent, error: toolError } = await toolTask;
|
|
1022
|
+
invocationContext.eventQueue = void 0;
|
|
1023
|
+
if (toolError) {
|
|
1024
|
+
throw toolError;
|
|
1025
|
+
}
|
|
537
1026
|
if (!functionResponseEvent || ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted)) {
|
|
538
1027
|
return;
|
|
539
1028
|
}
|
|
@@ -579,7 +1068,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
579
1068
|
* @throws Error if the agent is not found.
|
|
580
1069
|
*/
|
|
581
1070
|
getAgentByName(invocationContext, agentName) {
|
|
582
|
-
const rootAgent = invocationContext.
|
|
1071
|
+
const rootAgent = (0, import_invocation_context.requireAgent)(invocationContext).rootAgent;
|
|
583
1072
|
const agentToRun = rootAgent.findAgent(agentName);
|
|
584
1073
|
if (!agentToRun) {
|
|
585
1074
|
throw new Error(`Agent ${agentName} not found in the agent tree.`);
|
|
@@ -751,10 +1240,12 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
|
|
|
751
1240
|
// --------------------------------------------------------------------------
|
|
752
1241
|
// #END LlmFlow Logic
|
|
753
1242
|
// --------------------------------------------------------------------------
|
|
754
|
-
// TODO - b/425992518:
|
|
755
|
-
// -
|
|
756
|
-
// -
|
|
757
|
-
}
|
|
1243
|
+
// TODO - b/425992518: LlmAgent features not implemented yet.
|
|
1244
|
+
// - codeExecutor
|
|
1245
|
+
// - configuring agents from a YAML file
|
|
1246
|
+
};
|
|
1247
|
+
__name(_LlmAgent, "LlmAgent");
|
|
1248
|
+
let LlmAgent = _LlmAgent;
|
|
758
1249
|
// Annotate the CommonJS export names for ESM import in node:
|
|
759
1250
|
0 && (module.exports = {
|
|
760
1251
|
LlmAgent,
|