@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
|
@@ -33,7 +33,6 @@ __export(runner_exports, {
|
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(runner_exports);
|
|
35
35
|
var import_genai = require("@google/genai");
|
|
36
|
-
var import_api = require("@opentelemetry/api");
|
|
37
36
|
var import_base_agent = require("../agents/base_agent.js");
|
|
38
37
|
var import_framework_function_calls = require("../agents/framework_function_calls.js");
|
|
39
38
|
var import_functions = require("../agents/functions.js");
|
|
@@ -48,11 +47,13 @@ var import_event = require("../events/event.js");
|
|
|
48
47
|
var import_event_actions = require("../events/event_actions.js");
|
|
49
48
|
var import_internal_metadata = require("../events/internal_metadata.js");
|
|
50
49
|
var import_plugin_manager = require("../plugins/plugin_manager.js");
|
|
51
|
-
var
|
|
50
|
+
var import_instrumentation = require("../telemetry/api/instrumentation.js");
|
|
52
51
|
var import_base_toolset = require("../tools/base_toolset.js");
|
|
52
|
+
var import_error_utils = require("../utils/error_utils.js");
|
|
53
53
|
var import_logger = require("../utils/logger.js");
|
|
54
54
|
var import_model_name = require("../utils/model_name.js");
|
|
55
55
|
var import_redact_inline_data = require("../utils/redact_inline_data.js");
|
|
56
|
+
var import_workflow = require("../workflow/index.js");
|
|
56
57
|
var import_run_node_as_invocation = require("../workflow/run_node_as_invocation.js");
|
|
57
58
|
/**
|
|
58
59
|
* @license
|
|
@@ -60,6 +61,10 @@ var import_run_node_as_invocation = require("../workflow/run_node_as_invocation.
|
|
|
60
61
|
* SPDX-License-Identifier: Apache-2.0
|
|
61
62
|
*/
|
|
62
63
|
var _a;
|
|
64
|
+
const TOOLSET_CLEANUP_TIMEOUT_MS = 1e4;
|
|
65
|
+
const TOOLSET_CLEANUP_TIMEOUT_SYMBOL = /* @__PURE__ */ Symbol(
|
|
66
|
+
"google.adk.runner.toolsetCleanupTimeout"
|
|
67
|
+
);
|
|
63
68
|
const RUNNER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.runner");
|
|
64
69
|
function isRunner(obj) {
|
|
65
70
|
return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
|
|
@@ -159,59 +164,57 @@ const _Runner = class _Runner {
|
|
|
159
164
|
newMessage.role = "user";
|
|
160
165
|
}
|
|
161
166
|
rejectReservedFunctionCalls(newMessage);
|
|
162
|
-
const
|
|
163
|
-
const ctx = import_api.trace.setSpan(import_api.context.active(), span);
|
|
167
|
+
const runnerCtx = this;
|
|
164
168
|
try {
|
|
165
|
-
yield* (0,
|
|
166
|
-
|
|
167
|
-
this,
|
|
169
|
+
yield* (0, import_instrumentation.recordInvocation)(
|
|
170
|
+
{ entrypoint: this.agent, sessionId, runConfig },
|
|
168
171
|
async function* () {
|
|
169
|
-
var _a2, _b, _c, _d, _e
|
|
170
|
-
const session = await
|
|
172
|
+
var _a2, _b, _c, _d, _e;
|
|
173
|
+
const session = await runnerCtx.resolveSession(userId, sessionId);
|
|
171
174
|
if ((_a2 = params.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
172
175
|
return;
|
|
173
176
|
}
|
|
174
177
|
if (!session) {
|
|
175
|
-
if (!
|
|
178
|
+
if (!runnerCtx.appName) {
|
|
176
179
|
throw new Error(
|
|
177
180
|
`Session lookup failed: appName must be provided in runner constructor (or via app.name)`
|
|
178
181
|
);
|
|
179
182
|
}
|
|
180
183
|
throw new Error(
|
|
181
|
-
`Session not found: ${sessionId} (appName=${
|
|
184
|
+
`Session not found: ${sessionId} (appName=${runnerCtx.appName}, userId=${userId})`
|
|
182
185
|
);
|
|
183
186
|
}
|
|
184
|
-
if (runConfig.supportCfc && (0, import_llm_agent.isLlmAgent)(
|
|
185
|
-
const modelName =
|
|
187
|
+
if (runConfig.supportCfc && (0, import_llm_agent.isLlmAgent)(runnerCtx.agent)) {
|
|
188
|
+
const modelName = runnerCtx.agent.canonicalModel.model;
|
|
186
189
|
if (!(0, import_model_name.isGemini2OrAbove)(modelName)) {
|
|
187
190
|
throw new Error(
|
|
188
|
-
`CFC is not supported for model: ${modelName} in agent: ${
|
|
191
|
+
`CFC is not supported for model: ${modelName} in agent: ${runnerCtx.agent.name}`
|
|
189
192
|
);
|
|
190
193
|
}
|
|
191
|
-
if (!(0, import_built_in_code_executor.isBuiltInCodeExecutor)(
|
|
192
|
-
|
|
194
|
+
if (!(0, import_built_in_code_executor.isBuiltInCodeExecutor)(runnerCtx.agent.codeExecutor)) {
|
|
195
|
+
runnerCtx.agent.codeExecutor = new import_built_in_code_executor.BuiltInCodeExecutor();
|
|
193
196
|
}
|
|
194
197
|
}
|
|
195
198
|
const invocationContext = new import_invocation_context.InvocationContext({
|
|
196
|
-
artifactService:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
+
artifactService: runnerCtx.artifactService ? (0, import_session_artifact_service.isSessionArtifactService)(runnerCtx.artifactService) ? runnerCtx.artifactService : new import_scoped_artifact_service.ScopedArtifactService(
|
|
200
|
+
runnerCtx.artifactService,
|
|
201
|
+
runnerCtx.appName,
|
|
199
202
|
userId,
|
|
200
203
|
sessionId
|
|
201
204
|
) : void 0,
|
|
202
|
-
sessionService:
|
|
203
|
-
memoryService:
|
|
204
|
-
credentialService:
|
|
205
|
+
sessionService: runnerCtx.sessionService,
|
|
206
|
+
memoryService: runnerCtx.memoryService,
|
|
207
|
+
credentialService: runnerCtx.credentialService,
|
|
205
208
|
invocationId: (0, import_invocation_context.newInvocationContextId)(),
|
|
206
|
-
agent: (0, import_base_agent.isBaseAgent)(
|
|
209
|
+
agent: (0, import_base_agent.isBaseAgent)(runnerCtx.agent) ? runnerCtx.agent : void 0,
|
|
207
210
|
session,
|
|
208
211
|
userContent: newMessage,
|
|
209
212
|
runConfig,
|
|
210
213
|
a2aMetadata: runConfig.a2aMetadata,
|
|
211
|
-
pluginManager:
|
|
214
|
+
pluginManager: runnerCtx.pluginManager,
|
|
212
215
|
abortSignal: params.abortSignal
|
|
213
216
|
});
|
|
214
|
-
const pluginUserMessage = await
|
|
217
|
+
const pluginUserMessage = await runnerCtx.pluginManager.runOnUserMessageCallback({
|
|
215
218
|
userMessage: newMessage,
|
|
216
219
|
invocationContext
|
|
217
220
|
});
|
|
@@ -226,7 +229,7 @@ const _Runner = class _Runner {
|
|
|
226
229
|
throw new Error("No parts in the newMessage.");
|
|
227
230
|
}
|
|
228
231
|
if (runConfig.saveInputBlobsAsArtifacts) {
|
|
229
|
-
newMessage = await
|
|
232
|
+
newMessage = await runnerCtx.saveArtifacts(
|
|
230
233
|
invocationContext.artifactService,
|
|
231
234
|
invocationContext.invocationId,
|
|
232
235
|
newMessage
|
|
@@ -235,7 +238,7 @@ const _Runner = class _Runner {
|
|
|
235
238
|
return;
|
|
236
239
|
}
|
|
237
240
|
}
|
|
238
|
-
await
|
|
241
|
+
await runnerCtx.sessionService.appendEvent({
|
|
239
242
|
session,
|
|
240
243
|
event: (0, import_event.createEvent)({
|
|
241
244
|
invocationId: invocationContext.invocationId,
|
|
@@ -250,83 +253,137 @@ const _Runner = class _Runner {
|
|
|
250
253
|
return;
|
|
251
254
|
}
|
|
252
255
|
}
|
|
253
|
-
if ((0, import_base_agent.isBaseAgent)(
|
|
254
|
-
invocationContext.agent =
|
|
256
|
+
if ((0, import_base_agent.isBaseAgent)(runnerCtx.agent)) {
|
|
257
|
+
invocationContext.agent = runnerCtx.determineAgentForResumption(
|
|
255
258
|
session,
|
|
256
|
-
|
|
259
|
+
runnerCtx.agent
|
|
257
260
|
);
|
|
258
261
|
}
|
|
259
262
|
if (newMessage) {
|
|
260
|
-
|
|
261
|
-
invocationContext
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
return;
|
|
265
|
-
}
|
|
266
|
-
if (beforeRunCallbackResponse) {
|
|
267
|
-
const earlyExitEvent = (0, import_event.createEvent)({
|
|
268
|
-
invocationId: invocationContext.invocationId,
|
|
269
|
-
author: "model",
|
|
270
|
-
content: beforeRunCallbackResponse
|
|
271
|
-
});
|
|
272
|
-
await this.sessionService.appendEvent({
|
|
273
|
-
session,
|
|
274
|
-
event: earlyExitEvent
|
|
275
|
-
});
|
|
276
|
-
if ((_g = params.abortSignal) == null ? void 0 : _g.aborted) {
|
|
277
|
-
return;
|
|
278
|
-
}
|
|
279
|
-
yield earlyExitEvent;
|
|
280
|
-
} else {
|
|
281
|
-
let abortSealed = false;
|
|
282
|
-
const sealAbortedInvocation = /* @__PURE__ */ __name(() => {
|
|
283
|
-
abortSealed = true;
|
|
284
|
-
return this.synthesizeAbortEvents(invocationContext);
|
|
285
|
-
}, "sealAbortedInvocation");
|
|
286
|
-
try {
|
|
287
|
-
for await (const event of this.runRoot(invocationContext)) {
|
|
288
|
-
if ((_h = params.abortSignal) == null ? void 0 : _h.aborted) {
|
|
289
|
-
break;
|
|
290
|
-
}
|
|
291
|
-
const outputEvent = await this.processAndAppendEvent(
|
|
292
|
-
invocationContext,
|
|
293
|
-
event
|
|
294
|
-
);
|
|
295
|
-
if ((_i = params.abortSignal) == null ? void 0 : _i.aborted) {
|
|
296
|
-
break;
|
|
297
|
-
}
|
|
298
|
-
yield outputEvent;
|
|
299
|
-
}
|
|
300
|
-
if ((_j = params.abortSignal) == null ? void 0 : _j.aborted) {
|
|
301
|
-
for (const abortEvent of await sealAbortedInvocation()) {
|
|
302
|
-
yield abortEvent;
|
|
303
|
-
}
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
} finally {
|
|
307
|
-
if (((_k = params.abortSignal) == null ? void 0 : _k.aborted) && !abortSealed) {
|
|
308
|
-
try {
|
|
309
|
-
await sealAbortedInvocation();
|
|
310
|
-
} catch (e) {
|
|
311
|
-
import_logger.logger.error(
|
|
312
|
-
`Failed to seal aborted invocation ${invocationContext.invocationId}.`,
|
|
313
|
-
e
|
|
314
|
-
);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
await this.pluginManager.runAfterRunCallback({ invocationContext });
|
|
319
|
-
if ((_l = params.abortSignal) == null ? void 0 : _l.aborted) {
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
}
|
|
263
|
+
yield* runnerCtx.runWithPluginLifecycle(
|
|
264
|
+
invocationContext,
|
|
265
|
+
() => runnerCtx.runAsyncWithPlugins(invocationContext)
|
|
266
|
+
);
|
|
323
267
|
}
|
|
324
268
|
}
|
|
325
269
|
);
|
|
326
270
|
} finally {
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
271
|
+
await this.close();
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Closes the runner and cleans up all toolsets reachable from the root agent
|
|
276
|
+
* or workflow.
|
|
277
|
+
*/
|
|
278
|
+
async close() {
|
|
279
|
+
await cleanupToolsets(collectToolsets(this.agent));
|
|
280
|
+
}
|
|
281
|
+
async *runAsyncWithPlugins(invocationContext) {
|
|
282
|
+
var _a2, _b, _c, _d, _e, _f;
|
|
283
|
+
const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
|
|
284
|
+
invocationContext
|
|
285
|
+
});
|
|
286
|
+
if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
if (beforeRunCallbackResponse) {
|
|
290
|
+
const earlyExitEvent = (0, import_event.createEvent)({
|
|
291
|
+
invocationId: invocationContext.invocationId,
|
|
292
|
+
author: "model",
|
|
293
|
+
content: beforeRunCallbackResponse
|
|
294
|
+
});
|
|
295
|
+
await this.sessionService.appendEvent({
|
|
296
|
+
session: invocationContext.session,
|
|
297
|
+
event: earlyExitEvent
|
|
298
|
+
});
|
|
299
|
+
if ((_b = invocationContext.abortSignal) == null ? void 0 : _b.aborted) {
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
yield earlyExitEvent;
|
|
303
|
+
} else {
|
|
304
|
+
let abortSealed = false;
|
|
305
|
+
const sealAbortedInvocation = /* @__PURE__ */ __name(() => {
|
|
306
|
+
abortSealed = true;
|
|
307
|
+
return this.synthesizeAbortEvents(invocationContext);
|
|
308
|
+
}, "sealAbortedInvocation");
|
|
309
|
+
try {
|
|
310
|
+
for await (const event of this.runRoot(invocationContext)) {
|
|
311
|
+
if ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted) {
|
|
312
|
+
break;
|
|
313
|
+
}
|
|
314
|
+
const outputEvent = await this.processAndAppendEvent(
|
|
315
|
+
invocationContext,
|
|
316
|
+
event
|
|
317
|
+
);
|
|
318
|
+
if ((_d = invocationContext.abortSignal) == null ? void 0 : _d.aborted) {
|
|
319
|
+
break;
|
|
320
|
+
}
|
|
321
|
+
yield outputEvent;
|
|
322
|
+
}
|
|
323
|
+
if ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted) {
|
|
324
|
+
for (const abortEvent of await sealAbortedInvocation()) {
|
|
325
|
+
yield abortEvent;
|
|
326
|
+
}
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
} finally {
|
|
330
|
+
if (((_f = invocationContext.abortSignal) == null ? void 0 : _f.aborted) && !abortSealed) {
|
|
331
|
+
try {
|
|
332
|
+
await sealAbortedInvocation();
|
|
333
|
+
} catch (e) {
|
|
334
|
+
import_logger.logger.error(
|
|
335
|
+
`Failed to seal aborted invocation ${invocationContext.invocationId}.`,
|
|
336
|
+
e
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
/** Finalizes a started run, including when its consumer closes the iterator. */
|
|
344
|
+
async *runWithPluginLifecycle(invocationContext, execute) {
|
|
345
|
+
let failed = false;
|
|
346
|
+
let completed = false;
|
|
347
|
+
try {
|
|
348
|
+
yield* execute();
|
|
349
|
+
completed = true;
|
|
350
|
+
} catch (error) {
|
|
351
|
+
if (!(0, import_error_utils.isInvocationCancellation)(error, invocationContext.abortSignal)) {
|
|
352
|
+
failed = true;
|
|
353
|
+
await this.notifyRunError(invocationContext, error);
|
|
354
|
+
}
|
|
355
|
+
throw error;
|
|
356
|
+
} finally {
|
|
357
|
+
if (!failed) {
|
|
358
|
+
await this.finishRun(invocationContext, !completed);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
async finishRun(invocationContext, closingEarly) {
|
|
363
|
+
try {
|
|
364
|
+
await this.pluginManager.runAfterRunCallback({ invocationContext });
|
|
365
|
+
} catch (error) {
|
|
366
|
+
await this.notifyRunError(invocationContext, error);
|
|
367
|
+
if (!closingEarly) {
|
|
368
|
+
throw error;
|
|
369
|
+
}
|
|
370
|
+
import_logger.logger.error(
|
|
371
|
+
`afterRunCallback failed while closing invocation ${invocationContext.invocationId}.`,
|
|
372
|
+
error
|
|
373
|
+
);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
async notifyRunError(invocationContext, error) {
|
|
377
|
+
try {
|
|
378
|
+
await this.pluginManager.runOnRunErrorCallback({
|
|
379
|
+
invocationContext,
|
|
380
|
+
error: (0, import_error_utils.toError)(error)
|
|
381
|
+
});
|
|
382
|
+
} catch (callbackError) {
|
|
383
|
+
import_logger.logger.error(
|
|
384
|
+
"Run error notification failed; preserving the original error.",
|
|
385
|
+
callbackError
|
|
386
|
+
);
|
|
330
387
|
}
|
|
331
388
|
}
|
|
332
389
|
/**
|
|
@@ -517,6 +574,7 @@ const _Runner = class _Runner {
|
|
|
517
574
|
throw new Error("runLive is only supported for agents.");
|
|
518
575
|
}
|
|
519
576
|
const agent = this.agent;
|
|
577
|
+
const { sessionId } = params;
|
|
520
578
|
const runConfig = (0, import_run_config.createRunConfig)(params.runConfig);
|
|
521
579
|
if (!((_a2 = runConfig.responseModalities) == null ? void 0 : _a2.length)) {
|
|
522
580
|
runConfig.responseModalities = [import_genai.Modality.AUDIO];
|
|
@@ -527,92 +585,92 @@ const _Runner = class _Runner {
|
|
|
527
585
|
}
|
|
528
586
|
(_d = runConfig.inputAudioTranscription) != null ? _d : runConfig.inputAudioTranscription = {};
|
|
529
587
|
}
|
|
530
|
-
const
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
});
|
|
543
|
-
if ((_a3 = params.abortSignal) == null ? void 0 : _a3.aborted) {
|
|
544
|
-
return;
|
|
545
|
-
}
|
|
546
|
-
const invocationContext = new import_invocation_context.InvocationContext({
|
|
547
|
-
artifactService: this.artifactService ? (0, import_session_artifact_service.isSessionArtifactService)(this.artifactService) ? this.artifactService : new import_scoped_artifact_service.ScopedArtifactService(
|
|
548
|
-
this.artifactService,
|
|
549
|
-
this.appName,
|
|
550
|
-
params.userId,
|
|
551
|
-
params.sessionId
|
|
552
|
-
) : void 0,
|
|
553
|
-
sessionService: this.sessionService,
|
|
554
|
-
memoryService: this.memoryService,
|
|
555
|
-
credentialService: this.credentialService,
|
|
556
|
-
invocationId: (0, import_invocation_context.newInvocationContextId)(),
|
|
557
|
-
agent,
|
|
558
|
-
session,
|
|
559
|
-
runConfig,
|
|
560
|
-
a2aMetadata: runConfig.a2aMetadata,
|
|
561
|
-
pluginManager: this.pluginManager,
|
|
562
|
-
liveRequestQueue: params.liveRequestQueue,
|
|
563
|
-
abortSignal: params.abortSignal,
|
|
564
|
-
liveSessionResumptionHandle: params.liveSessionResumptionHandle
|
|
565
|
-
});
|
|
566
|
-
invocationContext.agent = this.determineAgentForResumption(
|
|
567
|
-
session,
|
|
568
|
-
agent
|
|
569
|
-
);
|
|
570
|
-
const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
|
|
571
|
-
invocationContext
|
|
572
|
-
});
|
|
573
|
-
if ((_b2 = params.abortSignal) == null ? void 0 : _b2.aborted) {
|
|
574
|
-
return;
|
|
575
|
-
}
|
|
576
|
-
if (beforeRunCallbackResponse) {
|
|
577
|
-
const earlyExitEvent = (0, import_event.createEvent)({
|
|
578
|
-
invocationId: invocationContext.invocationId,
|
|
579
|
-
author: "model",
|
|
580
|
-
content: beforeRunCallbackResponse
|
|
581
|
-
});
|
|
582
|
-
await this.sessionService.appendEvent({
|
|
583
|
-
session,
|
|
584
|
-
event: earlyExitEvent
|
|
585
|
-
});
|
|
586
|
-
yield earlyExitEvent;
|
|
587
|
-
return;
|
|
588
|
-
}
|
|
589
|
-
for await (const event of (0, import_invocation_context.requireAgent)(invocationContext).runLive(
|
|
590
|
-
invocationContext
|
|
591
|
-
)) {
|
|
592
|
-
if ((_c2 = params.abortSignal) == null ? void 0 : _c2.aborted) {
|
|
593
|
-
return;
|
|
594
|
-
}
|
|
595
|
-
const modifiedEvent = await this.pluginManager.runOnEventCallback({
|
|
596
|
-
invocationContext,
|
|
597
|
-
event
|
|
598
|
-
});
|
|
599
|
-
if ((_d2 = params.abortSignal) == null ? void 0 : _d2.aborted) {
|
|
600
|
-
return;
|
|
601
|
-
}
|
|
602
|
-
const eventToProcess = modifiedEvent ? withInternalMetadataOf(event, modifiedEvent) : event;
|
|
603
|
-
if (!eventToProcess.partial && !isLiveModelMediaEventWithInlineData(eventToProcess)) {
|
|
604
|
-
await this.sessionService.appendEvent({
|
|
605
|
-
session,
|
|
606
|
-
event: eventToProcess
|
|
607
|
-
});
|
|
608
|
-
}
|
|
609
|
-
yield eventToProcess;
|
|
610
|
-
}
|
|
611
|
-
await this.pluginManager.runAfterRunCallback({ invocationContext });
|
|
588
|
+
const runnerCtx = this;
|
|
589
|
+
yield* (0, import_instrumentation.recordInvocation)(
|
|
590
|
+
{ entrypoint: agent, sessionId, runConfig },
|
|
591
|
+
async function* () {
|
|
592
|
+
var _a3;
|
|
593
|
+
const session = await runnerCtx.sessionService.getOrCreateSession({
|
|
594
|
+
appName: runnerCtx.appName,
|
|
595
|
+
userId: params.userId,
|
|
596
|
+
sessionId: params.sessionId
|
|
597
|
+
});
|
|
598
|
+
if ((_a3 = params.abortSignal) == null ? void 0 : _a3.aborted) {
|
|
599
|
+
return;
|
|
612
600
|
}
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
601
|
+
const invocationContext = new import_invocation_context.InvocationContext({
|
|
602
|
+
artifactService: runnerCtx.artifactService ? (0, import_session_artifact_service.isSessionArtifactService)(runnerCtx.artifactService) ? runnerCtx.artifactService : new import_scoped_artifact_service.ScopedArtifactService(
|
|
603
|
+
runnerCtx.artifactService,
|
|
604
|
+
runnerCtx.appName,
|
|
605
|
+
params.userId,
|
|
606
|
+
params.sessionId
|
|
607
|
+
) : void 0,
|
|
608
|
+
sessionService: runnerCtx.sessionService,
|
|
609
|
+
memoryService: runnerCtx.memoryService,
|
|
610
|
+
credentialService: runnerCtx.credentialService,
|
|
611
|
+
invocationId: (0, import_invocation_context.newInvocationContextId)(),
|
|
612
|
+
agent,
|
|
613
|
+
session,
|
|
614
|
+
runConfig,
|
|
615
|
+
a2aMetadata: runConfig.a2aMetadata,
|
|
616
|
+
pluginManager: runnerCtx.pluginManager,
|
|
617
|
+
liveRequestQueue: params.liveRequestQueue,
|
|
618
|
+
abortSignal: params.abortSignal,
|
|
619
|
+
liveSessionResumptionHandle: params.liveSessionResumptionHandle
|
|
620
|
+
});
|
|
621
|
+
invocationContext.agent = runnerCtx.determineAgentForResumption(
|
|
622
|
+
session,
|
|
623
|
+
agent
|
|
624
|
+
);
|
|
625
|
+
yield* runnerCtx.runWithPluginLifecycle(
|
|
626
|
+
invocationContext,
|
|
627
|
+
() => runnerCtx.runLiveWithPlugins(invocationContext)
|
|
628
|
+
);
|
|
629
|
+
}
|
|
630
|
+
);
|
|
631
|
+
}
|
|
632
|
+
async *runLiveWithPlugins(invocationContext) {
|
|
633
|
+
var _a2, _b, _c;
|
|
634
|
+
const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
|
|
635
|
+
invocationContext
|
|
636
|
+
});
|
|
637
|
+
if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
|
|
638
|
+
return;
|
|
639
|
+
}
|
|
640
|
+
if (beforeRunCallbackResponse) {
|
|
641
|
+
const earlyExitEvent = (0, import_event.createEvent)({
|
|
642
|
+
invocationId: invocationContext.invocationId,
|
|
643
|
+
author: "model",
|
|
644
|
+
content: beforeRunCallbackResponse
|
|
645
|
+
});
|
|
646
|
+
await this.sessionService.appendEvent({
|
|
647
|
+
session: invocationContext.session,
|
|
648
|
+
event: earlyExitEvent
|
|
649
|
+
});
|
|
650
|
+
yield earlyExitEvent;
|
|
651
|
+
return;
|
|
652
|
+
}
|
|
653
|
+
for await (const event of (0, import_invocation_context.requireAgent)(invocationContext).runLive(
|
|
654
|
+
invocationContext
|
|
655
|
+
)) {
|
|
656
|
+
if ((_b = invocationContext.abortSignal) == null ? void 0 : _b.aborted) {
|
|
657
|
+
return;
|
|
658
|
+
}
|
|
659
|
+
const modifiedEvent = await this.pluginManager.runOnEventCallback({
|
|
660
|
+
invocationContext,
|
|
661
|
+
event
|
|
662
|
+
});
|
|
663
|
+
if ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted) {
|
|
664
|
+
return;
|
|
665
|
+
}
|
|
666
|
+
const eventToProcess = modifiedEvent ? withInternalMetadataOf(event, modifiedEvent) : event;
|
|
667
|
+
if (!eventToProcess.partial && !isLiveModelMediaEventWithInlineData(eventToProcess)) {
|
|
668
|
+
await this.sessionService.appendEvent({
|
|
669
|
+
session: invocationContext.session,
|
|
670
|
+
event: eventToProcess
|
|
671
|
+
});
|
|
672
|
+
}
|
|
673
|
+
yield eventToProcess;
|
|
616
674
|
}
|
|
617
675
|
}
|
|
618
676
|
};
|
|
@@ -715,28 +773,87 @@ function findEventByLastFunctionResponseId(events) {
|
|
|
715
773
|
return (_a2 = (0, import_functions.findMatchingFunctionCall)(events)) != null ? _a2 : null;
|
|
716
774
|
}
|
|
717
775
|
__name(findEventByLastFunctionResponseId, "findEventByLastFunctionResponseId");
|
|
718
|
-
function
|
|
719
|
-
const toolsets =
|
|
776
|
+
function collectToolsets(root) {
|
|
777
|
+
const toolsets = /* @__PURE__ */ new Set();
|
|
720
778
|
const visited = /* @__PURE__ */ new Set();
|
|
721
779
|
function traverse(curr) {
|
|
722
|
-
if (visited.has(curr))
|
|
780
|
+
if (visited.has(curr)) {
|
|
781
|
+
return;
|
|
782
|
+
}
|
|
723
783
|
visited.add(curr);
|
|
724
784
|
if ((0, import_llm_agent.isLlmAgent)(curr)) {
|
|
725
785
|
for (const tool of curr.tools) {
|
|
726
786
|
if ((0, import_base_toolset.isBaseToolset)(tool)) {
|
|
727
|
-
toolsets.
|
|
787
|
+
toolsets.add(tool);
|
|
728
788
|
}
|
|
729
789
|
}
|
|
730
790
|
}
|
|
731
|
-
|
|
732
|
-
|
|
791
|
+
if ((0, import_base_agent.isBaseAgent)(curr)) {
|
|
792
|
+
for (const sub of curr.subAgents) {
|
|
793
|
+
traverse(sub);
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
if ((0, import_workflow.isWorkflow)(curr) && curr.graph) {
|
|
797
|
+
for (const node of curr.graph.nodes) {
|
|
798
|
+
traverse(node);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
if ((0, import_workflow.isParallelWorker)(curr)) {
|
|
802
|
+
traverse(curr.inner);
|
|
733
803
|
}
|
|
734
804
|
}
|
|
735
805
|
__name(traverse, "traverse");
|
|
736
|
-
traverse(
|
|
806
|
+
traverse(root);
|
|
737
807
|
return toolsets;
|
|
738
808
|
}
|
|
739
|
-
__name(
|
|
809
|
+
__name(collectToolsets, "collectToolsets");
|
|
810
|
+
function formatToolsetCloseError(err) {
|
|
811
|
+
const formatted = (0, import_error_utils.formatError)(err);
|
|
812
|
+
if (formatted !== "[object Object]") {
|
|
813
|
+
return formatted;
|
|
814
|
+
}
|
|
815
|
+
try {
|
|
816
|
+
return JSON.stringify(err);
|
|
817
|
+
} catch {
|
|
818
|
+
return formatted;
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
__name(formatToolsetCloseError, "formatToolsetCloseError");
|
|
822
|
+
async function cleanupToolsets(toolsets) {
|
|
823
|
+
await Promise.allSettled(
|
|
824
|
+
[...toolsets].map(async (toolset) => {
|
|
825
|
+
var _a2;
|
|
826
|
+
const toolsetName = ((_a2 = toolset.constructor) == null ? void 0 : _a2.name) || "BaseToolset";
|
|
827
|
+
let timeoutId;
|
|
828
|
+
try {
|
|
829
|
+
import_logger.logger.debug(`Closing toolset: ${toolsetName}`);
|
|
830
|
+
const result = await Promise.race([
|
|
831
|
+
toolset.close().then(() => void 0),
|
|
832
|
+
new Promise((resolve) => {
|
|
833
|
+
timeoutId = setTimeout(
|
|
834
|
+
() => resolve(TOOLSET_CLEANUP_TIMEOUT_SYMBOL),
|
|
835
|
+
TOOLSET_CLEANUP_TIMEOUT_MS
|
|
836
|
+
);
|
|
837
|
+
})
|
|
838
|
+
]);
|
|
839
|
+
if (result === TOOLSET_CLEANUP_TIMEOUT_SYMBOL) {
|
|
840
|
+
import_logger.logger.warn(`Toolset ${toolsetName} cleanup timed out`);
|
|
841
|
+
} else {
|
|
842
|
+
import_logger.logger.debug(`Successfully closed toolset: ${toolsetName}`);
|
|
843
|
+
}
|
|
844
|
+
} catch (e) {
|
|
845
|
+
import_logger.logger.error(
|
|
846
|
+
`Error closing toolset ${toolsetName}: ${formatToolsetCloseError(e)}`
|
|
847
|
+
);
|
|
848
|
+
} finally {
|
|
849
|
+
if (timeoutId !== void 0) {
|
|
850
|
+
clearTimeout(timeoutId);
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
})
|
|
854
|
+
);
|
|
855
|
+
}
|
|
856
|
+
__name(cleanupToolsets, "cleanupToolsets");
|
|
740
857
|
function rejectReservedFunctionCalls(newMessage) {
|
|
741
858
|
const reserved = (0, import_framework_function_calls.reservedFunctionCallName)(newMessage);
|
|
742
859
|
if (reserved) {
|
|
@@ -28,7 +28,8 @@ __export(base_session_service_exports, {
|
|
|
28
28
|
BaseSessionService: () => BaseSessionService,
|
|
29
29
|
mergeStates: () => mergeStates,
|
|
30
30
|
trimTempDeltaState: () => trimTempDeltaState,
|
|
31
|
-
trimTempState: () => trimTempState
|
|
31
|
+
trimTempState: () => trimTempState,
|
|
32
|
+
upsertSessionEvent: () => upsertSessionEvent
|
|
32
33
|
});
|
|
33
34
|
module.exports = __toCommonJS(base_session_service_exports);
|
|
34
35
|
var import_lodash_es = require("lodash-es");
|
|
@@ -70,14 +71,9 @@ const _BaseSessionService = class _BaseSessionService {
|
|
|
70
71
|
if (event.partial) {
|
|
71
72
|
return event;
|
|
72
73
|
}
|
|
73
|
-
event = trimTempDeltaState(event);
|
|
74
74
|
this.updateSessionState({ session, event });
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
session.events[index] = event;
|
|
78
|
-
} else {
|
|
79
|
-
session.events.push(event);
|
|
80
|
-
}
|
|
75
|
+
event = trimTempDeltaState(event);
|
|
76
|
+
upsertSessionEvent(session, event);
|
|
81
77
|
return event;
|
|
82
78
|
}
|
|
83
79
|
/**
|
|
@@ -90,9 +86,6 @@ const _BaseSessionService = class _BaseSessionService {
|
|
|
90
86
|
return;
|
|
91
87
|
}
|
|
92
88
|
for (const [key, value] of Object.entries(event.actions.stateDelta)) {
|
|
93
|
-
if (key.startsWith(import_state.State.TEMP_PREFIX)) {
|
|
94
|
-
continue;
|
|
95
|
-
}
|
|
96
89
|
if (!(0, import_state_write_order.shouldApplyDeltaWrite)(session.state, event.actions.stateDelta, key)) {
|
|
97
90
|
continue;
|
|
98
91
|
}
|
|
@@ -107,6 +100,15 @@ const _BaseSessionService = class _BaseSessionService {
|
|
|
107
100
|
};
|
|
108
101
|
__name(_BaseSessionService, "BaseSessionService");
|
|
109
102
|
let BaseSessionService = _BaseSessionService;
|
|
103
|
+
function upsertSessionEvent(session, event) {
|
|
104
|
+
const index = session.events.findIndex((e) => e.id === event.id);
|
|
105
|
+
if (index >= 0) {
|
|
106
|
+
session.events[index] = event;
|
|
107
|
+
} else {
|
|
108
|
+
session.events.push(event);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
__name(upsertSessionEvent, "upsertSessionEvent");
|
|
110
112
|
function trimTempDeltaState(event) {
|
|
111
113
|
if (!event.actions || !event.actions.stateDelta) {
|
|
112
114
|
return event;
|
|
@@ -149,5 +151,6 @@ __name(mergeStates, "mergeStates");
|
|
|
149
151
|
BaseSessionService,
|
|
150
152
|
mergeStates,
|
|
151
153
|
trimTempDeltaState,
|
|
152
|
-
trimTempState
|
|
154
|
+
trimTempState,
|
|
155
|
+
upsertSessionEvent
|
|
153
156
|
});
|