@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
|
@@ -11,6 +11,8 @@ import { Event } from '../events/event.js';
|
|
|
11
11
|
import { LlmRequest } from '../models/llm_request.js';
|
|
12
12
|
import { LlmResponse } from '../models/llm_response.js';
|
|
13
13
|
import { BaseTool } from '../tools/base_tool.js';
|
|
14
|
+
import type { BaseNode } from '../workflow/base_node.js';
|
|
15
|
+
import type { NodeContext } from '../workflow/node_context.js';
|
|
14
16
|
/**
|
|
15
17
|
* Trigger for context compaction.
|
|
16
18
|
*/
|
|
@@ -204,6 +206,39 @@ export declare abstract class BasePlugin {
|
|
|
204
206
|
agent: BaseAgent;
|
|
205
207
|
callbackContext: Context;
|
|
206
208
|
}): Promise<Content | undefined>;
|
|
209
|
+
/**
|
|
210
|
+
* Callback executed before a workflow node runs.
|
|
211
|
+
*
|
|
212
|
+
* @param params.node The node that is about to run.
|
|
213
|
+
* @param params.nodeContext The node's execution context.
|
|
214
|
+
* @param params.input The input the node is about to receive.
|
|
215
|
+
* @returns An optional value. If anything other than `undefined` is returned,
|
|
216
|
+
* the node's body is skipped and the returned value becomes its output,
|
|
217
|
+
* which is how a plugin implements a node-level cache or a stub.
|
|
218
|
+
* Returning `undefined` lets the node run normally.
|
|
219
|
+
*/
|
|
220
|
+
beforeNodeCallback(params: {
|
|
221
|
+
node: BaseNode;
|
|
222
|
+
nodeContext: NodeContext;
|
|
223
|
+
input: unknown;
|
|
224
|
+
}): Promise<unknown>;
|
|
225
|
+
/**
|
|
226
|
+
* Callback executed after a workflow node has run.
|
|
227
|
+
*
|
|
228
|
+
* Not called for a node whose body was skipped by `beforeNodeCallback`, and
|
|
229
|
+
* not called when the node throws.
|
|
230
|
+
*
|
|
231
|
+
* @param params.node The node that has just run.
|
|
232
|
+
* @param params.nodeContext The node's execution context.
|
|
233
|
+
* @param params.output The output the node produced.
|
|
234
|
+
* @returns An optional value replacing the node's output. Returning
|
|
235
|
+
* `undefined` keeps the original.
|
|
236
|
+
*/
|
|
237
|
+
afterNodeCallback(params: {
|
|
238
|
+
node: BaseNode;
|
|
239
|
+
nodeContext: NodeContext;
|
|
240
|
+
output: unknown;
|
|
241
|
+
}): Promise<unknown>;
|
|
207
242
|
/**
|
|
208
243
|
* Callback executed before a request is sent to the model.
|
|
209
244
|
*
|
|
@@ -11,6 +11,8 @@ import { Event } from '../events/event.js';
|
|
|
11
11
|
import { LlmRequest } from '../models/llm_request.js';
|
|
12
12
|
import { LlmResponse } from '../models/llm_response.js';
|
|
13
13
|
import { BaseTool } from '../tools/base_tool.js';
|
|
14
|
+
import type { BaseNode } from '../workflow/base_node.js';
|
|
15
|
+
import type { NodeContext } from '../workflow/node_context.js';
|
|
14
16
|
import { BasePlugin, ContextCompactionTrigger } from './base_plugin.js';
|
|
15
17
|
/**
|
|
16
18
|
* Manages the registration and execution of plugins.
|
|
@@ -28,6 +30,8 @@ import { BasePlugin, ContextCompactionTrigger } from './base_plugin.js';
|
|
|
28
30
|
*/
|
|
29
31
|
export declare class PluginManager {
|
|
30
32
|
private readonly plugins;
|
|
33
|
+
/** Whether any plugin is registered. */
|
|
34
|
+
get hasPlugins(): boolean;
|
|
31
35
|
/**
|
|
32
36
|
* Initializes the plugin service.
|
|
33
37
|
*
|
|
@@ -103,6 +107,22 @@ export declare class PluginManager {
|
|
|
103
107
|
agent: BaseAgent;
|
|
104
108
|
callbackContext: Context;
|
|
105
109
|
}): Promise<Content | undefined>;
|
|
110
|
+
/**
|
|
111
|
+
* Runs the `beforeNodeCallback` for all plugins.
|
|
112
|
+
*/
|
|
113
|
+
runBeforeNodeCallback({ node, nodeContext, input, }: {
|
|
114
|
+
node: BaseNode;
|
|
115
|
+
nodeContext: NodeContext;
|
|
116
|
+
input: unknown;
|
|
117
|
+
}): Promise<unknown>;
|
|
118
|
+
/**
|
|
119
|
+
* Runs the `afterNodeCallback` for all plugins.
|
|
120
|
+
*/
|
|
121
|
+
runAfterNodeCallback({ node, nodeContext, output, }: {
|
|
122
|
+
node: BaseNode;
|
|
123
|
+
nodeContext: NodeContext;
|
|
124
|
+
output: unknown;
|
|
125
|
+
}): Promise<unknown>;
|
|
106
126
|
/**
|
|
107
127
|
* Runs the `beforeToolSelection` for all plugins.
|
|
108
128
|
*/
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { FunctionCall } from '@google/genai';
|
|
7
7
|
import { Context } from '../agents/context.js';
|
|
8
|
+
import { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME } from '../agents/functions.js';
|
|
8
9
|
import { Event } from '../events/event.js';
|
|
9
10
|
import { BasePlugin } from '../plugins/base_plugin.js';
|
|
10
11
|
import { BaseTool } from '../tools/base_tool.js';
|
|
11
|
-
export
|
|
12
|
+
export { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME };
|
|
12
13
|
/**
|
|
13
14
|
* The outcome of a policy check.
|
|
14
15
|
*/
|
|
@@ -46,9 +47,10 @@ export declare class InMemoryPolicyEngine implements BasePolicyEngine {
|
|
|
46
47
|
/**
|
|
47
48
|
* Always returns {@link PolicyOutcome.ALLOW} for every tool call.
|
|
48
49
|
*
|
|
50
|
+
* @param _context - The tool and its arguments; ignored.
|
|
49
51
|
* @returns A promise resolving to an ALLOW result.
|
|
50
52
|
*/
|
|
51
|
-
evaluate(): Promise<PolicyCheckResult>;
|
|
53
|
+
evaluate(_context: ToolCallPolicyContext): Promise<PolicyCheckResult>;
|
|
52
54
|
}
|
|
53
55
|
/**
|
|
54
56
|
* Security Plugin for running Orcas agents.
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { BaseAgent } from '../agents/base_agent.js';
|
|
7
6
|
import { App } from '../apps/app.js';
|
|
8
7
|
import { ResumabilityConfig } from '../apps/resumability_config.js';
|
|
9
8
|
import { BasePlugin } from '../plugins/base_plugin.js';
|
|
9
|
+
import { RunnableRoot } from '../workflow/run_node_as_invocation.js';
|
|
10
10
|
import { Runner } from './runner.js';
|
|
11
11
|
/**
|
|
12
12
|
* A {@link Runner} pre-configured with in-memory services.
|
|
@@ -40,7 +40,7 @@ export declare class InMemoryRunner extends Runner {
|
|
|
40
40
|
*/
|
|
41
41
|
constructor(params: {
|
|
42
42
|
app?: App;
|
|
43
|
-
agent?:
|
|
43
|
+
agent?: RunnableRoot;
|
|
44
44
|
appName?: string;
|
|
45
45
|
plugins?: BasePlugin[];
|
|
46
46
|
resumabilityConfig?: ResumabilityConfig;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Content } from '@google/genai';
|
|
7
7
|
import { BaseAgent } from '../agents/base_agent.js';
|
|
8
|
+
import { LiveRequestQueue } from '../agents/live_request_queue.js';
|
|
8
9
|
import { RunConfig } from '../agents/run_config.js';
|
|
9
10
|
import { App } from '../apps/app.js';
|
|
10
11
|
import { ResumabilityConfig } from '../apps/resumability_config.js';
|
|
@@ -16,6 +17,8 @@ import { BasePlugin } from '../plugins/base_plugin.js';
|
|
|
16
17
|
import { PluginManager } from '../plugins/plugin_manager.js';
|
|
17
18
|
import { BaseSessionService } from '../sessions/base_session_service.js';
|
|
18
19
|
import { Session } from '../sessions/session.js';
|
|
20
|
+
import type { RunnableNode } from '../workflow/graph.js';
|
|
21
|
+
import { RunnableRoot } from '../workflow/run_node_as_invocation.js';
|
|
19
22
|
/**
|
|
20
23
|
* The configuration parameters for the Runner.
|
|
21
24
|
*/
|
|
@@ -29,9 +32,15 @@ export interface RunnerConfig {
|
|
|
29
32
|
*/
|
|
30
33
|
appName?: string;
|
|
31
34
|
/**
|
|
32
|
-
* The agent to run. Required if `app` is not provided.
|
|
35
|
+
* The agent or workflow to run. Required if `app` is not provided.
|
|
36
|
+
*
|
|
37
|
+
* A bare node — a `Workflow`, most usefully — is accepted as the root and
|
|
38
|
+
* driven directly, so a graph does not have to be wrapped by hand to be run.
|
|
39
|
+
* The accepted set is the one an edge takes: any other node-like value
|
|
40
|
+
* becomes the single node of a one-node workflow. Mirrors adk-python, whose
|
|
41
|
+
* `Runner.agent` is typed `BaseNode`.
|
|
33
42
|
*/
|
|
34
|
-
agent?:
|
|
43
|
+
agent?: RunnableNode;
|
|
35
44
|
/**
|
|
36
45
|
* An optional list of plugins to apply globally across all agents.
|
|
37
46
|
*/
|
|
@@ -96,7 +105,11 @@ export declare function isRunner(obj: unknown): obj is Runner;
|
|
|
96
105
|
export declare class Runner {
|
|
97
106
|
readonly [RUNNER_SIGNATURE_SYMBOL] = true;
|
|
98
107
|
readonly appName: string;
|
|
99
|
-
|
|
108
|
+
/**
|
|
109
|
+
* The root being run: an agent, or a bare node (a `Workflow`) that the
|
|
110
|
+
* runner drives directly.
|
|
111
|
+
*/
|
|
112
|
+
readonly agent: RunnableRoot;
|
|
100
113
|
readonly pluginManager: PluginManager;
|
|
101
114
|
readonly artifactService?: BaseArtifactService;
|
|
102
115
|
readonly sessionService: BaseSessionService;
|
|
@@ -145,6 +158,19 @@ export declare class Runner {
|
|
|
145
158
|
abortSignal?: AbortSignal;
|
|
146
159
|
customMetadata?: Record<string, unknown>;
|
|
147
160
|
}): AsyncGenerator<Event, void, undefined>;
|
|
161
|
+
/**
|
|
162
|
+
* Runs whatever this runner was given as its root.
|
|
163
|
+
*
|
|
164
|
+
* An agent is run through `runAsync`, as always. A bare node — a `Workflow`
|
|
165
|
+
* handed to the runner directly — is driven by {@link runNodeAsInvocation}.
|
|
166
|
+
*
|
|
167
|
+
* Only the execution differs. Everything around it (the run callbacks, event
|
|
168
|
+
* persistence, cancellation) is shared, so the node path cannot drift from
|
|
169
|
+
* the agent path on the things that are not about execution. adk-python has
|
|
170
|
+
* two separate loops here and a TODO noting its node one lacks tracing and
|
|
171
|
+
* plugins; there is nothing to lack if there is only one loop.
|
|
172
|
+
*/
|
|
173
|
+
private runRoot;
|
|
148
174
|
/**
|
|
149
175
|
* Saves artifacts from the message parts and replaces the inline data with
|
|
150
176
|
* a file name placeholder and optional file reference.
|
|
@@ -171,6 +197,36 @@ export declare class Runner {
|
|
|
171
197
|
* @returns True if the agent can transfer, False otherwise.
|
|
172
198
|
*/
|
|
173
199
|
private isRoutableLlmAgent;
|
|
200
|
+
/**
|
|
201
|
+
* Runs the agent in the live (bidirectional streaming) mode.
|
|
202
|
+
*
|
|
203
|
+
* Model media events that carry raw inline bytes (audio, video, or image)
|
|
204
|
+
* are yielded but not appended to the session to avoid persisting large
|
|
205
|
+
* blobs; events with `fileData` references and most other live events
|
|
206
|
+
* (transcriptions, tool calls, usage) are persisted as in `runAsync`.
|
|
207
|
+
*
|
|
208
|
+
* This feature is **experimental** and its API may change.
|
|
209
|
+
*
|
|
210
|
+
* @param params.userId The user ID of the session.
|
|
211
|
+
* @param params.sessionId The session ID of the session.
|
|
212
|
+
* @param params.liveRequestQueue The queue used to feed the live model.
|
|
213
|
+
* @param params.runConfig The run config for the agent.
|
|
214
|
+
* @param params.abortSignal Optional signal to abort the live run.
|
|
215
|
+
* @param params.liveSessionResumptionHandle Optional session resumption
|
|
216
|
+
* handle observed from a prior `runLive` cycle on the same conversation.
|
|
217
|
+
* When set, the agent's live flow opens the connection with
|
|
218
|
+
* `liveConnectConfig.sessionResumption.handle` so the server restores its
|
|
219
|
+
* state instead of relying on client-side history replay.
|
|
220
|
+
* @yields The events generated by the agent.
|
|
221
|
+
*/
|
|
222
|
+
runLive(params: {
|
|
223
|
+
userId: string;
|
|
224
|
+
sessionId: string;
|
|
225
|
+
liveRequestQueue: LiveRequestQueue;
|
|
226
|
+
runConfig?: RunConfig;
|
|
227
|
+
abortSignal?: AbortSignal;
|
|
228
|
+
liveSessionResumptionHandle?: string;
|
|
229
|
+
}): AsyncGenerator<Event, void, undefined>;
|
|
174
230
|
}
|
|
175
231
|
/**
|
|
176
232
|
* Determines the next agent to run to continue the session. This is primarily
|
|
@@ -40,8 +40,8 @@ export interface GetSessionRequest extends CompositeSessionKey {
|
|
|
40
40
|
export interface ListSessionsRequest {
|
|
41
41
|
/** The name of the application. */
|
|
42
42
|
appName: string;
|
|
43
|
-
/** The ID of the user. */
|
|
44
|
-
userId
|
|
43
|
+
/** The ID of the user. Sessions of every user are listed if omitted. */
|
|
44
|
+
userId?: string;
|
|
45
45
|
/** Maximum number of sessions to return. */
|
|
46
46
|
limit?: number;
|
|
47
47
|
/** Zero-based index of the first session to return. Ignored if `page` is set. */
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
import { SchemaLike } from '../utils/schema.js';
|
|
7
|
+
/** Raised when a state mutation violates the declared state schema. */
|
|
8
|
+
export declare class StateSchemaError extends TypeError {
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
/** Type guard for {@link StateSchemaError}. */
|
|
12
|
+
export declare function isStateSchemaError(e: unknown): e is StateSchemaError;
|
|
6
13
|
/**
|
|
7
14
|
* A state mapping that maintains the current value and the pending-commit
|
|
8
15
|
* delta.
|
|
@@ -12,6 +19,11 @@ export declare class State {
|
|
|
12
19
|
private value;
|
|
13
20
|
/** The delta change to the current value that hasn't been committed. */
|
|
14
21
|
private delta;
|
|
22
|
+
/**
|
|
23
|
+
* Declares the keys this state may hold and their types. When set, every
|
|
24
|
+
* mutation is checked against it; prefixed keys are exempt.
|
|
25
|
+
*/
|
|
26
|
+
readonly schema?: SchemaLike | undefined;
|
|
15
27
|
static readonly APP_PREFIX = "app:";
|
|
16
28
|
static readonly USER_PREFIX = "user:";
|
|
17
29
|
static readonly TEMP_PREFIX = "temp:";
|
|
@@ -19,7 +31,28 @@ export declare class State {
|
|
|
19
31
|
/** The current value of the state. */
|
|
20
32
|
value?: Record<string, unknown>,
|
|
21
33
|
/** The delta change to the current value that hasn't been committed. */
|
|
22
|
-
delta?: Record<string, unknown
|
|
34
|
+
delta?: Record<string, unknown>,
|
|
35
|
+
/**
|
|
36
|
+
* Declares the keys this state may hold and their types. When set, every
|
|
37
|
+
* mutation is checked against it; prefixed keys are exempt.
|
|
38
|
+
*/
|
|
39
|
+
schema?: SchemaLike | undefined);
|
|
40
|
+
/**
|
|
41
|
+
* Checks a whole delta against {@link schema}, for writes that reach the
|
|
42
|
+
* session without passing through this object — a node emitting an event
|
|
43
|
+
* that carries its own `stateDelta`.
|
|
44
|
+
*/
|
|
45
|
+
validateDelta(delta: Record<string, unknown>): void;
|
|
46
|
+
/**
|
|
47
|
+
* Checks one key/value pair against {@link schema}, throwing
|
|
48
|
+
* {@link StateSchemaError} when the key is undeclared or its value does not
|
|
49
|
+
* match the declared type.
|
|
50
|
+
*
|
|
51
|
+
* Prefixed keys (`app:`, `user:`, `temp:`, or any other namespace) belong to
|
|
52
|
+
* a scope wider than this state and are never validated — the same carve-out
|
|
53
|
+
* adk-python makes.
|
|
54
|
+
*/
|
|
55
|
+
private validate;
|
|
23
56
|
/**
|
|
24
57
|
* Returns the value of the state dict for the given key.
|
|
25
58
|
*
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Records a direct write of `key` into `state`, and — when the same write is
|
|
8
|
+
* being recorded in `delta` for later commit — stamps it there too, so the
|
|
9
|
+
* commit can tell whether it has since been superseded.
|
|
10
|
+
*/
|
|
11
|
+
export declare function recordStateWrite(state: object, delta: object | undefined, key: string): void;
|
|
12
|
+
/**
|
|
13
|
+
* Copies the stamp `delta` holds for `key` onto `state`, for a writer that
|
|
14
|
+
* mirrors one logical write into more than one state object (a workflow node
|
|
15
|
+
* writes through to `session.state` as well as to its own view). Both objects
|
|
16
|
+
* then carry the same stamp, so neither can roll the other back.
|
|
17
|
+
*/
|
|
18
|
+
export declare function adoptDeltaStamp(state: object, delta: object, key: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Whether committing `key` from `delta` into `state` should go ahead, recording
|
|
21
|
+
* the write when it should.
|
|
22
|
+
*
|
|
23
|
+
* Returns false only when the delta entry is stamped and a newer write to that
|
|
24
|
+
* key has already landed — the rollback this module exists to prevent.
|
|
25
|
+
*/
|
|
26
|
+
export declare function shouldApplyDeltaWrite(state: object, delta: object, key: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Carries the stamp for one key from one delta object to another.
|
|
29
|
+
*
|
|
30
|
+
* A delta is copied several times between the write and the commit — a node
|
|
31
|
+
* drains its pending entries into a fresh map, `createEventActions` copies that
|
|
32
|
+
* into the event, `trimTempDeltaState` rebuilds it again — and each copy is a
|
|
33
|
+
* new object, so the stamps have to be carried with it. An entry that arrives
|
|
34
|
+
* at the commit unstamped is applied unconditionally, which is the old
|
|
35
|
+
* behaviour, so a missed hop degrades rather than breaks.
|
|
36
|
+
*/
|
|
37
|
+
export declare function carryDeltaStamp(from: object, to: object, key: string): void;
|
|
38
|
+
/** {@link carryDeltaStamp} for every key `from` carries a stamp for. */
|
|
39
|
+
export declare function carryDeltaStamps(from: object, to: object): void;
|
|
@@ -44,6 +44,21 @@ export interface TraceAgentInvocationParams {
|
|
|
44
44
|
* `server.*` attributes are not set pending confirmation from aabmass.
|
|
45
45
|
*/
|
|
46
46
|
export declare function traceAgentInvocation({ agent, invocationContext, }: TraceAgentInvocationParams): void;
|
|
47
|
+
export interface TraceWorkflowInvocationParams {
|
|
48
|
+
workflowName: string;
|
|
49
|
+
nodePath: string;
|
|
50
|
+
sessionId: string;
|
|
51
|
+
}
|
|
52
|
+
export declare function traceWorkflowInvocation({ workflowName, nodePath, sessionId, }: TraceWorkflowInvocationParams): void;
|
|
53
|
+
export type NodeExecutionStatus = 'completed' | 'waiting' | 'failed';
|
|
54
|
+
export interface TraceNodeExecutionParams {
|
|
55
|
+
nodePath: string;
|
|
56
|
+
runId: string;
|
|
57
|
+
attempt: number;
|
|
58
|
+
status: NodeExecutionStatus;
|
|
59
|
+
interruptCount: number;
|
|
60
|
+
}
|
|
61
|
+
export declare function traceNodeExecution({ nodePath, runId, attempt, status, interruptCount, }: TraceNodeExecutionParams): void;
|
|
47
62
|
export interface TraceToolCallParams {
|
|
48
63
|
tool: BaseTool;
|
|
49
64
|
args: Record<string, unknown>;
|
|
@@ -80,6 +80,21 @@ export declare abstract class BaseTool {
|
|
|
80
80
|
* @return A promise that resolves to the tool response.
|
|
81
81
|
*/
|
|
82
82
|
abstract runAsync(request: RunAsyncToolRequest): Promise<unknown>;
|
|
83
|
+
/**
|
|
84
|
+
* Whether this tool needs a human to approve `args` before it runs.
|
|
85
|
+
*
|
|
86
|
+
* The gate itself lives in the tool that owns it (see `FunctionTool`), but
|
|
87
|
+
* the resume path has to ask the same question a turn later, to check that an
|
|
88
|
+
* approval it is about to honour belongs to a tool that gates at all. A tool
|
|
89
|
+
* that never gates returns false here, which is the safe default: an approval
|
|
90
|
+
* naming it is meaningless and gets rejected rather than executed. Mirrors
|
|
91
|
+
* Python's `BaseTool.check_require_confirmation`.
|
|
92
|
+
*
|
|
93
|
+
* @param _args The arguments the tool would run with.
|
|
94
|
+
* @param _toolContext The context of the call, when there is one.
|
|
95
|
+
* @return Whether the call requires confirmation.
|
|
96
|
+
*/
|
|
97
|
+
checkRequireConfirmation(_args: Record<string, unknown>, _toolContext?: Context): Promise<boolean>;
|
|
83
98
|
/**
|
|
84
99
|
* Processes the outgoing LLM request for this tool.
|
|
85
100
|
*
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { FunctionDeclaration, Schema } from '@google/genai';
|
|
7
|
+
import { BaseTool, RunAsyncToolRequest, ToolProcessLlmRequest } from './base_tool.js';
|
|
8
|
+
/** The name of the finish_task tool. */
|
|
9
|
+
export declare const FINISH_TASK_TOOL_NAME = "finish_task";
|
|
10
|
+
/**
|
|
11
|
+
* The result returned by {@link FinishTaskTool.runAsync} when validation passes.
|
|
12
|
+
* The task-mode wrapper uses this to distinguish a successful completion from a
|
|
13
|
+
* validation-error retry signal.
|
|
14
|
+
*/
|
|
15
|
+
export declare const FINISH_TASK_SUCCESS_RESULT = "Task completed.";
|
|
16
|
+
/**
|
|
17
|
+
* Tool for signaling that a task-mode {@link LlmAgent} has completed its task.
|
|
18
|
+
*
|
|
19
|
+
* The tool's parameters mirror the agent's `outputSchema` (or a default single
|
|
20
|
+
* `result` string). The task-mode wrapper sniffs the `finish_task` function call
|
|
21
|
+
* and, on a successful function response, promotes the call's arguments to the
|
|
22
|
+
* node's output.
|
|
23
|
+
*
|
|
24
|
+
* Ported from `google/adk-python`
|
|
25
|
+
* `agents/llm/task/_finish_task_tool.py::FinishTaskTool`.
|
|
26
|
+
*/
|
|
27
|
+
export declare class FinishTaskTool extends BaseTool {
|
|
28
|
+
/** The schema describing the expected task output. */
|
|
29
|
+
private readonly outputSchema;
|
|
30
|
+
/**
|
|
31
|
+
* When the output schema is a non-object (primitive/array), the value is
|
|
32
|
+
* wrapped under this key (the GenAI API requires object-typed parameters).
|
|
33
|
+
* `undefined` for object schemas (the value lives at the top level of args).
|
|
34
|
+
*/
|
|
35
|
+
readonly wrapperKey?: string;
|
|
36
|
+
constructor(outputSchema?: Schema);
|
|
37
|
+
_getDeclaration(): FunctionDeclaration;
|
|
38
|
+
processLlmRequest(request: ToolProcessLlmRequest): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Extracts the task output from a `finish_task` call's arguments, applying the
|
|
41
|
+
* wrapper-key unwrapping when the schema is a non-object.
|
|
42
|
+
*/
|
|
43
|
+
extractOutput(args: Record<string, unknown>): unknown;
|
|
44
|
+
runAsync({ args }: RunAsyncToolRequest): Promise<unknown>;
|
|
45
|
+
/** Returns any `required` keys the schema declares that are absent. */
|
|
46
|
+
private missingRequiredKeys;
|
|
47
|
+
}
|
|
@@ -20,7 +20,13 @@ export type ToolExecuteArgument<TParameters extends ToolInputParameters> = TPara
|
|
|
20
20
|
/**
|
|
21
21
|
* The signature of the user-provided function executed by a {@link FunctionTool}.
|
|
22
22
|
*/
|
|
23
|
-
export type ToolExecuteFunction<TParameters extends ToolInputParameters> = (input: ToolExecuteArgument<TParameters>,
|
|
23
|
+
export type ToolExecuteFunction<TParameters extends ToolInputParameters> = (input: ToolExecuteArgument<TParameters>, toolContext?: Context) => Promise<unknown> | unknown;
|
|
24
|
+
/**
|
|
25
|
+
* Whether a {@link FunctionTool} requires user confirmation before it runs: a
|
|
26
|
+
* boolean, or a predicate over the (validated) call arguments and tool context.
|
|
27
|
+
* See {@link ToolOptions.requireConfirmation}.
|
|
28
|
+
*/
|
|
29
|
+
export type RequireConfirmation<TParameters extends ToolInputParameters> = boolean | ((input: ToolExecuteArgument<TParameters>, toolContext?: Context) => boolean | Promise<boolean>);
|
|
24
30
|
/**
|
|
25
31
|
* The configuration options for creating a function-based tool.
|
|
26
32
|
* The `name`, `description` and `parameters` fields are used to generate the
|
|
@@ -35,6 +41,24 @@ export type ToolOptions<TParameters extends ToolInputParameters> = {
|
|
|
35
41
|
parameters?: TParameters;
|
|
36
42
|
execute: ToolExecuteFunction<TParameters>;
|
|
37
43
|
isLongRunning?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Whether this tool requires user confirmation before it runs. A boolean, or
|
|
46
|
+
* a predicate over the (validated) call arguments and tool context returning
|
|
47
|
+
* a boolean.
|
|
48
|
+
*
|
|
49
|
+
* The HITL gate is enforced when the tool is invoked through an `LlmAgent`
|
|
50
|
+
* turn: `agents/functions.ts` surfaces an `adk_request_confirmation`
|
|
51
|
+
* interrupt from the tool's `requestedToolConfirmations`, and the tool only
|
|
52
|
+
* executes once the user approves (via the
|
|
53
|
+
* `RequestConfirmationLlmRequestProcessor`).
|
|
54
|
+
*
|
|
55
|
+
* NOTE: a workflow `ToolNode` does not yet route through that path, so a
|
|
56
|
+
* `requireConfirmation` tool used directly as a node does not pause — it
|
|
57
|
+
* returns the "requires confirmation" error as its node output. Approval for
|
|
58
|
+
* workflow nodes is not wired up. Mirrors Python's
|
|
59
|
+
* `FunctionTool(require_confirmation=...)`.
|
|
60
|
+
*/
|
|
61
|
+
requireConfirmation?: RequireConfirmation<TParameters>;
|
|
38
62
|
};
|
|
39
63
|
/**
|
|
40
64
|
* A unique symbol to identify ADK agent classes.
|
|
@@ -60,6 +84,7 @@ export declare class FunctionTool<TParameters extends ToolInputParameters = unde
|
|
|
60
84
|
readonly [FUNCTION_TOOL_SIGNATURE_SYMBOL] = true;
|
|
61
85
|
private readonly execute;
|
|
62
86
|
private readonly parameters?;
|
|
87
|
+
private readonly requireConfirmation;
|
|
63
88
|
/**
|
|
64
89
|
* The constructor acts as the user-friendly factory.
|
|
65
90
|
* @param options The configuration for the tool.
|
|
@@ -78,5 +103,25 @@ export declare class FunctionTool<TParameters extends ToolInputParameters = unde
|
|
|
78
103
|
* @returns A promise resolving to the function's return value.
|
|
79
104
|
*/
|
|
80
105
|
runAsync(req: RunAsyncToolRequest): Promise<unknown>;
|
|
106
|
+
/**
|
|
107
|
+
* Whether this call is gated on human approval — the static flag, or the
|
|
108
|
+
* predicate evaluated against the validated arguments.
|
|
109
|
+
*
|
|
110
|
+
* @param args The arguments the tool would run with.
|
|
111
|
+
* @param toolContext The context of the call, when there is one.
|
|
112
|
+
* @return Whether the call requires confirmation.
|
|
113
|
+
*/
|
|
114
|
+
checkRequireConfirmation(args: Record<string, unknown>, toolContext?: Context): Promise<boolean>;
|
|
115
|
+
/** Parses `args` against the parameter schema, when one is declared. */
|
|
116
|
+
private validateArgs;
|
|
117
|
+
/** Resolves `requireConfirmation`, which may be a flag or a predicate. */
|
|
118
|
+
private evaluateRequireConfirmation;
|
|
119
|
+
/**
|
|
120
|
+
* Evaluates the confirmation gate. Returns `undefined` if the tool may
|
|
121
|
+
* proceed; otherwise returns the function response payload to surface instead
|
|
122
|
+
* of running (a request-for-confirmation on the first pass, or a rejection
|
|
123
|
+
* once the user declined).
|
|
124
|
+
*/
|
|
125
|
+
private checkConfirmation;
|
|
81
126
|
}
|
|
82
127
|
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* `@google/adk/tools/mcp` subpath: the MCP tools only, without the full ADK
|
|
8
|
+
* barrel. Also re-exported from `@google/adk`.
|
|
9
|
+
*/
|
|
10
|
+
export * from './load_mcp_resource_tool.js';
|
|
11
|
+
export * from './mcp_session_manager.js';
|
|
12
|
+
export * from './mcp_tool.js';
|
|
13
|
+
export * from './mcp_toolset.js';
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
7
|
-
import { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
8
|
-
import { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
6
|
+
import type { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
7
|
+
import type { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
8
|
+
import type { StreamableHTTPClientTransportOptions } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
9
9
|
/**
|
|
10
10
|
* Defines the parameters for establishing a connection to an MCP server using
|
|
11
11
|
* standard input/output (stdio). This is typically used for running MCP servers
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { FunctionDeclaration } from '@google/genai';
|
|
7
|
-
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
8
|
import { BaseTool, RunAsyncToolRequest } from '../base_tool.js';
|
|
9
9
|
import { MCPSessionManager } from './mcp_session_manager.js';
|
|
10
10
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { BlobResourceContents, Resource, TextResourceContents } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import type { BlobResourceContents, Resource, TextResourceContents } from '@modelcontextprotocol/sdk/types.js';
|
|
7
7
|
import { ReadonlyContext } from '../../agents/readonly_context.js';
|
|
8
8
|
import { BaseTool } from '../base_tool.js';
|
|
9
9
|
import { BaseToolset, ToolPredicate } from '../base_toolset.js';
|
|
@@ -8,8 +8,13 @@ import { LongRunningFunctionTool } from './long_running_tool.js';
|
|
|
8
8
|
/**
|
|
9
9
|
* A long-running tool that presents a custom message to the user and awaits
|
|
10
10
|
* unstructured or structured input.
|
|
11
|
+
*
|
|
12
|
+
* `response_schema` is spelled the way a workflow's `RequestInput` spells it on
|
|
13
|
+
* the wire (`RESPONSE_SCHEMA_ARG` in `workflow/utils/hitl_utils`), so a client
|
|
14
|
+
* reads one key whichever way the pause was raised — the dev UI builds its
|
|
15
|
+
* reply form from it either way.
|
|
11
16
|
*/
|
|
12
17
|
export declare const requestInputTool: LongRunningFunctionTool<z.ZodObject<{
|
|
13
18
|
message: z.ZodString;
|
|
14
|
-
|
|
19
|
+
response_schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
15
20
|
}, z.core.$strip>>;
|
|
@@ -17,8 +17,10 @@ export declare class SkillToolset extends BaseToolset {
|
|
|
17
17
|
additionalTools: Array<BaseTool | BaseToolset>;
|
|
18
18
|
codeExecutor?: BaseCodeExecutor;
|
|
19
19
|
registry?: SkillRegistry;
|
|
20
|
+
private readonly scriptOutputDir?;
|
|
20
21
|
private toolCache;
|
|
21
22
|
private fetchedSkillCache;
|
|
23
|
+
private tempOutputDir?;
|
|
22
24
|
constructor(skills: Record<string, Skill> | Skill[], options?: {
|
|
23
25
|
codeExecutor?: BaseCodeExecutor;
|
|
24
26
|
additionalTools?: Array<BaseTool | BaseToolset>;
|
|
@@ -32,10 +34,34 @@ export declare class SkillToolset extends BaseToolset {
|
|
|
32
34
|
* confirmation.
|
|
33
35
|
*/
|
|
34
36
|
allowInlineScripts?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Directory that files produced by `run_skill_script` /
|
|
39
|
+
* `run_skill_inline_script` are written into. Output file names come from
|
|
40
|
+
* the executed script, so this must be a directory dedicated to
|
|
41
|
+
* throwaway script output — never the application's working directory or
|
|
42
|
+
* a source tree.
|
|
43
|
+
*
|
|
44
|
+
* Defaults to a private, randomly named directory created under the OS
|
|
45
|
+
* temp dir on first use. Nothing removes that directory: `close()` runs
|
|
46
|
+
* once per invocation on a toolset instance that concurrent invocations
|
|
47
|
+
* share (see `Runner`), so it cannot tell whose output is still in use.
|
|
48
|
+
* Set this to own the location and the lifetime of the output.
|
|
49
|
+
*/
|
|
50
|
+
scriptOutputDir?: string;
|
|
35
51
|
});
|
|
36
52
|
getTools(context?: ReadonlyContext): Promise<BaseTool[]>;
|
|
37
53
|
close(): Promise<void>;
|
|
38
54
|
getSkill(name: string): Skill | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Resolves the directory that script output files are materialized into.
|
|
57
|
+
*
|
|
58
|
+
* Script output file names are attacker-influenced (a prompt-injected skill
|
|
59
|
+
* controls what its script writes), so they must never be resolved against
|
|
60
|
+
* the host application's working directory. When no `scriptOutputDir` was
|
|
61
|
+
* configured this hands back a private temp directory instead, created once
|
|
62
|
+
* and reused for the lifetime of the toolset.
|
|
63
|
+
*/
|
|
64
|
+
getScriptOutputDir(): Promise<string>;
|
|
39
65
|
getOrFetchSkill(name: string, invocationId?: string): Promise<Skill | undefined>;
|
|
40
66
|
processLlmRequest(toolContext: Context, llmRequest: LlmRequest): Promise<void>;
|
|
41
67
|
private resolveAdditionalTools;
|