@google/adk 1.5.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 +17 -4
- 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 -11
- package/dist/cjs/a2a/auth.js +68 -0
- package/dist/cjs/a2a/event_converter_utils.js +50 -15
- 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 +58 -23
- 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 +536 -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 +8 -4
- 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 +11 -25
- 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 +8 -3
- 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 +19 -11
- 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 +19 -5
- 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 +31 -14
- package/dist/cjs/common.js +112 -1
- package/dist/cjs/context/agent_controlled_context_compactor.js +7 -13
- package/dist/cjs/context/anchored_context_compactor.js +5 -2
- package/dist/cjs/context/compaction_utils.js +17 -2
- package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
- package/dist/cjs/context/token_based_context_compactor.js +11 -23
- 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 -22
- 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 +21 -4
- package/dist/cjs/memory/vertex_ai_memory_bank_service.js +20 -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 +43 -7
- 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 +226 -29
- package/dist/cjs/sessions/base_session_service.js +21 -5
- 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 +30 -22
- 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 +132 -25
- package/dist/cjs/skills/gcp_skill_registry.js +2 -0
- package/dist/cjs/skills/loader.js +62 -16
- 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 +54 -0
- 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 +69 -27
- 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 +56 -0
- package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
- package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
- package/dist/cjs/tools/skill/skill_toolset.js +35 -0
- package/dist/cjs/tools/tool_confirmation.js +26 -3
- package/dist/cjs/tools/url_context_tool.js +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 +45 -0
- package/dist/cjs/utils/deprecated.js +68 -0
- package/dist/cjs/utils/env_aware_utils.js +56 -13
- package/dist/cjs/utils/error_utils.js +128 -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 +12 -4
- 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 +45 -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 +6 -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 +18 -4
- 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 -16
- package/dist/esm/a2a/auth.js +41 -0
- package/dist/esm/a2a/event_converter_utils.js +51 -15
- 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 +62 -20
- 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 +537 -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 +9 -4
- 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 +12 -25
- 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 +9 -3
- 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 +20 -11
- 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 +20 -5
- 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 +31 -13
- package/dist/esm/common.js +113 -4
- package/dist/esm/context/agent_controlled_context_compactor.js +8 -13
- package/dist/esm/context/anchored_context_compactor.js +6 -2
- package/dist/esm/context/compaction_utils.js +16 -1
- package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
- package/dist/esm/context/token_based_context_compactor.js +16 -24
- 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 -13
- 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 +22 -4
- package/dist/esm/memory/vertex_ai_memory_bank_service.js +25 -3
- 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 +43 -7
- 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 +233 -31
- package/dist/esm/sessions/base_session_service.js +22 -5
- 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 +31 -22
- 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 +136 -26
- package/dist/esm/skills/gcp_skill_registry.js +2 -0
- package/dist/esm/skills/loader.js +63 -16
- 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 +27 -0
- 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 +80 -30
- 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 +29 -0
- package/dist/esm/tools/skill/list_skills_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
- package/dist/esm/tools/skill/load_skill_tool.js +4 -1
- package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
- package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
- package/dist/esm/tools/skill/search_skills_tool.js +2 -0
- package/dist/esm/tools/skill/skill_toolset.js +25 -0
- package/dist/esm/tools/tool_confirmation.js +24 -2
- package/dist/esm/tools/url_context_tool.js +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 +18 -0
- package/dist/esm/utils/deprecated.js +40 -0
- package/dist/esm/utils/env_aware_utils.js +56 -13
- package/dist/esm/utils/error_utils.js +101 -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 +13 -4
- 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 +18 -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 +7 -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/auth.d.ts +30 -0
- package/dist/types/a2a/event_converter_utils.d.ts +4 -1
- 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/auth/credential_service/in_memory_credential_service.d.ts +11 -0
- package/dist/types/code_executors/unsafe_local_code_executor.d.ts +5 -1
- package/dist/types/common.d.ts +20 -8
- package/dist/types/context/agent_controlled_context_compactor.d.ts +0 -1
- package/dist/types/context/compaction_utils.d.ts +8 -0
- package/dist/types/context/token_based_context_compactor.d.ts +0 -1
- 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 +6 -13
- package/dist/types/memory/in_memory_memory_service.d.ts +11 -0
- 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 +39 -2
- 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 +10 -2
- package/dist/types/sessions/in_memory_session_service.d.ts +9 -0
- package/dist/types/sessions/state.d.ts +34 -1
- package/dist/types/sessions/state_write_order.d.ts +39 -0
- package/dist/types/sessions/vertex_ai_session_service.d.ts +19 -1
- package/dist/types/skills/loader.d.ts +5 -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/get_user_choice_tool.d.ts +14 -0
- 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 +20 -0
- package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
- package/dist/types/tools/tool_confirmation.d.ts +47 -0
- package/dist/types/utils/async_queue.d.ts +34 -2
- package/dist/types/utils/crypto_shim.d.ts +16 -0
- package/dist/types/utils/deprecated.d.ts +21 -0
- package/dist/types/utils/env_aware_utils.d.ts +39 -0
- package/dist/types/utils/error_utils.d.ts +18 -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/output_schema_utils.d.ts +18 -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 +5 -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 +18 -4
- 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 -16
- package/dist/web/a2a/auth.js +41 -0
- package/dist/web/a2a/event_converter_utils.js +50 -15
- 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 +62 -20
- 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 +631 -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 +8 -4
- 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 +12 -25
- 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 +9 -3
- 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 +20 -11
- 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 +20 -5
- 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 +31 -13
- package/dist/web/common.js +113 -4
- package/dist/web/context/agent_controlled_context_compactor.js +8 -13
- package/dist/web/context/anchored_context_compactor.js +5 -2
- package/dist/web/context/compaction_utils.js +16 -1
- package/dist/web/context/summarizers/llm_summarizer.js +6 -2
- package/dist/web/context/token_based_context_compactor.js +16 -24
- 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 -13
- 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 +22 -4
- package/dist/web/memory/vertex_ai_memory_bank_service.js +24 -3
- 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 +43 -7
- 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 +249 -31
- package/dist/web/sessions/base_session_service.js +22 -5
- 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 +31 -22
- 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 +142 -26
- package/dist/web/skills/gcp_skill_registry.js +2 -0
- package/dist/web/skills/loader.js +62 -16
- 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 +27 -0
- 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 +80 -30
- 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 +29 -0
- 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 +18 -0
- package/dist/web/utils/deprecated.js +40 -0
- package/dist/web/utils/env_aware_utils.js +56 -13
- package/dist/web/utils/error_utils.js +101 -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 +12 -4
- 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 +18 -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 +7 -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
|
@@ -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,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { LongRunningFunctionTool } from './long_running_tool.js';
|
|
8
|
+
/**
|
|
9
|
+
* A long-running tool that presents a list of options to the user and awaits
|
|
10
|
+
* their selection.
|
|
11
|
+
*/
|
|
12
|
+
export declare const getUserChoiceTool: LongRunningFunctionTool<z.ZodObject<{
|
|
13
|
+
options: z.ZodArray<z.ZodString>;
|
|
14
|
+
}, z.core.$strip>>;
|
|
@@ -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';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { LongRunningFunctionTool } from './long_running_tool.js';
|
|
8
|
+
/**
|
|
9
|
+
* A long-running tool that presents a custom message to the user and awaits
|
|
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.
|
|
16
|
+
*/
|
|
17
|
+
export declare const requestInputTool: LongRunningFunctionTool<z.ZodObject<{
|
|
18
|
+
message: z.ZodString;
|
|
19
|
+
response_schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
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;
|
|
@@ -23,3 +23,50 @@ export declare class ToolConfirmation {
|
|
|
23
23
|
payload?: unknown;
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Why a confirmation was refused. Each value is one of the checks the resume
|
|
28
|
+
* path makes before it runs a tool call a human approved.
|
|
29
|
+
*/
|
|
30
|
+
export type IntentMismatchReason =
|
|
31
|
+
/** The `adk_request_confirmation` call was not raised by the agent. */
|
|
32
|
+
'untrusted_request'
|
|
33
|
+
/** The `adk_request_confirmation` call carries no usable pinned call. */
|
|
34
|
+
| 'malformed_request'
|
|
35
|
+
/** The pinned call is absent from session history. */
|
|
36
|
+
| 'unknown_original_call'
|
|
37
|
+
/** The pinned call names a tool the agent does not have. */
|
|
38
|
+
| 'unregistered_tool'
|
|
39
|
+
/** The pinned tool does not gate on confirmation, so nothing was approved. */
|
|
40
|
+
| 'confirmation_not_required'
|
|
41
|
+
/** The pinned tool name disagrees with the call in history. */
|
|
42
|
+
| 'tool_name_mismatch'
|
|
43
|
+
/** The pinned arguments disagree with the call in history. */
|
|
44
|
+
| 'arguments_mismatch';
|
|
45
|
+
/**
|
|
46
|
+
* Raised when a tool confirmation does not bind to the action it claims to
|
|
47
|
+
* approve — the approval and the action about to run are not the same thing.
|
|
48
|
+
*
|
|
49
|
+
* The framework fails closed on this: a mismatch aborts the invocation rather
|
|
50
|
+
* than running an action no human agreed to. It is worth alerting on, so the
|
|
51
|
+
* message names the reason and the call, and deliberately carries no argument
|
|
52
|
+
* values — a rejected payload is attacker-controlled and does not belong in
|
|
53
|
+
* logs.
|
|
54
|
+
*/
|
|
55
|
+
export declare class IntentMismatchError extends Error {
|
|
56
|
+
/** Which binding check refused the confirmation. */
|
|
57
|
+
readonly reason: IntentMismatchReason;
|
|
58
|
+
/** The id of the pinned call, when one was named. */
|
|
59
|
+
readonly functionCallId?: string;
|
|
60
|
+
constructor(options: {
|
|
61
|
+
reason: IntentMismatchReason;
|
|
62
|
+
functionCallId?: string;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Type guard for {@link IntentMismatchError}.
|
|
67
|
+
*
|
|
68
|
+
* Matches on `name` rather than `instanceof` so it stays correct when the error
|
|
69
|
+
* crosses a package boundary (two copies of adk-js in one runtime would fail an
|
|
70
|
+
* `instanceof` check between them).
|
|
71
|
+
*/
|
|
72
|
+
export declare function isIntentMismatchError(e: unknown): e is IntentMismatchError;
|
|
@@ -4,15 +4,47 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
-
* A generic,
|
|
7
|
+
* A generic, single-consumer async queue that implements AsyncIterable,
|
|
8
|
+
* bridging a *push* producer to a *pull* consumer (`for await (const x of q)`).
|
|
9
|
+
*
|
|
10
|
+
* Producers call {@link push} as values are produced and {@link close} (or
|
|
11
|
+
* {@link fail}) when finished. A single consumer drains the queue.
|
|
12
|
+
*
|
|
13
|
+
* Semantics:
|
|
14
|
+
* - Buffered items are always delivered before an end/error signal.
|
|
15
|
+
* - {@link close} ends iteration cleanly (`done: true`); idempotent.
|
|
16
|
+
* - {@link fail} surfaces the error to the consumer *after* any buffered items
|
|
17
|
+
* have been drained; it is sticky (first failure wins) and also closes the
|
|
18
|
+
* queue, so a later `close()` can't discard the error.
|
|
19
|
+
* - {@link push} after close/fail is ignored (the producer has already
|
|
20
|
+
* signalled completion).
|
|
8
21
|
*/
|
|
9
22
|
export declare class AsyncQueue<T> implements AsyncIterable<T> {
|
|
10
23
|
private queue;
|
|
11
24
|
private resolvers;
|
|
12
25
|
private closed;
|
|
13
|
-
private
|
|
26
|
+
private failure?;
|
|
27
|
+
/** Whether the queue has been closed or failed. */
|
|
28
|
+
get isClosed(): boolean;
|
|
29
|
+
/** Number of items buffered and not yet consumed. */
|
|
30
|
+
get size(): number;
|
|
31
|
+
/**
|
|
32
|
+
* Enqueues a value. If a consumer is currently awaiting, it is resolved
|
|
33
|
+
* immediately; otherwise the value is buffered. No-op once closed/failed.
|
|
34
|
+
*/
|
|
14
35
|
push(value: T): void;
|
|
36
|
+
/**
|
|
37
|
+
* Signals that production failed. Buffered items are still delivered first;
|
|
38
|
+
* once the buffer drains, the consumer's next `next()` rejects with `error`.
|
|
39
|
+
* Sticky (first failure wins) and closes the queue.
|
|
40
|
+
*/
|
|
41
|
+
fail(error: unknown): void;
|
|
42
|
+
/** @deprecated Alias for {@link fail}; kept for existing callers. */
|
|
15
43
|
error(err: unknown): void;
|
|
44
|
+
/**
|
|
45
|
+
* Signals that no more items will be produced. Any awaiting consumer receives
|
|
46
|
+
* `{done: true}`. Idempotent.
|
|
47
|
+
*/
|
|
16
48
|
close(): void;
|
|
17
49
|
[Symbol.asyncIterator](): AsyncIterator<T>;
|
|
18
50
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Browser stand-in for the `node:crypto` builtin, wired up by the alias in
|
|
8
|
+
* `build.js` so that the Node fallback in `env_aware_utils.ts` does not pull a
|
|
9
|
+
* Node builtin into the web bundle.
|
|
10
|
+
*
|
|
11
|
+
* `randomUUID` is reached here only after both `globalThis.crypto` branches in
|
|
12
|
+
* `env_aware_utils.ts` have been ruled out. In a browser that means the Web
|
|
13
|
+
* Crypto API is genuinely absent, so there is no secure source left to fall
|
|
14
|
+
* back to and the only correct move is to fail rather than degrade.
|
|
15
|
+
*/
|
|
16
|
+
export declare function randomUUID(): string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/** Resets the warned-once registry. Test-only. */
|
|
7
|
+
export declare function resetDeprecationWarnings(): void;
|
|
8
|
+
type Constructor = new (...args: any[]) => any;
|
|
9
|
+
/**
|
|
10
|
+
* Marks a class as deprecated, logging `reason` once the first time it is
|
|
11
|
+
* instantiated.
|
|
12
|
+
*
|
|
13
|
+
* The JSDoc `@deprecated` tag is what a reader and an editor see; this is what
|
|
14
|
+
* someone running the code sees, so a deprecation is not silent to a caller who
|
|
15
|
+
* never opens the source. Mirrors `typing_extensions.deprecated`, which
|
|
16
|
+
* adk-python applies to the same classes, and follows the shape of
|
|
17
|
+
* {@link experimental}: one warning per class, not per instance, so a hot loop
|
|
18
|
+
* does not turn into a wall of logs.
|
|
19
|
+
*/
|
|
20
|
+
export declare function deprecated(reason: string): <T extends Constructor>(target: T) => T;
|
|
21
|
+
export {};
|
|
@@ -7,6 +7,29 @@
|
|
|
7
7
|
* Returns true if the environment is a browser.
|
|
8
8
|
*/
|
|
9
9
|
export declare function isBrowser(): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Generates a random UUID from a cryptographically secure source.
|
|
12
|
+
*
|
|
13
|
+
* `crypto.randomUUID()` is only exposed in secure contexts, so it is absent on
|
|
14
|
+
* plain-HTTP origins even though `crypto` itself is present.
|
|
15
|
+
* `crypto.getRandomValues()` carries no such restriction, so it is used as the
|
|
16
|
+
* fallback rather than `Math.random()`.
|
|
17
|
+
*
|
|
18
|
+
* In Node the `globalThis.crypto` global was added in v17.4.0 and stayed behind
|
|
19
|
+
* `--experimental-global-webcrypto` until v19.0.0, so neither of those branches
|
|
20
|
+
* matches on a default Node 18 or earlier. `node:crypto` carries no such gate —
|
|
21
|
+
* its `randomUUID` has existed since v14.17.0 — so it is the last resort. In
|
|
22
|
+
* the bundled web build the import is aliased to `crypto_shim.ts`, which
|
|
23
|
+
* throws, because a browser without the Web Crypto API has no secure source
|
|
24
|
+
* left. The non-bundle `dist/web` output that `package.json#browser` points
|
|
25
|
+
* at keeps the import verbatim, as it already does for `node:async_hooks`
|
|
26
|
+
* and `node:path`.
|
|
27
|
+
*
|
|
28
|
+
* Some callers use this value to make security decisions — the OAuth2 `state`
|
|
29
|
+
* parameter in `AuthHandler` and the session identifiers minted by the session
|
|
30
|
+
* services — so this function must not silently degrade to a non-cryptographic
|
|
31
|
+
* generator.
|
|
32
|
+
*/
|
|
10
33
|
export declare function randomUUID(): string;
|
|
11
34
|
/**
|
|
12
35
|
* Encodes the given string or Uint8Array to base64.
|
|
@@ -36,3 +59,19 @@ export declare function isBase64Encoded(data: string): boolean;
|
|
|
36
59
|
* @return The boolean value of the environment variable.
|
|
37
60
|
*/
|
|
38
61
|
export declare function getBooleanEnvVar(envVar: string): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Returns whether Google GenAI enterprise mode is enabled.
|
|
64
|
+
*
|
|
65
|
+
* `GOOGLE_GENAI_USE_ENTERPRISE` takes precedence whenever it is set, even when
|
|
66
|
+
* it is set to a falsy value. `GOOGLE_GENAI_USE_VERTEXAI` is only consulted
|
|
67
|
+
* when `GOOGLE_GENAI_USE_ENTERPRISE` is absent.
|
|
68
|
+
*
|
|
69
|
+
* Setting the deprecated `GOOGLE_GENAI_USE_VERTEXAI` logs a deprecation
|
|
70
|
+
* warning, whether it is used or overridden. When both variables are set the
|
|
71
|
+
* warning also states that `GOOGLE_GENAI_USE_VERTEXAI` is ignored, so a stale
|
|
72
|
+
* value silently overridden by the new variable is still surfaced. This is
|
|
73
|
+
* read per request, so the warning is logged only once.
|
|
74
|
+
*
|
|
75
|
+
* @return True if enterprise mode is enabled, false otherwise.
|
|
76
|
+
*/
|
|
77
|
+
export declare function isEnterpriseModeEnabled(): boolean;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Formats an arbitrary thrown value into a readable, root-cause message.
|
|
8
|
+
*
|
|
9
|
+
* Recursively flattens `AggregateError.errors` (joining leaves with ` | `) and
|
|
10
|
+
* unwraps the `Error.cause` chain, and — when HTTP details are synchronously
|
|
11
|
+
* available — appends the status code and a response-body snippet truncated to
|
|
12
|
+
* 1000 characters with a `... [truncated]` marker. It never throws and is safe
|
|
13
|
+
* on `null`/`undefined` and cyclic error graphs.
|
|
14
|
+
*
|
|
15
|
+
* @param err The thrown or rejected value to format.
|
|
16
|
+
* @return A single human-readable message describing the root cause(s).
|
|
17
|
+
*/
|
|
18
|
+
export declare function formatError(err: unknown): string;
|
|
@@ -5,9 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { File } from '../code_executors/code_execution_utils.js';
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* Writes `files` into `dir`, refusing any entry that resolves outside of it.
|
|
9
|
+
*
|
|
10
|
+
* `dir` is deliberately required and has no default: file names typically
|
|
11
|
+
* originate from a code executor's output (i.e. from model- or skill-controlled
|
|
12
|
+
* content), so the destination must be a dedicated directory chosen by the
|
|
13
|
+
* caller. Defaulting to `process.cwd()` would let such content drop files into
|
|
14
|
+
* the host application's working directory.
|
|
15
|
+
*
|
|
9
16
|
* @param files The files to materialize.
|
|
17
|
+
* @param dir The directory to materialize the files into.
|
|
10
18
|
*/
|
|
11
|
-
export declare function materializeFiles(files: File[], dir
|
|
19
|
+
export declare function materializeFiles(files: File[], dir: string): Promise<File[]>;
|
|
12
20
|
export declare const EXTENSION_TO_MIME_TYPE: Record<string, string>;
|
|
13
21
|
export declare function guessMimeType(filePath: string): string;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Schema } from '@google/genai';
|
|
7
|
+
/**
|
|
8
|
+
* Converts a genai `Schema` into a standard JSON Schema object.
|
|
9
|
+
*
|
|
10
|
+
* This is the inverse of `zodObjectToSchema`, which renders Zod into the
|
|
11
|
+
* genai/OpenAPI dialect. The two dialects differ in four ways, all handled
|
|
12
|
+
* here:
|
|
13
|
+
*
|
|
14
|
+
* - `type` is an uppercase enum (`STRING`) rather than a JSON Schema type name
|
|
15
|
+
* (`string`). `TYPE_UNSPECIFIED` means "no constraint" and is dropped.
|
|
16
|
+
* - `nullable: true` widens the type, which JSON Schema expresses as a type
|
|
17
|
+
* union (`['string', 'null']`).
|
|
18
|
+
* - Count and length bounds are stringified (`maxItems: '5'`).
|
|
19
|
+
* - `propertyOrdering` and `example` have no JSON Schema equivalent.
|
|
20
|
+
*
|
|
21
|
+
* Everything else (`description`, `title`, `default`, `pattern`, `required`,
|
|
22
|
+
* `minimum`, `maximum`, `format`) is already JSON-Schema-shaped and passes
|
|
23
|
+
* through, with `items`, `properties` and `anyOf` converted recursively.
|
|
24
|
+
*/
|
|
25
|
+
export declare function genaiSchemaToJsonSchema(schema: Schema): Record<string, unknown>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/** Describes the optional peer dependency a feature is asking for. */
|
|
7
|
+
export interface OptionalPeer {
|
|
8
|
+
/** The npm package name, e.g. `@google-cloud/storage`. */
|
|
9
|
+
packageName: string;
|
|
10
|
+
/** The ADK feature that needs it, used in the error message. */
|
|
11
|
+
feature: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Loads an optional peer dependency, translating "not installed" into an
|
|
15
|
+
* actionable error.
|
|
16
|
+
*
|
|
17
|
+
* The dynamic `import()` is passed in as a thunk rather than being built from
|
|
18
|
+
* `packageName`, so that the specifier stays a literal in the calling module
|
|
19
|
+
* and remains visible to bundlers and to test doubles installed with
|
|
20
|
+
* `vi.mock()`.
|
|
21
|
+
*
|
|
22
|
+
* ```ts
|
|
23
|
+
* const {Storage} = await loadOptionalPeer(
|
|
24
|
+
* {packageName: '@google-cloud/storage', feature: 'GcsArtifactService'},
|
|
25
|
+
* () => import('@google-cloud/storage'),
|
|
26
|
+
* );
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @param peer The package being loaded and the feature that needs it.
|
|
30
|
+
* @param load Thunk performing the dynamic `import()`.
|
|
31
|
+
* @return The imported module namespace.
|
|
32
|
+
* @throws If the package is not installed, an error naming the feature and
|
|
33
|
+
* the `npm install` command that fixes it. Any other load failure is
|
|
34
|
+
* rethrown unchanged.
|
|
35
|
+
*/
|
|
36
|
+
export declare function loadOptionalPeer<T>(peer: OptionalPeer, load: () => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Returns whether the model can natively accept an output schema at the same
|
|
8
|
+
* time as tools, which is strictly more reliable than the prompt-based
|
|
9
|
+
* `set_model_response` workaround.
|
|
10
|
+
*
|
|
11
|
+
* Early Access Program model names encode no numeric version, so
|
|
12
|
+
* `isGemini2OrAbove` rejects them even on Vertex AI. The Python
|
|
13
|
+
* implementation accepts them; that gap lives in the shared predicate.
|
|
14
|
+
*
|
|
15
|
+
* @param modelString A simple or path-based model name.
|
|
16
|
+
* @return True if the model supports an output schema alongside tools.
|
|
17
|
+
*/
|
|
18
|
+
export declare function canUseOutputSchemaWithTools(modelString: string): boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Redacts the credentials from a connection URI so the URI can be safely
|
|
8
|
+
* included in error messages and logs.
|
|
9
|
+
*
|
|
10
|
+
* A database or session-service connection URI such as
|
|
11
|
+
* `postgres://user:password@host:5432/db` embeds the password in its userinfo
|
|
12
|
+
* component. Including such a URI verbatim in a thrown Error or log entry leaks
|
|
13
|
+
* the credential to wherever those are collected (log files, error-tracking
|
|
14
|
+
* services, stdout captured by an orchestrator), which is frequently a
|
|
15
|
+
* different trust boundary from whoever provisioned the connection string.
|
|
16
|
+
*
|
|
17
|
+
* The same credential can instead arrive as a query parameter, for example
|
|
18
|
+
* `postgres://user@host/db?password=secret`, which several drivers accept and
|
|
19
|
+
* which reaches the same error paths. Both forms are masked.
|
|
20
|
+
*
|
|
21
|
+
* The rest of the URI is kept intact for debugging, mirroring the semantics of
|
|
22
|
+
* Go's `net/url.URL.Redacted()`. A URI carrying no credential is returned
|
|
23
|
+
* unchanged, byte for byte.
|
|
24
|
+
*
|
|
25
|
+
* If the input cannot be parsed as a URL, only its scheme prefix is returned so
|
|
26
|
+
* that a credential embedded in an otherwise-unparseable string is not leaked.
|
|
27
|
+
*/
|
|
28
|
+
export declare function redactUriPassword(uri: string): string;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A single, reusable abstraction over the schema formats ADK APIs accept: a Zod
|
|
8
|
+
* v3 type, a Zod v4 type, or a genai `Schema`. Mirrors the union
|
|
9
|
+
* `FunctionTool` uses for its parameters, but at the `ZodType` level (any
|
|
10
|
+
* schema, not just an object) so it also fits value validation.
|
|
11
|
+
*/
|
|
12
|
+
import { Schema } from '@google/genai';
|
|
13
|
+
import { z as z3 } from 'zod/v3';
|
|
14
|
+
import { z as z4 } from 'zod/v4';
|
|
15
|
+
/**
|
|
16
|
+
* A schema accepted by ADK APIs, expressed as a Zod v3 type, a Zod v4 type, or
|
|
17
|
+
* a genai `Schema`.
|
|
18
|
+
*
|
|
19
|
+
* Use `parseWithSchema` to validate a value against one, and `toJsonSchema` to
|
|
20
|
+
* render one as a plain JSON Schema.
|
|
21
|
+
*/
|
|
22
|
+
export type SchemaLike = z3.ZodType | z4.ZodType | Schema;
|
|
23
|
+
/**
|
|
24
|
+
* Validates `value` against `schema`, returning the parsed value.
|
|
25
|
+
*
|
|
26
|
+
* Every schema form ADK accepts is enforced:
|
|
27
|
+
*
|
|
28
|
+
* - Zod v3/v4: runs `schema.parse(value)`.
|
|
29
|
+
* - genai `Schema`: converted to JSON Schema and compiled to a Zod type once
|
|
30
|
+
* (then cached), so a declaration written in the genai dialect is checked
|
|
31
|
+
* just as a Zod one is.
|
|
32
|
+
* - `undefined`: returns `value` unchanged.
|
|
33
|
+
*
|
|
34
|
+
* A genai `Schema` that has no Zod equivalent is left unenforced rather than
|
|
35
|
+
* rejected — see {@link genaiSchemaValidator}.
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseWithSchema<T>(schema: SchemaLike | undefined, value: T): T;
|
|
38
|
+
/**
|
|
39
|
+
* Renders a {@link SchemaLike} as a plain JSON Schema object.
|
|
40
|
+
*
|
|
41
|
+
* Zod v3 and v4 schemas are converted with their respective serializers. A
|
|
42
|
+
* genai `Schema` is translated out of the genai/OpenAPI dialect (uppercase
|
|
43
|
+
* type names, stringified bounds, `nullable`) so that every schema form
|
|
44
|
+
* produces the same JSON Schema shape for a consumer to read.
|
|
45
|
+
*/
|
|
46
|
+
export declare function toJsonSchema(schema: SchemaLike): Record<string, unknown>;
|
|
47
|
+
/**
|
|
48
|
+
* Compiles a plain JSON Schema into a validator, for schemas that survive only
|
|
49
|
+
* in serialized form — a `RequestInput.responseSchema` reaches the resume that
|
|
50
|
+
* answers it as the JSON Schema recorded on the interrupt event, not as the
|
|
51
|
+
* original {@link SchemaLike}.
|
|
52
|
+
*
|
|
53
|
+
* Returns `undefined` when the schema cannot be compiled (JSON Schema is wider
|
|
54
|
+
* than Zod can express). Callers treat that as "no contract to check" rather
|
|
55
|
+
* than failing: refusing data because we could not build the validator would be
|
|
56
|
+
* worse than the unchecked pass-through this replaces.
|
|
57
|
+
*/
|
|
58
|
+
export declare function compileJsonSchema(jsonSchema: unknown): z4.ZodType | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Decomposes an object {@link SchemaLike} into its declared fields, each mapped
|
|
61
|
+
* to a validator for that field alone.
|
|
62
|
+
*
|
|
63
|
+
* This is what lets a *partial* object be checked key by key. A state schema
|
|
64
|
+
* declares the keys a workflow may write, but the state holds only the ones
|
|
65
|
+
* written so far, so validating the whole object against the schema would
|
|
66
|
+
* reject it for missing fields that simply have not been set yet.
|
|
67
|
+
*
|
|
68
|
+
* Returns `undefined` when the schema is not an object schema or cannot be
|
|
69
|
+
* decomposed, and maps a field to `undefined` when that field's own schema has
|
|
70
|
+
* no Zod equivalent. Both mean "unvalidatable" rather than invalid, consistent
|
|
71
|
+
* with {@link parseWithSchema}.
|
|
72
|
+
*/
|
|
73
|
+
export declare function objectSchemaFields(schema: SchemaLike): Map<string, z4.ZodType | undefined> | undefined;
|
|
@@ -6,8 +6,16 @@
|
|
|
6
6
|
import { Schema } from '@google/genai';
|
|
7
7
|
import { z as z3 } from 'zod/v3';
|
|
8
8
|
import { z as z4 } from 'zod/v4';
|
|
9
|
+
type ZodSchema<T = unknown> = z3.ZodType<T> | z4.ZodType<T>;
|
|
10
|
+
/** Returns true if the value is a Zod schema (v3 or v4). */
|
|
11
|
+
export declare function isZodSchema(obj: unknown): obj is ZodSchema;
|
|
12
|
+
/** Returns true if the value is a Zod v3 schema. */
|
|
13
|
+
export declare function isZodV3Schema(obj: unknown): obj is z3.ZodTypeAny;
|
|
14
|
+
/** Returns true if the value is a Zod v4 schema. */
|
|
15
|
+
export declare function isZodV4Schema(obj: unknown): obj is z4.ZodType;
|
|
9
16
|
/**
|
|
10
17
|
* Returns true if the given object is a ZodObject (supports both Zod v3 and v4).
|
|
11
18
|
*/
|
|
12
19
|
export declare function isZodObject(obj: unknown): obj is z3.ZodObject<z3.ZodRawShape> | z4.ZodObject<z4.ZodRawShape>;
|
|
13
20
|
export declare function zodObjectToSchema(schema: z3.ZodObject<z3.ZodRawShape> | z4.ZodObject<z4.ZodRawShape>): Schema;
|
|
21
|
+
export {};
|
|
@@ -3,9 +3,14 @@
|
|
|
3
3
|
* Copyright 2026 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
export declare const EXPRESS_MODE_UNSUPPORTED_MESSAGE: string;
|
|
6
7
|
/**
|
|
7
8
|
* Validates and returns the API key for Express Mode.
|
|
8
9
|
*
|
|
10
|
+
* The key is only returned when enterprise mode is enabled via
|
|
11
|
+
* `GOOGLE_GENAI_USE_ENTERPRISE` (or the deprecated
|
|
12
|
+
* `GOOGLE_GENAI_USE_VERTEXAI`).
|
|
13
|
+
*
|
|
9
14
|
* @param project The project id.
|
|
10
15
|
* @param location The location.
|
|
11
16
|
* @param expressModeApiKey The API key for Express Mode.
|