@google/adk 1.6.0 → 2.0.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 +18 -0
- package/dist/cjs/a2a/a2a_remote_agent.js +5 -2
- package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
- package/dist/cjs/a2a/agent_card.js +33 -3
- package/dist/cjs/a2a/agent_executor.js +25 -16
- package/dist/cjs/a2a/agent_to_a2a.js +22 -10
- 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 +2 -0
- package/dist/cjs/a2a/index.js +53 -0
- package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
- package/dist/cjs/a2a/part_converter_utils.js +12 -0
- package/dist/cjs/agents/active_streaming_tool.js +5 -2
- package/dist/cjs/agents/base_agent.js +46 -9
- package/dist/cjs/agents/context.js +5 -2
- package/dist/cjs/agents/framework_function_calls.js +64 -0
- package/dist/cjs/agents/functions.js +38 -16
- package/dist/cjs/agents/instructions.js +51 -12
- package/dist/cjs/agents/invocation_context.js +42 -8
- package/dist/cjs/agents/live_request_queue.js +29 -5
- package/dist/cjs/agents/llm_agent.js +535 -45
- package/dist/cjs/agents/loop_agent.js +19 -2
- package/dist/cjs/agents/parallel_agent.js +21 -2
- package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
- 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 +18 -5
- package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
- package/dist/cjs/agents/processors/content_request_processor.js +9 -4
- 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 +313 -92
- package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
- package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
- package/dist/cjs/agents/readonly_context.js +7 -3
- package/dist/cjs/agents/routed_agent.js +6 -13
- package/dist/cjs/agents/run_config.js +12 -0
- package/dist/cjs/agents/sequential_agent.js +20 -3
- package/dist/cjs/agents/user_input_request.js +145 -0
- package/dist/cjs/apps/app.js +11 -11
- package/dist/cjs/apps/resumability_config.js +2 -0
- package/dist/cjs/artifacts/file_artifact_service.js +21 -2
- 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 +5 -2
- package/dist/cjs/auth/auth_handler.js +5 -2
- 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 +5 -2
- package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
- package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
- 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 +6 -2
- package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
- package/dist/cjs/code_executors/code_execution_utils.js +6 -0
- package/dist/cjs/code_executors/code_executor_context.js +5 -2
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +8 -2
- package/dist/cjs/common.js +106 -1
- package/dist/cjs/context/agent_controlled_context_compactor.js +5 -2
- package/dist/cjs/context/anchored_context_compactor.js +5 -2
- package/dist/cjs/context/compaction_utils.js +3 -0
- package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
- package/dist/cjs/context/token_based_context_compactor.js +9 -3
- package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
- package/dist/cjs/context/truncating_context_compactor.js +5 -2
- package/dist/cjs/environment/base_environment.js +97 -0
- package/dist/cjs/environment/local_environment.js +186 -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 +5 -0
- package/dist/cjs/events/structured_events.js +2 -0
- package/dist/cjs/examples/base_example_provider.js +6 -2
- package/dist/cjs/examples/example_util.js +3 -0
- package/dist/cjs/features/feature_registry.js +7 -0
- package/dist/cjs/index.js +7 -25
- package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
- 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/vertex_ai_memory_bank_service.js +17 -2
- package/dist/cjs/models/apigee_llm.js +9 -3
- package/dist/cjs/models/base_llm.js +7 -3
- package/dist/cjs/models/gemini_llm_connection.js +5 -2
- package/dist/cjs/models/google_llm.js +24 -12
- package/dist/cjs/models/interactions_utils.js +16 -0
- package/dist/cjs/models/llm_request.js +4 -0
- package/dist/cjs/models/llm_response.js +2 -0
- package/dist/cjs/models/registry.js +6 -2
- package/dist/cjs/models/routed_llm.js +4 -13
- 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/security_plugin.js +15 -8
- package/dist/cjs/runner/in_memory_runner.js +5 -2
- package/dist/cjs/runner/runner.js +208 -18
- package/dist/cjs/sessions/base_session_service.js +13 -2
- package/dist/cjs/sessions/database_session_service.js +6 -2
- package/dist/cjs/sessions/db/operations.js +34 -6
- package/dist/cjs/sessions/db/schema.js +16 -8
- package/dist/cjs/sessions/in_memory_session_service.js +22 -14
- package/dist/cjs/sessions/registry.js +4 -1
- 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 +110 -15
- 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 +5 -0
- package/dist/cjs/telemetry/tracing.js +60 -4
- package/dist/cjs/tools/agent_tool.js +6 -2
- package/dist/cjs/tools/base_tool.js +24 -2
- package/dist/cjs/tools/base_toolset.js +6 -2
- package/dist/cjs/tools/consolidate_context_tool.js +5 -2
- package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
- 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 +5 -2
- package/dist/cjs/tools/function_tool.js +73 -8
- package/dist/cjs/tools/get_user_choice_tool.js +3 -2
- package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
- package/dist/cjs/tools/google_search_tool.js +5 -2
- package/dist/cjs/tools/load_artifacts_tool.js +8 -2
- package/dist/cjs/tools/load_memory_tool.js +5 -2
- package/dist/cjs/tools/load_web_page.js +21 -1
- 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 +5 -2
- 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 +4 -0
- 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 +2 -0
- 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 +23 -5
- package/dist/cjs/tools/preload_memory_tool.js +5 -2
- package/dist/cjs/tools/request_input_tool.js +6 -4
- 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 +5 -2
- package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
- package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
- 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 +2 -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 -2
- 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 +13 -4
- 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_uri.js +66 -0
- package/dist/cjs/utils/schema.js +178 -0
- package/dist/cjs/utils/simple_zod_to_json.js +17 -4
- 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 +156 -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 +19 -0
- package/dist/esm/a2a/a2a_remote_agent.js +6 -2
- package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
- package/dist/esm/a2a/agent_card.js +34 -3
- package/dist/esm/a2a/agent_executor.js +27 -17
- package/dist/esm/a2a/agent_to_a2a.js +44 -15
- 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 -34
- package/dist/esm/a2a/executor_context.js +3 -0
- package/dist/esm/a2a/index.js +20 -0
- package/dist/esm/a2a/metadata_converter_utils.js +6 -0
- package/dist/esm/a2a/part_converter_utils.js +13 -0
- package/dist/esm/agents/active_streaming_tool.js +6 -2
- package/dist/esm/agents/base_agent.js +47 -9
- package/dist/esm/agents/context.js +6 -2
- package/dist/esm/agents/framework_function_calls.js +34 -0
- package/dist/esm/agents/functions.js +42 -13
- package/dist/esm/agents/instructions.js +52 -12
- package/dist/esm/agents/invocation_context.js +41 -7
- package/dist/esm/agents/live_request_queue.js +30 -5
- package/dist/esm/agents/llm_agent.js +536 -45
- package/dist/esm/agents/loop_agent.js +21 -2
- package/dist/esm/agents/parallel_agent.js +23 -2
- package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
- 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 +19 -5
- package/dist/esm/agents/processors/content_processor_utils.js +88 -16
- package/dist/esm/agents/processors/content_request_processor.js +10 -4
- 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 +318 -93
- package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
- package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/esm/agents/readonly_context.js +8 -3
- package/dist/esm/agents/routed_agent.js +6 -14
- package/dist/esm/agents/run_config.js +13 -0
- package/dist/esm/agents/sequential_agent.js +22 -3
- package/dist/esm/agents/user_input_request.js +120 -0
- package/dist/esm/apps/app.js +14 -11
- package/dist/esm/apps/resumability_config.js +3 -0
- package/dist/esm/artifacts/file_artifact_service.js +22 -2
- 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 +6 -2
- package/dist/esm/auth/auth_handler.js +6 -2
- 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 +6 -2
- package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
- 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 +7 -2
- package/dist/esm/code_executors/built_in_code_executor.js +7 -2
- package/dist/esm/code_executors/code_execution_utils.js +7 -0
- package/dist/esm/code_executors/code_executor_context.js +6 -2
- package/dist/esm/code_executors/unsafe_local_code_executor.js +9 -2
- package/dist/esm/common.js +109 -4
- package/dist/esm/context/agent_controlled_context_compactor.js +6 -2
- package/dist/esm/context/anchored_context_compactor.js +6 -2
- package/dist/esm/context/compaction_utils.js +4 -0
- package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
- package/dist/esm/context/token_based_context_compactor.js +10 -3
- package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
- package/dist/esm/context/truncating_context_compactor.js +6 -2
- package/dist/esm/environment/base_environment.js +71 -0
- package/dist/esm/environment/local_environment.js +150 -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 +6 -0
- package/dist/esm/events/structured_events.js +3 -0
- package/dist/esm/examples/base_example_provider.js +7 -2
- package/dist/esm/examples/example_util.js +4 -0
- package/dist/esm/features/feature_registry.js +8 -0
- package/dist/esm/index.js +4 -15
- package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
- 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/vertex_ai_memory_bank_service.js +18 -2
- package/dist/esm/models/apigee_llm.js +10 -3
- package/dist/esm/models/base_llm.js +8 -3
- package/dist/esm/models/gemini_llm_connection.js +6 -2
- package/dist/esm/models/google_llm.js +26 -13
- package/dist/esm/models/interactions_utils.js +17 -0
- package/dist/esm/models/llm_request.js +5 -0
- package/dist/esm/models/llm_response.js +3 -0
- package/dist/esm/models/registry.js +7 -2
- package/dist/esm/models/routed_llm.js +4 -14
- 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/security_plugin.js +14 -6
- package/dist/esm/runner/in_memory_runner.js +6 -2
- package/dist/esm/runner/runner.js +215 -20
- package/dist/esm/sessions/base_session_service.js +14 -2
- package/dist/esm/sessions/database_session_service.js +7 -2
- package/dist/esm/sessions/db/operations.js +34 -6
- package/dist/esm/sessions/db/schema.js +16 -8
- package/dist/esm/sessions/in_memory_session_service.js +23 -14
- package/dist/esm/sessions/registry.js +5 -1
- 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 +110 -15
- 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 +6 -0
- package/dist/esm/telemetry/tracing.js +59 -4
- package/dist/esm/tools/agent_tool.js +7 -2
- package/dist/esm/tools/base_tool.js +25 -2
- package/dist/esm/tools/base_toolset.js +7 -2
- package/dist/esm/tools/consolidate_context_tool.js +6 -2
- package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
- 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 +6 -2
- package/dist/esm/tools/function_tool.js +74 -8
- package/dist/esm/tools/get_user_choice_tool.js +4 -2
- package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
- package/dist/esm/tools/google_search_tool.js +6 -2
- package/dist/esm/tools/load_artifacts_tool.js +9 -2
- package/dist/esm/tools/load_memory_tool.js +6 -2
- package/dist/esm/tools/load_web_page.js +22 -1
- package/dist/esm/tools/long_running_tool.js +6 -2
- package/dist/esm/tools/mcp/index.js +11 -0
- package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
- 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 +5 -0
- 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 +2 -0
- 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 +23 -5
- package/dist/esm/tools/preload_memory_tool.js +6 -2
- package/dist/esm/tools/request_input_tool.js +7 -4
- 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 +6 -2
- package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
- package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
- 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 +3 -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 -2
- 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 +14 -4
- 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_uri.js +39 -0
- package/dist/esm/utils/schema.js +152 -0
- package/dist/esm/utils/simple_zod_to_json.js +15 -4
- 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 +131 -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/trigger.js +7 -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/agent_card.d.ts +3 -3
- package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
- package/dist/types/a2a/event_processor_utils.d.ts +17 -2
- package/dist/types/a2a/index.d.ts +18 -0
- package/dist/types/agents/base_agent.d.ts +37 -9
- package/dist/types/agents/framework_function_calls.d.ts +26 -0
- package/dist/types/agents/functions.d.ts +1 -2
- package/dist/types/agents/invocation_context.d.ts +95 -3
- package/dist/types/agents/live_request_queue.d.ts +7 -1
- package/dist/types/agents/llm_agent.d.ts +77 -1
- 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/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/run_config.d.ts +57 -2
- 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/auth/credential_response_binding.d.ts +24 -0
- package/dist/types/common.d.ts +18 -8
- package/dist/types/environment/base_environment.d.ts +101 -0
- package/dist/types/environment/local_environment.d.ts +72 -0
- package/dist/types/events/event.d.ts +94 -1
- package/dist/types/events/event_actions.d.ts +10 -0
- package/dist/types/index.d.ts +5 -13
- package/dist/types/models/apigee_llm.d.ts +4 -4
- package/dist/types/models/google_llm.d.ts +2 -1
- package/dist/types/plugins/base_plugin.d.ts +35 -0
- package/dist/types/plugins/plugin_manager.d.ts +20 -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 +59 -3
- package/dist/types/sessions/base_session_service.d.ts +2 -2
- 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 +15 -0
- package/dist/types/tools/finish_task_tool.d.ts +47 -0
- package/dist/types/tools/function_tool.d.ts +46 -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 +1 -1
- package/dist/types/tools/request_input_tool.d.ts +6 -1
- package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
- package/dist/types/tools/tool_confirmation.d.ts +47 -0
- package/dist/types/utils/async_queue.d.ts +34 -2
- 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/genai_schema_to_json.d.ts +25 -0
- package/dist/types/utils/optional_peer.d.ts +36 -0
- package/dist/types/utils/redact_uri.d.ts +28 -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/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/a2a/a2a_event.js +19 -0
- package/dist/web/a2a/a2a_remote_agent.js +6 -2
- package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
- package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
- package/dist/web/a2a/agent_card.js +34 -3
- package/dist/web/a2a/agent_executor.js +45 -17
- package/dist/web/a2a/agent_to_a2a.js +44 -15
- package/dist/web/a2a/auth.js +4 -0
- package/dist/web/a2a/event_converter_utils.js +10 -0
- package/dist/web/a2a/event_processor_utils.js +73 -34
- package/dist/web/a2a/executor_context.js +3 -0
- package/dist/web/a2a/index.js +20 -0
- package/dist/web/a2a/metadata_converter_utils.js +5 -0
- package/dist/web/a2a/part_converter_utils.js +13 -0
- package/dist/web/agents/active_streaming_tool.js +6 -2
- package/dist/web/agents/base_agent.js +48 -9
- package/dist/web/agents/context.js +6 -2
- package/dist/web/agents/framework_function_calls.js +34 -0
- package/dist/web/agents/functions.js +42 -13
- package/dist/web/agents/instructions.js +52 -12
- package/dist/web/agents/invocation_context.js +56 -7
- package/dist/web/agents/live_request_queue.js +30 -5
- package/dist/web/agents/llm_agent.js +630 -52
- package/dist/web/agents/loop_agent.js +21 -2
- package/dist/web/agents/parallel_agent.js +23 -2
- package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
- package/dist/web/agents/processors/base_llm_processor.js +10 -4
- package/dist/web/agents/processors/basic_llm_request_processor.js +6 -3
- package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
- package/dist/web/agents/processors/content_processor_utils.js +87 -16
- package/dist/web/agents/processors/content_request_processor.js +10 -4
- package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
- package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
- package/dist/web/agents/processors/instructions_llm_request_processor.js +6 -2
- package/dist/web/agents/processors/interactions_request_processor.js +6 -2
- package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
- package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
- package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
- package/dist/web/agents/readonly_context.js +8 -3
- package/dist/web/agents/routed_agent.js +6 -14
- package/dist/web/agents/run_config.js +12 -0
- package/dist/web/agents/sequential_agent.js +22 -3
- package/dist/web/agents/user_input_request.js +135 -0
- package/dist/web/apps/app.js +14 -11
- package/dist/web/apps/resumability_config.js +2 -0
- package/dist/web/artifacts/file_artifact_service.js +22 -2
- package/dist/web/artifacts/gcs_artifact_service.js +56 -11
- package/dist/web/artifacts/in_memory_artifact_service.js +10 -2
- package/dist/web/artifacts/registry.js +7 -1
- package/dist/web/artifacts/scoped_artifact_service.js +5 -2
- package/dist/web/auth/auth_handler.js +5 -2
- package/dist/web/auth/auth_preprocessor.js +50 -41
- package/dist/web/auth/auth_provider_registry.js +6 -2
- package/dist/web/auth/auth_schemes.js +3 -0
- package/dist/web/auth/credential_response_binding.js +91 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +6 -2
- package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
- package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
- package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
- package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
- package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
- package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
- package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
- package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
- package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
- package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
- package/dist/web/code_executors/base_code_executor.js +7 -2
- package/dist/web/code_executors/built_in_code_executor.js +7 -2
- package/dist/web/code_executors/code_execution_utils.js +7 -0
- package/dist/web/code_executors/code_executor_context.js +6 -2
- package/dist/web/code_executors/unsafe_local_code_executor.js +9 -2
- package/dist/web/common.js +109 -4
- package/dist/web/context/agent_controlled_context_compactor.js +6 -2
- package/dist/web/context/anchored_context_compactor.js +5 -2
- package/dist/web/context/compaction_utils.js +4 -0
- package/dist/web/context/summarizers/llm_summarizer.js +6 -2
- package/dist/web/context/token_based_context_compactor.js +10 -3
- package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
- package/dist/web/context/truncating_context_compactor.js +6 -2
- package/dist/web/environment/base_environment.js +71 -0
- package/dist/web/environment/local_environment.js +165 -0
- package/dist/web/events/compacted_event.js +4 -0
- package/dist/web/events/event.js +37 -3
- package/dist/web/events/event_actions.js +5 -0
- package/dist/web/events/structured_events.js +3 -0
- package/dist/web/examples/base_example_provider.js +7 -2
- package/dist/web/examples/example_util.js +4 -0
- package/dist/web/features/feature_registry.js +8 -0
- package/dist/web/index.js +4 -15
- package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
- package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
- package/dist/web/integrations/agent_registry/helpers.js +4 -0
- package/dist/web/memory/in_memory_memory_service.js +9 -2
- package/dist/web/memory/vertex_ai_memory_bank_service.js +17 -2
- package/dist/web/models/apigee_llm.js +9 -3
- package/dist/web/models/base_llm.js +8 -3
- package/dist/web/models/gemini_llm_connection.js +6 -2
- package/dist/web/models/google_llm.js +25 -13
- package/dist/web/models/interactions_utils.js +17 -0
- package/dist/web/models/llm_request.js +5 -0
- package/dist/web/models/llm_response.js +3 -0
- package/dist/web/models/registry.js +7 -2
- package/dist/web/models/routed_llm.js +4 -14
- package/dist/web/plugins/base_plugin.js +39 -5
- package/dist/web/plugins/global_instruction_plugin.js +6 -2
- package/dist/web/plugins/logging_plugin.js +14 -8
- package/dist/web/plugins/plugin_manager.js +38 -2
- package/dist/web/plugins/security_plugin.js +14 -6
- package/dist/web/runner/in_memory_runner.js +6 -2
- package/dist/web/runner/runner.js +232 -20
- package/dist/web/sessions/base_session_service.js +14 -2
- package/dist/web/sessions/database_session_service.js +6 -2
- package/dist/web/sessions/db/operations.js +34 -6
- package/dist/web/sessions/db/schema.js +16 -8
- package/dist/web/sessions/in_memory_session_service.js +23 -14
- package/dist/web/sessions/registry.js +5 -1
- package/dist/web/sessions/session.js +3 -0
- package/dist/web/sessions/state.js +77 -7
- package/dist/web/sessions/state_write_order.js +74 -0
- package/dist/web/sessions/vertex_ai_session_service.js +118 -15
- package/dist/web/skills/gcp_skill_registry.js +2 -0
- package/dist/web/skills/loader.js +22 -10
- package/dist/web/skills/prompt.js +4 -0
- package/dist/web/telemetry/google_cloud.js +54 -9
- package/dist/web/telemetry/setup.js +6 -0
- package/dist/web/telemetry/tracing.js +77 -7
- package/dist/web/tools/agent_tool.js +7 -2
- package/dist/web/tools/base_tool.js +25 -2
- package/dist/web/tools/base_toolset.js +7 -2
- package/dist/web/tools/consolidate_context_tool.js +6 -2
- package/dist/web/tools/enterprise_web_search_tool.js +7 -2
- package/dist/web/tools/example_tool.js +6 -2
- package/dist/web/tools/exit_loop_tool.js +6 -2
- package/dist/web/tools/finish_task_tool.js +92 -0
- package/dist/web/tools/forwarding_artifact_service.js +6 -2
- package/dist/web/tools/function_tool.js +74 -8
- package/dist/web/tools/get_user_choice_tool.js +4 -2
- package/dist/web/tools/google_maps_grounding_tool.js +7 -2
- package/dist/web/tools/google_search_tool.js +6 -2
- package/dist/web/tools/load_artifacts_tool.js +9 -2
- package/dist/web/tools/load_memory_tool.js +6 -2
- package/dist/web/tools/load_web_page.js +22 -1
- package/dist/web/tools/long_running_tool.js +5 -2
- package/dist/web/tools/mcp/index.js +11 -0
- package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
- package/dist/web/tools/mcp/mcp_session_manager.js +45 -9
- package/dist/web/tools/mcp/mcp_tool.js +6 -2
- package/dist/web/tools/mcp/mcp_toolset.js +5 -2
- package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
- package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
- package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
- package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
- package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
- package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
- package/dist/web/tools/preload_memory_tool.js +6 -2
- package/dist/web/tools/request_input_tool.js +7 -4
- package/dist/web/tools/skill/list_skills_tool.js +2 -0
- package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/web/tools/skill/load_skill_tool.js +4 -1
- package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
- package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
- package/dist/web/tools/skill/search_skills_tool.js +2 -0
- package/dist/web/tools/skill/skill_toolset.js +25 -0
- package/dist/web/tools/tool_confirmation.js +24 -2
- package/dist/web/tools/url_context_tool.js +6 -2
- package/dist/web/tools/vertex_ai_search_tool.js +6 -2
- package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
- package/dist/web/utils/async_hooks_shim.js +6 -2
- package/dist/web/utils/async_queue.js +46 -18
- package/dist/web/utils/branch_trie.js +3 -0
- package/dist/web/utils/case_utils.js +3 -0
- package/dist/web/utils/client_labels.js +6 -0
- package/dist/web/utils/crypto_shim.js +3 -0
- package/dist/web/utils/deprecated.js +40 -0
- package/dist/web/utils/env_aware_utils.js +41 -0
- package/dist/web/utils/error_utils.js +9 -0
- package/dist/web/utils/experimental.js +10 -2
- package/dist/web/utils/failover_utils.js +4 -0
- package/dist/web/utils/file_extension_utils.js +4 -0
- package/dist/web/utils/file_utils.js +7 -2
- package/dist/web/utils/gemini_schema_util.js +6 -2
- package/dist/web/utils/genai_schema_to_json.js +80 -0
- package/dist/web/utils/live_connection_utils.js +5 -2
- package/dist/web/utils/logger.js +14 -4
- package/dist/web/utils/model_name.js +9 -0
- package/dist/web/utils/object_notation_utils.js +8 -3
- package/dist/web/utils/optional_peer.js +38 -0
- package/dist/web/utils/output_schema_utils.js +3 -0
- package/dist/web/utils/partial_copy.js +3 -0
- package/dist/web/utils/redact_uri.js +39 -0
- package/dist/web/utils/schema.js +167 -0
- package/dist/web/utils/simple_zod_to_json.js +15 -4
- package/dist/web/utils/streaming_utils.js +14 -6
- package/dist/web/utils/task.js +8 -4
- package/dist/web/utils/variant_utils.js +5 -2
- package/dist/web/utils/vertex_ai_utils.js +5 -2
- package/dist/web/version.js +1 -1
- package/dist/web/workflow/base_node.js +215 -0
- package/dist/web/workflow/branch_path.js +77 -0
- package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
- package/dist/web/workflow/errors.js +140 -0
- package/dist/web/workflow/graph.js +127 -0
- package/dist/web/workflow/index.js +80 -0
- package/dist/web/workflow/node.js +87 -0
- package/dist/web/workflow/node_builders.js +40 -0
- package/dist/web/workflow/node_context.js +236 -0
- package/dist/web/workflow/node_error_event.js +86 -0
- package/dist/web/workflow/node_runner.js +481 -0
- package/dist/web/workflow/node_state.js +43 -0
- package/dist/web/workflow/node_status.js +20 -0
- package/dist/web/workflow/nodes/function_node.js +221 -0
- package/dist/web/workflow/nodes/join_node.js +47 -0
- package/dist/web/workflow/nodes/node_tool.js +131 -0
- package/dist/web/workflow/nodes/parallel_worker.js +120 -0
- package/dist/web/workflow/nodes/tool_node.js +126 -0
- package/dist/web/workflow/request_input.js +36 -0
- package/dist/web/workflow/retry_config.js +43 -0
- package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
- package/dist/web/workflow/run_node_as_invocation.js +170 -0
- package/dist/web/workflow/schedule_dynamic_node.js +26 -0
- package/dist/web/workflow/trigger.js +7 -0
- package/dist/web/workflow/utils/graph_parser.js +188 -0
- package/dist/web/workflow/utils/graph_validation.js +189 -0
- package/dist/web/workflow/utils/hitl_utils.js +239 -0
- package/dist/web/workflow/utils/rehydration_utils.js +342 -0
- package/dist/web/workflow/utils/retry_utils.js +82 -0
- package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
- package/dist/web/workflow/workflow.js +529 -0
- package/package.json +82 -8
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
|
+
var __defProps = Object.defineProperties;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
6
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -20,6 +22,8 @@ var __spreadValues = (a, b) => {
|
|
|
20
22
|
}
|
|
21
23
|
return a;
|
|
22
24
|
};
|
|
25
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
26
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
23
27
|
var __await = function(promise, isYieldStar) {
|
|
24
28
|
this[0] = promise;
|
|
25
29
|
this[1] = isYieldStar;
|
|
@@ -71,7 +75,12 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
|
|
|
71
75
|
*/
|
|
72
76
|
var _a, _b;
|
|
73
77
|
import { context, trace } from "@opentelemetry/api";
|
|
78
|
+
import { FinishTaskTool } from "../tools/finish_task_tool.js";
|
|
74
79
|
import { FunctionTool } from "../tools/function_tool.js";
|
|
80
|
+
import { AsyncQueue } from "../utils/async_queue.js";
|
|
81
|
+
import { isBaseNode } from "../workflow/base_node.js";
|
|
82
|
+
import { NodeTool } from "../workflow/nodes/node_tool.js";
|
|
83
|
+
import { runLlmAgentAsNode } from "../workflow/run_llm_agent_as_node.js";
|
|
75
84
|
import {
|
|
76
85
|
createEvent,
|
|
77
86
|
createNewEventId,
|
|
@@ -91,6 +100,7 @@ import {
|
|
|
91
100
|
traceCallLlm,
|
|
92
101
|
tracer
|
|
93
102
|
} from "../telemetry/tracing.js";
|
|
103
|
+
import { parseWithSchema } from "../utils/schema.js";
|
|
94
104
|
import { isZodObject, zodObjectToSchema } from "../utils/simple_zod_to_json.js";
|
|
95
105
|
import { BaseAgent } from "./base_agent.js";
|
|
96
106
|
import {
|
|
@@ -100,6 +110,7 @@ import {
|
|
|
100
110
|
handleFunctionCallsAsync
|
|
101
111
|
} from "./functions.js";
|
|
102
112
|
import { AUTH_PREPROCESSOR } from "../auth/auth_preprocessor.js";
|
|
113
|
+
import { requireAgent } from "./invocation_context.js";
|
|
103
114
|
import { AGENT_TRANSFER_LLM_REQUEST_PROCESSOR } from "./processors/agent_transfer_llm_request_processor.js";
|
|
104
115
|
import { BASIC_LLM_REQUEST_PROCESSOR } from "./processors/basic_llm_request_processor.js";
|
|
105
116
|
import { CODE_EXECUTION_REQUEST_PROCESSOR } from "./processors/code_execution_request_processor.js";
|
|
@@ -109,48 +120,112 @@ import { IDENTITY_LLM_REQUEST_PROCESSOR } from "./processors/identity_llm_reques
|
|
|
109
120
|
import { INSTRUCTIONS_LLM_REQUEST_PROCESSOR } from "./processors/instructions_llm_request_processor.js";
|
|
110
121
|
import { INTERACTIONS_REQUEST_PROCESSOR } from "./processors/interactions_request_processor.js";
|
|
111
122
|
import { REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR } from "./processors/request_confirmation_llm_request_processor.js";
|
|
123
|
+
import { REQUEST_INPUT_LLM_REQUEST_PROCESSOR } from "./processors/request_input_llm_request_processor.js";
|
|
112
124
|
import { TOOL_FILTER_REQUEST_PROCESSOR } from "./processors/tool_filter_request_processor.js";
|
|
113
125
|
import { ReadonlyContext } from "./readonly_context.js";
|
|
114
126
|
import { StreamingMode } from "./run_config.js";
|
|
127
|
+
const MAX_LIVE_RECONNECT_ATTEMPTS = 5;
|
|
128
|
+
const TRANSFER_AGENT_DELAY_MS = 1e3;
|
|
129
|
+
const _LiveReconnectSignal = class _LiveReconnectSignal extends Error {
|
|
130
|
+
constructor(reason) {
|
|
131
|
+
super("live reconnect requested: ".concat(reason));
|
|
132
|
+
this.reason = reason;
|
|
133
|
+
this.name = "LiveReconnectSignal";
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
__name(_LiveReconnectSignal, "LiveReconnectSignal");
|
|
137
|
+
let LiveReconnectSignal = _LiveReconnectSignal;
|
|
138
|
+
function isRecoverableLiveError(err) {
|
|
139
|
+
var _a2;
|
|
140
|
+
if (err instanceof LiveReconnectSignal) return true;
|
|
141
|
+
if (!(err instanceof Error)) return false;
|
|
142
|
+
const code = err.code;
|
|
143
|
+
if (code === 1006 || code === 1011 || code === 1012) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
const message = (_a2 = err.message) != null ? _a2 : "";
|
|
147
|
+
return /ConnectionClosed|connection closed|ECONNRESET|socket hang up/i.test(
|
|
148
|
+
message
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
__name(isRecoverableLiveError, "isRecoverableLiveError");
|
|
152
|
+
function sleep(ms) {
|
|
153
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
154
|
+
}
|
|
155
|
+
__name(sleep, "sleep");
|
|
156
|
+
const LIVE_KEYS = [
|
|
157
|
+
"responseModalities",
|
|
158
|
+
"speechConfig",
|
|
159
|
+
"outputAudioTranscription",
|
|
160
|
+
"inputAudioTranscription",
|
|
161
|
+
"realtimeInputConfig",
|
|
162
|
+
"contextWindowCompression",
|
|
163
|
+
"proactivity",
|
|
164
|
+
"enableAffectiveDialog"
|
|
165
|
+
];
|
|
166
|
+
function applyLiveRunConfig(runConfig, llmRequest) {
|
|
167
|
+
var _a2;
|
|
168
|
+
if (!runConfig) return;
|
|
169
|
+
const liveConfig = (_a2 = llmRequest.liveConnectConfig) != null ? _a2 : llmRequest.liveConnectConfig = {};
|
|
170
|
+
for (const k of LIVE_KEYS) {
|
|
171
|
+
if (runConfig[k] !== void 0) {
|
|
172
|
+
liveConfig[k] = runConfig[k];
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
__name(applyLiveRunConfig, "applyLiveRunConfig");
|
|
115
177
|
const ADK_AGENT_NAME_LABEL_KEY = "adk_agent_name";
|
|
116
178
|
async function convertToolUnionToTools(toolUnion, context2) {
|
|
117
179
|
if (isBaseTool(toolUnion)) {
|
|
118
180
|
return [toolUnion];
|
|
119
181
|
}
|
|
182
|
+
if (isBaseNode(toolUnion)) {
|
|
183
|
+
return [new NodeTool(toolUnion)];
|
|
184
|
+
}
|
|
120
185
|
return await toolUnion.getTools(context2);
|
|
121
186
|
}
|
|
187
|
+
__name(convertToolUnionToTools, "convertToolUnionToTools");
|
|
122
188
|
const LLM_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.llmAgent");
|
|
123
189
|
function isLlmAgent(obj) {
|
|
124
190
|
return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
|
|
125
191
|
}
|
|
126
|
-
|
|
192
|
+
__name(isLlmAgent, "isLlmAgent");
|
|
193
|
+
const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
127
194
|
constructor(config) {
|
|
128
|
-
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
|
|
129
|
-
super(config)
|
|
195
|
+
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
|
|
196
|
+
super(__spreadProps(__spreadValues({}, config), {
|
|
197
|
+
rerunOnResume: (_a2 = config.rerunOnResume) != null ? _a2 : true,
|
|
198
|
+
waitForOutput: (_b2 = config.waitForOutput) != null ? _b2 : config.mode === "task"
|
|
199
|
+
}));
|
|
130
200
|
/** A unique symbol to identify ADK LLM agent class. */
|
|
131
201
|
this[_a] = true;
|
|
132
202
|
this.model = config.model;
|
|
133
|
-
this.instruction = (
|
|
134
|
-
this.globalInstruction = (
|
|
135
|
-
this.tools = (
|
|
203
|
+
this.instruction = (_c = config.instruction) != null ? _c : "";
|
|
204
|
+
this.globalInstruction = (_d = config.globalInstruction) != null ? _d : "";
|
|
205
|
+
this.tools = (_e = config.tools) != null ? _e : [];
|
|
136
206
|
this.generateContentConfig = config.generateContentConfig;
|
|
137
|
-
this.disallowTransferToParent = (
|
|
138
|
-
this.disallowTransferToPeers = (
|
|
139
|
-
this.includeContents = (
|
|
207
|
+
this.disallowTransferToParent = (_f = config.disallowTransferToParent) != null ? _f : false;
|
|
208
|
+
this.disallowTransferToPeers = (_g = config.disallowTransferToPeers) != null ? _g : false;
|
|
209
|
+
this.includeContents = (_h = config.includeContents) != null ? _h : "default";
|
|
210
|
+
this.includeContentsExplicit = config.includeContents !== void 0;
|
|
211
|
+
this.inputSchemaSource = config.inputSchema;
|
|
212
|
+
this.outputSchemaSource = config.outputSchema;
|
|
140
213
|
this.inputSchema = isZodObject(config.inputSchema) ? zodObjectToSchema(config.inputSchema) : config.inputSchema;
|
|
141
214
|
this.outputSchema = isZodObject(config.outputSchema) ? zodObjectToSchema(config.outputSchema) : config.outputSchema;
|
|
215
|
+
this.mode = config.mode;
|
|
142
216
|
this.outputKey = config.outputKey;
|
|
143
217
|
this.beforeModelCallback = config.beforeModelCallback;
|
|
144
218
|
this.afterModelCallback = config.afterModelCallback;
|
|
145
219
|
this.beforeToolCallback = config.beforeToolCallback;
|
|
146
220
|
this.afterToolCallback = config.afterToolCallback;
|
|
147
221
|
this.codeExecutor = config.codeExecutor;
|
|
148
|
-
this.requestProcessors = (
|
|
222
|
+
this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
|
|
149
223
|
BASIC_LLM_REQUEST_PROCESSOR,
|
|
150
224
|
AUTH_PREPROCESSOR,
|
|
151
225
|
IDENTITY_LLM_REQUEST_PROCESSOR,
|
|
152
226
|
INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
|
|
153
227
|
REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
|
|
228
|
+
REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
|
|
154
229
|
CONTENT_REQUEST_PROCESSOR,
|
|
155
230
|
INTERACTIONS_REQUEST_PROCESSOR,
|
|
156
231
|
CODE_EXECUTION_REQUEST_PROCESSOR,
|
|
@@ -172,8 +247,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
172
247
|
);
|
|
173
248
|
}
|
|
174
249
|
}
|
|
175
|
-
this.responseProcessors = (
|
|
176
|
-
const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((
|
|
250
|
+
this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [];
|
|
251
|
+
const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_k = this.subAgents) == null ? void 0 : _k.length);
|
|
177
252
|
if (!agentTransferDisabled) {
|
|
178
253
|
this.requestProcessors.push(AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
|
|
179
254
|
}
|
|
@@ -195,13 +270,14 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
195
270
|
this.generateContentConfig = {};
|
|
196
271
|
}
|
|
197
272
|
if (this.outputSchema) {
|
|
198
|
-
|
|
273
|
+
const transferRequested = config.disallowTransferToParent === false || config.disallowTransferToPeers === false || !!((_l = this.subAgents) == null ? void 0 : _l.length);
|
|
274
|
+
if (transferRequested) {
|
|
199
275
|
logger.warn(
|
|
200
276
|
"Invalid config for agent ".concat(this.name, ": outputSchema cannot co-exist with agent transfer configurations. Setting disallowTransferToParent=true, disallowTransferToPeers=true")
|
|
201
277
|
);
|
|
202
|
-
this.disallowTransferToParent = true;
|
|
203
|
-
this.disallowTransferToPeers = true;
|
|
204
278
|
}
|
|
279
|
+
this.disallowTransferToParent = true;
|
|
280
|
+
this.disallowTransferToPeers = true;
|
|
205
281
|
}
|
|
206
282
|
}
|
|
207
283
|
/**
|
|
@@ -225,6 +301,16 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
225
301
|
}
|
|
226
302
|
throw new Error("No model found for ".concat(this.name, "."));
|
|
227
303
|
}
|
|
304
|
+
/**
|
|
305
|
+
* The `finish_task` tool for this agent (task mode). Lazily created and cached
|
|
306
|
+
* so its declaration (derived from `outputSchema`) is stable across turns.
|
|
307
|
+
*/
|
|
308
|
+
get finishTaskTool() {
|
|
309
|
+
if (!this._finishTaskTool) {
|
|
310
|
+
this._finishTaskTool = new FinishTaskTool(this.outputSchema);
|
|
311
|
+
}
|
|
312
|
+
return this._finishTaskTool;
|
|
313
|
+
}
|
|
228
314
|
/**
|
|
229
315
|
* The resolved instruction field to construct instruction for this
|
|
230
316
|
* agent.
|
|
@@ -297,7 +383,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
297
383
|
* This method is only for use by Agent Development Kit.
|
|
298
384
|
*/
|
|
299
385
|
get canonicalBeforeModelCallbacks() {
|
|
300
|
-
return
|
|
386
|
+
return _LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
|
|
301
387
|
}
|
|
302
388
|
/**
|
|
303
389
|
* The resolved afterModelCallback field as a list of
|
|
@@ -306,7 +392,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
306
392
|
* This method is only for use by Agent Development Kit.
|
|
307
393
|
*/
|
|
308
394
|
get canonicalAfterModelCallbacks() {
|
|
309
|
-
return
|
|
395
|
+
return _LlmAgent.normalizeCallbackArray(this.afterModelCallback);
|
|
310
396
|
}
|
|
311
397
|
/**
|
|
312
398
|
* The resolved beforeToolCallback field as a list of
|
|
@@ -315,7 +401,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
315
401
|
* This method is only for use by Agent Development Kit.
|
|
316
402
|
*/
|
|
317
403
|
get canonicalBeforeToolCallbacks() {
|
|
318
|
-
return
|
|
404
|
+
return _LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
|
|
319
405
|
}
|
|
320
406
|
/**
|
|
321
407
|
* The resolved afterToolCallback field as a list of AfterToolCallback.
|
|
@@ -323,7 +409,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
323
409
|
* This method is only for use by Agent Development Kit.
|
|
324
410
|
*/
|
|
325
411
|
get canonicalAfterToolCallbacks() {
|
|
326
|
-
return
|
|
412
|
+
return _LlmAgent.normalizeCallbackArray(this.afterToolCallback);
|
|
327
413
|
}
|
|
328
414
|
/**
|
|
329
415
|
* Saves the agent's final response to the session state if configured.
|
|
@@ -366,14 +452,55 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
366
452
|
if (!resultStr.trim()) {
|
|
367
453
|
return;
|
|
368
454
|
}
|
|
455
|
+
let parsed;
|
|
369
456
|
try {
|
|
370
|
-
|
|
457
|
+
parsed = JSON.parse(resultStr);
|
|
371
458
|
} catch (e) {
|
|
372
459
|
logger.error("Error parsing output for agent ".concat(this.name), e);
|
|
460
|
+
event.actions.stateDelta[this.outputKey] = resultStr;
|
|
461
|
+
return;
|
|
462
|
+
}
|
|
463
|
+
try {
|
|
464
|
+
result = this.validateOutput(parsed);
|
|
465
|
+
} catch (e) {
|
|
466
|
+
logger.error(
|
|
467
|
+
"Output for agent ".concat(this.name, " does not satisfy its output schema"),
|
|
468
|
+
e
|
|
469
|
+
);
|
|
470
|
+
result = parsed;
|
|
373
471
|
}
|
|
374
472
|
}
|
|
375
473
|
event.actions.stateDelta[this.outputKey] = result;
|
|
376
474
|
}
|
|
475
|
+
/**
|
|
476
|
+
* Validates a value against this agent's output schema, in whichever dialect
|
|
477
|
+
* it was declared, and returns the parsed value.
|
|
478
|
+
*
|
|
479
|
+
* Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
|
|
480
|
+
* form derived from it, since the conversion drops constraints Zod can
|
|
481
|
+
* express and genai cannot.
|
|
482
|
+
*
|
|
483
|
+
* @throws if the value does not satisfy the schema.
|
|
484
|
+
*/
|
|
485
|
+
validateOutput(value) {
|
|
486
|
+
var _a2;
|
|
487
|
+
return parseWithSchema((_a2 = this.outputSchemaSource) != null ? _a2 : this.outputSchema, value);
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* Runs this agent as a workflow node.
|
|
491
|
+
*
|
|
492
|
+
* Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
|
|
493
|
+
* `LlmAgent` has a node input to inject into the conversation, instruction
|
|
494
|
+
* placeholders to resolve against it, a reply to promote to node output, and
|
|
495
|
+
* — in `task` mode — a `finish_task` round-trip to drive. All of that lives
|
|
496
|
+
* in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
|
|
497
|
+
* delegating to `run_llm_agent_as_node`.
|
|
498
|
+
*/
|
|
499
|
+
runImpl(ctx, nodeInput) {
|
|
500
|
+
return __asyncGenerator(this, null, function* () {
|
|
501
|
+
yield* __yieldStar(runLlmAgentAsNode(this, ctx, nodeInput));
|
|
502
|
+
});
|
|
503
|
+
}
|
|
377
504
|
runAsyncImpl(context2) {
|
|
378
505
|
return __asyncGenerator(this, null, function* () {
|
|
379
506
|
var _a2, _b2;
|
|
@@ -461,11 +588,423 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
461
588
|
* times. Subsequent reconnects skip `sendHistory` because the server
|
|
462
589
|
* already holds the conversation state associated with the handle.
|
|
463
590
|
*/
|
|
464
|
-
|
|
465
|
-
runLiveFlow(_invocationContext) {
|
|
591
|
+
runLiveFlow(invocationContext) {
|
|
466
592
|
return __asyncGenerator(this, null, function* () {
|
|
467
|
-
|
|
468
|
-
|
|
593
|
+
var _a2, _b2, _c, _d;
|
|
594
|
+
if (!invocationContext.liveRequestQueue) {
|
|
595
|
+
throw new Error("liveRequestQueue is required for LlmAgent.runLiveFlow.");
|
|
596
|
+
}
|
|
597
|
+
const llmRequest = {
|
|
598
|
+
contents: [],
|
|
599
|
+
toolsDict: {},
|
|
600
|
+
liveConnectConfig: {}
|
|
601
|
+
};
|
|
602
|
+
try {
|
|
603
|
+
for (var iter = __forAwait(this.runLivePreprocess(
|
|
604
|
+
invocationContext,
|
|
605
|
+
llmRequest
|
|
606
|
+
)), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
|
|
607
|
+
const event = temp.value;
|
|
608
|
+
yield event;
|
|
609
|
+
}
|
|
610
|
+
} catch (temp) {
|
|
611
|
+
error = [temp];
|
|
612
|
+
} finally {
|
|
613
|
+
try {
|
|
614
|
+
more && (temp = iter.return) && (yield new __await(temp.call(iter)));
|
|
615
|
+
} finally {
|
|
616
|
+
if (error)
|
|
617
|
+
throw error[0];
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
if (invocationContext.endInvocation || ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted)) {
|
|
621
|
+
return;
|
|
622
|
+
}
|
|
623
|
+
applyLiveRunConfig(invocationContext.runConfig, llmRequest);
|
|
624
|
+
const llm = this.canonicalModel;
|
|
625
|
+
let reconnectAttempts = 0;
|
|
626
|
+
while (true) {
|
|
627
|
+
if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
const handle = invocationContext.liveSessionResumptionHandle;
|
|
631
|
+
if (handle) {
|
|
632
|
+
(_c = llmRequest.liveConnectConfig) != null ? _c : llmRequest.liveConnectConfig = {};
|
|
633
|
+
llmRequest.liveConnectConfig.sessionResumption = {
|
|
634
|
+
handle,
|
|
635
|
+
transparent: true
|
|
636
|
+
};
|
|
637
|
+
}
|
|
638
|
+
let connection;
|
|
639
|
+
try {
|
|
640
|
+
connection = yield new __await(llm.connect(llmRequest));
|
|
641
|
+
} catch (err) {
|
|
642
|
+
if (isRecoverableLiveError(err) && invocationContext.liveSessionResumptionHandle) {
|
|
643
|
+
reconnectAttempts += 1;
|
|
644
|
+
if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
|
|
645
|
+
logger.error(
|
|
646
|
+
"Max live reconnection attempts reached (".concat(reconnectAttempts, ")."),
|
|
647
|
+
err
|
|
648
|
+
);
|
|
649
|
+
throw err;
|
|
650
|
+
}
|
|
651
|
+
logger.info(
|
|
652
|
+
"Live connect failed (attempt ".concat(reconnectAttempts, "); retrying with session handle."),
|
|
653
|
+
err
|
|
654
|
+
);
|
|
655
|
+
continue;
|
|
656
|
+
}
|
|
657
|
+
throw err;
|
|
658
|
+
}
|
|
659
|
+
if (llmRequest.contents.length > 0 && !invocationContext.liveSessionResumptionHandle) {
|
|
660
|
+
yield new __await(connection.sendHistory(llmRequest.contents));
|
|
661
|
+
}
|
|
662
|
+
let sendError;
|
|
663
|
+
const sendAbort = new AbortController();
|
|
664
|
+
const combinedAbort = invocationContext.abortSignal ? AbortSignal.any([invocationContext.abortSignal, sendAbort.signal]) : sendAbort.signal;
|
|
665
|
+
const sendTask = this.runSendLoop(
|
|
666
|
+
connection,
|
|
667
|
+
invocationContext.liveRequestQueue,
|
|
668
|
+
combinedAbort,
|
|
669
|
+
invocationContext.abortSignal
|
|
670
|
+
);
|
|
671
|
+
sendTask.catch((error2) => {
|
|
672
|
+
logger.error("Error in live send loop:", error2);
|
|
673
|
+
sendError = error2;
|
|
674
|
+
sendAbort.abort(error2);
|
|
675
|
+
connection.close().catch((err) => {
|
|
676
|
+
logger.warn("Error closing connection after send loop failure:", err);
|
|
677
|
+
});
|
|
678
|
+
});
|
|
679
|
+
let reconnect = false;
|
|
680
|
+
try {
|
|
681
|
+
yield* __yieldStar(this.runReceiveLoop(
|
|
682
|
+
invocationContext,
|
|
683
|
+
connection,
|
|
684
|
+
llmRequest,
|
|
685
|
+
sendAbort
|
|
686
|
+
));
|
|
687
|
+
} catch (err) {
|
|
688
|
+
const canReconnect = !!invocationContext.liveSessionResumptionHandle && (err instanceof LiveReconnectSignal || isRecoverableLiveError(err));
|
|
689
|
+
if (canReconnect) {
|
|
690
|
+
reconnect = true;
|
|
691
|
+
logger.info(
|
|
692
|
+
"Live connection closed; will reconnect with session handle.",
|
|
693
|
+
err
|
|
694
|
+
);
|
|
695
|
+
} else {
|
|
696
|
+
yield new __await(this.teardownLiveConnection(sendAbort, connection, sendTask));
|
|
697
|
+
throw err;
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
yield new __await(this.teardownLiveConnection(sendAbort, connection, sendTask));
|
|
701
|
+
if ((_d = invocationContext.abortSignal) == null ? void 0 : _d.aborted) {
|
|
702
|
+
return;
|
|
703
|
+
}
|
|
704
|
+
if (sendError) {
|
|
705
|
+
throw sendError;
|
|
706
|
+
}
|
|
707
|
+
if (!reconnect) {
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
710
|
+
reconnectAttempts += 1;
|
|
711
|
+
if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
|
|
712
|
+
throw new Error(
|
|
713
|
+
"Max live reconnection attempts reached (".concat(reconnectAttempts, ").")
|
|
714
|
+
);
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
});
|
|
718
|
+
}
|
|
719
|
+
runLivePreprocess(invocationContext, llmRequest) {
|
|
720
|
+
return __asyncGenerator(this, null, function* () {
|
|
721
|
+
var _a2, _b2;
|
|
722
|
+
for (const processor of this.requestProcessors) {
|
|
723
|
+
try {
|
|
724
|
+
for (var iter = __forAwait(processor.runAsync(
|
|
725
|
+
invocationContext,
|
|
726
|
+
llmRequest
|
|
727
|
+
)), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
|
|
728
|
+
const event = temp.value;
|
|
729
|
+
if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
730
|
+
return;
|
|
731
|
+
}
|
|
732
|
+
yield event;
|
|
733
|
+
}
|
|
734
|
+
} catch (temp) {
|
|
735
|
+
error = [temp];
|
|
736
|
+
} finally {
|
|
737
|
+
try {
|
|
738
|
+
more && (temp = iter.return) && (yield new __await(temp.call(iter)));
|
|
739
|
+
} finally {
|
|
740
|
+
if (error)
|
|
741
|
+
throw error[0];
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
for (const toolUnion of this.tools) {
|
|
746
|
+
const toolContext = new Context({ invocationContext });
|
|
747
|
+
const tools = (yield new __await(convertToolUnionToTools(
|
|
748
|
+
toolUnion,
|
|
749
|
+
new ReadonlyContext(invocationContext)
|
|
750
|
+
))).filter(
|
|
751
|
+
(tool) => !llmRequest.allowedTools || llmRequest.allowedTools.includes(tool.name)
|
|
752
|
+
);
|
|
753
|
+
for (const tool of tools) {
|
|
754
|
+
yield new __await(tool.processLlmRequest({ toolContext, llmRequest }));
|
|
755
|
+
if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
756
|
+
return;
|
|
757
|
+
}
|
|
758
|
+
}
|
|
759
|
+
}
|
|
760
|
+
});
|
|
761
|
+
}
|
|
762
|
+
async runSendLoop(connection, liveRequestQueue, sendAbortSignal, invocationAbortSignal) {
|
|
763
|
+
while (true) {
|
|
764
|
+
if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
|
|
765
|
+
return;
|
|
766
|
+
}
|
|
767
|
+
let liveRequest;
|
|
768
|
+
try {
|
|
769
|
+
liveRequest = await liveRequestQueue.get(sendAbortSignal);
|
|
770
|
+
} catch (error) {
|
|
771
|
+
if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
774
|
+
throw error;
|
|
775
|
+
}
|
|
776
|
+
try {
|
|
777
|
+
await this.dispatchLiveRequest(connection, liveRequest);
|
|
778
|
+
} catch (error) {
|
|
779
|
+
if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
|
|
780
|
+
logger.debug("Send failed after teardown:", error);
|
|
781
|
+
return;
|
|
782
|
+
}
|
|
783
|
+
logger.error("Error dispatching live request to model:", error);
|
|
784
|
+
throw error;
|
|
785
|
+
}
|
|
786
|
+
await Promise.resolve();
|
|
787
|
+
if (liveRequest.close) {
|
|
788
|
+
return;
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
}
|
|
792
|
+
async dispatchLiveRequest(connection, liveRequest) {
|
|
793
|
+
var _a2, _b2;
|
|
794
|
+
if (liveRequest.close) {
|
|
795
|
+
await connection.close();
|
|
796
|
+
return;
|
|
797
|
+
}
|
|
798
|
+
if (liveRequest.activityStart) {
|
|
799
|
+
await ((_a2 = connection.sendActivityStart) == null ? void 0 : _a2.call(connection));
|
|
800
|
+
return;
|
|
801
|
+
}
|
|
802
|
+
if (liveRequest.activityEnd) {
|
|
803
|
+
await ((_b2 = connection.sendActivityEnd) == null ? void 0 : _b2.call(connection));
|
|
804
|
+
return;
|
|
805
|
+
}
|
|
806
|
+
if (liveRequest.blob) {
|
|
807
|
+
await connection.sendRealtime(liveRequest.blob);
|
|
808
|
+
return;
|
|
809
|
+
}
|
|
810
|
+
if (liveRequest.content) {
|
|
811
|
+
await connection.sendContent(liveRequest.content);
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
/**
|
|
815
|
+
* Tears down a live attempt: stops the send loop, closes the connection
|
|
816
|
+
* (swallowing close errors), and waits for the send task to settle. Used
|
|
817
|
+
* before reconnecting or propagating an error.
|
|
818
|
+
*/
|
|
819
|
+
async teardownLiveConnection(sendAbort, connection, sendTask) {
|
|
820
|
+
sendAbort.abort();
|
|
821
|
+
try {
|
|
822
|
+
await connection.close();
|
|
823
|
+
} catch (error) {
|
|
824
|
+
logger.warn("Error closing live connection:", error);
|
|
825
|
+
}
|
|
826
|
+
await sendTask.catch(() => void 0);
|
|
827
|
+
}
|
|
828
|
+
runReceiveLoop(invocationContext, connection, llmRequest, sendAbort) {
|
|
829
|
+
return __asyncGenerator(this, null, function* () {
|
|
830
|
+
var _a2, _b2, _c, _d;
|
|
831
|
+
try {
|
|
832
|
+
for (var iter3 = __forAwait(connection.receive()), more3, temp3, error3; more3 = !(temp3 = yield new __await(iter3.next())).done; more3 = false) {
|
|
833
|
+
const llmResponse = temp3.value;
|
|
834
|
+
if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
835
|
+
return;
|
|
836
|
+
}
|
|
837
|
+
if (sendAbort.signal.aborted) {
|
|
838
|
+
return;
|
|
839
|
+
}
|
|
840
|
+
if ((_b2 = llmResponse.liveSessionResumptionUpdate) == null ? void 0 : _b2.newHandle) {
|
|
841
|
+
invocationContext.liveSessionResumptionHandle = llmResponse.liveSessionResumptionUpdate.newHandle;
|
|
842
|
+
}
|
|
843
|
+
if (llmResponse.goAway) {
|
|
844
|
+
logger.info("Received goAway from live server; triggering reconnect.");
|
|
845
|
+
throw new LiveReconnectSignal("goAway");
|
|
846
|
+
}
|
|
847
|
+
const author = llmResponse.inputTranscription || ((_c = llmResponse.content) == null ? void 0 : _c.role) === "user" ? "user" : this.name;
|
|
848
|
+
const modelResponseEvent = createEvent({
|
|
849
|
+
invocationId: invocationContext.invocationId,
|
|
850
|
+
author,
|
|
851
|
+
branch: invocationContext.branch
|
|
852
|
+
});
|
|
853
|
+
try {
|
|
854
|
+
for (var iter2 = __forAwait(this.postprocessLive(
|
|
855
|
+
invocationContext,
|
|
856
|
+
llmRequest,
|
|
857
|
+
llmResponse,
|
|
858
|
+
modelResponseEvent
|
|
859
|
+
)), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
|
|
860
|
+
const event = temp2.value;
|
|
861
|
+
yield event;
|
|
862
|
+
if (event.content && getFunctionResponses(event).length > 0) {
|
|
863
|
+
yield new __await(connection.sendContent(event.content));
|
|
864
|
+
}
|
|
865
|
+
const taskCompleted = getFunctionResponses(event).some(
|
|
866
|
+
(r) => r.name === "task_completed"
|
|
867
|
+
);
|
|
868
|
+
if (taskCompleted) {
|
|
869
|
+
yield new __await(sleep(TRANSFER_AGENT_DELAY_MS));
|
|
870
|
+
return;
|
|
871
|
+
}
|
|
872
|
+
const transferTo = (_d = event.actions) == null ? void 0 : _d.transferToAgent;
|
|
873
|
+
if (transferTo) {
|
|
874
|
+
yield new __await(sleep(TRANSFER_AGENT_DELAY_MS));
|
|
875
|
+
sendAbort.abort();
|
|
876
|
+
yield new __await(connection.close());
|
|
877
|
+
const agent = requireAgent(invocationContext);
|
|
878
|
+
const subAgent = agent.rootAgent.findAgent(transferTo);
|
|
879
|
+
if (subAgent) {
|
|
880
|
+
const previousAgent = invocationContext.agent;
|
|
881
|
+
invocationContext.agent = subAgent;
|
|
882
|
+
const previousHandle = invocationContext.liveSessionResumptionHandle;
|
|
883
|
+
invocationContext.liveSessionResumptionHandle = void 0;
|
|
884
|
+
try {
|
|
885
|
+
try {
|
|
886
|
+
for (var iter = __forAwait(subAgent.runLive(
|
|
887
|
+
invocationContext
|
|
888
|
+
)), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
|
|
889
|
+
const subEvent = temp.value;
|
|
890
|
+
yield subEvent;
|
|
891
|
+
}
|
|
892
|
+
} catch (temp) {
|
|
893
|
+
error = [temp];
|
|
894
|
+
} finally {
|
|
895
|
+
try {
|
|
896
|
+
more && (temp = iter.return) && (yield new __await(temp.call(iter)));
|
|
897
|
+
} finally {
|
|
898
|
+
if (error)
|
|
899
|
+
throw error[0];
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
} finally {
|
|
903
|
+
invocationContext.agent = previousAgent;
|
|
904
|
+
invocationContext.liveSessionResumptionHandle = previousHandle;
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
return;
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
} catch (temp2) {
|
|
911
|
+
error2 = [temp2];
|
|
912
|
+
} finally {
|
|
913
|
+
try {
|
|
914
|
+
more2 && (temp2 = iter2.return) && (yield new __await(temp2.call(iter2)));
|
|
915
|
+
} finally {
|
|
916
|
+
if (error2)
|
|
917
|
+
throw error2[0];
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
} catch (temp3) {
|
|
922
|
+
error3 = [temp3];
|
|
923
|
+
} finally {
|
|
924
|
+
try {
|
|
925
|
+
more3 && (temp3 = iter3.return) && (yield new __await(temp3.call(iter3)));
|
|
926
|
+
} finally {
|
|
927
|
+
if (error3)
|
|
928
|
+
throw error3[0];
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
});
|
|
932
|
+
}
|
|
933
|
+
postprocessLive(invocationContext, llmRequest, llmResponse, modelResponseEvent) {
|
|
934
|
+
return __asyncGenerator(this, null, function* () {
|
|
935
|
+
for (const processor of this.responseProcessors) {
|
|
936
|
+
try {
|
|
937
|
+
for (var iter = __forAwait(processor.runAsync(
|
|
938
|
+
invocationContext,
|
|
939
|
+
llmResponse
|
|
940
|
+
)), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
|
|
941
|
+
const event = temp.value;
|
|
942
|
+
yield event;
|
|
943
|
+
}
|
|
944
|
+
} catch (temp) {
|
|
945
|
+
error = [temp];
|
|
946
|
+
} finally {
|
|
947
|
+
try {
|
|
948
|
+
more && (temp = iter.return) && (yield new __await(temp.call(iter)));
|
|
949
|
+
} finally {
|
|
950
|
+
if (error)
|
|
951
|
+
throw error[0];
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
if (!llmResponse.content && !llmResponse.errorCode && !llmResponse.interrupted && !llmResponse.turnComplete && !llmResponse.inputTranscription && !llmResponse.outputTranscription && !llmResponse.usageMetadata && !llmResponse.liveSessionResumptionUpdate) {
|
|
956
|
+
return;
|
|
957
|
+
}
|
|
958
|
+
if (llmResponse.liveSessionResumptionUpdate) {
|
|
959
|
+
yield createEvent(__spreadProps(__spreadValues({}, modelResponseEvent), {
|
|
960
|
+
liveSessionResumptionUpdate: llmResponse.liveSessionResumptionUpdate
|
|
961
|
+
}));
|
|
962
|
+
return;
|
|
963
|
+
}
|
|
964
|
+
if (llmResponse.inputTranscription) {
|
|
965
|
+
yield createEvent(__spreadProps(__spreadValues({}, modelResponseEvent), {
|
|
966
|
+
inputTranscription: llmResponse.inputTranscription,
|
|
967
|
+
partial: llmResponse.partial
|
|
968
|
+
}));
|
|
969
|
+
return;
|
|
970
|
+
}
|
|
971
|
+
if (llmResponse.outputTranscription) {
|
|
972
|
+
yield createEvent(__spreadProps(__spreadValues({}, modelResponseEvent), {
|
|
973
|
+
outputTranscription: llmResponse.outputTranscription,
|
|
974
|
+
partial: llmResponse.partial
|
|
975
|
+
}));
|
|
976
|
+
return;
|
|
977
|
+
}
|
|
978
|
+
const mergedEvent = createEvent(__spreadValues(__spreadValues({}, modelResponseEvent), llmResponse));
|
|
979
|
+
const functionCalls = getFunctionCalls(mergedEvent);
|
|
980
|
+
if (mergedEvent.content && functionCalls.length) {
|
|
981
|
+
populateClientFunctionCallId(mergedEvent);
|
|
982
|
+
mergedEvent.longRunningToolIds = Array.from(
|
|
983
|
+
getLongRunningFunctionCalls(functionCalls, llmRequest.toolsDict)
|
|
984
|
+
);
|
|
985
|
+
}
|
|
986
|
+
yield mergedEvent;
|
|
987
|
+
if (!functionCalls.length) {
|
|
988
|
+
return;
|
|
989
|
+
}
|
|
990
|
+
const functionResponseEvent = yield new __await(handleFunctionCallsAsync({
|
|
991
|
+
invocationContext,
|
|
992
|
+
functionCallEvent: mergedEvent,
|
|
993
|
+
toolsDict: llmRequest.toolsDict,
|
|
994
|
+
beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
|
|
995
|
+
afterToolCallbacks: this.canonicalAfterToolCallbacks
|
|
996
|
+
}));
|
|
997
|
+
if (!functionResponseEvent) {
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
1000
|
+
const authEvent = generateAuthEvent(
|
|
1001
|
+
invocationContext,
|
|
1002
|
+
functionResponseEvent
|
|
1003
|
+
);
|
|
1004
|
+
if (authEvent) {
|
|
1005
|
+
yield authEvent;
|
|
1006
|
+
}
|
|
1007
|
+
yield functionResponseEvent;
|
|
469
1008
|
});
|
|
470
1009
|
}
|
|
471
1010
|
runOneStepAsync(invocationContext) {
|
|
@@ -500,22 +1039,32 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
500
1039
|
}
|
|
501
1040
|
}
|
|
502
1041
|
const allTools = [...this.tools];
|
|
503
|
-
if (this.
|
|
1042
|
+
if (this.mode === "task") {
|
|
1043
|
+
allTools.push(this.finishTaskTool);
|
|
1044
|
+
} else if (this.outputSchema && allTools.length > 0 && !canUseOutputSchemaWithTools(this.canonicalModel.model)) {
|
|
504
1045
|
const setModelResponseTool = new FunctionTool({
|
|
505
1046
|
name: "set_model_response",
|
|
506
1047
|
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.",
|
|
507
1048
|
parameters: this.outputSchema,
|
|
508
|
-
execute: async (args, toolContext) => {
|
|
1049
|
+
execute: /* @__PURE__ */ __name(async (args, toolContext) => {
|
|
509
1050
|
if (toolContext) {
|
|
510
1051
|
toolContext.actions.skipSummarization = true;
|
|
511
1052
|
}
|
|
512
1053
|
return JSON.stringify(args);
|
|
513
|
-
}
|
|
1054
|
+
}, "execute")
|
|
514
1055
|
});
|
|
515
1056
|
allTools.push(setModelResponseTool);
|
|
516
1057
|
}
|
|
1058
|
+
const modelResponseEvent = createEvent({
|
|
1059
|
+
invocationId: invocationContext.invocationId,
|
|
1060
|
+
author: this.name,
|
|
1061
|
+
branch: invocationContext.branch
|
|
1062
|
+
});
|
|
517
1063
|
for (const toolUnion of allTools) {
|
|
518
|
-
const toolContext = new Context({
|
|
1064
|
+
const toolContext = new Context({
|
|
1065
|
+
invocationContext,
|
|
1066
|
+
eventActions: modelResponseEvent.actions
|
|
1067
|
+
});
|
|
519
1068
|
const tools = (yield new __await(convertToolUnionToTools(
|
|
520
1069
|
toolUnion,
|
|
521
1070
|
new ReadonlyContext(invocationContext)
|
|
@@ -532,11 +1081,6 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
532
1081
|
if (invocationContext.endInvocation || ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted)) {
|
|
533
1082
|
return;
|
|
534
1083
|
}
|
|
535
|
-
const modelResponseEvent = createEvent({
|
|
536
|
-
invocationId: invocationContext.invocationId,
|
|
537
|
-
author: this.name,
|
|
538
|
-
branch: invocationContext.branch
|
|
539
|
-
});
|
|
540
1084
|
const span = tracer.startSpan("call_llm");
|
|
541
1085
|
const ctx = trace.setSpan(context.active(), span);
|
|
542
1086
|
yield* __yieldStar(runAsyncGeneratorWithOtelContext(
|
|
@@ -544,7 +1088,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
544
1088
|
this,
|
|
545
1089
|
function() {
|
|
546
1090
|
return __asyncGenerator(this, null, function* () {
|
|
547
|
-
const responsesGenerator = function() {
|
|
1091
|
+
const responsesGenerator = /* @__PURE__ */ __name(function() {
|
|
548
1092
|
return __asyncGenerator(this, null, function* () {
|
|
549
1093
|
var _a3, _b3;
|
|
550
1094
|
try {
|
|
@@ -594,7 +1138,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
594
1138
|
}
|
|
595
1139
|
}
|
|
596
1140
|
});
|
|
597
|
-
};
|
|
1141
|
+
}, "responsesGenerator");
|
|
598
1142
|
yield* __yieldStar(this.runAndHandleError(
|
|
599
1143
|
responsesGenerator.call(this),
|
|
600
1144
|
invocationContext,
|
|
@@ -633,7 +1177,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
633
1177
|
}
|
|
634
1178
|
}
|
|
635
1179
|
}
|
|
636
|
-
|
|
1180
|
+
const isUsageOnlyReport = !llmResponse.content && !!llmResponse.usageMetadata;
|
|
1181
|
+
if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted && !isUsageOnlyReport) {
|
|
637
1182
|
return;
|
|
638
1183
|
}
|
|
639
1184
|
const mergedEvent = createEvent(__spreadValues(__spreadValues({}, modelResponseEvent), llmResponse));
|
|
@@ -661,13 +1206,44 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
661
1206
|
invocationContext.endInvocation = true;
|
|
662
1207
|
return;
|
|
663
1208
|
}
|
|
664
|
-
const
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
1209
|
+
const eventQueue = new AsyncQueue();
|
|
1210
|
+
invocationContext.eventQueue = eventQueue;
|
|
1211
|
+
const toolTask = (async () => {
|
|
1212
|
+
try {
|
|
1213
|
+
const event = await handleFunctionCallsAsync({
|
|
1214
|
+
invocationContext,
|
|
1215
|
+
functionCallEvent: mergedEvent,
|
|
1216
|
+
toolsDict: llmRequest.toolsDict,
|
|
1217
|
+
beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
|
|
1218
|
+
afterToolCallbacks: this.canonicalAfterToolCallbacks
|
|
1219
|
+
});
|
|
1220
|
+
return { event };
|
|
1221
|
+
} catch (error4) {
|
|
1222
|
+
return { event: null, error: error4 };
|
|
1223
|
+
} finally {
|
|
1224
|
+
eventQueue.close();
|
|
1225
|
+
}
|
|
1226
|
+
})();
|
|
1227
|
+
try {
|
|
1228
|
+
for (var iter2 = __forAwait(eventQueue), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
|
|
1229
|
+
const queuedEvent = temp2.value;
|
|
1230
|
+
yield queuedEvent;
|
|
1231
|
+
}
|
|
1232
|
+
} catch (temp2) {
|
|
1233
|
+
error2 = [temp2];
|
|
1234
|
+
} finally {
|
|
1235
|
+
try {
|
|
1236
|
+
more2 && (temp2 = iter2.return) && (yield new __await(temp2.call(iter2)));
|
|
1237
|
+
} finally {
|
|
1238
|
+
if (error2)
|
|
1239
|
+
throw error2[0];
|
|
1240
|
+
}
|
|
1241
|
+
}
|
|
1242
|
+
const { event: functionResponseEvent, error: toolError } = yield new __await(toolTask);
|
|
1243
|
+
invocationContext.eventQueue = void 0;
|
|
1244
|
+
if (toolError) {
|
|
1245
|
+
throw toolError;
|
|
1246
|
+
}
|
|
671
1247
|
if (!functionResponseEvent || ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted)) {
|
|
672
1248
|
return;
|
|
673
1249
|
}
|
|
@@ -693,21 +1269,21 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
693
1269
|
if (nextAgentName) {
|
|
694
1270
|
const nextAgent = this.getAgentByName(invocationContext, nextAgentName);
|
|
695
1271
|
try {
|
|
696
|
-
for (var
|
|
697
|
-
const event =
|
|
1272
|
+
for (var iter3 = __forAwait(nextAgent.runAsync(invocationContext)), more3, temp3, error3; more3 = !(temp3 = yield new __await(iter3.next())).done; more3 = false) {
|
|
1273
|
+
const event = temp3.value;
|
|
698
1274
|
if ((_f = invocationContext.abortSignal) == null ? void 0 : _f.aborted) {
|
|
699
1275
|
return;
|
|
700
1276
|
}
|
|
701
1277
|
yield event;
|
|
702
1278
|
}
|
|
703
|
-
} catch (
|
|
704
|
-
|
|
1279
|
+
} catch (temp3) {
|
|
1280
|
+
error3 = [temp3];
|
|
705
1281
|
} finally {
|
|
706
1282
|
try {
|
|
707
|
-
|
|
1283
|
+
more3 && (temp3 = iter3.return) && (yield new __await(temp3.call(iter3)));
|
|
708
1284
|
} finally {
|
|
709
|
-
if (
|
|
710
|
-
throw
|
|
1285
|
+
if (error3)
|
|
1286
|
+
throw error3[0];
|
|
711
1287
|
}
|
|
712
1288
|
}
|
|
713
1289
|
}
|
|
@@ -726,7 +1302,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
726
1302
|
* @throws Error if the agent is not found.
|
|
727
1303
|
*/
|
|
728
1304
|
getAgentByName(invocationContext, agentName) {
|
|
729
|
-
const rootAgent = invocationContext.
|
|
1305
|
+
const rootAgent = requireAgent(invocationContext).rootAgent;
|
|
730
1306
|
const agentToRun = rootAgent.findAgent(agentName);
|
|
731
1307
|
if (!agentToRun) {
|
|
732
1308
|
throw new Error("Agent ".concat(agentName, " not found in the agent tree."));
|
|
@@ -929,7 +1505,9 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
|
|
|
929
1505
|
// TODO - b/425992518: omitted Py LlmAgent features.
|
|
930
1506
|
// - code_executor
|
|
931
1507
|
// - configurable agents by yaml config
|
|
932
|
-
}
|
|
1508
|
+
};
|
|
1509
|
+
__name(_LlmAgent, "LlmAgent");
|
|
1510
|
+
let LlmAgent = _LlmAgent;
|
|
933
1511
|
export {
|
|
934
1512
|
LlmAgent,
|
|
935
1513
|
isLlmAgent
|