@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
|
@@ -28,11 +28,9 @@ __export(node_runner_exports, {
|
|
|
28
28
|
executeChildNode: () => executeChildNode
|
|
29
29
|
});
|
|
30
30
|
module.exports = __toCommonJS(node_runner_exports);
|
|
31
|
-
var import_api = require("@opentelemetry/api");
|
|
32
31
|
var import_invocation_context = require("../agents/invocation_context.js");
|
|
33
32
|
var import_event = require("../events/event.js");
|
|
34
|
-
var
|
|
35
|
-
var import_error_utils = require("../utils/error_utils.js");
|
|
33
|
+
var import_instrumentation = require("../telemetry/api/instrumentation.js");
|
|
36
34
|
var import_branch_path = require("./branch_path.js");
|
|
37
35
|
var import_errors = require("./errors.js");
|
|
38
36
|
var import_node_context = require("./node_context.js");
|
|
@@ -50,11 +48,12 @@ function executeChildNode(params) {
|
|
|
50
48
|
const { parent, node, options = {} } = params;
|
|
51
49
|
const nodeName = (_a = options.nodeName) != null ? _a : node.name;
|
|
52
50
|
const nodePath = (_b = options.overrideNodePath) != null ? _b : parent.nodePath ? `${parent.nodePath}.${nodeName}` : nodeName;
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
);
|
|
51
|
+
const scope = (0, import_instrumentation.recordNodeInvocation)({
|
|
52
|
+
node,
|
|
53
|
+
nodeName,
|
|
54
|
+
sessionId: parent.invocationContext.session.id
|
|
55
|
+
});
|
|
56
|
+
return scope.run(() => runChildNode({ params, nodeName, nodePath, scope }));
|
|
58
57
|
}
|
|
59
58
|
__name(executeChildNode, "executeChildNode");
|
|
60
59
|
async function runChildNode({
|
|
@@ -69,7 +68,7 @@ async function runChildNode({
|
|
|
69
68
|
},
|
|
70
69
|
nodeName,
|
|
71
70
|
nodePath,
|
|
72
|
-
|
|
71
|
+
scope
|
|
73
72
|
}) {
|
|
74
73
|
var _a, _b, _c, _d;
|
|
75
74
|
const runId = (_a = options.runId) != null ? _a : nodeName;
|
|
@@ -123,13 +122,6 @@ async function runChildNode({
|
|
|
123
122
|
});
|
|
124
123
|
if (skipOutput !== void 0) {
|
|
125
124
|
child.output = skipOutput;
|
|
126
|
-
(0, import_tracing.traceNodeExecution)({
|
|
127
|
-
nodePath,
|
|
128
|
-
runId,
|
|
129
|
-
attempt: nodeState.attemptCount,
|
|
130
|
-
status: "completed",
|
|
131
|
-
interruptCount: child.interruptIds.length
|
|
132
|
-
});
|
|
133
125
|
if (options.useAsOutput) {
|
|
134
126
|
parent.output = child.output;
|
|
135
127
|
parent.route = child.route;
|
|
@@ -143,16 +135,14 @@ async function runChildNode({
|
|
|
143
135
|
resetState(child);
|
|
144
136
|
child.attemptCount = nodeState.attemptCount;
|
|
145
137
|
try {
|
|
146
|
-
inputRecorded = await
|
|
138
|
+
inputRecorded = await runOnce({
|
|
147
139
|
node,
|
|
148
140
|
child,
|
|
149
141
|
input,
|
|
150
142
|
nodeName,
|
|
151
143
|
branch,
|
|
152
144
|
isolationScope,
|
|
153
|
-
|
|
154
|
-
runId,
|
|
155
|
-
attempt: nodeState.attemptCount
|
|
145
|
+
scope
|
|
156
146
|
});
|
|
157
147
|
failIfNodeReportedError(child, nodeName);
|
|
158
148
|
succeeded = true;
|
|
@@ -179,13 +169,6 @@ async function runChildNode({
|
|
|
179
169
|
if (!inputRecorded && child.interruptIds.length > 0) {
|
|
180
170
|
recordInputForResume({ child, nodeName, branch, isolationScope, input });
|
|
181
171
|
}
|
|
182
|
-
(0, import_tracing.traceNodeExecution)({
|
|
183
|
-
nodePath,
|
|
184
|
-
runId,
|
|
185
|
-
attempt: nodeState.attemptCount,
|
|
186
|
-
status: child.interruptIds.length > 0 ? "waiting" : "completed",
|
|
187
|
-
interruptCount: child.interruptIds.length
|
|
188
|
-
});
|
|
189
172
|
if (pluginManager == null ? void 0 : pluginManager.hasPlugins) {
|
|
190
173
|
const replacedOutput = await pluginManager.runAfterNodeCallback({
|
|
191
174
|
node,
|
|
@@ -203,58 +186,13 @@ async function runChildNode({
|
|
|
203
186
|
}
|
|
204
187
|
return child;
|
|
205
188
|
} catch (err) {
|
|
206
|
-
(
|
|
207
|
-
nodePath,
|
|
208
|
-
runId,
|
|
209
|
-
attempt: nodeState.attemptCount,
|
|
210
|
-
status: "failed",
|
|
211
|
-
interruptCount: child.interruptIds.length
|
|
212
|
-
});
|
|
213
|
-
span.setStatus({ code: import_api.SpanStatusCode.ERROR, message: (0, import_error_utils.formatError)(err) });
|
|
189
|
+
scope.end(err);
|
|
214
190
|
throw err;
|
|
215
191
|
} finally {
|
|
216
|
-
|
|
192
|
+
scope.end();
|
|
217
193
|
}
|
|
218
194
|
}
|
|
219
195
|
__name(runChildNode, "runChildNode");
|
|
220
|
-
function runAttempt(params) {
|
|
221
|
-
const { node, nodePath, runId, attempt } = params;
|
|
222
|
-
if (!node.preparedRetryConfig) {
|
|
223
|
-
return runOnce(params);
|
|
224
|
-
}
|
|
225
|
-
return import_tracing.tracer.startActiveSpan(
|
|
226
|
-
`execute_node_attempt ${params.nodeName}`,
|
|
227
|
-
async (span) => {
|
|
228
|
-
try {
|
|
229
|
-
const inputRecorded = await runOnce(params);
|
|
230
|
-
(0, import_tracing.traceNodeExecution)({
|
|
231
|
-
nodePath,
|
|
232
|
-
runId,
|
|
233
|
-
attempt,
|
|
234
|
-
status: params.child.interruptIds.length > 0 ? "waiting" : "completed",
|
|
235
|
-
interruptCount: params.child.interruptIds.length
|
|
236
|
-
});
|
|
237
|
-
return inputRecorded;
|
|
238
|
-
} catch (err) {
|
|
239
|
-
(0, import_tracing.traceNodeExecution)({
|
|
240
|
-
nodePath,
|
|
241
|
-
runId,
|
|
242
|
-
attempt,
|
|
243
|
-
status: "failed",
|
|
244
|
-
interruptCount: params.child.interruptIds.length
|
|
245
|
-
});
|
|
246
|
-
span.setStatus({
|
|
247
|
-
code: import_api.SpanStatusCode.ERROR,
|
|
248
|
-
message: (0, import_error_utils.formatError)(err)
|
|
249
|
-
});
|
|
250
|
-
throw err;
|
|
251
|
-
} finally {
|
|
252
|
-
span.end();
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
);
|
|
256
|
-
}
|
|
257
|
-
__name(runAttempt, "runAttempt");
|
|
258
196
|
function failIfNodeReportedError(child, nodeName) {
|
|
259
197
|
const reported = child.reportedError;
|
|
260
198
|
if (!reported || child.output !== void 0 || child.route !== void 0 || child.interruptIds.length > 0) {
|
|
@@ -281,11 +219,12 @@ async function runOnce({
|
|
|
281
219
|
input,
|
|
282
220
|
nodeName,
|
|
283
221
|
branch,
|
|
284
|
-
isolationScope
|
|
222
|
+
isolationScope,
|
|
223
|
+
scope
|
|
285
224
|
}) {
|
|
286
225
|
var _a;
|
|
287
226
|
let inputRecorded = false;
|
|
288
|
-
const consume = /* @__PURE__ */ __name((event) => {
|
|
227
|
+
const consume = /* @__PURE__ */ __name(async (event) => {
|
|
289
228
|
var _a2, _b, _c;
|
|
290
229
|
enrichEvent({ event, child, nodeName, branch, isolationScope });
|
|
291
230
|
const emittedDelta = (_a2 = event.actions) == null ? void 0 : _a2.stateDelta;
|
|
@@ -324,13 +263,18 @@ async function runOnce({
|
|
|
324
263
|
};
|
|
325
264
|
inputRecorded = true;
|
|
326
265
|
}
|
|
327
|
-
|
|
266
|
+
scope.recordEvent(event);
|
|
267
|
+
if (event.partial) {
|
|
268
|
+
child.channel.push(event);
|
|
269
|
+
} else {
|
|
270
|
+
await child.channel.pushAndWait(event);
|
|
271
|
+
}
|
|
328
272
|
}, "consume");
|
|
329
273
|
const parentSignal = child.invocationContext.abortSignal;
|
|
330
274
|
const hasTimeout = typeof node.timeout === "number" && node.timeout > 0;
|
|
331
275
|
if (!hasTimeout && !parentSignal) {
|
|
332
276
|
for await (const event of node.run(child, input)) {
|
|
333
|
-
consume(event);
|
|
277
|
+
await consume(event);
|
|
334
278
|
}
|
|
335
279
|
return inputRecorded;
|
|
336
280
|
}
|
|
@@ -338,7 +282,7 @@ async function runOnce({
|
|
|
338
282
|
child.abortSignal = parentSignal;
|
|
339
283
|
try {
|
|
340
284
|
for await (const event of node.run(child, input)) {
|
|
341
|
-
consume(event);
|
|
285
|
+
await consume(event);
|
|
342
286
|
}
|
|
343
287
|
} finally {
|
|
344
288
|
child.abortSignal = void 0;
|
|
@@ -378,7 +322,7 @@ async function runOnce({
|
|
|
378
322
|
try {
|
|
379
323
|
let result = await Promise.race([iterator.next(), aborted]);
|
|
380
324
|
while (!result.done) {
|
|
381
|
-
consume(result.value);
|
|
325
|
+
await Promise.race([consume(result.value), aborted]);
|
|
382
326
|
result = await Promise.race([iterator.next(), aborted]);
|
|
383
327
|
}
|
|
384
328
|
} finally {
|
|
@@ -25,7 +25,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
25
25
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
26
|
var parallel_worker_exports = {};
|
|
27
27
|
__export(parallel_worker_exports, {
|
|
28
|
-
ParallelWorker: () => ParallelWorker
|
|
28
|
+
ParallelWorker: () => ParallelWorker,
|
|
29
|
+
isParallelWorker: () => isParallelWorker
|
|
29
30
|
});
|
|
30
31
|
module.exports = __toCommonJS(parallel_worker_exports);
|
|
31
32
|
var import_base_node = require("../base_node.js");
|
|
@@ -36,11 +37,16 @@ var import_workflow_graph_utils = require("../utils/workflow_graph_utils.js");
|
|
|
36
37
|
* Copyright 2026 Google LLC
|
|
37
38
|
* SPDX-License-Identifier: Apache-2.0
|
|
38
39
|
*/
|
|
40
|
+
var _a, _b;
|
|
39
41
|
const DEFAULT_MAX_PARALLEL_WORKERS = 8;
|
|
40
|
-
const
|
|
42
|
+
const PARALLEL_WORKER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
|
|
43
|
+
"google.adk.workflow.parallelWorker"
|
|
44
|
+
);
|
|
45
|
+
const _ParallelWorker = class _ParallelWorker extends (_b = import_base_node.BaseNode, _a = PARALLEL_WORKER_SIGNATURE_SYMBOL, _b) {
|
|
41
46
|
constructor(inner, config = {}) {
|
|
42
47
|
const built = (0, import_workflow_graph_utils.buildNode)(inner);
|
|
43
48
|
super({ name: built.name, rerunOnResume: true });
|
|
49
|
+
this[_a] = true;
|
|
44
50
|
if (config.maxParallelWorkers !== void 0 && config.maxParallelWorkers < 1) {
|
|
45
51
|
throw new Error("maxParallelWorkers must be greater than or equal to 1.");
|
|
46
52
|
}
|
|
@@ -48,7 +54,7 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
|
|
|
48
54
|
this.maxParallelWorkers = config.maxParallelWorkers;
|
|
49
55
|
}
|
|
50
56
|
async *runImpl(ctx, input) {
|
|
51
|
-
var
|
|
57
|
+
var _a2;
|
|
52
58
|
const items = Array.isArray(input) ? input : [input];
|
|
53
59
|
if (items.length === 0) {
|
|
54
60
|
yield [];
|
|
@@ -56,7 +62,7 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
|
|
|
56
62
|
}
|
|
57
63
|
const results = new Array(items.length);
|
|
58
64
|
const poolSize = Math.min(
|
|
59
|
-
(
|
|
65
|
+
(_a2 = this.maxParallelWorkers) != null ? _a2 : DEFAULT_MAX_PARALLEL_WORKERS,
|
|
60
66
|
items.length
|
|
61
67
|
);
|
|
62
68
|
let nextIndex = 0;
|
|
@@ -65,8 +71,8 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
|
|
|
65
71
|
let interrupted = false;
|
|
66
72
|
const interruptIds = [];
|
|
67
73
|
const isAborted = /* @__PURE__ */ __name(() => {
|
|
68
|
-
var
|
|
69
|
-
return ((
|
|
74
|
+
var _a3, _b2;
|
|
75
|
+
return ((_a3 = ctx.abortSignal) == null ? void 0 : _a3.aborted) === true || ((_b2 = ctx.invocationContext.abortSignal) == null ? void 0 : _b2.aborted) === true;
|
|
70
76
|
}, "isAborted");
|
|
71
77
|
const worker = /* @__PURE__ */ __name(async () => {
|
|
72
78
|
while (!failed && !interrupted && !isAborted()) {
|
|
@@ -123,7 +129,12 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
|
|
|
123
129
|
};
|
|
124
130
|
__name(_ParallelWorker, "ParallelWorker");
|
|
125
131
|
let ParallelWorker = _ParallelWorker;
|
|
132
|
+
function isParallelWorker(value) {
|
|
133
|
+
return typeof value === "object" && value !== null && PARALLEL_WORKER_SIGNATURE_SYMBOL in value && value[PARALLEL_WORKER_SIGNATURE_SYMBOL] === true;
|
|
134
|
+
}
|
|
135
|
+
__name(isParallelWorker, "isParallelWorker");
|
|
126
136
|
// Annotate the CommonJS export names for ESM import in node:
|
|
127
137
|
0 && (module.exports = {
|
|
128
|
-
ParallelWorker
|
|
138
|
+
ParallelWorker,
|
|
139
|
+
isParallelWorker
|
|
129
140
|
});
|
|
@@ -42,9 +42,7 @@ async function* runLlmAgentAsNode(agent, ctx, nodeInput) {
|
|
|
42
42
|
if (!isTaskMode && !agent.includeContentsExplicit) {
|
|
43
43
|
agent.includeContents = "none";
|
|
44
44
|
}
|
|
45
|
-
|
|
46
|
-
await appendNodeInputAsUserTurn(ctx, nodeInput);
|
|
47
|
-
}
|
|
45
|
+
const inputEvent = isTaskMode ? void 0 : pushNodeInputAsUserTurn(ctx, nodeInput);
|
|
48
46
|
const agentIc = withWorkflowInstructionScope(ctx.getInvocationContext(), {
|
|
49
47
|
input: nodeInput,
|
|
50
48
|
outputsByNode: collectPredecessorOutputs(ctx)
|
|
@@ -53,15 +51,19 @@ async function* runLlmAgentAsNode(agent, ctx, nodeInput) {
|
|
|
53
51
|
yield* runTaskMode(ctx, agentIc, agent);
|
|
54
52
|
return;
|
|
55
53
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
try {
|
|
55
|
+
for await (const event of agent.runAsync(agentIc)) {
|
|
56
|
+
maybeSetOutput(agent, event);
|
|
57
|
+
yield event;
|
|
58
|
+
}
|
|
59
|
+
} finally {
|
|
60
|
+
removeEvent(ctx.session.events, inputEvent);
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
__name(runLlmAgentAsNode, "runLlmAgentAsNode");
|
|
62
|
-
|
|
64
|
+
function pushNodeInputAsUserTurn(ctx, nodeInput) {
|
|
63
65
|
if (nodeInput === void 0 || nodeInput === null) {
|
|
64
|
-
return;
|
|
66
|
+
return void 0;
|
|
65
67
|
}
|
|
66
68
|
const userEvent = (0, import_event.createEvent)({
|
|
67
69
|
author: "user",
|
|
@@ -72,14 +74,17 @@ async function appendNodeInputAsUserTurn(ctx, nodeInput) {
|
|
|
72
74
|
if (ctx.isolationScope !== void 0) {
|
|
73
75
|
userEvent.isolationScope = ctx.isolationScope;
|
|
74
76
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
ctx.session.events.push(userEvent);
|
|
78
|
+
return userEvent;
|
|
79
|
+
}
|
|
80
|
+
__name(pushNodeInputAsUserTurn, "pushNodeInputAsUserTurn");
|
|
81
|
+
function removeEvent(events, event) {
|
|
82
|
+
const index = event ? events.indexOf(event) : -1;
|
|
83
|
+
if (index !== -1) {
|
|
84
|
+
events.splice(index, 1);
|
|
80
85
|
}
|
|
81
86
|
}
|
|
82
|
-
__name(
|
|
87
|
+
__name(removeEvent, "removeEvent");
|
|
83
88
|
async function* runTaskMode(ctx, agentIc, agent) {
|
|
84
89
|
var _a, _b;
|
|
85
90
|
const finishTool = agent.finishTaskTool;
|
|
@@ -42,7 +42,7 @@ const DEFAULT_MAX_DELAY_SECONDS = 60;
|
|
|
42
42
|
const DEFAULT_BACKOFF_FACTOR = 2;
|
|
43
43
|
const DEFAULT_JITTER = 1;
|
|
44
44
|
function errorNames(error) {
|
|
45
|
-
var _a;
|
|
45
|
+
var _a, _b, _c;
|
|
46
46
|
if (error instanceof Error) {
|
|
47
47
|
const names = [(_a = error.constructor) == null ? void 0 : _a.name, error.name].filter(
|
|
48
48
|
(name) => !!name
|
|
@@ -50,7 +50,7 @@ function errorNames(error) {
|
|
|
50
50
|
return [...new Set(names)];
|
|
51
51
|
}
|
|
52
52
|
if (typeof error === "object" && error !== null) {
|
|
53
|
-
return [error.constructor.name];
|
|
53
|
+
return [(_c = (_b = error.constructor) == null ? void 0 : _b.name) != null ? _c : "Object"];
|
|
54
54
|
}
|
|
55
55
|
return [typeof error];
|
|
56
56
|
}
|
|
@@ -37,8 +37,7 @@ __export(workflow_exports, {
|
|
|
37
37
|
isWorkflow: () => isWorkflow
|
|
38
38
|
});
|
|
39
39
|
module.exports = __toCommonJS(workflow_exports);
|
|
40
|
-
var
|
|
41
|
-
var import_tracing = require("../telemetry/tracing.js");
|
|
40
|
+
var import_instrumentation = require("../telemetry/api/instrumentation.js");
|
|
42
41
|
var import_experimental = require("../utils/experimental.js");
|
|
43
42
|
var import_base_node = require("./base_node.js");
|
|
44
43
|
var import_branch_path = require("./branch_path.js");
|
|
@@ -111,19 +110,20 @@ let Workflow = class extends (_b = import_base_node.BaseNode, _a = WORKFLOW_SIGN
|
|
|
111
110
|
dynamicState,
|
|
112
111
|
abort.controller.signal
|
|
113
112
|
);
|
|
114
|
-
const
|
|
113
|
+
const telemetryScope = (0, import_instrumentation.recordWorkflowInvocation)({
|
|
114
|
+
workflow: this,
|
|
115
|
+
sessionId: ctx.invocationContext.session.id
|
|
116
|
+
});
|
|
115
117
|
try {
|
|
116
|
-
await
|
|
117
|
-
(
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return this.orchestrate(ctx, nodeInput, dynamicState, abort.controller);
|
|
123
|
-
});
|
|
118
|
+
await telemetryScope.run(
|
|
119
|
+
() => this.orchestrate(ctx, nodeInput, dynamicState, abort.controller)
|
|
120
|
+
);
|
|
121
|
+
} catch (error) {
|
|
122
|
+
telemetryScope.end(error);
|
|
123
|
+
throw error;
|
|
124
124
|
} finally {
|
|
125
125
|
abort.dispose();
|
|
126
|
-
|
|
126
|
+
telemetryScope.end();
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
/**
|
|
@@ -10,9 +10,15 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
10
10
|
import {
|
|
11
11
|
AGENT_CARD_PATH
|
|
12
12
|
} from "@a2a-js/sdk";
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
ClientFactory,
|
|
15
|
+
ClientFactoryOptions,
|
|
16
|
+
JsonRpcTransportFactory,
|
|
17
|
+
RestTransportFactory
|
|
18
|
+
} from "@a2a-js/sdk/client";
|
|
14
19
|
import { BaseAgent } from "../agents/base_agent.js";
|
|
15
20
|
import { createEvent } from "../events/event.js";
|
|
21
|
+
import { propagateTraceContext } from "../telemetry/api/instrumentation.js";
|
|
16
22
|
import { randomUUID } from "../utils/env_aware_utils.js";
|
|
17
23
|
import { logger } from "../utils/logger.js";
|
|
18
24
|
import { MessageRole } from "./a2a_event.js";
|
|
@@ -26,6 +32,18 @@ import {
|
|
|
26
32
|
import { resolveAgentCard } from "./agent_card.js";
|
|
27
33
|
import { toAdkEvent } from "./event_converter_utils.js";
|
|
28
34
|
import { getA2ASessionMetadata } from "./metadata_converter_utils.js";
|
|
35
|
+
function createTracePropagatingClientFactory() {
|
|
36
|
+
const fetchImpl = propagateTraceContext();
|
|
37
|
+
return new ClientFactory(
|
|
38
|
+
ClientFactoryOptions.createFrom(ClientFactoryOptions.default, {
|
|
39
|
+
transports: [
|
|
40
|
+
new JsonRpcTransportFactory({ fetchImpl }),
|
|
41
|
+
new RestTransportFactory({ fetchImpl })
|
|
42
|
+
]
|
|
43
|
+
})
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
__name(createTracePropagatingClientFactory, "createTracePropagatingClientFactory");
|
|
29
47
|
const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
|
|
30
48
|
constructor(a2aConfig) {
|
|
31
49
|
super(a2aConfig);
|
|
@@ -36,6 +54,7 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
|
|
|
36
54
|
}
|
|
37
55
|
}
|
|
38
56
|
async init() {
|
|
57
|
+
var _a;
|
|
39
58
|
if (this.isInitialized) {
|
|
40
59
|
return;
|
|
41
60
|
}
|
|
@@ -48,7 +67,7 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
|
|
|
48
67
|
this.a2aConfig.resolveAgentCardOptions
|
|
49
68
|
);
|
|
50
69
|
if (!this.client) {
|
|
51
|
-
const factory = this.a2aConfig.clientFactory
|
|
70
|
+
const factory = (_a = this.a2aConfig.clientFactory) != null ? _a : createTracePropagatingClientFactory();
|
|
52
71
|
this.client = await factory.createFromAgentCard(this.card);
|
|
53
72
|
}
|
|
54
73
|
}
|
|
@@ -64,7 +83,8 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
|
|
|
64
83
|
}
|
|
65
84
|
const userFnCall = getUserFunctionCallAt(
|
|
66
85
|
context.session,
|
|
67
|
-
events.length - 1
|
|
86
|
+
events.length - 1,
|
|
87
|
+
this.name
|
|
68
88
|
);
|
|
69
89
|
let parts;
|
|
70
90
|
let taskId = void 0;
|
|
@@ -14,7 +14,8 @@ import { camelCaseKeys } from "../utils/case_utils.js";
|
|
|
14
14
|
import { logger } from "../utils/logger.js";
|
|
15
15
|
import { AdkMetadataKeys } from "./metadata_converter_utils.js";
|
|
16
16
|
import { toA2AParts } from "./part_converter_utils.js";
|
|
17
|
-
function getUserFunctionCallAt(session, index) {
|
|
17
|
+
function getUserFunctionCallAt(session, index, agentName) {
|
|
18
|
+
var _a, _b;
|
|
18
19
|
const events = session.events;
|
|
19
20
|
if (index < 0 || index >= events.length) {
|
|
20
21
|
return void 0;
|
|
@@ -23,13 +24,16 @@ function getUserFunctionCallAt(session, index) {
|
|
|
23
24
|
if (candidate.author !== "user") {
|
|
24
25
|
return void 0;
|
|
25
26
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
27
|
+
const fnCallIds = (_b = (_a = candidate.content) == null ? void 0 : _a.parts) == null ? void 0 : _b.map((part) => {
|
|
28
|
+
var _a2;
|
|
29
|
+
return (_a2 = part.functionResponse) == null ? void 0 : _a2.id;
|
|
30
|
+
}).filter((id) => !!id);
|
|
31
|
+
if (!(fnCallIds == null ? void 0 : fnCallIds.length)) {
|
|
28
32
|
return void 0;
|
|
29
33
|
}
|
|
30
34
|
for (let i = index - 1; i >= 0; i--) {
|
|
31
35
|
const request = events[i];
|
|
32
|
-
if (!isFunctionCallEvent(request,
|
|
36
|
+
if (request.author !== agentName || !fnCallIds.some((callId) => isFunctionCallEvent(request, callId))) {
|
|
33
37
|
continue;
|
|
34
38
|
}
|
|
35
39
|
const metadata = request.customMetadata || {};
|
|
@@ -10,14 +10,11 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
10
10
|
import { DefaultAgentCardResolver } from "@a2a-js/sdk/client";
|
|
11
11
|
import * as fs from "node:fs/promises";
|
|
12
12
|
import { fileURLToPath } from "node:url";
|
|
13
|
-
import {
|
|
14
|
-
InvocationContext
|
|
15
|
-
} from "../agents/invocation_context.js";
|
|
16
13
|
import { isLlmAgent } from "../agents/llm_agent.js";
|
|
17
14
|
import { isLoopAgent } from "../agents/loop_agent.js";
|
|
18
15
|
import { isParallelAgent } from "../agents/parallel_agent.js";
|
|
19
|
-
import { ReadonlyContext } from "../agents/readonly_context.js";
|
|
20
16
|
import { isSequentialAgent } from "../agents/sequential_agent.js";
|
|
17
|
+
import { propagateTraceContext } from "../telemetry/api/instrumentation.js";
|
|
21
18
|
import { isBaseTool } from "../tools/base_tool.js";
|
|
22
19
|
import { isBaseToolset } from "../tools/base_toolset.js";
|
|
23
20
|
import { logger } from "../utils/logger.js";
|
|
@@ -36,7 +33,7 @@ async function resolveAgentCard(agentCard, options = {}) {
|
|
|
36
33
|
if (source.startsWith("http://") || source.startsWith("https://")) {
|
|
37
34
|
await refuseLinkLocalHost(source);
|
|
38
35
|
const resolver = new DefaultAgentCardResolver({
|
|
39
|
-
fetchImpl:
|
|
36
|
+
fetchImpl: tracePropagatingRefuseRedirectFetch
|
|
40
37
|
});
|
|
41
38
|
const card = await resolver.resolve(source);
|
|
42
39
|
validateCardRpcTargets(card, source, options);
|
|
@@ -76,6 +73,7 @@ async function refuseRedirectFetch(url, init) {
|
|
|
76
73
|
return response;
|
|
77
74
|
}
|
|
78
75
|
__name(refuseRedirectFetch, "refuseRedirectFetch");
|
|
76
|
+
const tracePropagatingRefuseRedirectFetch = propagateTraceContext(refuseRedirectFetch);
|
|
79
77
|
function parseCardUrl(source) {
|
|
80
78
|
let url;
|
|
81
79
|
try {
|
|
@@ -242,7 +240,7 @@ async function buildLLMAgentSkills(agent) {
|
|
|
242
240
|
{
|
|
243
241
|
id: agent.name,
|
|
244
242
|
name: "model",
|
|
245
|
-
description:
|
|
243
|
+
description: buildAgentDescription(agent),
|
|
246
244
|
tags: ["llm"]
|
|
247
245
|
}
|
|
248
246
|
];
|
|
@@ -311,7 +309,7 @@ function buildAgentDescription(agent) {
|
|
|
311
309
|
if (agent.description) {
|
|
312
310
|
descriptionParts.push(agent.description);
|
|
313
311
|
}
|
|
314
|
-
if (agent.subAgents.length > 0) {
|
|
312
|
+
if (!isLlmAgent(agent) && agent.subAgents.length > 0) {
|
|
315
313
|
if (isLoopAgent(agent)) {
|
|
316
314
|
descriptionParts.push(buildLoopAgentDescription(agent));
|
|
317
315
|
} else if (isParallelAgent(agent)) {
|
|
@@ -389,82 +387,6 @@ function buildLoopAgentDescription(agent) {
|
|
|
389
387
|
return `${descriptions.join(" ")} in a loop (max ${maxIterations} iterations).`;
|
|
390
388
|
}
|
|
391
389
|
__name(buildLoopAgentDescription, "buildLoopAgentDescription");
|
|
392
|
-
async function buildDescriptionFromInstructions(agent) {
|
|
393
|
-
const descriptionParts = [];
|
|
394
|
-
if (agent.description) {
|
|
395
|
-
descriptionParts.push(agent.description);
|
|
396
|
-
}
|
|
397
|
-
if (agent.instruction) {
|
|
398
|
-
let instructionStr;
|
|
399
|
-
if (typeof agent.instruction === "function") {
|
|
400
|
-
const dummyContext = new ReadonlyContext(
|
|
401
|
-
new InvocationContext({
|
|
402
|
-
agent
|
|
403
|
-
})
|
|
404
|
-
);
|
|
405
|
-
try {
|
|
406
|
-
instructionStr = await agent.instruction(dummyContext);
|
|
407
|
-
} catch (e) {
|
|
408
|
-
logger.warn("Failed to resolve dynamic instruction for AgentCard", e);
|
|
409
|
-
instructionStr = "";
|
|
410
|
-
}
|
|
411
|
-
} else {
|
|
412
|
-
instructionStr = agent.instruction;
|
|
413
|
-
}
|
|
414
|
-
if (instructionStr) {
|
|
415
|
-
descriptionParts.push(replacePronouns(instructionStr));
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
const root = agent.rootAgent;
|
|
419
|
-
if (isLlmAgent(root) && root.globalInstruction) {
|
|
420
|
-
let globalInstructionStr;
|
|
421
|
-
if (typeof root.globalInstruction === "function") {
|
|
422
|
-
const dummyContext = new ReadonlyContext(
|
|
423
|
-
new InvocationContext({
|
|
424
|
-
agent
|
|
425
|
-
})
|
|
426
|
-
);
|
|
427
|
-
try {
|
|
428
|
-
globalInstructionStr = await root.globalInstruction(dummyContext);
|
|
429
|
-
} catch (e) {
|
|
430
|
-
logger.warn(
|
|
431
|
-
"Failed to resolve dynamic global instruction for AgentCard",
|
|
432
|
-
e
|
|
433
|
-
);
|
|
434
|
-
globalInstructionStr = "";
|
|
435
|
-
}
|
|
436
|
-
} else {
|
|
437
|
-
globalInstructionStr = root.globalInstruction;
|
|
438
|
-
}
|
|
439
|
-
if (globalInstructionStr) {
|
|
440
|
-
descriptionParts.push(replacePronouns(globalInstructionStr));
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
if (descriptionParts.length > 0) {
|
|
444
|
-
return descriptionParts.join(" ");
|
|
445
|
-
} else {
|
|
446
|
-
return getDefaultAgentDescription(agent);
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
__name(buildDescriptionFromInstructions, "buildDescriptionFromInstructions");
|
|
450
|
-
function replacePronouns(instruction) {
|
|
451
|
-
const substitutions = [
|
|
452
|
-
{ original: "you were", target: "I was" },
|
|
453
|
-
{ original: "you are", target: "I am" },
|
|
454
|
-
{ original: "you're", target: "I am" },
|
|
455
|
-
{ original: "you've", target: "I have" },
|
|
456
|
-
{ original: "yours", target: "mine" },
|
|
457
|
-
{ original: "your", target: "my" },
|
|
458
|
-
{ original: "you", target: "I" }
|
|
459
|
-
];
|
|
460
|
-
let result = instruction;
|
|
461
|
-
for (const sub of substitutions) {
|
|
462
|
-
const pattern = new RegExp(`\\b${sub.original}\\b`, "gi");
|
|
463
|
-
result = result.replace(pattern, sub.target);
|
|
464
|
-
}
|
|
465
|
-
return result;
|
|
466
|
-
}
|
|
467
|
-
__name(replacePronouns, "replacePronouns");
|
|
468
390
|
function getDefaultAgentDescription(agent) {
|
|
469
391
|
if (isLoopAgent(agent)) {
|
|
470
392
|
return "A loop workflow agent";
|
|
@@ -32,6 +32,7 @@ import { AGENT_CARD_PATH } from "@a2a-js/sdk";
|
|
|
32
32
|
import { InMemoryTaskStore } from "@a2a-js/sdk/server";
|
|
33
33
|
import { StreamingMode } from "../agents/run_config.js";
|
|
34
34
|
import { InMemorySessionService } from "../sessions/in_memory_session_service.js";
|
|
35
|
+
import { runWithRemoteTraceContext } from "../telemetry/api/instrumentation.js";
|
|
35
36
|
import { logger } from "../utils/logger.js";
|
|
36
37
|
import { loadOptionalPeer } from "../utils/optional_peer.js";
|
|
37
38
|
import {
|
|
@@ -52,6 +53,10 @@ async function loadExpressBindings() {
|
|
|
52
53
|
return { express: expressModule.default, a2aExpress };
|
|
53
54
|
}
|
|
54
55
|
__name(loadExpressBindings, "loadExpressBindings");
|
|
56
|
+
function continueRemoteTrace(req, _res, next) {
|
|
57
|
+
runWithRemoteTraceContext(req.headers, () => next());
|
|
58
|
+
}
|
|
59
|
+
__name(continueRemoteTrace, "continueRemoteTrace");
|
|
55
60
|
function resolveA2aUserBuilder(options, a2aExpress) {
|
|
56
61
|
if (options.authentication) {
|
|
57
62
|
return options.authentication;
|
|
@@ -113,6 +118,7 @@ async function toA2a(agent, options = {}) {
|
|
|
113
118
|
);
|
|
114
119
|
app.use(
|
|
115
120
|
`${basePath}/rest`,
|
|
121
|
+
continueRemoteTrace,
|
|
116
122
|
a2aExpress.restHandler({
|
|
117
123
|
requestHandler,
|
|
118
124
|
userBuilder
|
|
@@ -120,6 +126,7 @@ async function toA2a(agent, options = {}) {
|
|
|
120
126
|
);
|
|
121
127
|
app.use(
|
|
122
128
|
`${basePath}/jsonrpc`,
|
|
129
|
+
continueRemoteTrace,
|
|
123
130
|
a2aExpress.jsonRpcHandler({
|
|
124
131
|
requestHandler,
|
|
125
132
|
userBuilder
|
|
@@ -69,7 +69,12 @@ function messageToAdkEvent(msg, invocationId, agentName, branch) {
|
|
|
69
69
|
return {
|
|
70
70
|
...createAdkEventFromMetadata(msg),
|
|
71
71
|
invocationId,
|
|
72
|
-
|
|
72
|
+
// The role on a peer's message is the peer's own claim and must not decide
|
|
73
|
+
// authorship: letting `user` through here lets a remote agent post events
|
|
74
|
+
// that read as the local user's, which is a trust anchor elsewhere (tool
|
|
75
|
+
// confirmations are approved only from user-authored events). Attribute the
|
|
76
|
+
// event to the peer, the same way the task and status converters below do.
|
|
77
|
+
author: agentName,
|
|
73
78
|
branch,
|
|
74
79
|
content,
|
|
75
80
|
turnComplete: true,
|
|
@@ -184,8 +189,10 @@ function createAdkEventFromMetadata(a2aEvent) {
|
|
|
184
189
|
// (set it to a shared ancestor branch, or omit it) to leak its content
|
|
185
190
|
// into an unrelated sibling agent's LLM context. Every caller of the
|
|
186
191
|
// `*ToAdkEvent` functions in this file force-sets `branch` from its own
|
|
187
|
-
// local `InvocationContext` instead, the same way `author` is handled
|
|
188
|
-
author
|
|
192
|
+
// local `InvocationContext` instead, the same way `author` is handled:
|
|
193
|
+
// `author` is likewise never restored from peer metadata here, since every
|
|
194
|
+
// converter sets it from the local context after the spread, so reading it
|
|
195
|
+
// from metadata would be dead and read as if a peer could set the author.
|
|
189
196
|
partial: metadata[A2AMetadataKeys.PARTIAL],
|
|
190
197
|
errorCode: metadata[A2AMetadataKeys.ERROR_CODE],
|
|
191
198
|
errorMessage: metadata[A2AMetadataKeys.ERROR_MESSAGE],
|