@google/adk 2.3.0 → 2.5.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_remote_agent.js +17 -2
- package/dist/cjs/a2a/a2a_remote_agent_utils.js +8 -4
- package/dist/cjs/a2a/agent_card.js +5 -81
- package/dist/cjs/a2a/agent_to_a2a.js +7 -0
- package/dist/cjs/a2a/event_converter_utils.js +10 -3
- package/dist/cjs/agents/agent_engine_client.js +399 -0
- package/dist/cjs/agents/base_agent.js +127 -68
- package/dist/cjs/agents/functions.js +64 -59
- package/dist/cjs/agents/instructions.js +8 -6
- package/dist/cjs/agents/invocation_context.js +2 -2
- package/dist/cjs/agents/llm_agent.js +124 -101
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
- package/dist/cjs/agents/processors/code_execution_request_processor.js +8 -0
- package/dist/cjs/agents/processors/content_processor_utils.js +72 -17
- package/dist/cjs/agents/processors/content_request_processor.js +51 -2
- package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
- package/dist/cjs/agents/processors/nl_planning_processor.js +13 -3
- package/dist/cjs/artifacts/file_artifact_service.js +1 -1
- package/dist/cjs/cli/cli_eval.js +884 -17
- package/dist/cjs/cli/utils/cleanup.js +84 -0
- package/dist/cjs/cli/utils/envs.js +33 -2
- package/dist/cjs/cli/utils/evals.js +75 -8
- package/dist/cjs/cli/utils/logs.js +134 -15
- package/dist/cjs/cli/utils/path_validation.js +83 -0
- package/dist/cjs/code_executors/container_code_executor.js +171 -38
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
- package/dist/cjs/common.js +59 -32
- package/dist/cjs/context/compaction_utils.js +19 -0
- package/dist/cjs/errors/input_validation_error.js +3 -2
- package/dist/cjs/events/event.js +7 -3
- package/dist/cjs/features/feature_registry.js +5 -0
- package/dist/cjs/index.js +34 -12
- package/dist/cjs/models/google_llm.js +33 -2
- package/dist/cjs/models/interactions_utils.js +3 -0
- package/dist/cjs/plugins/base_plugin.js +54 -40
- package/dist/cjs/plugins/plugin_manager.js +27 -0
- package/dist/cjs/runner/runner.js +306 -189
- package/dist/cjs/sessions/base_session_service.js +15 -12
- package/dist/cjs/sessions/database_session_service.js +232 -38
- package/dist/cjs/sessions/db/operations.js +70 -1
- package/dist/cjs/sessions/db/schema.js +4 -0
- package/dist/cjs/sessions/in_memory_session_service.js +2 -2
- package/dist/cjs/sessions/stale_session_error.js +59 -0
- package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
- package/dist/cjs/skills/loader.js +76 -41
- package/dist/cjs/telemetry/api/instrumentation.js +632 -0
- package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
- package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
- package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
- package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
- package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
- package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
- package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
- package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
- package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
- package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
- package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
- package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
- package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
- package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
- package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
- package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
- package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
- package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
- package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
- package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
- package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
- package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
- package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
- package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
- package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
- package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
- package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
- package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
- package/dist/cjs/telemetry/export/agent_engine.js +90 -0
- package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
- package/dist/cjs/telemetry/export/google_cloud.js +763 -0
- package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
- package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -6
- package/dist/cjs/tools/agent_tool.js +9 -1
- package/dist/cjs/tools/apihub_tool/apihub_toolset.js +18 -23
- package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +109 -43
- package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +222 -114
- package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +34 -14
- package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +175 -0
- package/dist/cjs/tools/base_toolset.js +1 -1
- package/dist/cjs/tools/computer_use/base_computer.js +125 -0
- package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
- package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
- package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
- package/dist/cjs/tools/function_tool.js +15 -5
- package/dist/cjs/tools/google_api_tool/google_api_tool.js +4 -1
- package/dist/cjs/tools/google_api_tool/google_api_toolset.js +174 -0
- package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
- package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
- package/dist/cjs/tools/google_api_tool/index.js +20 -23
- package/dist/cjs/tools/load_artifacts_tool.js +27 -11
- package/dist/cjs/tools/load_memory_tool.js +14 -15
- package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
- package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
- package/dist/cjs/tools/mcp/mcp_toolset.js +19 -20
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +57 -10
- package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
- package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
- package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
- package/dist/cjs/tools/toolbox_toolset.js +193 -0
- package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
- package/dist/cjs/utils/async_queue.js +37 -3
- package/dist/cjs/utils/client_labels.js +17 -2
- package/dist/cjs/utils/env_aware_utils.js +13 -7
- package/dist/cjs/utils/error_utils.js +40 -2
- package/dist/cjs/utils/failover_utils.js +11 -10
- package/dist/cjs/utils/gemini_schema_util.js +145 -14
- package/dist/cjs/utils/id_provider.js +63 -0
- package/dist/cjs/utils/logger_node.js +4 -0
- package/dist/cjs/utils/model_name.js +15 -0
- package/dist/cjs/utils/output_schema_utils.js +5 -2
- package/dist/cjs/utils/simple_zod_to_json.js +13 -31
- package/dist/cjs/utils/ssrf_guard.js +46 -16
- package/dist/cjs/utils/task.js +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/workflow/index.js +2 -0
- package/dist/cjs/workflow/node_runner.js +24 -80
- package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
- package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
- package/dist/cjs/workflow/utils/retry_utils.js +2 -2
- package/dist/cjs/workflow/workflow.js +12 -12
- package/dist/esm/a2a/a2a_remote_agent.js +23 -3
- package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
- package/dist/esm/a2a/agent_card.js +5 -83
- package/dist/esm/a2a/agent_to_a2a.js +7 -0
- package/dist/esm/a2a/event_converter_utils.js +10 -3
- package/dist/esm/agents/agent_engine_client.js +382 -0
- package/dist/esm/agents/base_agent.js +127 -72
- package/dist/esm/agents/functions.js +69 -63
- package/dist/esm/agents/instructions.js +8 -6
- package/dist/esm/agents/invocation_context.js +2 -2
- package/dist/esm/agents/llm_agent.js +130 -106
- package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
- package/dist/esm/agents/processors/code_execution_request_processor.js +8 -0
- package/dist/esm/agents/processors/content_processor_utils.js +72 -17
- package/dist/esm/agents/processors/content_request_processor.js +51 -2
- package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
- package/dist/esm/agents/processors/nl_planning_processor.js +13 -3
- package/dist/esm/artifacts/file_artifact_service.js +1 -1
- package/dist/esm/cli/cli_eval.js +880 -17
- package/dist/esm/cli/utils/cleanup.js +56 -0
- package/dist/esm/cli/utils/envs.js +33 -2
- package/dist/esm/cli/utils/evals.js +74 -8
- package/dist/esm/cli/utils/logs.js +132 -13
- package/dist/esm/cli/utils/path_validation.js +45 -0
- package/dist/esm/code_executors/container_code_executor.js +171 -38
- package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
- package/dist/esm/common.js +59 -19
- package/dist/esm/context/compaction_utils.js +19 -0
- package/dist/esm/errors/input_validation_error.js +3 -2
- package/dist/esm/events/event.js +7 -3
- package/dist/esm/features/feature_registry.js +5 -0
- package/dist/esm/index.js +36 -10
- package/dist/esm/models/google_llm.js +33 -2
- package/dist/esm/models/interactions_utils.js +3 -0
- package/dist/esm/plugins/base_plugin.js +54 -40
- package/dist/esm/plugins/plugin_manager.js +27 -0
- package/dist/esm/runner/runner.js +310 -192
- package/dist/esm/sessions/base_session_service.js +13 -11
- package/dist/esm/sessions/database_session_service.js +231 -38
- package/dist/esm/sessions/db/operations.js +70 -1
- package/dist/esm/sessions/db/schema.js +4 -0
- package/dist/esm/sessions/in_memory_session_service.js +2 -2
- package/dist/esm/sessions/stale_session_error.js +31 -0
- package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
- package/dist/esm/skills/loader.js +76 -41
- package/dist/esm/telemetry/api/instrumentation.js +655 -0
- package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
- package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
- package/dist/esm/telemetry/api/internal/common/config.js +128 -0
- package/dist/esm/telemetry/api/internal/common/error.js +69 -0
- package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
- package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
- package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
- package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
- package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
- package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
- package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
- package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
- package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
- package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
- package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
- package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
- package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
- package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
- package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
- package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
- package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
- package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
- package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
- package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
- package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
- package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
- package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
- package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
- package/dist/esm/telemetry/export/agent_engine.js +67 -0
- package/dist/esm/telemetry/export/agent_runtime.js +46 -0
- package/dist/esm/telemetry/export/google_cloud.js +733 -0
- package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
- package/dist/esm/telemetry/export/setup.js +160 -0
- package/dist/esm/tools/agent_tool.js +9 -1
- package/dist/esm/tools/apihub_tool/apihub_toolset.js +17 -22
- package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +114 -44
- package/dist/esm/tools/application_integration_tool/clients/connections_client.js +226 -115
- package/dist/esm/tools/application_integration_tool/clients/integration_client.js +34 -14
- package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +149 -0
- package/dist/esm/tools/base_toolset.js +1 -1
- package/dist/esm/tools/computer_use/base_computer.js +99 -0
- package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
- package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
- package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
- package/dist/esm/tools/function_tool.js +15 -5
- package/dist/esm/tools/google_api_tool/google_api_tool.js +4 -1
- package/dist/esm/tools/google_api_tool/google_api_toolset.js +147 -0
- package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
- package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
- package/dist/esm/tools/google_api_tool/index.js +18 -20
- package/dist/esm/tools/load_artifacts_tool.js +25 -10
- package/dist/esm/tools/load_memory_tool.js +14 -15
- package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
- package/dist/esm/tools/mcp/mcp_tool.js +7 -3
- package/dist/esm/tools/mcp/mcp_toolset.js +19 -20
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +57 -10
- package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
- package/dist/esm/tools/skill/load_skill_tool.js +3 -0
- package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
- package/dist/esm/tools/toolbox_toolset.js +167 -0
- package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
- package/dist/esm/utils/async_queue.js +37 -3
- package/dist/esm/utils/client_labels.js +17 -2
- package/dist/esm/utils/env_aware_utils.js +12 -7
- package/dist/esm/utils/error_utils.js +37 -1
- package/dist/esm/utils/failover_utils.js +11 -10
- package/dist/esm/utils/gemini_schema_util.js +144 -14
- package/dist/esm/utils/id_provider.js +33 -0
- package/dist/esm/utils/logger_node.js +4 -0
- package/dist/esm/utils/model_name.js +14 -0
- package/dist/esm/utils/output_schema_utils.js +5 -2
- package/dist/esm/utils/simple_zod_to_json.js +13 -31
- package/dist/esm/utils/ssrf_guard.js +55 -15
- package/dist/esm/utils/task.js +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/workflow/index.js +2 -1
- package/dist/esm/workflow/node_runner.js +26 -80
- package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
- package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
- package/dist/esm/workflow/utils/retry_utils.js +2 -2
- package/dist/esm/workflow/workflow.js +12 -12
- package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
- package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
- package/dist/types/agents/agent_engine_client.d.ts +155 -0
- package/dist/types/agents/base_agent.d.ts +14 -0
- package/dist/types/agents/llm_agent.d.ts +5 -1
- package/dist/types/agents/processors/content_processor_utils.d.ts +12 -10
- package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
- package/dist/types/agents/run_config.d.ts +14 -0
- package/dist/types/cli/cli_eval.d.ts +172 -9
- package/dist/types/cli/utils/cleanup.d.ts +18 -0
- package/dist/types/cli/utils/envs.d.ts +13 -3
- package/dist/types/cli/utils/evals.d.ts +64 -1
- package/dist/types/cli/utils/logs.d.ts +20 -3
- package/dist/types/cli/utils/path_validation.d.ts +30 -0
- package/dist/types/code_executors/container_code_executor.d.ts +62 -9
- package/dist/types/common.d.ts +21 -18
- package/dist/types/context/compaction_utils.d.ts +13 -1
- package/dist/types/errors/input_validation_error.d.ts +2 -1
- package/dist/types/events/event.d.ts +3 -0
- package/dist/types/features/feature_registry.d.ts +1 -0
- package/dist/types/index.d.ts +11 -6
- package/dist/types/plugins/base_plugin.d.ts +50 -31
- package/dist/types/plugins/plugin_manager.d.ts +13 -0
- package/dist/types/runner/runner.d.ts +11 -0
- package/dist/types/sessions/base_session_service.d.ts +5 -2
- package/dist/types/sessions/database_session_service.d.ts +17 -1
- package/dist/types/sessions/db/operations.d.ts +2 -1
- package/dist/types/sessions/db/schema.d.ts +5 -3
- package/dist/types/sessions/stale_session_error.d.ts +21 -0
- package/dist/types/skills/loader.d.ts +3 -2
- package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
- package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
- package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
- package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
- package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
- package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
- package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
- package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
- package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
- package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
- package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
- package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
- package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
- package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
- package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
- package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
- package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
- package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
- package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
- package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
- package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
- package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
- package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
- package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
- package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
- package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
- package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
- package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
- package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
- package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
- package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
- package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
- package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
- package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
- package/dist/types/tools/agent_tool.d.ts +1 -1
- package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +14 -21
- package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +32 -9
- package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +35 -12
- package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +3 -3
- package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
- package/dist/types/tools/base_toolset.d.ts +7 -6
- package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
- package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
- package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
- package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
- package/dist/types/tools/google_api_tool/google_api_tool.d.ts +10 -3
- package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +57 -0
- package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
- package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +5 -4
- package/dist/types/tools/google_api_tool/index.d.ts +4 -5
- package/dist/types/tools/load_artifacts_tool.d.ts +18 -1
- package/dist/types/tools/load_memory_tool.d.ts +32 -4
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
- package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
- package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +15 -3
- package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
- package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
- package/dist/types/tools/toolbox_toolset.d.ts +154 -0
- package/dist/types/utils/async_queue.d.ts +14 -0
- package/dist/types/utils/client_labels.d.ts +2 -1
- package/dist/types/utils/env_aware_utils.d.ts +11 -0
- package/dist/types/utils/error_utils.d.ts +4 -0
- package/dist/types/utils/gemini_schema_util.d.ts +29 -0
- package/dist/types/utils/id_provider.d.ts +43 -0
- package/dist/types/utils/model_name.d.ts +8 -0
- package/dist/types/utils/output_schema_utils.d.ts +3 -2
- package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
- package/dist/types/utils/ssrf_guard.d.ts +2 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/workflow/index.d.ts +1 -1
- package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
- package/dist/web/index_web.js +94 -88
- package/dist/web/index_web.js.map +4 -4
- package/package.json +43 -38
- package/dist/cjs/agents/remote_agent.js +0 -187
- package/dist/cjs/telemetry/google_cloud.js +0 -116
- package/dist/cjs/telemetry/tracing.js +0 -350
- package/dist/cjs/tools/crewai_tool.js +0 -132
- package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +0 -226
- package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +0 -58
- package/dist/cjs/tools/langchain_tool.js +0 -172
- package/dist/cjs/tools/toolbox_tool.js +0 -108
- package/dist/esm/agents/remote_agent.js +0 -164
- package/dist/esm/telemetry/google_cloud.js +0 -99
- package/dist/esm/telemetry/setup.js +0 -89
- package/dist/esm/telemetry/tracing.js +0 -315
- package/dist/esm/tools/crewai_tool.js +0 -107
- package/dist/esm/tools/google_api_tool/google_api_tool_set.js +0 -188
- package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +0 -24
- package/dist/esm/tools/langchain_tool.js +0 -148
- package/dist/esm/tools/toolbox_tool.js +0 -80
- package/dist/types/agents/remote_agent.d.ts +0 -68
- package/dist/types/telemetry/google_cloud.d.ts +0 -9
- package/dist/types/telemetry/tracing.d.ts +0 -129
- package/dist/types/tools/crewai_tool.d.ts +0 -85
- package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +0 -78
- package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +0 -33
- package/dist/types/tools/langchain_tool.d.ts +0 -103
- package/dist/types/tools/toolbox_tool.d.ts +0 -73
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2026 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
var _a, _b;
|
|
20
|
+
import { Environment } from "@google/genai";
|
|
21
|
+
import { experimental } from "../../utils/experimental.js";
|
|
22
|
+
import { logger } from "../../utils/logger.js";
|
|
23
|
+
import { getGeminiMajorVersion } from "../../utils/model_name.js";
|
|
24
|
+
import { BaseToolset } from "../base_toolset.js";
|
|
25
|
+
import {
|
|
26
|
+
checkComputerUseEnabled,
|
|
27
|
+
ComputerEnvironment
|
|
28
|
+
} from "./base_computer.js";
|
|
29
|
+
import {
|
|
30
|
+
createComputerActions,
|
|
31
|
+
LEGACY_ACTION_NAMES,
|
|
32
|
+
OPTIONAL_KEY_ACTIONS,
|
|
33
|
+
OPTIONAL_MOUSE_ACTIONS,
|
|
34
|
+
unimplementedOptionalActions
|
|
35
|
+
} from "./computer_use_actions.js";
|
|
36
|
+
import {
|
|
37
|
+
ComputerUseTool,
|
|
38
|
+
isComputerUseTool
|
|
39
|
+
} from "./computer_use_tool.js";
|
|
40
|
+
const DIRECT_EXCLUSION_MAP = Object.freeze({
|
|
41
|
+
// Legacy -> modern.
|
|
42
|
+
click_at: ["click"],
|
|
43
|
+
hover_at: ["move"],
|
|
44
|
+
type_text_at: ["type"],
|
|
45
|
+
type_text: ["type"],
|
|
46
|
+
scroll_at: ["scroll"],
|
|
47
|
+
// Whole-page scroll has no modern counterpart.
|
|
48
|
+
scroll_document: [],
|
|
49
|
+
current_state: ["take_screenshot"],
|
|
50
|
+
key_combination: ["press_key", "hotkey"],
|
|
51
|
+
wait_5_seconds: ["wait"],
|
|
52
|
+
// Modern -> legacy.
|
|
53
|
+
click: ["click_at"],
|
|
54
|
+
move: ["hover_at"],
|
|
55
|
+
type: ["type_text_at"],
|
|
56
|
+
// Does not drop scroll_document.
|
|
57
|
+
scroll: ["scroll_at"],
|
|
58
|
+
take_screenshot: ["current_state"],
|
|
59
|
+
// key_combination is dropped only when both of these are excluded.
|
|
60
|
+
press_key: [],
|
|
61
|
+
hotkey: [],
|
|
62
|
+
wait: ["wait_5_seconds"]
|
|
63
|
+
});
|
|
64
|
+
const LEGACY_EXCLUSION_NAMES = /* @__PURE__ */ new Set([
|
|
65
|
+
"click_at",
|
|
66
|
+
"hover_at",
|
|
67
|
+
"type_text_at",
|
|
68
|
+
"type_text",
|
|
69
|
+
"scroll_at",
|
|
70
|
+
"scroll_document",
|
|
71
|
+
"current_state",
|
|
72
|
+
"key_combination",
|
|
73
|
+
"wait_5_seconds"
|
|
74
|
+
]);
|
|
75
|
+
const MODERN_EXCLUSION_NAMES = /* @__PURE__ */ new Set([
|
|
76
|
+
"click",
|
|
77
|
+
"move",
|
|
78
|
+
"type",
|
|
79
|
+
"scroll",
|
|
80
|
+
"take_screenshot",
|
|
81
|
+
"press_key",
|
|
82
|
+
"hotkey",
|
|
83
|
+
"wait",
|
|
84
|
+
...OPTIONAL_MOUSE_ACTIONS,
|
|
85
|
+
...OPTIONAL_KEY_ACTIONS
|
|
86
|
+
]);
|
|
87
|
+
const TYPING_ACTIONS = ["type", "type_text_at", "type_text"];
|
|
88
|
+
const computerQueues = /* @__PURE__ */ new WeakMap();
|
|
89
|
+
function expandLocalExclusions(excludedNames) {
|
|
90
|
+
var _a2;
|
|
91
|
+
const expanded = new Set(excludedNames);
|
|
92
|
+
for (const name of excludedNames) {
|
|
93
|
+
for (const counterpart of (_a2 = DIRECT_EXCLUSION_MAP[name]) != null ? _a2 : []) {
|
|
94
|
+
expanded.add(counterpart);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (TYPING_ACTIONS.some((name) => expanded.has(name))) {
|
|
98
|
+
TYPING_ACTIONS.forEach((name) => expanded.add(name));
|
|
99
|
+
}
|
|
100
|
+
if (expanded.has("press_key") && expanded.has("hotkey")) {
|
|
101
|
+
expanded.add("key_combination");
|
|
102
|
+
}
|
|
103
|
+
return expanded;
|
|
104
|
+
}
|
|
105
|
+
__name(expandLocalExclusions, "expandLocalExclusions");
|
|
106
|
+
function resolveExcludedPredefinedFunctions({
|
|
107
|
+
excludedNames,
|
|
108
|
+
model,
|
|
109
|
+
unimplementedActions
|
|
110
|
+
}) {
|
|
111
|
+
var _a2;
|
|
112
|
+
const major = getGeminiMajorVersion(model);
|
|
113
|
+
if (major !== void 0 && major < 3) {
|
|
114
|
+
if (excludedNames === void 0) {
|
|
115
|
+
return void 0;
|
|
116
|
+
}
|
|
117
|
+
const bothModernKeys = excludedNames.includes("press_key") && excludedNames.includes("hotkey");
|
|
118
|
+
const resolved2 = [];
|
|
119
|
+
for (const name of excludedNames) {
|
|
120
|
+
if (name === "press_key" || name === "hotkey") {
|
|
121
|
+
if (bothModernKeys) {
|
|
122
|
+
resolved2.push("key_combination");
|
|
123
|
+
}
|
|
124
|
+
} else if (name === "type_text") {
|
|
125
|
+
resolved2.push("type_text_at");
|
|
126
|
+
} else if (MODERN_EXCLUSION_NAMES.has(name)) {
|
|
127
|
+
resolved2.push(...(_a2 = DIRECT_EXCLUSION_MAP[name]) != null ? _a2 : []);
|
|
128
|
+
} else {
|
|
129
|
+
resolved2.push(name);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return [...new Set(resolved2)];
|
|
133
|
+
}
|
|
134
|
+
const resolved = [];
|
|
135
|
+
for (const name of excludedNames != null ? excludedNames : []) {
|
|
136
|
+
if (LEGACY_EXCLUSION_NAMES.has(name)) {
|
|
137
|
+
resolved.push(...DIRECT_EXCLUSION_MAP[name]);
|
|
138
|
+
} else {
|
|
139
|
+
resolved.push(name);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (major !== void 0 && major >= 3) {
|
|
143
|
+
resolved.push(...unimplementedActions);
|
|
144
|
+
}
|
|
145
|
+
const deduped = [...new Set(resolved)];
|
|
146
|
+
if (deduped.length === 0 && excludedNames === void 0) {
|
|
147
|
+
return void 0;
|
|
148
|
+
}
|
|
149
|
+
return deduped;
|
|
150
|
+
}
|
|
151
|
+
__name(resolveExcludedPredefinedFunctions, "resolveExcludedPredefinedFunctions");
|
|
152
|
+
async function runExclusive(computer, action) {
|
|
153
|
+
var _a2;
|
|
154
|
+
const previous = (_a2 = computerQueues.get(computer)) != null ? _a2 : Promise.resolve();
|
|
155
|
+
const result = previous.then(action);
|
|
156
|
+
computerQueues.set(
|
|
157
|
+
computer,
|
|
158
|
+
result.then(
|
|
159
|
+
() => void 0,
|
|
160
|
+
() => void 0
|
|
161
|
+
)
|
|
162
|
+
);
|
|
163
|
+
return result;
|
|
164
|
+
}
|
|
165
|
+
__name(runExclusive, "runExclusive");
|
|
166
|
+
function toGenaiEnvironment(environment) {
|
|
167
|
+
switch (environment) {
|
|
168
|
+
case ComputerEnvironment.ENVIRONMENT_UNSPECIFIED:
|
|
169
|
+
return Environment.ENVIRONMENT_UNSPECIFIED;
|
|
170
|
+
case ComputerEnvironment.ENVIRONMENT_BROWSER:
|
|
171
|
+
return Environment.ENVIRONMENT_BROWSER;
|
|
172
|
+
default: {
|
|
173
|
+
const exhaustive = environment;
|
|
174
|
+
throw new Error(`Unknown computer environment: ${exhaustive}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
__name(toGenaiEnvironment, "toGenaiEnvironment");
|
|
179
|
+
function isComputerUseConfig(tool) {
|
|
180
|
+
return "computerUse" in tool && tool.computerUse !== void 0;
|
|
181
|
+
}
|
|
182
|
+
__name(isComputerUseConfig, "isComputerUseConfig");
|
|
183
|
+
async function adaptComputerUseTool({
|
|
184
|
+
methodName,
|
|
185
|
+
adapter,
|
|
186
|
+
llmRequest
|
|
187
|
+
}) {
|
|
188
|
+
if (!LEGACY_ACTION_NAMES.includes(methodName)) {
|
|
189
|
+
logger.warn(`Method ${methodName} is not a valid BaseComputer method`);
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const original = Object.hasOwn(llmRequest.toolsDict, methodName) ? llmRequest.toolsDict[methodName] : void 0;
|
|
193
|
+
if (!isComputerUseTool(original)) {
|
|
194
|
+
logger.warn(`Method ${methodName} not found in toolsDict`);
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const adapted = await adapter(original.func);
|
|
198
|
+
llmRequest.toolsDict[adapted.name] = new ComputerUseTool({
|
|
199
|
+
...adapted,
|
|
200
|
+
screenSize: original.screenSize,
|
|
201
|
+
virtualScreenSize: original.virtualScreenSize
|
|
202
|
+
});
|
|
203
|
+
if (adapted.name !== methodName) {
|
|
204
|
+
delete llmRequest.toolsDict[methodName];
|
|
205
|
+
}
|
|
206
|
+
logger.debug(`Adapted tool ${methodName} to ${adapted.name}`);
|
|
207
|
+
}
|
|
208
|
+
__name(adaptComputerUseTool, "adaptComputerUseTool");
|
|
209
|
+
const COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
|
|
210
|
+
"google.adk.computerUseToolset"
|
|
211
|
+
);
|
|
212
|
+
function isComputerUseToolset(obj) {
|
|
213
|
+
return typeof obj === "object" && obj !== null && COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL in obj && obj[COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL] === true;
|
|
214
|
+
}
|
|
215
|
+
__name(isComputerUseToolset, "isComputerUseToolset");
|
|
216
|
+
let ComputerUseToolset = class extends (_b = BaseToolset, _a = COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL, _b) {
|
|
217
|
+
/**
|
|
218
|
+
* @param options The computer and its configuration.
|
|
219
|
+
*/
|
|
220
|
+
constructor(options) {
|
|
221
|
+
var _a2;
|
|
222
|
+
checkComputerUseEnabled();
|
|
223
|
+
super([]);
|
|
224
|
+
/** A unique symbol to identify ADK computer use toolset class. */
|
|
225
|
+
this[_a] = true;
|
|
226
|
+
this.closed = false;
|
|
227
|
+
this.computer = options.computer;
|
|
228
|
+
this.excludedPredefinedFunctions = options.excludedPredefinedFunctions;
|
|
229
|
+
this.allowPrivateNetworkAccess = (_a2 = options.allowPrivateNetworkAccess) != null ? _a2 : false;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Returns a tool for every action the computer supports, except the
|
|
233
|
+
* excluded ones. The computer is initialized on the first call, and the
|
|
234
|
+
* tools are cached until {@link close}.
|
|
235
|
+
*/
|
|
236
|
+
async getTools() {
|
|
237
|
+
var _a2;
|
|
238
|
+
(_a2 = this.loadingTools) != null ? _a2 : this.loadingTools = this.loadTools();
|
|
239
|
+
try {
|
|
240
|
+
return await this.loadingTools;
|
|
241
|
+
} catch (error) {
|
|
242
|
+
this.loadingTools = void 0;
|
|
243
|
+
throw error;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Closes the computer and drops the cached tools. The next call to
|
|
248
|
+
* {@link getTools} initializes the computer again.
|
|
249
|
+
*/
|
|
250
|
+
async close() {
|
|
251
|
+
if (!this.closed) {
|
|
252
|
+
await this.computer.close();
|
|
253
|
+
this.closed = true;
|
|
254
|
+
}
|
|
255
|
+
this.initializing = void 0;
|
|
256
|
+
this.loadingTools = void 0;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Registers the computer use tools in the request and adds the computer use
|
|
260
|
+
* configuration, unless the request already has one.
|
|
261
|
+
*
|
|
262
|
+
* @param _toolContext The context of the tool.
|
|
263
|
+
* @param llmRequest The outgoing request.
|
|
264
|
+
*/
|
|
265
|
+
async processLlmRequest(_toolContext, llmRequest) {
|
|
266
|
+
var _a2, _b2, _c;
|
|
267
|
+
for (const tool of await this.getTools()) {
|
|
268
|
+
llmRequest.toolsDict[tool.name] = tool;
|
|
269
|
+
}
|
|
270
|
+
(_a2 = llmRequest.config) != null ? _a2 : llmRequest.config = {};
|
|
271
|
+
(_c = (_b2 = llmRequest.config).tools) != null ? _c : _b2.tools = [];
|
|
272
|
+
if (llmRequest.config.tools.some(isComputerUseConfig)) {
|
|
273
|
+
logger.debug("Computer use already configured in LLM request");
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
const environment = toGenaiEnvironment(await this.computer.environment());
|
|
277
|
+
const excludedPredefinedFunctions = resolveExcludedPredefinedFunctions({
|
|
278
|
+
excludedNames: this.excludedPredefinedFunctions,
|
|
279
|
+
model: llmRequest.model,
|
|
280
|
+
unimplementedActions: unimplementedOptionalActions(this.computer)
|
|
281
|
+
});
|
|
282
|
+
llmRequest.config.tools.push({
|
|
283
|
+
computerUse: excludedPredefinedFunctions === void 0 ? { environment } : { environment, excludedPredefinedFunctions }
|
|
284
|
+
});
|
|
285
|
+
logger.debug(
|
|
286
|
+
`Added computer use tool with environment: ${environment}, excluded functions: ${excludedPredefinedFunctions}`
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
ensureInitialized() {
|
|
290
|
+
var _a2;
|
|
291
|
+
(_a2 = this.initializing) != null ? _a2 : this.initializing = this.computer.initialize().then(
|
|
292
|
+
() => {
|
|
293
|
+
this.closed = false;
|
|
294
|
+
},
|
|
295
|
+
(error) => {
|
|
296
|
+
this.initializing = void 0;
|
|
297
|
+
throw error;
|
|
298
|
+
}
|
|
299
|
+
);
|
|
300
|
+
return this.initializing;
|
|
301
|
+
}
|
|
302
|
+
async loadTools() {
|
|
303
|
+
var _a2;
|
|
304
|
+
await this.ensureInitialized();
|
|
305
|
+
const screenSize = await this.computer.screenSize();
|
|
306
|
+
const excluded = expandLocalExclusions(
|
|
307
|
+
(_a2 = this.excludedPredefinedFunctions) != null ? _a2 : []
|
|
308
|
+
);
|
|
309
|
+
return createComputerActions({
|
|
310
|
+
computer: this.computer,
|
|
311
|
+
allowPrivateNetworkAccess: this.allowPrivateNetworkAccess
|
|
312
|
+
}).filter((action) => !excluded.has(action.name)).map(
|
|
313
|
+
(action) => new ComputerUseTool({
|
|
314
|
+
name: action.name,
|
|
315
|
+
description: action.description,
|
|
316
|
+
parameters: action.parameters,
|
|
317
|
+
execute: this.bindToComputer(action),
|
|
318
|
+
screenSize
|
|
319
|
+
})
|
|
320
|
+
);
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Wraps an action so it runs exclusively on the computer, after the
|
|
324
|
+
* computer has prepared for the calling session.
|
|
325
|
+
*/
|
|
326
|
+
bindToComputer(action) {
|
|
327
|
+
const computer = this.computer;
|
|
328
|
+
return (args, toolContext) => runExclusive(computer, async () => {
|
|
329
|
+
if (toolContext) {
|
|
330
|
+
await computer.prepare(toolContext);
|
|
331
|
+
}
|
|
332
|
+
return action.execute(args);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
__name(ComputerUseToolset, "ComputerUseToolset");
|
|
337
|
+
ComputerUseToolset = __decorateClass([
|
|
338
|
+
experimental
|
|
339
|
+
], ComputerUseToolset);
|
|
340
|
+
export {
|
|
341
|
+
ComputerUseToolset,
|
|
342
|
+
adaptComputerUseTool,
|
|
343
|
+
isComputerUseToolset
|
|
344
|
+
};
|
|
@@ -29,9 +29,10 @@ function toResponseSchema(response) {
|
|
|
29
29
|
return zodObjectToSchema(response);
|
|
30
30
|
}
|
|
31
31
|
if (typeof response === "object" && response !== null && "safeParse" in response && typeof response.safeParse === "function") {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
const jsonSchema = toJsonSchema(response);
|
|
33
|
+
return (_a2 = toGeminiSchema(jsonSchema)) != null ? _a2 : {
|
|
34
|
+
type: Type.TYPE_UNSPECIFIED
|
|
35
|
+
};
|
|
35
36
|
}
|
|
36
37
|
return response;
|
|
37
38
|
}
|
|
@@ -251,6 +252,11 @@ function annotateNullableFields(schema) {
|
|
|
251
252
|
if (!isPlainRecord(propertySchema)) {
|
|
252
253
|
continue;
|
|
253
254
|
}
|
|
255
|
+
const propType = propertySchema["type"];
|
|
256
|
+
if (propType === null || propType === "null" || propType === Type.NULL) {
|
|
257
|
+
propertySchema["type"] = Type.OBJECT;
|
|
258
|
+
propertySchema["nullable"] = true;
|
|
259
|
+
}
|
|
254
260
|
const anyOf = propertySchema["anyOf"];
|
|
255
261
|
if (!Array.isArray(anyOf)) {
|
|
256
262
|
continue;
|
|
@@ -353,8 +359,12 @@ function processParameterSchema(vertexai, schema) {
|
|
|
353
359
|
__name(processParameterSchema, "processParameterSchema");
|
|
354
360
|
function mapPropertySchemaType(propertySchema) {
|
|
355
361
|
var _a2, _b2;
|
|
356
|
-
|
|
357
|
-
|
|
362
|
+
const rawType = propertySchema["type"];
|
|
363
|
+
if (rawType === null || rawType === "null" || rawType === Type.NULL) {
|
|
364
|
+
propertySchema["type"] = Type.OBJECT;
|
|
365
|
+
propertySchema["nullable"] = true;
|
|
366
|
+
} else if (typeof rawType === "string") {
|
|
367
|
+
propertySchema["type"] = (_a2 = SCHEMA_TYPE_MAP[rawType]) != null ? _a2 : Type.TYPE_UNSPECIFIED;
|
|
358
368
|
if (propertySchema["type"] === Type.ARRAY && isPlainRecord(propertySchema["items"])) {
|
|
359
369
|
mapPropertySchemaType(propertySchema["items"]);
|
|
360
370
|
}
|
|
@@ -26,7 +26,7 @@ function isGoogleApiTool(obj) {
|
|
|
26
26
|
}
|
|
27
27
|
__name(isGoogleApiTool, "isGoogleApiTool");
|
|
28
28
|
let GoogleApiTool = class extends (_b = BaseTool, _a = GOOGLE_API_TOOL_SIGNATURE_SYMBOL, _b) {
|
|
29
|
-
constructor(restApiTool) {
|
|
29
|
+
constructor(restApiTool, options = {}) {
|
|
30
30
|
super({
|
|
31
31
|
name: restApiTool.name,
|
|
32
32
|
description: restApiTool.description,
|
|
@@ -34,6 +34,9 @@ let GoogleApiTool = class extends (_b = BaseTool, _a = GOOGLE_API_TOOL_SIGNATURE
|
|
|
34
34
|
});
|
|
35
35
|
this[_a] = true;
|
|
36
36
|
this.restApiTool = restApiTool;
|
|
37
|
+
if (options.clientId !== void 0 || options.clientSecret !== void 0) {
|
|
38
|
+
this.configureAuth(options.clientId, options.clientSecret);
|
|
39
|
+
}
|
|
37
40
|
}
|
|
38
41
|
_getDeclaration() {
|
|
39
42
|
return this.restApiTool._getDeclaration();
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2026 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
var _a, _b;
|
|
20
|
+
import { experimental } from "../../utils/experimental.js";
|
|
21
|
+
import { BaseToolset } from "../base_toolset.js";
|
|
22
|
+
import { OpenAPIToolset } from "../openapi_tool/openapi_toolset.js";
|
|
23
|
+
import { GoogleApiTool } from "./google_api_tool.js";
|
|
24
|
+
import { GoogleApiToOpenApiConverter } from "./googleapi_to_openapi_converter.js";
|
|
25
|
+
const GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
|
|
26
|
+
"google.adk.googleApiToolset"
|
|
27
|
+
);
|
|
28
|
+
const GOOGLE_OIDC_AUTH_ENDPOINT = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
29
|
+
const GOOGLE_OIDC_TOKEN_ENDPOINT = "https://oauth2.googleapis.com/token";
|
|
30
|
+
const GOOGLE_OIDC_USERINFO_ENDPOINT = "https://openidconnect.googleapis.com/v1/userinfo";
|
|
31
|
+
const GOOGLE_OIDC_REVOCATION_ENDPOINT = "https://oauth2.googleapis.com/revoke";
|
|
32
|
+
function isGoogleApiToolset(obj) {
|
|
33
|
+
return typeof obj === "object" && obj !== null && GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL in obj && obj[GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL] === true;
|
|
34
|
+
}
|
|
35
|
+
__name(isGoogleApiToolset, "isGoogleApiToolset");
|
|
36
|
+
let GoogleApiToolset = class extends (_b = BaseToolset, _a = GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL, _b) {
|
|
37
|
+
constructor(options = {}) {
|
|
38
|
+
var _a2;
|
|
39
|
+
const toolFilter = (_a2 = options.toolFilter) != null ? _a2 : [];
|
|
40
|
+
super(toolFilter);
|
|
41
|
+
this[_a] = true;
|
|
42
|
+
this.tools = [];
|
|
43
|
+
this.toolFilter = toolFilter;
|
|
44
|
+
this.apiName = options.apiName;
|
|
45
|
+
this.apiVersion = options.apiVersion;
|
|
46
|
+
this.clientId = options.clientId;
|
|
47
|
+
this.clientSecret = options.clientSecret;
|
|
48
|
+
this.scopes = options.scopes ? [...options.scopes] : void 0;
|
|
49
|
+
}
|
|
50
|
+
async loadToolsetWithOidcAuth() {
|
|
51
|
+
var _a2, _b2, _c, _d, _e;
|
|
52
|
+
if (!this.apiName || !this.apiVersion) {
|
|
53
|
+
throw new Error(
|
|
54
|
+
"Both apiName and apiVersion are required to load a GoogleApiToolset."
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
const specDict = await new GoogleApiToOpenApiConverter(
|
|
58
|
+
this.apiName,
|
|
59
|
+
this.apiVersion
|
|
60
|
+
).convert();
|
|
61
|
+
const oauth2Scheme = (_b2 = (_a2 = specDict.components) == null ? void 0 : _a2.securitySchemes) == null ? void 0 : _b2["oauth2"];
|
|
62
|
+
const scopesMap = (_e = (_d = (_c = oauth2Scheme == null ? void 0 : oauth2Scheme.flows) == null ? void 0 : _c.authorizationCode) == null ? void 0 : _d.scopes) != null ? _e : {};
|
|
63
|
+
const firstScope = Object.keys(scopesMap)[0];
|
|
64
|
+
const scopes = this.scopes !== void 0 ? [...this.scopes] : firstScope ? [firstScope] : void 0;
|
|
65
|
+
const authScheme = {
|
|
66
|
+
type: "openIdConnect",
|
|
67
|
+
openIdConnectUrl: "",
|
|
68
|
+
authorizationEndpoint: GOOGLE_OIDC_AUTH_ENDPOINT,
|
|
69
|
+
tokenEndpoint: GOOGLE_OIDC_TOKEN_ENDPOINT,
|
|
70
|
+
userinfoEndpoint: GOOGLE_OIDC_USERINFO_ENDPOINT,
|
|
71
|
+
revocationEndpoint: GOOGLE_OIDC_REVOCATION_ENDPOINT,
|
|
72
|
+
tokenEndpointAuthMethodsSupported: [
|
|
73
|
+
"client_secret_post",
|
|
74
|
+
"client_secret_basic"
|
|
75
|
+
],
|
|
76
|
+
grantTypesSupported: ["authorization_code"],
|
|
77
|
+
scopes
|
|
78
|
+
};
|
|
79
|
+
return new OpenAPIToolset({
|
|
80
|
+
specDict,
|
|
81
|
+
specType: "yaml",
|
|
82
|
+
authScheme
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
async ensureToolsLoaded() {
|
|
86
|
+
var _a2;
|
|
87
|
+
if (this.openapiToolset) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
(_a2 = this.loadingPromise) != null ? _a2 : this.loadingPromise = (async () => {
|
|
91
|
+
try {
|
|
92
|
+
const openapiToolset = await this.loadToolsetWithOidcAuth();
|
|
93
|
+
const restTools = await openapiToolset.getTools();
|
|
94
|
+
this.tools = restTools.map(
|
|
95
|
+
(tool) => new GoogleApiTool(tool, {
|
|
96
|
+
clientId: this.clientId,
|
|
97
|
+
clientSecret: this.clientSecret
|
|
98
|
+
})
|
|
99
|
+
);
|
|
100
|
+
this.openapiToolset = openapiToolset;
|
|
101
|
+
} catch (error) {
|
|
102
|
+
this.loadingPromise = void 0;
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
})();
|
|
106
|
+
await this.loadingPromise;
|
|
107
|
+
}
|
|
108
|
+
async getTools(context) {
|
|
109
|
+
await this.ensureToolsLoaded();
|
|
110
|
+
return this.tools.filter((tool) => this.isToolSelected(tool, context));
|
|
111
|
+
}
|
|
112
|
+
setToolFilter(toolFilter) {
|
|
113
|
+
this.toolFilter = toolFilter;
|
|
114
|
+
}
|
|
115
|
+
configureAuth(clientId, clientSecret) {
|
|
116
|
+
this.clientId = clientId;
|
|
117
|
+
this.clientSecret = clientSecret;
|
|
118
|
+
for (const tool of this.tools) {
|
|
119
|
+
tool.configureAuth(clientId, clientSecret);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
async close() {
|
|
123
|
+
if (this.openapiToolset) {
|
|
124
|
+
await this.openapiToolset.close();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
__name(GoogleApiToolset, "GoogleApiToolset");
|
|
129
|
+
__decorateClass([
|
|
130
|
+
experimental
|
|
131
|
+
], GoogleApiToolset.prototype, "getTools", 1);
|
|
132
|
+
__decorateClass([
|
|
133
|
+
experimental
|
|
134
|
+
], GoogleApiToolset.prototype, "setToolFilter", 1);
|
|
135
|
+
__decorateClass([
|
|
136
|
+
experimental
|
|
137
|
+
], GoogleApiToolset.prototype, "configureAuth", 1);
|
|
138
|
+
__decorateClass([
|
|
139
|
+
experimental
|
|
140
|
+
], GoogleApiToolset.prototype, "close", 1);
|
|
141
|
+
GoogleApiToolset = __decorateClass([
|
|
142
|
+
experimental
|
|
143
|
+
], GoogleApiToolset);
|
|
144
|
+
export {
|
|
145
|
+
GoogleApiToolset,
|
|
146
|
+
isGoogleApiToolset
|
|
147
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2026 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
import { experimental } from "../../utils/experimental.js";
|
|
20
|
+
import {
|
|
21
|
+
GoogleApiToolset
|
|
22
|
+
} from "./google_api_toolset.js";
|
|
23
|
+
let BigQueryToolset = class extends GoogleApiToolset {
|
|
24
|
+
constructor(options = {}) {
|
|
25
|
+
super({ ...options, apiName: "bigquery", apiVersion: "v2" });
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
__name(BigQueryToolset, "BigQueryToolset");
|
|
29
|
+
BigQueryToolset = __decorateClass([
|
|
30
|
+
experimental
|
|
31
|
+
], BigQueryToolset);
|
|
32
|
+
let CalendarToolset = class extends GoogleApiToolset {
|
|
33
|
+
constructor(options = {}) {
|
|
34
|
+
super({ ...options, apiName: "calendar", apiVersion: "v3" });
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
__name(CalendarToolset, "CalendarToolset");
|
|
38
|
+
CalendarToolset = __decorateClass([
|
|
39
|
+
experimental
|
|
40
|
+
], CalendarToolset);
|
|
41
|
+
let GmailToolset = class extends GoogleApiToolset {
|
|
42
|
+
constructor(options = {}) {
|
|
43
|
+
super({ ...options, apiName: "gmail", apiVersion: "v1" });
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
__name(GmailToolset, "GmailToolset");
|
|
47
|
+
GmailToolset = __decorateClass([
|
|
48
|
+
experimental
|
|
49
|
+
], GmailToolset);
|
|
50
|
+
let YoutubeToolset = class extends GoogleApiToolset {
|
|
51
|
+
constructor(options = {}) {
|
|
52
|
+
super({ ...options, apiName: "youtube", apiVersion: "v3" });
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
__name(YoutubeToolset, "YoutubeToolset");
|
|
56
|
+
YoutubeToolset = __decorateClass([
|
|
57
|
+
experimental
|
|
58
|
+
], YoutubeToolset);
|
|
59
|
+
let SlidesToolset = class extends GoogleApiToolset {
|
|
60
|
+
constructor(options = {}) {
|
|
61
|
+
super({ ...options, apiName: "slides", apiVersion: "v1" });
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
__name(SlidesToolset, "SlidesToolset");
|
|
65
|
+
SlidesToolset = __decorateClass([
|
|
66
|
+
experimental
|
|
67
|
+
], SlidesToolset);
|
|
68
|
+
let SheetsToolset = class extends GoogleApiToolset {
|
|
69
|
+
constructor(options = {}) {
|
|
70
|
+
super({ ...options, apiName: "sheets", apiVersion: "v4" });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
__name(SheetsToolset, "SheetsToolset");
|
|
74
|
+
SheetsToolset = __decorateClass([
|
|
75
|
+
experimental
|
|
76
|
+
], SheetsToolset);
|
|
77
|
+
let DocsToolset = class extends GoogleApiToolset {
|
|
78
|
+
constructor(options = {}) {
|
|
79
|
+
super({ ...options, apiName: "docs", apiVersion: "v1" });
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
__name(DocsToolset, "DocsToolset");
|
|
83
|
+
DocsToolset = __decorateClass([
|
|
84
|
+
experimental
|
|
85
|
+
], DocsToolset);
|
|
86
|
+
export {
|
|
87
|
+
BigQueryToolset,
|
|
88
|
+
CalendarToolset,
|
|
89
|
+
DocsToolset,
|
|
90
|
+
GmailToolset,
|
|
91
|
+
SheetsToolset,
|
|
92
|
+
SlidesToolset,
|
|
93
|
+
YoutubeToolset
|
|
94
|
+
};
|
|
@@ -205,11 +205,13 @@ function convertOperation(methodData, pathParams) {
|
|
|
205
205
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
206
206
|
const parameters = [];
|
|
207
207
|
for (const paramName of pathParams) {
|
|
208
|
+
const paramData = methodData.parameters && Object.hasOwn(methodData.parameters, paramName) ? methodData.parameters[paramName] : void 0;
|
|
208
209
|
parameters.push({
|
|
209
210
|
name: paramName,
|
|
210
211
|
in: "path",
|
|
212
|
+
...(paramData == null ? void 0 : paramData.description) !== void 0 ? { description: paramData.description } : {},
|
|
211
213
|
required: true,
|
|
212
|
-
schema: { type: "string" }
|
|
214
|
+
schema: paramData ? convertParameterSchema(paramData) : { type: "string" }
|
|
213
215
|
});
|
|
214
216
|
}
|
|
215
217
|
const pathParamSet = new Set(pathParams);
|
|
@@ -273,10 +275,10 @@ function convertOperation(methodData, pathParams) {
|
|
|
273
275
|
}
|
|
274
276
|
__name(convertOperation, "convertOperation");
|
|
275
277
|
function convertMethods(methods, _resourcePath, openapiSpec) {
|
|
276
|
-
var _a, _b;
|
|
278
|
+
var _a, _b, _c;
|
|
277
279
|
for (const methodData of Object.values(methods)) {
|
|
278
280
|
const httpMethod = ((_a = methodData.httpMethod) != null ? _a : "GET").toLowerCase();
|
|
279
|
-
let restPath = ((_b = methodData.
|
|
281
|
+
let restPath = ((_c = (_b = methodData.flatPath) != null ? _b : methodData.path) != null ? _c : "/").replace(
|
|
280
282
|
/\{\+([^{}]+)\}/g,
|
|
281
283
|
(_match, paramName) => `{${paramName}}`
|
|
282
284
|
);
|