@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
|
@@ -6,28 +6,26 @@ const require = topLevelCreateRequire(import.meta.url);
|
|
|
6
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
*/
|
|
8
8
|
import { GoogleApiTool, isGoogleApiTool } from "./google_api_tool.js";
|
|
9
|
-
import {
|
|
9
|
+
import { GoogleApiToolset, isGoogleApiToolset } from "./google_api_toolset.js";
|
|
10
10
|
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from "./
|
|
19
|
-
import { GoogleApiToOpenApiConverter } from "./googleapi_to_openapi_converter.js";
|
|
11
|
+
BigQueryToolset,
|
|
12
|
+
CalendarToolset,
|
|
13
|
+
DocsToolset,
|
|
14
|
+
GmailToolset,
|
|
15
|
+
SheetsToolset,
|
|
16
|
+
SlidesToolset,
|
|
17
|
+
YoutubeToolset
|
|
18
|
+
} from "./google_api_toolsets.js";
|
|
20
19
|
export {
|
|
21
|
-
|
|
20
|
+
BigQueryToolset,
|
|
21
|
+
CalendarToolset,
|
|
22
|
+
DocsToolset,
|
|
23
|
+
GmailToolset,
|
|
22
24
|
GoogleApiTool,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
gmailToolSet,
|
|
25
|
+
GoogleApiToolset,
|
|
26
|
+
SheetsToolset,
|
|
27
|
+
SlidesToolset,
|
|
28
|
+
YoutubeToolset,
|
|
28
29
|
isGoogleApiTool,
|
|
29
|
-
|
|
30
|
-
sheetsToolSet,
|
|
31
|
-
slidesToolSet,
|
|
32
|
-
youtubeToolSet
|
|
30
|
+
isGoogleApiToolset
|
|
33
31
|
};
|
|
@@ -9,6 +9,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
9
9
|
*/
|
|
10
10
|
import { Type } from "@google/genai";
|
|
11
11
|
import { appendInstructions } from "../models/llm_request.js";
|
|
12
|
+
import { base64Decode } from "../utils/env_aware_utils.js";
|
|
12
13
|
import { logger } from "../utils/logger.js";
|
|
13
14
|
import {
|
|
14
15
|
BaseTool
|
|
@@ -24,7 +25,7 @@ function normalizeMimeType(mimeType) {
|
|
|
24
25
|
if (!mimeType) {
|
|
25
26
|
return void 0;
|
|
26
27
|
}
|
|
27
|
-
return mimeType.split(";")[0].trim();
|
|
28
|
+
return mimeType.split(";")[0].trim().toLowerCase();
|
|
28
29
|
}
|
|
29
30
|
__name(normalizeMimeType, "normalizeMimeType");
|
|
30
31
|
function isInlineMimeTypeSupported(mimeType) {
|
|
@@ -37,31 +38,44 @@ function isInlineMimeTypeSupported(mimeType) {
|
|
|
37
38
|
) || GEMINI_SUPPORTED_INLINE_MIME_TYPES.has(normalized);
|
|
38
39
|
}
|
|
39
40
|
__name(isInlineMimeTypeSupported, "isInlineMimeTypeSupported");
|
|
40
|
-
function
|
|
41
|
+
function base64ByteLength(data) {
|
|
42
|
+
const digits = data.replace(/[=\s]/g, "").length;
|
|
43
|
+
return Math.floor(digits * 3 / 4);
|
|
44
|
+
}
|
|
45
|
+
__name(base64ByteLength, "base64ByteLength");
|
|
46
|
+
function asSafePartForLlm(artifact, artifactName, options) {
|
|
47
|
+
if ((options == null ? void 0 : options.inlineMediaAsPlaceholder) && !artifact.inlineData && artifact.fileData) {
|
|
48
|
+
const fileUri = artifact.fileData.fileUri || "unknown";
|
|
49
|
+
const mimeType2 = normalizeMimeType(artifact.fileData.mimeType) || "application/octet-stream";
|
|
50
|
+
return {
|
|
51
|
+
text: `[Artifact: ${artifactName}, uri: ${fileUri}, type: ${mimeType2}.]`
|
|
52
|
+
};
|
|
53
|
+
}
|
|
41
54
|
const inlineData = artifact.inlineData;
|
|
42
55
|
if (!inlineData) {
|
|
43
56
|
return artifact;
|
|
44
57
|
}
|
|
45
|
-
if (isInlineMimeTypeSupported(inlineData.mimeType)) {
|
|
58
|
+
if (!(options == null ? void 0 : options.inlineMediaAsPlaceholder) && isInlineMimeTypeSupported(inlineData.mimeType)) {
|
|
46
59
|
return artifact;
|
|
47
60
|
}
|
|
48
61
|
const mimeType = normalizeMimeType(inlineData.mimeType) || "application/octet-stream";
|
|
62
|
+
const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
|
|
49
63
|
const data = inlineData.data;
|
|
50
|
-
if (!data) {
|
|
64
|
+
if (data === void 0 || data === null || !isTextLike && data === "") {
|
|
51
65
|
return {
|
|
52
66
|
text: `[Artifact: ${artifactName}, type: ${mimeType}. No inline data was provided.]`
|
|
53
67
|
};
|
|
54
68
|
}
|
|
55
|
-
const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
|
|
56
|
-
const decodedBuffer = Buffer.from(data, "base64");
|
|
57
69
|
if (isTextLike) {
|
|
70
|
+
if (data === "") {
|
|
71
|
+
return { text: "" };
|
|
72
|
+
}
|
|
58
73
|
try {
|
|
59
|
-
|
|
60
|
-
return { text: decoded };
|
|
74
|
+
return { text: base64Decode(data.replace(/-/g, "+").replace(/_/g, "/")) };
|
|
61
75
|
} catch {
|
|
62
76
|
}
|
|
63
77
|
}
|
|
64
|
-
const sizeKb =
|
|
78
|
+
const sizeKb = base64ByteLength(data) / 1024;
|
|
65
79
|
return {
|
|
66
80
|
text: `[Binary artifact: ${artifactName}, type: ${mimeType}, size: ${sizeKb.toFixed(1)} KB. Content cannot be displayed inline.]`
|
|
67
81
|
};
|
|
@@ -188,5 +202,6 @@ let LoadArtifactsTool = _LoadArtifactsTool;
|
|
|
188
202
|
const LOAD_ARTIFACTS = new LoadArtifactsTool();
|
|
189
203
|
export {
|
|
190
204
|
LOAD_ARTIFACTS,
|
|
191
|
-
LoadArtifactsTool
|
|
205
|
+
LoadArtifactsTool,
|
|
206
|
+
asSafePartForLlm
|
|
192
207
|
};
|
|
@@ -13,11 +13,13 @@ import {
|
|
|
13
13
|
BaseTool
|
|
14
14
|
} from "./base_tool.js";
|
|
15
15
|
const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
|
|
16
|
-
constructor() {
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
var _a;
|
|
17
18
|
super({
|
|
18
19
|
name: "load_memory",
|
|
19
|
-
description: "Loads the memory for the current user
|
|
20
|
+
description: "Loads the memory for the current user."
|
|
20
21
|
});
|
|
22
|
+
this.textOnlyContent = (_a = options.textOnlyContent) != null ? _a : false;
|
|
21
23
|
}
|
|
22
24
|
_getDeclaration() {
|
|
23
25
|
return {
|
|
@@ -35,16 +37,13 @@ const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
|
|
|
35
37
|
}
|
|
36
38
|
};
|
|
37
39
|
}
|
|
38
|
-
async runAsync({
|
|
39
|
-
args
|
|
40
|
-
toolContext
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
throw new Error("Memory service is not initialized.");
|
|
46
|
-
}
|
|
47
|
-
const searchMemoryResponse = await toolContext.searchMemory(query);
|
|
40
|
+
async runAsync({ args, toolContext }) {
|
|
41
|
+
const query = args["query"];
|
|
42
|
+
if (!toolContext.invocationContext.memoryService) {
|
|
43
|
+
throw new Error("Memory service is not initialized.");
|
|
44
|
+
}
|
|
45
|
+
const searchMemoryResponse = await toolContext.searchMemory(query);
|
|
46
|
+
if (this.textOnlyContent) {
|
|
48
47
|
return {
|
|
49
48
|
memories: searchMemoryResponse.memories.map((m) => {
|
|
50
49
|
var _a, _b;
|
|
@@ -59,10 +58,10 @@ const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
|
|
|
59
58
|
};
|
|
60
59
|
})
|
|
61
60
|
};
|
|
62
|
-
} catch (e) {
|
|
63
|
-
console.error("ERROR in LoadMemoryTool runAsync:", e);
|
|
64
|
-
throw e;
|
|
65
61
|
}
|
|
62
|
+
return {
|
|
63
|
+
memories: searchMemoryResponse.memories
|
|
64
|
+
};
|
|
66
65
|
}
|
|
67
66
|
async processLlmRequest(request) {
|
|
68
67
|
await super.processLlmRequest(request);
|
|
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
* Copyright 2025 Google LLC
|
|
29
29
|
* SPDX-License-Identifier: Apache-2.0
|
|
30
30
|
*/
|
|
31
|
+
import { instrumentMcpFetch } from "../../telemetry/api/instrumentation.js";
|
|
31
32
|
import { mergeTrackingHeaders } from "../../utils/client_labels.js";
|
|
32
33
|
import { formatError } from "../../utils/error_utils.js";
|
|
33
34
|
import { logger } from "../../utils/logger.js";
|
|
@@ -48,7 +49,8 @@ function buildTransportOptions(params) {
|
|
|
48
49
|
requestInit: {
|
|
49
50
|
...transportOptions == null ? void 0 : transportOptions.requestInit,
|
|
50
51
|
headers: mergeTrackingHeaders(callerHeaders)
|
|
51
|
-
}
|
|
52
|
+
},
|
|
53
|
+
fetch: instrumentMcpFetch(transportOptions == null ? void 0 : transportOptions.fetch)
|
|
52
54
|
};
|
|
53
55
|
}
|
|
54
56
|
__name(buildTransportOptions, "buildTransportOptions");
|
|
@@ -60,7 +62,8 @@ function buildSseTransportOptions(params) {
|
|
|
60
62
|
requestInit: {
|
|
61
63
|
...transportOptions == null ? void 0 : transportOptions.requestInit,
|
|
62
64
|
headers: mergeTrackingHeaders(callerHeaders)
|
|
63
|
-
}
|
|
65
|
+
},
|
|
66
|
+
fetch: instrumentMcpFetch(transportOptions == null ? void 0 : transportOptions.fetch)
|
|
64
67
|
};
|
|
65
68
|
}
|
|
66
69
|
__name(buildSseTransportOptions, "buildSseTransportOptions");
|
|
@@ -69,6 +72,23 @@ const _MCPSessionManager = class _MCPSessionManager {
|
|
|
69
72
|
this.activeSessions = /* @__PURE__ */ new Set();
|
|
70
73
|
this.connectionParams = connectionParams;
|
|
71
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Builds per-request options for MCP client operations.
|
|
77
|
+
*
|
|
78
|
+
* For a stdio connection with a configured `timeout`, the timeout is
|
|
79
|
+
* converted from seconds to milliseconds. Otherwise the MCP SDK applies its
|
|
80
|
+
* own default request timeout.
|
|
81
|
+
*
|
|
82
|
+
* @param signal Optional abort signal to attach to the request.
|
|
83
|
+
* @return The request options for the MCP SDK client.
|
|
84
|
+
*/
|
|
85
|
+
getRequestOptions(signal) {
|
|
86
|
+
const options = signal !== void 0 ? { signal } : {};
|
|
87
|
+
if (this.connectionParams.type === "StdioConnectionParams" && this.connectionParams.timeout !== void 0) {
|
|
88
|
+
options.timeout = this.connectionParams.timeout * 1e3;
|
|
89
|
+
}
|
|
90
|
+
return options;
|
|
91
|
+
}
|
|
72
92
|
async createSession() {
|
|
73
93
|
const { Client } = await loadOptionalPeer(
|
|
74
94
|
MCP_SDK,
|
|
@@ -86,7 +106,7 @@ const _MCPSessionManager = class _MCPSessionManager {
|
|
|
86
106
|
this.connectionParams.serverParams
|
|
87
107
|
);
|
|
88
108
|
transport.onerror = logTransportError;
|
|
89
|
-
await client.connect(transport);
|
|
109
|
+
await client.connect(transport, this.getRequestOptions());
|
|
90
110
|
break;
|
|
91
111
|
}
|
|
92
112
|
case "StreamableHTTPConnectionParams": {
|
|
@@ -31,9 +31,13 @@ const _MCPTool = class _MCPTool extends BaseTool {
|
|
|
31
31
|
try {
|
|
32
32
|
const callRequest = {};
|
|
33
33
|
callRequest.params = { name: this.originalName, arguments: request.args };
|
|
34
|
-
const result = await session.callTool(
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
const result = await session.callTool(
|
|
35
|
+
callRequest.params,
|
|
36
|
+
void 0,
|
|
37
|
+
this.mcpSessionManager.getRequestOptions(
|
|
38
|
+
request.toolContext.abortSignal
|
|
39
|
+
)
|
|
40
|
+
);
|
|
37
41
|
return result;
|
|
38
42
|
} finally {
|
|
39
43
|
await this.mcpSessionManager.closeSession(session);
|
|
@@ -20,7 +20,10 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
|
|
|
20
20
|
const session = await this.mcpSessionManager.createSession();
|
|
21
21
|
let listResult;
|
|
22
22
|
try {
|
|
23
|
-
listResult = await session.listTools(
|
|
23
|
+
listResult = await session.listTools(
|
|
24
|
+
void 0,
|
|
25
|
+
this.mcpSessionManager.getRequestOptions()
|
|
26
|
+
);
|
|
24
27
|
} finally {
|
|
25
28
|
await this.mcpSessionManager.closeSession(session);
|
|
26
29
|
}
|
|
@@ -35,20 +38,7 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
|
|
|
35
38
|
};
|
|
36
39
|
return new MCPTool(toolWithPrefix, this.mcpSessionManager, tool.name);
|
|
37
40
|
});
|
|
38
|
-
|
|
39
|
-
if (!filter || Array.isArray(filter) && filter.length === 0) {
|
|
40
|
-
return tools;
|
|
41
|
-
}
|
|
42
|
-
if (Array.isArray(filter)) {
|
|
43
|
-
return tools.filter((tool) => filter.includes(tool.name));
|
|
44
|
-
}
|
|
45
|
-
if (context) {
|
|
46
|
-
return tools.filter((tool) => filter(tool, context));
|
|
47
|
-
}
|
|
48
|
-
logger.warn(
|
|
49
|
-
"MCPToolset: a ToolPredicate toolFilter was provided but getTools() was called without a ReadonlyContext. The filter will not be applied."
|
|
50
|
-
);
|
|
51
|
-
return tools;
|
|
41
|
+
return tools.filter((tool) => this.isToolSelected(tool, context));
|
|
52
42
|
}
|
|
53
43
|
/**
|
|
54
44
|
* Lists the names of the resources advertised by the MCP server.
|
|
@@ -58,7 +48,10 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
|
|
|
58
48
|
async listResources() {
|
|
59
49
|
const session = await this.mcpSessionManager.createSession();
|
|
60
50
|
try {
|
|
61
|
-
const result = await session.listResources(
|
|
51
|
+
const result = await session.listResources(
|
|
52
|
+
void 0,
|
|
53
|
+
this.mcpSessionManager.getRequestOptions()
|
|
54
|
+
);
|
|
62
55
|
return result.resources.map((resource) => resource.name);
|
|
63
56
|
} finally {
|
|
64
57
|
await this.mcpSessionManager.closeSession(session);
|
|
@@ -75,7 +68,10 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
|
|
|
75
68
|
const session = await this.mcpSessionManager.createSession();
|
|
76
69
|
let result;
|
|
77
70
|
try {
|
|
78
|
-
result = await session.listResources(
|
|
71
|
+
result = await session.listResources(
|
|
72
|
+
void 0,
|
|
73
|
+
this.mcpSessionManager.getRequestOptions()
|
|
74
|
+
);
|
|
79
75
|
} finally {
|
|
80
76
|
await this.mcpSessionManager.closeSession(session);
|
|
81
77
|
}
|
|
@@ -105,9 +101,12 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
|
|
|
105
101
|
}
|
|
106
102
|
const session = await this.mcpSessionManager.createSession();
|
|
107
103
|
try {
|
|
108
|
-
const result = await session.readResource(
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
const result = await session.readResource(
|
|
105
|
+
{
|
|
106
|
+
uri: resourceInfo.uri
|
|
107
|
+
},
|
|
108
|
+
this.mcpSessionManager.getRequestOptions()
|
|
109
|
+
);
|
|
111
110
|
return result.contents;
|
|
112
111
|
} finally {
|
|
113
112
|
await this.mcpSessionManager.closeSession(session);
|
|
@@ -12,6 +12,7 @@ import {
|
|
|
12
12
|
AuthCredentialTypes
|
|
13
13
|
} from "../../../auth/auth_credential.js";
|
|
14
14
|
import { camelCaseKeys } from "../../../utils/case_utils.js";
|
|
15
|
+
import { formatError } from "../../../utils/error_utils.js";
|
|
15
16
|
const INTERNAL_AUTH_PREFIX = "_auth_prefix_vaf_";
|
|
16
17
|
const API_KEY_LOCATIONS = ["header", "query", "cookie"];
|
|
17
18
|
const OPENID_FETCH_TIMEOUT_MS = 1e4;
|
|
@@ -165,7 +166,7 @@ function tokenToSchemeCredential(tokenType, location, name, credentialValue) {
|
|
|
165
166
|
throw new Error(`Invalid security scheme type: ${tokenType}`);
|
|
166
167
|
}
|
|
167
168
|
__name(tokenToSchemeCredential, "tokenToSchemeCredential");
|
|
168
|
-
function
|
|
169
|
+
function serviceAccountRecordToSchemeCredential(config, scopes) {
|
|
169
170
|
const authCredential = {
|
|
170
171
|
authType: AuthCredentialTypes.SERVICE_ACCOUNT,
|
|
171
172
|
serviceAccount: {
|
|
@@ -179,7 +180,7 @@ function serviceAccountDictToSchemeCredential(config, scopes) {
|
|
|
179
180
|
};
|
|
180
181
|
return [bearerJwtScheme(), authCredential];
|
|
181
182
|
}
|
|
182
|
-
__name(
|
|
183
|
+
__name(serviceAccountRecordToSchemeCredential, "serviceAccountRecordToSchemeCredential");
|
|
183
184
|
function serviceAccountSchemeCredential(config) {
|
|
184
185
|
const authCredential = {
|
|
185
186
|
authType: AuthCredentialTypes.SERVICE_ACCOUNT,
|
|
@@ -188,9 +189,9 @@ function serviceAccountSchemeCredential(config) {
|
|
|
188
189
|
return [bearerJwtScheme(), authCredential];
|
|
189
190
|
}
|
|
190
191
|
__name(serviceAccountSchemeCredential, "serviceAccountSchemeCredential");
|
|
191
|
-
function
|
|
192
|
+
function openidRecordToSchemeCredential(configRecord, scopes, credentialRecord) {
|
|
192
193
|
const parsedConfig = OpenIdConnectConfigSchema.safeParse(
|
|
193
|
-
camelCaseKeys(
|
|
194
|
+
camelCaseKeys(configRecord)
|
|
194
195
|
);
|
|
195
196
|
if (!parsedConfig.success) {
|
|
196
197
|
throw new Error(
|
|
@@ -198,33 +199,33 @@ function openidDictToSchemeCredential(configDict, scopes, credentialDict) {
|
|
|
198
199
|
);
|
|
199
200
|
}
|
|
200
201
|
const openidScheme = { ...parsedConfig.data, scopes };
|
|
201
|
-
const values = Object.values(
|
|
202
|
+
const values = Object.values(credentialRecord);
|
|
202
203
|
if (values.length === 1) {
|
|
203
204
|
const wrapped = JsonObjectSchema.safeParse(values[0]);
|
|
204
205
|
if (wrapped.success && "client_id" in wrapped.data && "client_secret" in wrapped.data) {
|
|
205
|
-
|
|
206
|
+
credentialRecord = wrapped.data;
|
|
206
207
|
}
|
|
207
208
|
}
|
|
208
209
|
const missingFields = REQUIRED_CREDENTIAL_FIELDS.filter(
|
|
209
|
-
(field) => !(field in
|
|
210
|
+
(field) => !(field in credentialRecord)
|
|
210
211
|
);
|
|
211
212
|
if (missingFields.length > 0) {
|
|
212
213
|
throw new Error(
|
|
213
|
-
`Missing required fields in
|
|
214
|
+
`Missing required fields in credentialRecord: ${missingFields.join(", ")}`
|
|
214
215
|
);
|
|
215
216
|
}
|
|
216
217
|
const authCredential = {
|
|
217
218
|
authType: AuthCredentialTypes.OPEN_ID_CONNECT,
|
|
218
219
|
oauth2: {
|
|
219
|
-
clientId: String(
|
|
220
|
-
clientSecret: String(
|
|
221
|
-
redirectUri: "redirect_uri" in
|
|
220
|
+
clientId: String(credentialRecord["client_id"]),
|
|
221
|
+
clientSecret: String(credentialRecord["client_secret"]),
|
|
222
|
+
redirectUri: "redirect_uri" in credentialRecord ? String(credentialRecord["redirect_uri"]) : void 0
|
|
222
223
|
}
|
|
223
224
|
};
|
|
224
225
|
return [openidScheme, authCredential];
|
|
225
226
|
}
|
|
226
|
-
__name(
|
|
227
|
-
async function openidUrlToSchemeCredential(openidUrl, scopes,
|
|
227
|
+
__name(openidRecordToSchemeCredential, "openidRecordToSchemeCredential");
|
|
228
|
+
async function openidUrlToSchemeCredential(openidUrl, scopes, credentialRecord) {
|
|
228
229
|
let response;
|
|
229
230
|
try {
|
|
230
231
|
response = await fetch(openidUrl, {
|
|
@@ -235,21 +236,21 @@ async function openidUrlToSchemeCredential(openidUrl, scopes, credentialDict) {
|
|
|
235
236
|
}
|
|
236
237
|
} catch (e) {
|
|
237
238
|
throw new Error(
|
|
238
|
-
`Failed to fetch OpenID configuration from ${openidUrl}: ${
|
|
239
|
+
`Failed to fetch OpenID configuration from ${openidUrl}: ${formatError(e)}`
|
|
239
240
|
);
|
|
240
241
|
}
|
|
241
|
-
let
|
|
242
|
+
let configRecord;
|
|
242
243
|
try {
|
|
243
|
-
|
|
244
|
+
configRecord = JsonObjectSchema.parse(await response.json());
|
|
244
245
|
} catch (e) {
|
|
245
246
|
throw new Error(
|
|
246
|
-
`Invalid JSON response from OpenID configuration endpoint ${openidUrl}: ${
|
|
247
|
+
`Invalid JSON response from OpenID configuration endpoint ${openidUrl}: ${formatError(e)}`
|
|
247
248
|
);
|
|
248
249
|
}
|
|
249
|
-
return
|
|
250
|
-
{ ...
|
|
250
|
+
return openidRecordToSchemeCredential(
|
|
251
|
+
{ ...configRecord, openIdConnectUrl: openidUrl },
|
|
251
252
|
scopes,
|
|
252
|
-
|
|
253
|
+
credentialRecord
|
|
253
254
|
);
|
|
254
255
|
}
|
|
255
256
|
__name(openidUrlToSchemeCredential, "openidUrlToSchemeCredential");
|
|
@@ -300,9 +301,9 @@ function parseSecurityScheme(schema, data) {
|
|
|
300
301
|
return result.data;
|
|
301
302
|
}
|
|
302
303
|
__name(parseSecurityScheme, "parseSecurityScheme");
|
|
303
|
-
function
|
|
304
|
+
function recordToAuthScheme(data) {
|
|
304
305
|
if (!("type" in data)) {
|
|
305
|
-
throw new Error("Missing 'type' field in security scheme
|
|
306
|
+
throw new Error("Missing 'type' field in security scheme object.");
|
|
306
307
|
}
|
|
307
308
|
const securityType = data["type"];
|
|
308
309
|
switch (securityType) {
|
|
@@ -318,17 +319,17 @@ function dictToAuthScheme(data) {
|
|
|
318
319
|
throw new Error(`Invalid security scheme type: ${securityType}`);
|
|
319
320
|
}
|
|
320
321
|
}
|
|
321
|
-
__name(
|
|
322
|
+
__name(recordToAuthScheme, "recordToAuthScheme");
|
|
322
323
|
export {
|
|
323
324
|
INTERNAL_AUTH_PREFIX,
|
|
324
325
|
applyCredential,
|
|
325
326
|
createApiKeyScheme,
|
|
326
327
|
createBearerScheme,
|
|
327
328
|
credentialToParam,
|
|
328
|
-
|
|
329
|
-
openidDictToSchemeCredential,
|
|
329
|
+
openidRecordToSchemeCredential,
|
|
330
330
|
openidUrlToSchemeCredential,
|
|
331
|
-
|
|
331
|
+
recordToAuthScheme,
|
|
332
|
+
serviceAccountRecordToSchemeCredential,
|
|
332
333
|
serviceAccountSchemeCredential,
|
|
333
334
|
tokenToSchemeCredential
|
|
334
335
|
};
|
|
@@ -24,7 +24,7 @@ import { experimental } from "../../../../utils/experimental.js";
|
|
|
24
24
|
function checkSchemeCredentialType(authScheme, authCredential) {
|
|
25
25
|
if (!authCredential) {
|
|
26
26
|
throw new Error(
|
|
27
|
-
"
|
|
27
|
+
"authCredential is empty. Please create AuthCredential using OAuth2Auth."
|
|
28
28
|
);
|
|
29
29
|
}
|
|
30
30
|
if (authScheme.type !== AuthSchemeType.OPEN_ID_CONNECT && authScheme.type !== AuthSchemeType.OAUTH2) {
|
|
@@ -34,7 +34,7 @@ function checkSchemeCredentialType(authScheme, authCredential) {
|
|
|
34
34
|
}
|
|
35
35
|
if (!authCredential.oauth2 && !authCredential.http) {
|
|
36
36
|
throw new Error(
|
|
37
|
-
"
|
|
37
|
+
"authCredential is not configured with oauth2. Please create AuthCredential and set OAuth2Auth."
|
|
38
38
|
);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
@@ -55,12 +55,12 @@ function generateAuthToken(authCredential) {
|
|
|
55
55
|
}
|
|
56
56
|
__name(generateAuthToken, "generateAuthToken");
|
|
57
57
|
function exchangeCredential(authScheme, authCredential) {
|
|
58
|
-
var _a
|
|
58
|
+
var _a;
|
|
59
59
|
checkSchemeCredentialType(authScheme, authCredential);
|
|
60
60
|
if (authCredential.http) {
|
|
61
61
|
return authCredential;
|
|
62
62
|
}
|
|
63
|
-
if ((
|
|
63
|
+
if ((_a = authCredential.oauth2) == null ? void 0 : _a.accessToken) {
|
|
64
64
|
return generateAuthToken(authCredential);
|
|
65
65
|
}
|
|
66
66
|
return null;
|
|
@@ -29,15 +29,27 @@ const VALID_SCHEMA_TYPES = /* @__PURE__ */ new Set([
|
|
|
29
29
|
"string"
|
|
30
30
|
]);
|
|
31
31
|
let OpenApiSpecParser = class {
|
|
32
|
+
/**
|
|
33
|
+
* @param options.preservePropertyNames Keeps the original parameter and
|
|
34
|
+
* function names instead of converting them to snake_case.
|
|
35
|
+
* @param options.unconstrainedObjectBodyAsParameter Emits a whole-body
|
|
36
|
+
* parameter named `body` when an object request body schema has no
|
|
37
|
+
* properties. Defaults to `false`.
|
|
38
|
+
* @deprecated Retained for backwards compatibility; empty object schemas
|
|
39
|
+
* produce no parameters by default. This option will be removed in a
|
|
40
|
+
* future release.
|
|
41
|
+
*/
|
|
32
42
|
constructor(options = {}) {
|
|
33
|
-
var _a;
|
|
43
|
+
var _a, _b;
|
|
34
44
|
this.preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
|
|
45
|
+
this.unconstrainedObjectBodyAsParameter = (_b = options.unconstrainedObjectBodyAsParameter) != null ? _b : false;
|
|
35
46
|
}
|
|
36
47
|
parse(openapiSpec) {
|
|
37
48
|
const resolvedSpec = resolveReferences(openapiSpec);
|
|
38
49
|
const sanitizedSpec = sanitizeSchemaTypes(resolvedSpec);
|
|
39
50
|
return collectOperations(sanitizedSpec, {
|
|
40
|
-
preservePropertyNames: this.preservePropertyNames
|
|
51
|
+
preservePropertyNames: this.preservePropertyNames,
|
|
52
|
+
unconstrainedObjectBodyAsParameter: this.unconstrainedObjectBodyAsParameter
|
|
41
53
|
});
|
|
42
54
|
}
|
|
43
55
|
};
|
|
@@ -172,17 +184,18 @@ function resolveServerUrl(server) {
|
|
|
172
184
|
}
|
|
173
185
|
__name(resolveServerUrl, "resolveServerUrl");
|
|
174
186
|
function collectOperations(spec, options = {}) {
|
|
175
|
-
var _a, _b, _c;
|
|
187
|
+
var _a, _b, _c, _d;
|
|
176
188
|
const preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
|
|
189
|
+
const unconstrainedObjectBodyAsParameter = (_b = options.unconstrainedObjectBodyAsParameter) != null ? _b : false;
|
|
177
190
|
const operations = [];
|
|
178
|
-
const server = (
|
|
191
|
+
const server = (_c = spec.servers) == null ? void 0 : _c[0];
|
|
179
192
|
const baseUrl = server ? resolveServerUrl(server) : "";
|
|
180
193
|
const globalSecurity = spec.security || [];
|
|
181
194
|
let globalSchemeName;
|
|
182
195
|
if (globalSecurity.length > 0) {
|
|
183
196
|
globalSchemeName = Object.keys(globalSecurity[0])[0];
|
|
184
197
|
}
|
|
185
|
-
const authSchemes = ((
|
|
198
|
+
const authSchemes = ((_d = spec.components) == null ? void 0 : _d.securitySchemes) || {};
|
|
186
199
|
for (const [path, pathItem] of Object.entries(spec.paths || {})) {
|
|
187
200
|
if (!pathItem) continue;
|
|
188
201
|
const methods = [
|
|
@@ -205,7 +218,8 @@ function collectOperations(spec, options = {}) {
|
|
|
205
218
|
operation.operationId = toSnakeCaseName(`${path}_${method}`);
|
|
206
219
|
}
|
|
207
220
|
const parser = new OperationParser(operation, {
|
|
208
|
-
preservePropertyNames
|
|
221
|
+
preservePropertyNames,
|
|
222
|
+
unconstrainedObjectBodyAsParameter
|
|
209
223
|
});
|
|
210
224
|
let authSchemeName;
|
|
211
225
|
if (operation.security && operation.security.length > 0) {
|
|
@@ -34,13 +34,20 @@ let OperationParser = class {
|
|
|
34
34
|
* function names instead of converting them to snake_case.
|
|
35
35
|
* @param options.shouldParse Whether to parse the operation during
|
|
36
36
|
* construction. Defaults to `true`.
|
|
37
|
+
* @param options.unconstrainedObjectBodyAsParameter Emits a whole-body
|
|
38
|
+
* parameter named `body` when an object request body schema has no
|
|
39
|
+
* properties. Defaults to `false`.
|
|
40
|
+
* @deprecated Retained for backwards compatibility; empty object schemas
|
|
41
|
+
* produce no parameters by default. This option will be removed in a
|
|
42
|
+
* future release.
|
|
37
43
|
*/
|
|
38
44
|
constructor(operation, options = {}) {
|
|
39
45
|
this.params = [];
|
|
40
|
-
var _a, _b;
|
|
46
|
+
var _a, _b, _c;
|
|
41
47
|
this.operation = typeof operation === "string" ? JSON.parse(operation) : operation;
|
|
42
48
|
this.preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
|
|
43
|
-
|
|
49
|
+
this.unconstrainedObjectBodyAsParameter = (_b = options.unconstrainedObjectBodyAsParameter) != null ? _b : false;
|
|
50
|
+
if ((_c = options.shouldParse) != null ? _c : true) {
|
|
44
51
|
this.processOperationParameters();
|
|
45
52
|
this.processRequestBody();
|
|
46
53
|
this.returnValue = this.processReturnValue();
|
|
@@ -60,6 +67,7 @@ let OperationParser = class {
|
|
|
60
67
|
return renameReservedKeywords(toSnakeCaseName(originalName));
|
|
61
68
|
}
|
|
62
69
|
processOperationParameters() {
|
|
70
|
+
var _a;
|
|
63
71
|
const parameters = this.operation.parameters || [];
|
|
64
72
|
for (const param of parameters) {
|
|
65
73
|
if ("name" in param) {
|
|
@@ -70,9 +78,12 @@ let OperationParser = class {
|
|
|
70
78
|
this.params.push({
|
|
71
79
|
originalName,
|
|
72
80
|
paramLocation: location,
|
|
73
|
-
paramSchema:
|
|
81
|
+
paramSchema: {
|
|
82
|
+
...schema,
|
|
83
|
+
description: schema.description || description || void 0
|
|
84
|
+
},
|
|
74
85
|
description,
|
|
75
|
-
required: param.required
|
|
86
|
+
required: (_a = param.required) != null ? _a : false,
|
|
76
87
|
name: this.getParamName(originalName)
|
|
77
88
|
});
|
|
78
89
|
}
|
|
@@ -108,7 +119,7 @@ let OperationParser = class {
|
|
|
108
119
|
});
|
|
109
120
|
}
|
|
110
121
|
}
|
|
111
|
-
} else {
|
|
122
|
+
} else if (this.unconstrainedObjectBodyAsParameter) {
|
|
112
123
|
this.params.push({
|
|
113
124
|
originalName: "",
|
|
114
125
|
paramLocation: "body",
|
|
@@ -129,7 +140,7 @@ let OperationParser = class {
|
|
|
129
140
|
});
|
|
130
141
|
} else {
|
|
131
142
|
this.params.push({
|
|
132
|
-
originalName: "
|
|
143
|
+
originalName: "",
|
|
133
144
|
paramLocation: "body",
|
|
134
145
|
paramSchema: schema,
|
|
135
146
|
description,
|