@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
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Content } from '@google/genai';
|
|
7
7
|
import { Event } from '../events/event.js';
|
|
8
|
+
import { BaseNode, BaseNodeConfig } from '../workflow/base_node.js';
|
|
9
|
+
import type { NodeContext } from '../workflow/node_context.js';
|
|
8
10
|
import { Context } from './context.js';
|
|
9
11
|
import { InvocationContext } from './invocation_context.js';
|
|
10
12
|
/**
|
|
@@ -23,8 +25,13 @@ export type BeforeAgentCallback = SingleAgentCallback | SingleAgentCallback[];
|
|
|
23
25
|
export type AfterAgentCallback = SingleAgentCallback | SingleAgentCallback[];
|
|
24
26
|
/**
|
|
25
27
|
* The config of a base agent.
|
|
28
|
+
*
|
|
29
|
+
* Extends {@link BaseNodeConfig}, so every agent also accepts the node-level
|
|
30
|
+
* options — `retryConfig`, `timeout`, `inputSchema`, `outputSchema`,
|
|
31
|
+
* `stateSchema`, `rerunOnResume`, `waitForOutput` — which apply when the agent
|
|
32
|
+
* runs inside a workflow.
|
|
26
33
|
*/
|
|
27
|
-
export interface BaseAgentConfig {
|
|
34
|
+
export interface BaseAgentConfig extends BaseNodeConfig {
|
|
28
35
|
name: string;
|
|
29
36
|
description?: string;
|
|
30
37
|
parentAgent?: BaseAgent;
|
|
@@ -49,8 +56,13 @@ export declare function isBaseAgent(obj: unknown): obj is BaseAgent;
|
|
|
49
56
|
* The class is generic over its config type so that {@link clone} can be typed
|
|
50
57
|
* per subclass (e.g. `LlmAgent.clone({instruction})`). The default keeps bare
|
|
51
58
|
* `BaseAgent` references valid as `BaseAgent<BaseAgentConfig>`.
|
|
59
|
+
*
|
|
60
|
+
* An agent **is** a {@link BaseNode}, so any agent can be dropped straight into
|
|
61
|
+
* a workflow graph without a wrapper — mirroring adk-python, where
|
|
62
|
+
* `BaseAgent(BaseNode)`. {@link runImpl} bridges the two contracts: the node
|
|
63
|
+
* runner calls it, and it delegates to the agent's own {@link runAsync}.
|
|
52
64
|
*/
|
|
53
|
-
export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAgentConfig> {
|
|
65
|
+
export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAgentConfig> extends BaseNode {
|
|
54
66
|
/**
|
|
55
67
|
* A unique symbol to identify ADK agent classes.
|
|
56
68
|
*/
|
|
@@ -70,13 +82,6 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
|
|
|
70
82
|
* Agent name cannot be "user", since it's reserved for end-user's input.
|
|
71
83
|
*/
|
|
72
84
|
readonly name: string;
|
|
73
|
-
/**
|
|
74
|
-
* Description about the agent's capability.
|
|
75
|
-
*
|
|
76
|
-
* The model uses this to determine whether to delegate control to the agent.
|
|
77
|
-
* One-line description is enough and preferred.
|
|
78
|
-
*/
|
|
79
|
-
readonly description?: string;
|
|
80
85
|
/**
|
|
81
86
|
* Root agent of this agent.
|
|
82
87
|
* Computed dynamically by traversing up the parent chain.
|
|
@@ -148,6 +153,29 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
|
|
|
148
153
|
* @returns An AsyncGenerator that yields the events generated by the agent.
|
|
149
154
|
*/
|
|
150
155
|
runAsync(parentContext: InvocationContext): AsyncGenerator<Event, void, void>;
|
|
156
|
+
/**
|
|
157
|
+
* Runs this agent as a workflow node.
|
|
158
|
+
*
|
|
159
|
+
* The node runner calls this; it delegates to {@link runAsync}, so an agent
|
|
160
|
+
* behaves identically whether it is run directly or as a node. Mirrors
|
|
161
|
+
* adk-python `BaseAgent._run_impl`.
|
|
162
|
+
*
|
|
163
|
+
* The invocation context comes from {@link NodeContext.getInvocationContext}
|
|
164
|
+
* rather than the raw field, so the agent runs against whatever view of the
|
|
165
|
+
* session the workflow wants it to see.
|
|
166
|
+
*
|
|
167
|
+
* Unlike adk-python's `_run_impl`, nothing is stamped onto the events here.
|
|
168
|
+
* Python has to fix up the author and the node path because it authors
|
|
169
|
+
* in-workflow events as the workflow itself; the TypeScript node runner
|
|
170
|
+
* already owns both (`enrichEvent` keeps an author the node set, and always
|
|
171
|
+
* stamps the true node path), so repeating it would be dead code.
|
|
172
|
+
*
|
|
173
|
+
* `nodeInput` is intentionally unused: an agent's input is its conversation,
|
|
174
|
+
* which the workflow supplies through the session. A node that needs to read
|
|
175
|
+
* its input — an `LlmAgent` injecting it into the prompt, say — does so in
|
|
176
|
+
* its own wrapper.
|
|
177
|
+
*/
|
|
178
|
+
protected runImpl(ctx: NodeContext, _nodeInput: unknown): AsyncGenerator<Event, void, void>;
|
|
151
179
|
/**
|
|
152
180
|
* Entry method to run an agent via video/audio-based conversation.
|
|
153
181
|
*
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Content } from '@google/genai';
|
|
7
|
+
/**
|
|
8
|
+
* The function call the framework emits to ask a human to approve a pending
|
|
9
|
+
* tool call.
|
|
10
|
+
*/
|
|
11
|
+
export declare const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
|
|
12
|
+
/** The function call the framework emits to ask a client for credentials. */
|
|
13
|
+
export declare const REQUEST_CREDENTIAL_FUNCTION_CALL_NAME = "adk_request_credential";
|
|
14
|
+
/** The function call the framework emits to ask a client for input. */
|
|
15
|
+
export declare const REQUEST_INPUT_FUNCTION_CALL_NAME = "adk_request_input";
|
|
16
|
+
/**
|
|
17
|
+
* The first reserved function call in `content`, if it carries one.
|
|
18
|
+
*
|
|
19
|
+
* Used to keep client input out of the framework's own control plane. Function
|
|
20
|
+
* responses are untouched: answering a pending request is exactly what a client
|
|
21
|
+
* is supposed to do.
|
|
22
|
+
*
|
|
23
|
+
* @param content The content to inspect.
|
|
24
|
+
* @return The reserved call's name, or undefined when there is none.
|
|
25
|
+
*/
|
|
26
|
+
export declare function reservedFunctionCallName(content: Content | undefined): string | undefined;
|
|
@@ -10,8 +10,7 @@ import { BaseTool } from '../tools/base_tool.js';
|
|
|
10
10
|
import { ToolConfirmation } from '../tools/tool_confirmation.js';
|
|
11
11
|
import { SingleAfterToolCallback, SingleBeforeToolCallback } from './llm_agent.js';
|
|
12
12
|
export { AF_FUNCTION_CALL_ID_PREFIX, generateClientFunctionCallId, populateClientFunctionCallId, } from '../events/event.js';
|
|
13
|
-
export
|
|
14
|
-
export declare const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
|
|
13
|
+
export { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, REQUEST_CREDENTIAL_FUNCTION_CALL_NAME, REQUEST_INPUT_FUNCTION_CALL_NAME, reservedFunctionCallName, } from './framework_function_calls.js';
|
|
15
14
|
export declare const functionsExportedForTestingOnly: {
|
|
16
15
|
handleFunctionCallList: typeof handleFunctionCallList;
|
|
17
16
|
generateAuthEvent: typeof generateAuthEvent;
|
|
@@ -6,14 +6,29 @@
|
|
|
6
6
|
import { Content } from '@google/genai';
|
|
7
7
|
import { SessionArtifactService } from '../artifacts/session_artifact_service.js';
|
|
8
8
|
import { BaseCredentialService } from '../auth/credential_service/base_credential_service.js';
|
|
9
|
+
import { Event } from '../events/event.js';
|
|
9
10
|
import { BaseMemoryService } from '../memory/base_memory_service.js';
|
|
10
11
|
import { PluginManager } from '../plugins/plugin_manager.js';
|
|
11
12
|
import { BaseSessionService } from '../sessions/base_session_service.js';
|
|
12
13
|
import { Session } from '../sessions/session.js';
|
|
14
|
+
import { AsyncQueue } from '../utils/async_queue.js';
|
|
13
15
|
import { ActiveStreamingTool } from './active_streaming_tool.js';
|
|
14
16
|
import { BaseAgent } from './base_agent.js';
|
|
17
|
+
import { LiveRequestQueue } from './live_request_queue.js';
|
|
15
18
|
import { RunConfig } from './run_config.js';
|
|
16
19
|
import { TranscriptionEntry } from './transcription_entry.js';
|
|
20
|
+
/**
|
|
21
|
+
* Workflow: data exposed to `{Class.field}` and `<Class.field from source_node>`
|
|
22
|
+
* instruction placeholders when an LlmAgent runs as a workflow node. Populated by
|
|
23
|
+
* `LLMAgentWrapper`; absent for ordinary (non-workflow) agent runs, in which case
|
|
24
|
+
* those placeholders are left untouched.
|
|
25
|
+
*/
|
|
26
|
+
export interface WorkflowInstructionScope {
|
|
27
|
+
/** The current node's input, exposing fields for `{Class.field}`. */
|
|
28
|
+
input?: unknown;
|
|
29
|
+
/** Predecessor node outputs keyed by node name, for `<Class.field from node>`. */
|
|
30
|
+
outputsByNode?: Record<string, unknown>;
|
|
31
|
+
}
|
|
17
32
|
/**
|
|
18
33
|
* The parameters for creating an invocation context.
|
|
19
34
|
*/
|
|
@@ -24,7 +39,7 @@ export interface InvocationContextParams {
|
|
|
24
39
|
credentialService?: BaseCredentialService;
|
|
25
40
|
invocationId: string;
|
|
26
41
|
branch?: string;
|
|
27
|
-
agent
|
|
42
|
+
agent?: BaseAgent;
|
|
28
43
|
userContent?: Content;
|
|
29
44
|
session: Session;
|
|
30
45
|
endInvocation?: boolean;
|
|
@@ -33,6 +48,12 @@ export interface InvocationContextParams {
|
|
|
33
48
|
activeStreamingTools?: Record<string, ActiveStreamingTool>;
|
|
34
49
|
pluginManager: PluginManager;
|
|
35
50
|
abortSignal?: AbortSignal;
|
|
51
|
+
workflowInstructionScope?: WorkflowInstructionScope;
|
|
52
|
+
isolationScope?: string;
|
|
53
|
+
/** Nesting depth of node-as-tool executions; used to bound recursion. */
|
|
54
|
+
nodeToolDepth?: number;
|
|
55
|
+
liveRequestQueue?: LiveRequestQueue;
|
|
56
|
+
liveSessionResumptionHandle?: string;
|
|
36
57
|
}
|
|
37
58
|
/**
|
|
38
59
|
* An invocation context represents the data of a single invocation of an agent.
|
|
@@ -93,9 +114,19 @@ export declare class InvocationContext {
|
|
|
93
114
|
*/
|
|
94
115
|
branch?: string;
|
|
95
116
|
/**
|
|
96
|
-
* The
|
|
117
|
+
* The agent driving this invocation.
|
|
118
|
+
*
|
|
119
|
+
* Unset when the root being run is a bare {@link BaseNode} — a `Workflow`
|
|
120
|
+
* handed straight to the `Runner` — because there is no agent in play at
|
|
121
|
+
* that level. Nodes deeper in the graph that *are* agents get their own
|
|
122
|
+
* contexts with this set. Mirrors adk-python, whose field is
|
|
123
|
+
* `BaseAgent | BaseNode | None` and which passes `None` on the node path.
|
|
124
|
+
*
|
|
125
|
+
* Most code reaches this from inside an agent's own execution, where it is
|
|
126
|
+
* always set; prefer {@link requireAgent} there, so a broken invariant
|
|
127
|
+
* fails by name rather than as a property access on `undefined`.
|
|
97
128
|
*/
|
|
98
|
-
agent
|
|
129
|
+
agent?: BaseAgent;
|
|
99
130
|
/**
|
|
100
131
|
* The user content that started this invocation.
|
|
101
132
|
*/
|
|
@@ -135,6 +166,41 @@ export declare class InvocationContext {
|
|
|
135
166
|
*/
|
|
136
167
|
pluginManager: PluginManager;
|
|
137
168
|
readonly abortSignal?: AbortSignal;
|
|
169
|
+
/**
|
|
170
|
+
* An optional channel into which a running tool can push events to be
|
|
171
|
+
* interleaved into the agent's output stream. Set by the LLM flow around tool
|
|
172
|
+
* execution so a {@link NodeTool} (running a node/workflow) can surface the
|
|
173
|
+
* node's intermediate and interrupt events. Cleared once tools finish.
|
|
174
|
+
*/
|
|
175
|
+
eventQueue?: AsyncQueue<Event>;
|
|
176
|
+
/**
|
|
177
|
+
* Workflow: field-resolution scope for `{Class.field}` /
|
|
178
|
+
* `<Class.field from node>` instruction placeholders (set by
|
|
179
|
+
* `LLMAgentWrapper`).
|
|
180
|
+
*/
|
|
181
|
+
workflowInstructionScope?: WorkflowInstructionScope;
|
|
182
|
+
/**
|
|
183
|
+
* Workflow: the isolation scope of the node this context runs in. Events
|
|
184
|
+
* carrying a different scope are withheld from this agent's LLM request.
|
|
185
|
+
*/
|
|
186
|
+
isolationScope?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Nesting depth of node-as-tool ({@link NodeTool}) executions in this
|
|
189
|
+
* invocation. Incremented each time a node runs as a tool (via a depth+1
|
|
190
|
+
* clone), so `NodeTool` can bound `node -> tool -> node` recursion.
|
|
191
|
+
*/
|
|
192
|
+
readonly nodeToolDepth: number;
|
|
193
|
+
/**
|
|
194
|
+
* The live request queue feeding the model on the bidirectional (live) path.
|
|
195
|
+
* Set only for invocations started via `runner.runLive`.
|
|
196
|
+
*/
|
|
197
|
+
readonly liveRequestQueue?: LiveRequestQueue;
|
|
198
|
+
/**
|
|
199
|
+
* The most recent session resumption handle observed on the live path.
|
|
200
|
+
* Updated as the server emits resumption updates so a reconnect can restore
|
|
201
|
+
* server-side state instead of replaying history. Mutable by design.
|
|
202
|
+
*/
|
|
203
|
+
liveSessionResumptionHandle?: string;
|
|
138
204
|
/**
|
|
139
205
|
* @param params The parameters for creating an invocation context.
|
|
140
206
|
*/
|
|
@@ -153,5 +219,31 @@ export declare class InvocationContext {
|
|
|
153
219
|
* @throws If number of llm calls made exceed the set threshold.
|
|
154
220
|
*/
|
|
155
221
|
incrementLlmCallCount(): void;
|
|
222
|
+
/**
|
|
223
|
+
* Returns a copy of this context with `overrides` applied. The spread carries
|
|
224
|
+
* every own field over (including the shared cost manager), so the copy keeps
|
|
225
|
+
* a single LLM-call counter for the invocation.
|
|
226
|
+
*
|
|
227
|
+
* Note: this copies own enumerable fields by value — scalar mutable fields
|
|
228
|
+
* (e.g. `endInvocation`) are decoupled from the original, while object-valued
|
|
229
|
+
* fields (`session`, …) stay shared by reference.
|
|
230
|
+
*/
|
|
231
|
+
clone(overrides?: Partial<InvocationContextParams>): InvocationContext;
|
|
156
232
|
}
|
|
157
233
|
export declare function newInvocationContextId(): string;
|
|
234
|
+
/**
|
|
235
|
+
* The agent driving `ctx`, for code that only runs because one is.
|
|
236
|
+
*
|
|
237
|
+
* An LLM flow, an agent transfer, a tool call: each is reached from inside an
|
|
238
|
+
* agent's own execution, so {@link InvocationContext.agent} is set by
|
|
239
|
+
* construction. Going through here says that out loud, and turns a violated
|
|
240
|
+
* assumption into a named error rather than a property access on `undefined`
|
|
241
|
+
* several frames away.
|
|
242
|
+
*
|
|
243
|
+
* A free function rather than an accessor on the class, because a good deal of
|
|
244
|
+
* code (and most tests) passes a duck-typed context object; a getter would be
|
|
245
|
+
* simply absent on those, which fails less clearly than not having the agent.
|
|
246
|
+
*
|
|
247
|
+
* @throws if the invocation is driving a bare node rather than an agent.
|
|
248
|
+
*/
|
|
249
|
+
export declare function requireAgent(ctx: InvocationContext): BaseAgent;
|
|
@@ -35,9 +35,15 @@ export declare class LiveRequestQueue {
|
|
|
35
35
|
/**
|
|
36
36
|
* Retrieves a request from the queue. If the queue is empty, it will
|
|
37
37
|
* wait until a request is available.
|
|
38
|
+
*
|
|
39
|
+
* @param abortSignal When provided, a parked (pending) read is released by
|
|
40
|
+
* rejecting with an abort error once the signal fires. The live send
|
|
41
|
+
* loop passes the connection's abort signal so a waiter is not stranded
|
|
42
|
+
* across reconnect/teardown, where it could otherwise steal a request
|
|
43
|
+
* from the next connection's send loop.
|
|
38
44
|
* @returns A promise that resolves with the next available request.
|
|
39
45
|
*/
|
|
40
|
-
get(): Promise<LiveRequest>;
|
|
46
|
+
get(abortSignal?: AbortSignal): Promise<LiveRequest>;
|
|
41
47
|
/**
|
|
42
48
|
* Sends a close signal to the queue.
|
|
43
49
|
*/
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { GenerateContentConfig, Schema } from '@google/genai';
|
|
7
|
+
import { FinishTaskTool } from '../tools/finish_task_tool.js';
|
|
8
|
+
import { type BaseNode } from '../workflow/base_node.js';
|
|
9
|
+
import { NodeContext } from '../workflow/node_context.js';
|
|
7
10
|
import { z as z3 } from 'zod/v3';
|
|
8
11
|
import { z as z4 } from 'zod/v4';
|
|
9
12
|
import { BaseCodeExecutor } from '../code_executors/base_code_executor.js';
|
|
@@ -16,6 +19,7 @@ import { LlmResponse } from '../models/llm_response.js';
|
|
|
16
19
|
import { BaseTool } from '../tools/base_tool.js';
|
|
17
20
|
import { BaseToolset } from '../tools/base_toolset.js';
|
|
18
21
|
import { Context } from './context.js';
|
|
22
|
+
import { SchemaLike } from '../utils/schema.js';
|
|
19
23
|
import { BaseAgent, BaseAgentConfig } from './base_agent.js';
|
|
20
24
|
import { BaseLlmRequestProcessor, BaseLlmResponseProcessor } from './processors/base_llm_processor.js';
|
|
21
25
|
import { BaseContextCompactor } from '../context/base_context_compactor.js';
|
|
@@ -112,7 +116,7 @@ export type AfterToolCallback = SingleAfterToolCallback | SingleAfterToolCallbac
|
|
|
112
116
|
/** A list of examples or an example provider. */
|
|
113
117
|
export type ExamplesUnion = Example[] | BaseExampleProvider;
|
|
114
118
|
/** A union of tool types that can be provided to an agent. */
|
|
115
|
-
export type ToolUnion = BaseTool | BaseToolset;
|
|
119
|
+
export type ToolUnion = BaseTool | BaseToolset | BaseNode;
|
|
116
120
|
/**
|
|
117
121
|
* The configuration options for creating an LLM-based agent.
|
|
118
122
|
*/
|
|
@@ -166,6 +170,15 @@ export interface LlmAgentConfig extends BaseAgentConfig {
|
|
|
166
170
|
* instruction and input
|
|
167
171
|
*/
|
|
168
172
|
includeContents?: 'default' | 'none';
|
|
173
|
+
/**
|
|
174
|
+
* The agent's execution mode when run as a workflow node.
|
|
175
|
+
*
|
|
176
|
+
* - `single_turn` (default): the agent runs once against the node input.
|
|
177
|
+
* - `task`: the agent is given a `finish_task` tool and runs a multi-round
|
|
178
|
+
* loop until it calls `finish_task`, whose arguments (conforming to
|
|
179
|
+
* `outputSchema`) become the node output. Mirrors Python's `Agent(mode=...)`.
|
|
180
|
+
*/
|
|
181
|
+
mode?: 'single_turn' | 'task';
|
|
169
182
|
/** The input schema when agent is used as a tool. */
|
|
170
183
|
inputSchema?: LlmAgentSchema;
|
|
171
184
|
/** The output schema when agent replies. */
|
|
@@ -238,9 +251,34 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
|
|
|
238
251
|
disallowTransferToParent: boolean;
|
|
239
252
|
disallowTransferToPeers: boolean;
|
|
240
253
|
includeContents: 'default' | 'none';
|
|
254
|
+
/**
|
|
255
|
+
* Whether {@link includeContents} was set by the caller rather than defaulted.
|
|
256
|
+
*
|
|
257
|
+
* A workflow node runs its agent for a single turn on the input the graph
|
|
258
|
+
* handed it, so the agent must not also read the surrounding conversation —
|
|
259
|
+
* unless the author asked for it. Mirrors Python checking
|
|
260
|
+
* `'include_contents' in agent.model_fields_set`.
|
|
261
|
+
*/
|
|
262
|
+
readonly includeContentsExplicit: boolean;
|
|
263
|
+
mode?: 'single_turn' | 'task';
|
|
241
264
|
inputSchema?: Schema;
|
|
242
265
|
outputSchema?: Schema;
|
|
266
|
+
/**
|
|
267
|
+
* The input schema exactly as it was supplied, before conversion into the
|
|
268
|
+
* genai dialect.
|
|
269
|
+
*
|
|
270
|
+
* `inputSchema` is normalized to a genai `Schema` because that is what the
|
|
271
|
+
* model API and function declarations require, but that conversion is lossy:
|
|
272
|
+
* a Zod refinement, transform, or custom error message has no genai
|
|
273
|
+
* equivalent. Validation therefore uses the original, falling back to the
|
|
274
|
+
* converted form when the schema was given in the genai dialect to begin
|
|
275
|
+
* with.
|
|
276
|
+
*/
|
|
277
|
+
readonly inputSchemaSource?: SchemaLike;
|
|
278
|
+
/** The output schema as supplied — see {@link inputSchemaSource}. */
|
|
279
|
+
readonly outputSchemaSource?: SchemaLike;
|
|
243
280
|
outputKey?: string;
|
|
281
|
+
private _finishTaskTool?;
|
|
244
282
|
beforeModelCallback?: BeforeModelCallback;
|
|
245
283
|
afterModelCallback?: AfterModelCallback;
|
|
246
284
|
beforeToolCallback?: BeforeToolCallback;
|
|
@@ -255,6 +293,11 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
|
|
|
255
293
|
* When not set, the agent will inherit the model from its ancestor.
|
|
256
294
|
*/
|
|
257
295
|
get canonicalModel(): BaseLlm;
|
|
296
|
+
/**
|
|
297
|
+
* The `finish_task` tool for this agent (task mode). Lazily created and cached
|
|
298
|
+
* so its declaration (derived from `outputSchema`) is stable across turns.
|
|
299
|
+
*/
|
|
300
|
+
get finishTaskTool(): FinishTaskTool;
|
|
258
301
|
/**
|
|
259
302
|
* The resolved instruction field to construct instruction for this
|
|
260
303
|
* agent.
|
|
@@ -329,6 +372,28 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
|
|
|
329
372
|
* @param event The event to process.
|
|
330
373
|
*/
|
|
331
374
|
private maybeSaveOutputToState;
|
|
375
|
+
/**
|
|
376
|
+
* Validates a value against this agent's output schema, in whichever dialect
|
|
377
|
+
* it was declared, and returns the parsed value.
|
|
378
|
+
*
|
|
379
|
+
* Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
|
|
380
|
+
* form derived from it, since the conversion drops constraints Zod can
|
|
381
|
+
* express and genai cannot.
|
|
382
|
+
*
|
|
383
|
+
* @throws if the value does not satisfy the schema.
|
|
384
|
+
*/
|
|
385
|
+
validateOutput(value: unknown): unknown;
|
|
386
|
+
/**
|
|
387
|
+
* Runs this agent as a workflow node.
|
|
388
|
+
*
|
|
389
|
+
* Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
|
|
390
|
+
* `LlmAgent` has a node input to inject into the conversation, instruction
|
|
391
|
+
* placeholders to resolve against it, a reply to promote to node output, and
|
|
392
|
+
* — in `task` mode — a `finish_task` round-trip to drive. All of that lives
|
|
393
|
+
* in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
|
|
394
|
+
* delegating to `run_llm_agent_as_node`.
|
|
395
|
+
*/
|
|
396
|
+
protected runImpl(ctx: NodeContext, nodeInput: unknown): AsyncGenerator<Event, void, void>;
|
|
332
397
|
protected runAsyncImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
|
|
333
398
|
protected runLiveImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
|
|
334
399
|
/**
|
|
@@ -346,6 +411,17 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
|
|
|
346
411
|
* already holds the conversation state associated with the handle.
|
|
347
412
|
*/
|
|
348
413
|
private runLiveFlow;
|
|
414
|
+
private runLivePreprocess;
|
|
415
|
+
private runSendLoop;
|
|
416
|
+
private dispatchLiveRequest;
|
|
417
|
+
/**
|
|
418
|
+
* Tears down a live attempt: stops the send loop, closes the connection
|
|
419
|
+
* (swallowing close errors), and waits for the send task to settle. Used
|
|
420
|
+
* before reconnecting or propagating an error.
|
|
421
|
+
*/
|
|
422
|
+
private teardownLiveConnection;
|
|
423
|
+
private runReceiveLoop;
|
|
424
|
+
private postprocessLive;
|
|
349
425
|
private runOneStepAsync;
|
|
350
426
|
private postprocess;
|
|
351
427
|
/**
|
|
@@ -33,6 +33,11 @@ export declare function isLoopAgent(obj: unknown): obj is LoopAgent;
|
|
|
33
33
|
*
|
|
34
34
|
* When sub-agent generates an event with escalate or max_iterations are
|
|
35
35
|
* reached, the loop agent will stop.
|
|
36
|
+
*
|
|
37
|
+
* @deprecated Use `Workflow` instead, which expresses the same ordering as a
|
|
38
|
+
* graph and adds routing, retries, HITL and resumability. This class will be
|
|
39
|
+
* removed in a future version. Note that a `Workflow` cannot yet be an
|
|
40
|
+
* `LlmAgent` sub-agent.
|
|
36
41
|
*/
|
|
37
42
|
export declare class LoopAgent extends BaseAgent<LoopAgentConfig> {
|
|
38
43
|
/**
|
|
@@ -25,6 +25,11 @@ export declare function isParallelAgent(obj: unknown): obj is ParallelAgent;
|
|
|
25
25
|
*
|
|
26
26
|
* - Running different algorithms simultaneously.
|
|
27
27
|
* - Generating multiple responses for review by a subsequent evaluation agent.
|
|
28
|
+
*
|
|
29
|
+
* @deprecated Use `Workflow` instead, which expresses the same ordering as a
|
|
30
|
+
* graph and adds routing, retries, HITL and resumability. This class will be
|
|
31
|
+
* removed in a future version. Note that a `Workflow` cannot yet be an
|
|
32
|
+
* `LlmAgent` sub-agent.
|
|
28
33
|
*/
|
|
29
34
|
export declare class ParallelAgent extends BaseAgent {
|
|
30
35
|
/**
|
|
@@ -19,10 +19,11 @@ export declare function removeClientFunctionCallId(content: Content): void;
|
|
|
19
19
|
* @param events: A list of all session events.
|
|
20
20
|
* @param agentName: The name of the agent.
|
|
21
21
|
* @param currentBranch: The current branch of the agent.
|
|
22
|
+
* @param currentIsolationScope: The isolation scope of the current node, if any.
|
|
22
23
|
*
|
|
23
24
|
* @returns A list of processed contents.
|
|
24
25
|
*/
|
|
25
|
-
export declare function getContents(events: Event[], agentName: string, currentBranch?: string): Content[];
|
|
26
|
+
export declare function getContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
|
|
26
27
|
/**
|
|
27
28
|
* Get contents for the current turn only (no conversation history).
|
|
28
29
|
*
|
|
@@ -41,7 +42,7 @@ export declare function getContents(events: Event[], agentName: string, currentB
|
|
|
41
42
|
* @returns A list of contents for the current turn only, preserving context
|
|
42
43
|
* needed for proper tool execution while excluding conversation history.
|
|
43
44
|
*/
|
|
44
|
-
export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string): Content[];
|
|
45
|
+
export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
|
|
45
46
|
/**
|
|
46
47
|
* Merges a list of function_response events into one event.
|
|
47
48
|
*
|
|
@@ -10,11 +10,14 @@ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
|
|
|
10
10
|
/**
|
|
11
11
|
* Appends identity instructions to the {@link LlmRequest} system prompt,
|
|
12
12
|
* informing the model of the agent's name and description.
|
|
13
|
+
*
|
|
14
|
+
* The instructions are omitted for an agent that cannot transfer control
|
|
15
|
+
* anywhere, since nothing in the prompt consumes the identity in that case.
|
|
13
16
|
*/
|
|
14
17
|
export declare class IdentityLlmRequestProcessor extends BaseLlmRequestProcessor {
|
|
15
18
|
/**
|
|
16
19
|
* Appends agent name and description as identity instructions to the system
|
|
17
|
-
* prompt of the request.
|
|
20
|
+
* prompt of the request, unless the agent has no reachable transfer target.
|
|
18
21
|
*
|
|
19
22
|
* @param invocationContext - The current invocation context.
|
|
20
23
|
* @param llmRequest - The request object to append instructions to.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Event } from '../../events/event.js';
|
|
7
|
+
import { InvocationContext } from '../invocation_context.js';
|
|
8
|
+
import { BaseLlmRequestProcessor } from './base_llm_processor.js';
|
|
9
|
+
/**
|
|
10
|
+
* Resumes a {@link NodeTool} call that paused for input. When a node/workflow
|
|
11
|
+
* run inside a node-tool raises a `RequestInput` interrupt, the node-tool's
|
|
12
|
+
* function call is left pending (no response) and the invocation pauses. On the
|
|
13
|
+
* next turn, once the user answers the `adk_request_input` interrupt, this
|
|
14
|
+
* processor re-runs the pending node-tool with the answer(s) threaded as
|
|
15
|
+
* `resumeInputs`, then emits the tool's function response so the agent can
|
|
16
|
+
* continue. Analogous to {@link RequestConfirmationLlmRequestProcessor}.
|
|
17
|
+
*/
|
|
18
|
+
export declare class RequestInputLlmRequestProcessor extends BaseLlmRequestProcessor {
|
|
19
|
+
runAsync(invocationContext: InvocationContext): AsyncGenerator<Event, void, void>;
|
|
20
|
+
}
|
|
21
|
+
export declare const REQUEST_INPUT_LLM_REQUEST_PROCESSOR: RequestInputLlmRequestProcessor;
|
|
@@ -3,13 +3,18 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AudioTranscriptionConfig, Modality, ProactivityConfig, RealtimeInputConfig, SpeechConfig } from '@google/genai';
|
|
6
|
+
import { AudioTranscriptionConfig, ContextWindowCompressionConfig, Modality, ProactivityConfig, RealtimeInputConfig, SpeechConfig } from '@google/genai';
|
|
7
7
|
/**
|
|
8
8
|
* The streaming mode for the run config.
|
|
9
9
|
*/
|
|
10
10
|
export declare enum StreamingMode {
|
|
11
11
|
NONE = "none",
|
|
12
12
|
SSE = "sse",
|
|
13
|
+
/**
|
|
14
|
+
* Bidirectional streaming. Not yet supported; passing this value to
|
|
15
|
+
* `createRunConfig` throws. Use {@link StreamingMode.SSE} for token
|
|
16
|
+
* streaming.
|
|
17
|
+
*/
|
|
13
18
|
BIDI = "bidi"
|
|
14
19
|
}
|
|
15
20
|
/**
|
|
@@ -38,7 +43,9 @@ export interface RunConfig {
|
|
|
38
43
|
*/
|
|
39
44
|
supportCfc?: boolean;
|
|
40
45
|
/**
|
|
41
|
-
* Streaming mode
|
|
46
|
+
* Streaming mode. Supported values are {@link StreamingMode.NONE} and
|
|
47
|
+
* {@link StreamingMode.SSE}. {@link StreamingMode.BIDI} is not yet
|
|
48
|
+
* supported and is rejected by `createRunConfig`.
|
|
42
49
|
*/
|
|
43
50
|
streamingMode?: StreamingMode;
|
|
44
51
|
/**
|
|
@@ -63,6 +70,11 @@ export interface RunConfig {
|
|
|
63
70
|
* Realtime input config for live agents with audio input from user.
|
|
64
71
|
*/
|
|
65
72
|
realtimeInputConfig?: RealtimeInputConfig;
|
|
73
|
+
/**
|
|
74
|
+
* Context window compression config. When the running context exceeds
|
|
75
|
+
* `triggerTokens`, the server compresses older history to `targetTokens`.
|
|
76
|
+
*/
|
|
77
|
+
contextWindowCompression?: ContextWindowCompressionConfig;
|
|
66
78
|
/**
|
|
67
79
|
* A limit on the total number of llm calls for a given run.
|
|
68
80
|
*
|
|
@@ -77,6 +89,44 @@ export interface RunConfig {
|
|
|
77
89
|
* to intercept and execute tools (Client-Side Tool Execution).
|
|
78
90
|
*/
|
|
79
91
|
pauseOnToolCalls?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* If true, a plain-text user reply (e.g. "yes"/"no") may resolve a pending
|
|
94
|
+
* `requireConfirmation` tool gate. Off by default so an ordinary chat message
|
|
95
|
+
* on a web/API surface is never silently reinterpreted as a security
|
|
96
|
+
* decision; interactive front-ends (e.g. `adk run`) opt in explicitly.
|
|
97
|
+
*/
|
|
98
|
+
plainTextToolConfirmation?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* If true, a `requireConfirmation` gate may be answered by a message that
|
|
101
|
+
* arrived over A2A.
|
|
102
|
+
*
|
|
103
|
+
* Off by default: a remote peer is not the human operator, and a peer that
|
|
104
|
+
* can post to the task would otherwise be able to approve a dangerous tool
|
|
105
|
+
* call on the operator's behalf — the thing the gate exists to prevent. Turn
|
|
106
|
+
* it on only where the peer is a trusted relay for a real person: a front-end
|
|
107
|
+
* that renders the prompt and sends back what they chose.
|
|
108
|
+
*
|
|
109
|
+
* A deliberate divergence from adk-python, which refuses a remote-delivered
|
|
110
|
+
* confirmation outright and offers no way back. The default matches; the
|
|
111
|
+
* option does not exist there.
|
|
112
|
+
*/
|
|
113
|
+
allowRemoteToolConfirmation?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Set by the A2A executor to record that this run's message came from a
|
|
116
|
+
* remote peer. Not part of the configuration surface: an application setting
|
|
117
|
+
* it by hand is asserting something about the message's provenance that only
|
|
118
|
+
* the transport can know.
|
|
119
|
+
*
|
|
120
|
+
* Read by the tool-confirmation resume path only. The other two interrupts a
|
|
121
|
+
* peer can answer — `adk_request_credential` and `adk_request_input` — are
|
|
122
|
+
* answerable by a client by design: a credential is something a client holds,
|
|
123
|
+
* and an input request asks for data, not for judgement. Confirmation is the
|
|
124
|
+
* one that asks a specific human to take responsibility for an action, which
|
|
125
|
+
* is why it is the one a peer cannot stand in for.
|
|
126
|
+
*
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
remoteDelivered?: boolean;
|
|
80
130
|
}
|
|
81
131
|
/**
|
|
82
132
|
* Creates a {@link RunConfig} with production-safe defaults.
|
|
@@ -92,6 +142,7 @@ export interface RunConfig {
|
|
|
92
142
|
* @param params - Optional partial {@link RunConfig} overriding defaults.
|
|
93
143
|
* @returns A merged {@link RunConfig} object.
|
|
94
144
|
* @throws {Error} When `params.maxLlmCalls` exceeds `Number.MAX_SAFE_INTEGER`.
|
|
145
|
+
* @throws {Error} When `params.streamingMode` is {@link StreamingMode.BIDI}.
|
|
95
146
|
*/
|
|
96
147
|
export declare function createRunConfig(params?: Partial<RunConfig>): {
|
|
97
148
|
maxLlmCalls: number;
|
|
@@ -105,5 +156,9 @@ export declare function createRunConfig(params?: Partial<RunConfig>): {
|
|
|
105
156
|
enableAffectiveDialog: boolean;
|
|
106
157
|
proactivity?: ProactivityConfig | undefined;
|
|
107
158
|
realtimeInputConfig?: RealtimeInputConfig | undefined;
|
|
159
|
+
contextWindowCompression?: ContextWindowCompressionConfig | undefined;
|
|
108
160
|
pauseOnToolCalls: boolean;
|
|
161
|
+
plainTextToolConfirmation?: boolean | undefined;
|
|
162
|
+
allowRemoteToolConfirmation?: boolean | undefined;
|
|
163
|
+
remoteDelivered?: boolean | undefined;
|
|
109
164
|
};
|
|
@@ -19,6 +19,11 @@ declare const SEQUENTIAL_AGENT_SIGNATURE_SYMBOL: unique symbol;
|
|
|
19
19
|
export declare function isSequentialAgent(obj: unknown): obj is SequentialAgent;
|
|
20
20
|
/**
|
|
21
21
|
* A shell agent that runs its sub-agents in a sequential order.
|
|
22
|
+
*
|
|
23
|
+
* @deprecated Use `Workflow` instead, which expresses the same ordering as a
|
|
24
|
+
* graph and adds routing, retries, HITL and resumability. This class will be
|
|
25
|
+
* removed in a future version. Note that a `Workflow` cannot yet be an
|
|
26
|
+
* `LlmAgent` sub-agent.
|
|
22
27
|
*/
|
|
23
28
|
export declare class SequentialAgent extends BaseAgent {
|
|
24
29
|
/**
|