@google/adk 2.4.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 +282 -55
- package/dist/cjs/agents/base_agent.js +111 -68
- package/dist/cjs/agents/functions.js +62 -85
- package/dist/cjs/agents/instructions.js +7 -6
- package/dist/cjs/agents/invocation_context.js +2 -2
- package/dist/cjs/agents/llm_agent.js +105 -95
- package/dist/cjs/agents/processors/content_processor_utils.js +42 -15
- package/dist/cjs/agents/processors/content_request_processor.js +28 -11
- 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 +2 -1
- 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 +128 -9
- package/dist/cjs/cli/utils/path_validation.js +83 -0
- package/dist/cjs/code_executors/container_code_executor.js +158 -36
- package/dist/cjs/common.js +50 -12
- package/dist/cjs/context/compaction_utils.js +19 -0
- package/dist/cjs/events/event.js +7 -3
- package/dist/cjs/features/feature_registry.js +5 -0
- package/dist/cjs/index.js +29 -14
- 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 +45 -21
- 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 +1 -4
- package/dist/cjs/sessions/database_session_service.js +191 -19
- 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/vertex_ai_session_service.js +11 -3
- package/dist/cjs/skills/loader.js +29 -28
- 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 -5
- package/dist/cjs/tools/agent_tool.js +9 -1
- package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +22 -34
- package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +60 -20
- package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +26 -10
- package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +14 -23
- 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_toolset.js +3 -2
- package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
- package/dist/cjs/tools/load_artifacts_tool.js +15 -5
- package/dist/cjs/tools/load_memory_tool.js +2 -5
- 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 +18 -6
- package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +45 -14
- 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 +47 -28
- package/dist/cjs/utils/async_queue.js +37 -3
- package/dist/cjs/utils/client_labels.js +9 -11
- 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 +10 -9
- package/dist/cjs/utils/gemini_schema_util.js +125 -12
- package/dist/cjs/utils/id_provider.js +63 -0
- package/dist/cjs/utils/model_name.js +15 -0
- package/dist/cjs/utils/simple_zod_to_json.js +13 -31
- package/dist/cjs/utils/ssrf_guard.js +46 -16
- 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 +293 -55
- package/dist/esm/agents/base_agent.js +111 -72
- package/dist/esm/agents/functions.js +67 -89
- package/dist/esm/agents/instructions.js +7 -6
- package/dist/esm/agents/invocation_context.js +2 -2
- package/dist/esm/agents/llm_agent.js +111 -100
- package/dist/esm/agents/processors/content_processor_utils.js +42 -15
- package/dist/esm/agents/processors/content_request_processor.js +28 -11
- 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 +2 -1
- 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 +128 -9
- package/dist/esm/cli/utils/path_validation.js +45 -0
- package/dist/esm/code_executors/container_code_executor.js +158 -36
- package/dist/esm/common.js +49 -6
- package/dist/esm/context/compaction_utils.js +19 -0
- package/dist/esm/events/event.js +7 -3
- package/dist/esm/features/feature_registry.js +5 -0
- package/dist/esm/index.js +27 -15
- 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 +45 -21
- 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 +1 -4
- package/dist/esm/sessions/database_session_service.js +191 -19
- 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/vertex_ai_session_service.js +11 -3
- package/dist/esm/skills/loader.js +29 -28
- 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/application_integration_tool/application_integration_toolset.js +23 -35
- package/dist/esm/tools/application_integration_tool/clients/connections_client.js +64 -21
- package/dist/esm/tools/application_integration_tool/clients/integration_client.js +26 -10
- package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +14 -23
- 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_toolset.js +3 -2
- package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
- package/dist/esm/tools/load_artifacts_tool.js +15 -5
- package/dist/esm/tools/load_memory_tool.js +2 -5
- 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 +18 -6
- package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +45 -14
- 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 +47 -28
- package/dist/esm/utils/async_queue.js +37 -3
- package/dist/esm/utils/client_labels.js +9 -11
- 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 +10 -9
- package/dist/esm/utils/gemini_schema_util.js +124 -11
- package/dist/esm/utils/id_provider.js +33 -0
- package/dist/esm/utils/model_name.js +14 -0
- package/dist/esm/utils/simple_zod_to_json.js +13 -31
- package/dist/esm/utils/ssrf_guard.js +55 -15
- 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 +121 -3
- package/dist/types/agents/base_agent.d.ts +2 -0
- package/dist/types/agents/processors/content_processor_utils.d.ts +9 -9
- 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 +19 -2
- package/dist/types/cli/utils/path_validation.d.ts +30 -0
- package/dist/types/code_executors/container_code_executor.d.ts +49 -8
- package/dist/types/common.d.ts +16 -9
- package/dist/types/context/compaction_utils.d.ts +13 -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 +9 -6
- package/dist/types/plugins/base_plugin.d.ts +50 -21
- 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 +0 -2
- package/dist/types/sessions/db/operations.d.ts +2 -1
- package/dist/types/sessions/db/schema.d.ts +5 -3
- 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/application_integration_tool/clients/connections_client.d.ts +13 -4
- package/dist/types/tools/base_toolset.d.ts +1 -1
- 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_toolset.d.ts +2 -0
- package/dist/types/tools/load_artifacts_tool.d.ts +5 -1
- package/dist/types/tools/load_memory_tool.d.ts +13 -7
- 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/operation_parser.d.ts +7 -3
- package/dist/types/tools/toolbox_toolset.d.ts +15 -20
- package/dist/types/utils/async_queue.d.ts +14 -0
- 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 +27 -6
- package/dist/types/utils/id_provider.d.ts +43 -0
- package/dist/types/utils/model_name.d.ts +8 -0
- 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 +86 -88
- package/dist/web/index_web.js.map +4 -4
- package/package.json +13 -15
- package/dist/cjs/telemetry/google_cloud.js +0 -116
- package/dist/cjs/telemetry/tracing.js +0 -393
- package/dist/esm/telemetry/google_cloud.js +0 -99
- package/dist/esm/telemetry/setup.js +0 -88
- package/dist/esm/telemetry/tracing.js +0 -361
- package/dist/types/telemetry/google_cloud.d.ts +0 -9
- package/dist/types/telemetry/tracing.d.ts +0 -143
|
@@ -70,8 +70,16 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
|
|
|
70
70
|
constructor(options = {}) {
|
|
71
71
|
var _a, _b, _c;
|
|
72
72
|
super();
|
|
73
|
+
/** Started session containers, ordered from least to most recently used. */
|
|
73
74
|
this.containers = /* @__PURE__ */ new Map();
|
|
75
|
+
/** Container starts that are still in flight, keyed by session. */
|
|
74
76
|
this.initPromises = /* @__PURE__ */ new Map();
|
|
77
|
+
/**
|
|
78
|
+
* Number of `executeCode` calls in progress per session. A session with a
|
|
79
|
+
* call in progress is never evicted, so a run is not stopped midway.
|
|
80
|
+
*/
|
|
81
|
+
this.activeExecutions = /* @__PURE__ */ new Map();
|
|
82
|
+
this.closing = false;
|
|
75
83
|
if (!options.image && !options.dockerPath) {
|
|
76
84
|
throw new Error(
|
|
77
85
|
"Either image or dockerPath must be set for ContainerCodeExecutor."
|
|
@@ -83,6 +91,12 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
|
|
|
83
91
|
"timeoutSeconds must be greater than 0 for ContainerCodeExecutor."
|
|
84
92
|
);
|
|
85
93
|
}
|
|
94
|
+
this.maxContainers = options.maxContainers;
|
|
95
|
+
if (this.maxContainers !== void 0 && (!Number.isInteger(this.maxContainers) || this.maxContainers < 1)) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
"maxContainers must be a positive integer for ContainerCodeExecutor."
|
|
98
|
+
);
|
|
99
|
+
}
|
|
86
100
|
this.dockerPath = options.dockerPath ? path.resolve(options.dockerPath) : void 0;
|
|
87
101
|
this.containerOptions = {
|
|
88
102
|
image: (_b = options.image) != null ? _b : DEFAULT_IMAGE_TAG,
|
|
@@ -94,6 +108,7 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
|
|
|
94
108
|
defineFrozenFalse(this, "optimizeDataFile");
|
|
95
109
|
}
|
|
96
110
|
async executeCode(params) {
|
|
111
|
+
var _a, _b;
|
|
97
112
|
const { code, language } = params.codeExecutionInput;
|
|
98
113
|
const command = LANGUAGE_RUNTIME_COMMAND_MAP[language];
|
|
99
114
|
if (!command) {
|
|
@@ -102,20 +117,31 @@ let ContainerCodeExecutor = class extends import_base_code_executor.BaseCodeExec
|
|
|
102
117
|
);
|
|
103
118
|
}
|
|
104
119
|
const key = sessionKey(params.invocationContext);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
120
|
+
this.activeExecutions.set(key, ((_a = this.activeExecutions.get(key)) != null ? _a : 0) + 1);
|
|
121
|
+
try {
|
|
122
|
+
const container = await this.ensureContainer(key);
|
|
123
|
+
const { stdout, stderr, exitCode } = await container.execute(
|
|
124
|
+
[...TIMEOUT_COMMAND, String(this.timeoutSeconds), ...command, code],
|
|
125
|
+
this.timeoutSeconds
|
|
126
|
+
);
|
|
127
|
+
import_logger.logger.debug(`Executed ${language} code:
|
|
111
128
|
\`\`\`
|
|
112
129
|
${code}
|
|
113
130
|
\`\`\``);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
131
|
+
return {
|
|
132
|
+
stdout,
|
|
133
|
+
stderr: this.describeExit(stderr, exitCode),
|
|
134
|
+
outputFiles: []
|
|
135
|
+
};
|
|
136
|
+
} finally {
|
|
137
|
+
const remaining = ((_b = this.activeExecutions.get(key)) != null ? _b : 1) - 1;
|
|
138
|
+
if (remaining > 0) {
|
|
139
|
+
this.activeExecutions.set(key, remaining);
|
|
140
|
+
} else {
|
|
141
|
+
this.activeExecutions.delete(key);
|
|
142
|
+
}
|
|
143
|
+
this.evictLeastRecentlyUsed();
|
|
144
|
+
}
|
|
119
145
|
}
|
|
120
146
|
/**
|
|
121
147
|
* Turns a non-zero exit into stderr the model can see. An empty stderr maps
|
|
@@ -135,41 +161,134 @@ ${message}` : message;
|
|
|
135
161
|
return stderr;
|
|
136
162
|
}
|
|
137
163
|
/**
|
|
138
|
-
* Stops and removes every session's container.
|
|
139
|
-
*
|
|
164
|
+
* Stops and removes every session's container. Waits for container starts
|
|
165
|
+
* that are still in flight, so no container is left running after it
|
|
166
|
+
* resolves. Safe to call when none has been started, and concurrent calls
|
|
167
|
+
* share one teardown. Provided for deterministic teardown in tests and app
|
|
140
168
|
* shutdown.
|
|
141
169
|
*/
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
this.
|
|
145
|
-
|
|
146
|
-
|
|
170
|
+
close() {
|
|
171
|
+
var _a;
|
|
172
|
+
(_a = this.closePromise) != null ? _a : this.closePromise = this.stopAll().finally(() => {
|
|
173
|
+
this.closePromise = void 0;
|
|
174
|
+
});
|
|
175
|
+
return this.closePromise;
|
|
176
|
+
}
|
|
177
|
+
async stopAll() {
|
|
178
|
+
this.closing = true;
|
|
179
|
+
try {
|
|
180
|
+
while (this.initPromises.size > 0) {
|
|
181
|
+
await Promise.allSettled([...this.initPromises.values()]);
|
|
182
|
+
}
|
|
183
|
+
const containers = [...this.containers.values()];
|
|
184
|
+
this.containers.clear();
|
|
185
|
+
this.initPromises.clear();
|
|
186
|
+
await Promise.allSettled(containers.map((container) => container.stop()));
|
|
187
|
+
} finally {
|
|
188
|
+
this.closing = false;
|
|
189
|
+
}
|
|
147
190
|
}
|
|
148
|
-
/**
|
|
191
|
+
/**
|
|
192
|
+
* Returns the given session's container, starting it if needed. Concurrent
|
|
193
|
+
* calls for one session share a single in-flight start, and reuse marks the
|
|
194
|
+
* container as the most recently used.
|
|
195
|
+
*/
|
|
149
196
|
ensureContainer(key) {
|
|
150
|
-
|
|
151
|
-
if (
|
|
152
|
-
|
|
197
|
+
const existing = this.containers.get(key);
|
|
198
|
+
if (existing) {
|
|
199
|
+
this.containers.delete(key);
|
|
200
|
+
this.containers.set(key, existing);
|
|
201
|
+
return Promise.resolve(existing);
|
|
202
|
+
}
|
|
203
|
+
const inFlight = this.initPromises.get(key);
|
|
204
|
+
if (inFlight) {
|
|
205
|
+
return inFlight;
|
|
206
|
+
}
|
|
207
|
+
const initPromise = this.initContainer(
|
|
208
|
+
key
|
|
209
|
+
).finally(() => {
|
|
210
|
+
if (this.initPromises.get(key) === initPromise) {
|
|
153
211
|
this.initPromises.delete(key);
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
this.initPromises.set(key, initPromise);
|
|
215
|
+
return initPromise;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Builds the image from `dockerPath` once and shares the build across every
|
|
219
|
+
* session. A failed build is cleared so the next call retries it.
|
|
220
|
+
*/
|
|
221
|
+
ensureImageBuilt() {
|
|
222
|
+
var _a;
|
|
223
|
+
const dockerPath = this.dockerPath;
|
|
224
|
+
if (!dockerPath) {
|
|
225
|
+
return Promise.resolve();
|
|
157
226
|
}
|
|
158
|
-
|
|
227
|
+
(_a = this.buildPromise) != null ? _a : this.buildPromise = new import_docker_container.DockerContainer(this.containerOptions).build(dockerPath).catch((error) => {
|
|
228
|
+
this.buildPromise = void 0;
|
|
229
|
+
throw error;
|
|
230
|
+
});
|
|
231
|
+
return this.buildPromise;
|
|
159
232
|
}
|
|
160
233
|
async initContainer(key) {
|
|
234
|
+
await this.ensureImageBuilt();
|
|
235
|
+
if (this.closing) {
|
|
236
|
+
throw new Error(
|
|
237
|
+
"ContainerCodeExecutor closed during container initialization."
|
|
238
|
+
);
|
|
239
|
+
}
|
|
161
240
|
const container = new import_docker_container.DockerContainer(this.containerOptions);
|
|
162
|
-
|
|
163
|
-
await container.
|
|
241
|
+
try {
|
|
242
|
+
await container.start();
|
|
243
|
+
const { exitCode } = await container.execute(
|
|
244
|
+
["which", "python3"],
|
|
245
|
+
this.timeoutSeconds
|
|
246
|
+
);
|
|
247
|
+
if (exitCode !== 0) {
|
|
248
|
+
throw new Error("python3 is not installed in the container.");
|
|
249
|
+
}
|
|
250
|
+
} catch (error) {
|
|
251
|
+
await container.stop().catch((stopError) => {
|
|
252
|
+
import_logger.logger.debug(
|
|
253
|
+
`Failed to stop container after failed start: ${stopError}`
|
|
254
|
+
);
|
|
255
|
+
});
|
|
256
|
+
throw error;
|
|
257
|
+
}
|
|
258
|
+
if (this.closing) {
|
|
259
|
+
await container.stop().catch((stopError) => {
|
|
260
|
+
import_logger.logger.debug(`Failed to stop container during close: ${stopError}`);
|
|
261
|
+
});
|
|
262
|
+
throw new Error(
|
|
263
|
+
"ContainerCodeExecutor closed during container initialization."
|
|
264
|
+
);
|
|
164
265
|
}
|
|
165
|
-
await container.start();
|
|
166
266
|
this.containers.set(key, container);
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
267
|
+
this.evictLeastRecentlyUsed();
|
|
268
|
+
return container;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Stops the least recently used idle session containers until the count is
|
|
272
|
+
* within `maxContainers`. A session with a call in progress is skipped, which
|
|
273
|
+
* includes the caller that just registered its container; if every session
|
|
274
|
+
* is busy, the overshoot stays until a call ends. The stop is not awaited so
|
|
275
|
+
* the caller is not delayed by another session's teardown.
|
|
276
|
+
*/
|
|
277
|
+
evictLeastRecentlyUsed() {
|
|
278
|
+
if (this.maxContainers === void 0) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
for (const [key, container] of this.containers) {
|
|
282
|
+
if (this.containers.size <= this.maxContainers) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
if (this.activeExecutions.has(key)) {
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
this.containers.delete(key);
|
|
289
|
+
void container.stop().catch((error) => {
|
|
290
|
+
import_logger.logger.debug(`Failed to stop evicted container: ${error}`);
|
|
291
|
+
});
|
|
173
292
|
}
|
|
174
293
|
}
|
|
175
294
|
};
|
|
@@ -178,7 +297,10 @@ ContainerCodeExecutor = __decorateClass([
|
|
|
178
297
|
import_experimental.experimental
|
|
179
298
|
], ContainerCodeExecutor);
|
|
180
299
|
function sessionKey(invocationContext) {
|
|
181
|
-
const session = invocationContext.session;
|
|
300
|
+
const session = invocationContext == null ? void 0 : invocationContext.session;
|
|
301
|
+
if (!session) {
|
|
302
|
+
return "default";
|
|
303
|
+
}
|
|
182
304
|
return JSON.stringify([session.appName, session.userId, session.id]);
|
|
183
305
|
}
|
|
184
306
|
__name(sessionKey, "sessionKey");
|
package/dist/cjs/common.js
CHANGED
|
@@ -44,6 +44,7 @@ __export(common_exports, {
|
|
|
44
44
|
AuthSchemeType: () => import_auth_schemes.AuthSchemeType,
|
|
45
45
|
BaseAgent: () => import_base_agent.BaseAgent,
|
|
46
46
|
BaseCodeExecutor: () => import_base_code_executor.BaseCodeExecutor,
|
|
47
|
+
BaseComputer: () => import_base_computer.BaseComputer,
|
|
47
48
|
BaseEnvironment: () => import_base_environment.BaseEnvironment,
|
|
48
49
|
BaseExampleProvider: () => import_base_example_provider.BaseExampleProvider,
|
|
49
50
|
BaseLlm: () => import_base_llm.BaseLlm,
|
|
@@ -66,6 +67,9 @@ __export(common_exports, {
|
|
|
66
67
|
ChromeModelUnavailableError: () => import_chrome_prompt_llm.ChromeModelUnavailableError,
|
|
67
68
|
CodeExecutionLanguage: () => import_code_execution_utils.CodeExecutionLanguage,
|
|
68
69
|
CodeExecutionResponseProcessor: () => import_code_execution_request_processor.CodeExecutionResponseProcessor,
|
|
70
|
+
ComputerEnvironment: () => import_base_computer.ComputerEnvironment,
|
|
71
|
+
ComputerUseTool: () => import_computer_use_tool.ComputerUseTool,
|
|
72
|
+
ComputerUseToolset: () => import_computer_use_toolset.ComputerUseToolset,
|
|
69
73
|
ConsolidateContextTool: () => import_consolidate_context_tool.ConsolidateContextTool,
|
|
70
74
|
ContentRequestProcessor: () => import_content_request_processor.ContentRequestProcessor,
|
|
71
75
|
Context: () => import_context.Context,
|
|
@@ -150,6 +154,7 @@ __export(common_exports, {
|
|
|
150
154
|
REQUEST_INPUT_FUNCTION_CALL_NAME: () => import_functions.REQUEST_INPUT_FUNCTION_CALL_NAME,
|
|
151
155
|
RESERVED_TOOL_CALL_ERROR_TYPE: () => import_reflect_retry_model_plugin.RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
152
156
|
RESTORED_EVENT_KEY: () => import_internal_metadata.RESTORED_EVENT_KEY,
|
|
157
|
+
RUNNER_CLEANUP_TIMEOUT_MS: () => import_cleanup.RUNNER_CLEANUP_TIMEOUT_MS,
|
|
153
158
|
ReadonlyContext: () => import_readonly_context.ReadonlyContext,
|
|
154
159
|
ReflectAndRetryModelPlugin: () => import_reflect_retry_model_plugin.ReflectAndRetryModelPlugin,
|
|
155
160
|
ReflectAndRetryToolPlugin: () => import_reflect_retry_tool_plugin.ReflectAndRetryToolPlugin,
|
|
@@ -165,6 +170,7 @@ __export(common_exports, {
|
|
|
165
170
|
SequentialAgent: () => import_sequential_agent.SequentialAgent,
|
|
166
171
|
SessionNotFoundError: () => import_session_not_found_error.SessionNotFoundError,
|
|
167
172
|
SessionStateCredentialService: () => import_session_state_credential_service.SessionStateCredentialService,
|
|
173
|
+
StaleSessionError: () => import_stale_session_error.StaleSessionError,
|
|
168
174
|
State: () => import_state.State,
|
|
169
175
|
StateSchemaError: () => import_state.StateSchemaError,
|
|
170
176
|
StreamingMode: () => import_run_config.StreamingMode,
|
|
@@ -190,13 +196,16 @@ __export(common_exports, {
|
|
|
190
196
|
WebMCPToolset: () => import_webmcp_toolset.WebMCPToolset,
|
|
191
197
|
Workflow: () => import_workflow.Workflow,
|
|
192
198
|
WorkflowNode: () => import_workflow.WorkflowNode,
|
|
199
|
+
adaptComputerUseTool: () => import_computer_use_toolset.adaptComputerUseTool,
|
|
193
200
|
appendInstructions: () => import_llm_request.appendInstructions,
|
|
194
201
|
asRunnableRoot: () => import_workflow.asRunnableRoot,
|
|
195
202
|
buildFunctionDeclarationForLangchain: () => import_function_tool2.buildFunctionDeclarationForLangchain,
|
|
196
203
|
buildFunctionDeclarationForParamsForCrewai: () => import_function_tool2.buildFunctionDeclarationForParamsForCrewai,
|
|
197
204
|
buildFunctionDeclarationUtil: () => import_function_tool2.buildFunctionDeclarationUtil,
|
|
205
|
+
closeRunners: () => import_cleanup.closeRunners,
|
|
198
206
|
commonPrefixOf: () => import_workflow.commonPrefixOf,
|
|
199
207
|
convertSessionToEvalFormat: () => import_evals.convertSessionToEvalFormat,
|
|
208
|
+
convertSessionToEvalInvocations: () => import_evals.convertSessionToEvalInvocations,
|
|
200
209
|
createEmptyState: () => import_evals.createEmptyState,
|
|
201
210
|
createEvent: () => import_event.createEvent,
|
|
202
211
|
createEventActions: () => import_event_actions.createEventActions,
|
|
@@ -229,10 +238,12 @@ __export(common_exports, {
|
|
|
229
238
|
handleFunctionCallsLive: () => import_functions.handleFunctionCallsLive,
|
|
230
239
|
hasThoughts: () => import_event.hasThoughts,
|
|
231
240
|
hasTrailingCodeExecutionResult: () => import_event.hasTrailingCodeExecutionResult,
|
|
241
|
+
injectSessionState: () => import_instructions.injectSessionState,
|
|
232
242
|
isAgentTool: () => import_agent_tool.isAgentTool,
|
|
233
243
|
isApp: () => import_app.isApp,
|
|
234
244
|
isAuthCredential: () => import_auth_credential.isAuthCredential,
|
|
235
245
|
isBaseAgent: () => import_base_agent.isBaseAgent,
|
|
246
|
+
isBaseComputer: () => import_base_computer.isBaseComputer,
|
|
236
247
|
isBaseExampleProvider: () => import_base_example_provider.isBaseExampleProvider,
|
|
237
248
|
isBaseLlm: () => import_base_llm.isBaseLlm,
|
|
238
249
|
isBasePlanner: () => import_base_planner.isBasePlanner,
|
|
@@ -241,6 +252,8 @@ __export(common_exports, {
|
|
|
241
252
|
isBaseToolset: () => import_base_toolset.isBaseToolset,
|
|
242
253
|
isBuiltInPlanner: () => import_built_in_planner.isBuiltInPlanner,
|
|
243
254
|
isCompactedEvent: () => import_compacted_event.isCompactedEvent,
|
|
255
|
+
isComputerUseTool: () => import_computer_use_tool.isComputerUseTool,
|
|
256
|
+
isComputerUseToolset: () => import_computer_use_toolset.isComputerUseToolset,
|
|
244
257
|
isFinalResponse: () => import_event.isFinalResponse,
|
|
245
258
|
isFunctionTool: () => import_function_tool.isFunctionTool,
|
|
246
259
|
isGemini2OrAbove: () => import_model_name.isGemini2OrAbove,
|
|
@@ -258,6 +271,7 @@ __export(common_exports, {
|
|
|
258
271
|
isNodeState: () => import_workflow.isNodeState,
|
|
259
272
|
isNodeTimeoutError: () => import_workflow.isNodeTimeoutError,
|
|
260
273
|
isParallelAgent: () => import_parallel_agent.isParallelAgent,
|
|
274
|
+
isParallelWorker: () => import_workflow.isParallelWorker,
|
|
261
275
|
isRequestInput: () => import_workflow.isRequestInput,
|
|
262
276
|
isRoutableLlmAgent: () => import_runner.isRoutableLlmAgent,
|
|
263
277
|
isRoutedAgent: () => import_routed_agent.isRoutedAgent,
|
|
@@ -266,6 +280,7 @@ __export(common_exports, {
|
|
|
266
280
|
isScratchpadEvent: () => import_compacted_event.isScratchpadEvent,
|
|
267
281
|
isSequentialAgent: () => import_sequential_agent.isSequentialAgent,
|
|
268
282
|
isSessionArtifactService: () => import_session_artifact_service.isSessionArtifactService,
|
|
283
|
+
isStaleSessionError: () => import_stale_session_error.isStaleSessionError,
|
|
269
284
|
isStateSchemaError: () => import_state.isStateSchemaError,
|
|
270
285
|
isToolNotFound: () => import_functions.isToolNotFound,
|
|
271
286
|
isToolboxToolset: () => import_toolbox_toolset.isToolboxToolset,
|
|
@@ -275,6 +290,8 @@ __export(common_exports, {
|
|
|
275
290
|
isZodSchema: () => import_simple_zod_to_json.isZodSchema,
|
|
276
291
|
logger: () => import_logger.logger,
|
|
277
292
|
markRestored: () => import_internal_metadata.markRestored,
|
|
293
|
+
mergeStates: () => import_base_session_service2.mergeStates,
|
|
294
|
+
newId: () => import_id_provider.newId,
|
|
278
295
|
node: () => import_workflow.node,
|
|
279
296
|
normalizeRetryExceptions: () => import_workflow.normalizeRetryExceptions,
|
|
280
297
|
populateClientFunctionCallId: () => import_event.populateClientFunctionCallId,
|
|
@@ -287,9 +304,11 @@ __export(common_exports, {
|
|
|
287
304
|
requestInputTool: () => import_request_input_tool.requestInputTool,
|
|
288
305
|
requireAgent: () => import_invocation_context.requireAgent,
|
|
289
306
|
requiresUserInput: () => import_user_input_request.requiresUserInput,
|
|
307
|
+
resetIdProvider: () => import_id_provider.resetIdProvider,
|
|
290
308
|
resetLogger: () => import_logger.resetLogger,
|
|
291
309
|
resolveScopeKey: () => import_reflect_retry_utils.resolveScopeKey,
|
|
292
310
|
runWithClientLabel: () => import_client_labels.runWithClientLabel,
|
|
311
|
+
setIdProvider: () => import_id_provider.setIdProvider,
|
|
293
312
|
setLogLevel: () => import_logger.setLogLevel,
|
|
294
313
|
setLogger: () => import_logger.setLogger,
|
|
295
314
|
stringifyContent: () => import_event.stringifyContent,
|
|
@@ -298,6 +317,8 @@ __export(common_exports, {
|
|
|
298
317
|
toJsonSchema: () => import_schema.toJsonSchema,
|
|
299
318
|
toSnakeCaseName: () => import_case_utils.toSnakeCaseName,
|
|
300
319
|
toStructuredEvents: () => import_structured_events.toStructuredEvents,
|
|
320
|
+
trimTempDeltaState: () => import_base_session_service2.trimTempDeltaState,
|
|
321
|
+
trimTempState: () => import_base_session_service2.trimTempState,
|
|
301
322
|
validateAppName: () => import_app.validateAppName,
|
|
302
323
|
version: () => import_version.version,
|
|
303
324
|
zodObjectToSchema: () => import_simple_zod_to_json.zodObjectToSchema
|
|
@@ -307,6 +328,7 @@ var import_active_streaming_tool = require("./agents/active_streaming_tool.js");
|
|
|
307
328
|
var import_base_agent = require("./agents/base_agent.js");
|
|
308
329
|
var import_context = require("./agents/context.js");
|
|
309
330
|
var import_functions = require("./agents/functions.js");
|
|
331
|
+
var import_instructions = require("./agents/instructions.js");
|
|
310
332
|
var import_invocation_context = require("./agents/invocation_context.js");
|
|
311
333
|
var import_langgraph_agent = require("./agents/langgraph_agent.js");
|
|
312
334
|
var import_live_request_queue = require("./agents/live_request_queue.js");
|
|
@@ -387,11 +409,15 @@ var import_runner = require("./runner/runner.js");
|
|
|
387
409
|
var import_base_session_service = require("./sessions/base_session_service.js");
|
|
388
410
|
var import_in_memory_session_service = require("./sessions/in_memory_session_service.js");
|
|
389
411
|
var import_session = require("./sessions/session.js");
|
|
412
|
+
var import_stale_session_error = require("./sessions/stale_session_error.js");
|
|
390
413
|
var import_state = require("./sessions/state.js");
|
|
391
414
|
var import_agent_tool = require("./tools/agent_tool.js");
|
|
392
415
|
var import_base_tool = require("./tools/base_tool.js");
|
|
393
416
|
var import_base_toolset = require("./tools/base_toolset.js");
|
|
394
417
|
var import_built_in_tool = require("./tools/built_in_tool.js");
|
|
418
|
+
var import_base_computer = require("./tools/computer_use/base_computer.js");
|
|
419
|
+
var import_computer_use_tool = require("./tools/computer_use/computer_use_tool.js");
|
|
420
|
+
var import_computer_use_toolset = require("./tools/computer_use/computer_use_toolset.js");
|
|
395
421
|
var import_consolidate_context_tool = require("./tools/consolidate_context_tool.js");
|
|
396
422
|
var import_enterprise_web_search_tool = require("./tools/enterprise_web_search_tool.js");
|
|
397
423
|
var import_example_tool = require("./tools/example_tool.js");
|
|
@@ -422,6 +448,7 @@ var import_case_utils = require("./utils/case_utils.js");
|
|
|
422
448
|
var import_client_labels = require("./utils/client_labels.js");
|
|
423
449
|
var import_gemini_schema_util = require("./utils/gemini_schema_util.js");
|
|
424
450
|
var import_genai_schema_to_json = require("./utils/genai_schema_to_json.js");
|
|
451
|
+
var import_id_provider = require("./utils/id_provider.js");
|
|
425
452
|
var import_logger = require("./utils/logger.js");
|
|
426
453
|
var import_model_name = require("./utils/model_name.js");
|
|
427
454
|
var import_schema = require("./utils/schema.js");
|
|
@@ -435,15 +462,11 @@ var import_search_skills_tool = require("./tools/skill/search_skills_tool.js");
|
|
|
435
462
|
__reExport(common_exports, require("./artifacts/base_artifact_service.js"), module.exports);
|
|
436
463
|
__reExport(common_exports, require("./features/feature_registry.js"), module.exports);
|
|
437
464
|
__reExport(common_exports, require("./memory/base_memory_service.js"), module.exports);
|
|
438
|
-
|
|
465
|
+
var import_base_session_service2 = require("./sessions/base_session_service.js");
|
|
439
466
|
__reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
440
467
|
var import_workflow = require("./workflow/index.js");
|
|
441
468
|
var import_app = require("./apps/app.js");
|
|
442
|
-
|
|
443
|
-
__reExport(common_exports, require("./features/feature_registry.js"), module.exports);
|
|
444
|
-
__reExport(common_exports, require("./memory/base_memory_service.js"), module.exports);
|
|
445
|
-
__reExport(common_exports, require("./sessions/base_session_service.js"), module.exports);
|
|
446
|
-
__reExport(common_exports, require("./tools/base_tool.js"), module.exports);
|
|
469
|
+
var import_cleanup = require("./cli/utils/cleanup.js");
|
|
447
470
|
var import_evals = require("./cli/utils/evals.js");
|
|
448
471
|
var import_function_tool2 = require("./tools/function_tool.js");
|
|
449
472
|
var import_base_retrieval_tool2 = require("./tools/retrieval/base_retrieval_tool.js");
|
|
@@ -474,6 +497,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
474
497
|
AuthSchemeType,
|
|
475
498
|
BaseAgent,
|
|
476
499
|
BaseCodeExecutor,
|
|
500
|
+
BaseComputer,
|
|
477
501
|
BaseEnvironment,
|
|
478
502
|
BaseExampleProvider,
|
|
479
503
|
BaseLlm,
|
|
@@ -496,6 +520,9 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
496
520
|
ChromeModelUnavailableError,
|
|
497
521
|
CodeExecutionLanguage,
|
|
498
522
|
CodeExecutionResponseProcessor,
|
|
523
|
+
ComputerEnvironment,
|
|
524
|
+
ComputerUseTool,
|
|
525
|
+
ComputerUseToolset,
|
|
499
526
|
ConsolidateContextTool,
|
|
500
527
|
ContentRequestProcessor,
|
|
501
528
|
Context,
|
|
@@ -580,6 +607,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
580
607
|
REQUEST_INPUT_FUNCTION_CALL_NAME,
|
|
581
608
|
RESERVED_TOOL_CALL_ERROR_TYPE,
|
|
582
609
|
RESTORED_EVENT_KEY,
|
|
610
|
+
RUNNER_CLEANUP_TIMEOUT_MS,
|
|
583
611
|
ReadonlyContext,
|
|
584
612
|
ReflectAndRetryModelPlugin,
|
|
585
613
|
ReflectAndRetryToolPlugin,
|
|
@@ -595,6 +623,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
595
623
|
SequentialAgent,
|
|
596
624
|
SessionNotFoundError,
|
|
597
625
|
SessionStateCredentialService,
|
|
626
|
+
StaleSessionError,
|
|
598
627
|
State,
|
|
599
628
|
StateSchemaError,
|
|
600
629
|
StreamingMode,
|
|
@@ -620,13 +649,16 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
620
649
|
WebMCPToolset,
|
|
621
650
|
Workflow,
|
|
622
651
|
WorkflowNode,
|
|
652
|
+
adaptComputerUseTool,
|
|
623
653
|
appendInstructions,
|
|
624
654
|
asRunnableRoot,
|
|
625
655
|
buildFunctionDeclarationForLangchain,
|
|
626
656
|
buildFunctionDeclarationForParamsForCrewai,
|
|
627
657
|
buildFunctionDeclarationUtil,
|
|
658
|
+
closeRunners,
|
|
628
659
|
commonPrefixOf,
|
|
629
660
|
convertSessionToEvalFormat,
|
|
661
|
+
convertSessionToEvalInvocations,
|
|
630
662
|
createEmptyState,
|
|
631
663
|
createEvent,
|
|
632
664
|
createEventActions,
|
|
@@ -659,10 +691,12 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
659
691
|
handleFunctionCallsLive,
|
|
660
692
|
hasThoughts,
|
|
661
693
|
hasTrailingCodeExecutionResult,
|
|
694
|
+
injectSessionState,
|
|
662
695
|
isAgentTool,
|
|
663
696
|
isApp,
|
|
664
697
|
isAuthCredential,
|
|
665
698
|
isBaseAgent,
|
|
699
|
+
isBaseComputer,
|
|
666
700
|
isBaseExampleProvider,
|
|
667
701
|
isBaseLlm,
|
|
668
702
|
isBasePlanner,
|
|
@@ -671,6 +705,8 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
671
705
|
isBaseToolset,
|
|
672
706
|
isBuiltInPlanner,
|
|
673
707
|
isCompactedEvent,
|
|
708
|
+
isComputerUseTool,
|
|
709
|
+
isComputerUseToolset,
|
|
674
710
|
isFinalResponse,
|
|
675
711
|
isFunctionTool,
|
|
676
712
|
isGemini2OrAbove,
|
|
@@ -688,6 +724,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
688
724
|
isNodeState,
|
|
689
725
|
isNodeTimeoutError,
|
|
690
726
|
isParallelAgent,
|
|
727
|
+
isParallelWorker,
|
|
691
728
|
isRequestInput,
|
|
692
729
|
isRoutableLlmAgent,
|
|
693
730
|
isRoutedAgent,
|
|
@@ -696,6 +733,7 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
696
733
|
isScratchpadEvent,
|
|
697
734
|
isSequentialAgent,
|
|
698
735
|
isSessionArtifactService,
|
|
736
|
+
isStaleSessionError,
|
|
699
737
|
isStateSchemaError,
|
|
700
738
|
isToolNotFound,
|
|
701
739
|
isToolboxToolset,
|
|
@@ -705,6 +743,8 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
705
743
|
isZodSchema,
|
|
706
744
|
logger,
|
|
707
745
|
markRestored,
|
|
746
|
+
mergeStates,
|
|
747
|
+
newId,
|
|
708
748
|
node,
|
|
709
749
|
normalizeRetryExceptions,
|
|
710
750
|
populateClientFunctionCallId,
|
|
@@ -717,9 +757,11 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
717
757
|
requestInputTool,
|
|
718
758
|
requireAgent,
|
|
719
759
|
requiresUserInput,
|
|
760
|
+
resetIdProvider,
|
|
720
761
|
resetLogger,
|
|
721
762
|
resolveScopeKey,
|
|
722
763
|
runWithClientLabel,
|
|
764
|
+
setIdProvider,
|
|
723
765
|
setLogLevel,
|
|
724
766
|
setLogger,
|
|
725
767
|
stringifyContent,
|
|
@@ -728,17 +770,13 @@ var import_toolbox_toolset = require("./tools/toolbox_toolset.js");
|
|
|
728
770
|
toJsonSchema,
|
|
729
771
|
toSnakeCaseName,
|
|
730
772
|
toStructuredEvents,
|
|
773
|
+
trimTempDeltaState,
|
|
774
|
+
trimTempState,
|
|
731
775
|
validateAppName,
|
|
732
776
|
version,
|
|
733
777
|
zodObjectToSchema,
|
|
734
778
|
...require("./artifacts/base_artifact_service.js"),
|
|
735
779
|
...require("./features/feature_registry.js"),
|
|
736
780
|
...require("./memory/base_memory_service.js"),
|
|
737
|
-
...require("./sessions/base_session_service.js"),
|
|
738
|
-
...require("./tools/base_tool.js"),
|
|
739
|
-
...require("./artifacts/base_artifact_service.js"),
|
|
740
|
-
...require("./features/feature_registry.js"),
|
|
741
|
-
...require("./memory/base_memory_service.js"),
|
|
742
|
-
...require("./sessions/base_session_service.js"),
|
|
743
781
|
...require("./tools/base_tool.js")
|
|
744
782
|
});
|
|
@@ -65,6 +65,25 @@ function calculateRetainStartIndex(rawEvents, eventRetentionSize) {
|
|
|
65
65
|
break;
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
const latestCalls = /* @__PURE__ */ new Map();
|
|
69
|
+
const callDependencies = rawEvents.map((event, index) => {
|
|
70
|
+
let earliestCall = index;
|
|
71
|
+
for (const response of (0, import_event.getFunctionResponses)(event)) {
|
|
72
|
+
if (response.id === void 0) continue;
|
|
73
|
+
const callIndex = latestCalls.get(response.id);
|
|
74
|
+
if (callIndex !== void 0) {
|
|
75
|
+
earliestCall = Math.min(earliestCall, callIndex);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
for (const call of (0, import_event.getFunctionCalls)(event)) {
|
|
79
|
+
if (call.id === void 0) continue;
|
|
80
|
+
latestCalls.set(call.id, index);
|
|
81
|
+
}
|
|
82
|
+
return earliestCall;
|
|
83
|
+
});
|
|
84
|
+
for (let index = rawEvents.length - 1; index >= retainStartIndex; index--) {
|
|
85
|
+
retainStartIndex = Math.min(retainStartIndex, callDependencies[index]);
|
|
86
|
+
}
|
|
68
87
|
return retainStartIndex;
|
|
69
88
|
}
|
|
70
89
|
__name(calculateRetainStartIndex, "calculateRetainStartIndex");
|
package/dist/cjs/events/event.js
CHANGED
|
@@ -43,7 +43,7 @@ __export(event_exports, {
|
|
|
43
43
|
transformToSnakeCaseEvent: () => transformToSnakeCaseEvent
|
|
44
44
|
});
|
|
45
45
|
module.exports = __toCommonJS(event_exports);
|
|
46
|
-
var
|
|
46
|
+
var import_id_provider = require("../utils/id_provider.js");
|
|
47
47
|
var import_object_notation_utils = require("../utils/object_notation_utils.js");
|
|
48
48
|
var import_event_actions = require("./event_actions.js");
|
|
49
49
|
/**
|
|
@@ -87,7 +87,7 @@ function getFunctionCalls(event) {
|
|
|
87
87
|
__name(getFunctionCalls, "getFunctionCalls");
|
|
88
88
|
const AF_FUNCTION_CALL_ID_PREFIX = "adk-";
|
|
89
89
|
function generateClientFunctionCallId() {
|
|
90
|
-
return `${AF_FUNCTION_CALL_ID_PREFIX}${(0,
|
|
90
|
+
return `${AF_FUNCTION_CALL_ID_PREFIX}${(0, import_id_provider.newId)()}`;
|
|
91
91
|
}
|
|
92
92
|
__name(generateClientFunctionCallId, "generateClientFunctionCallId");
|
|
93
93
|
function populateClientFunctionCallId(modelResponseEvent) {
|
|
@@ -169,13 +169,17 @@ function isEvent(obj) {
|
|
|
169
169
|
}
|
|
170
170
|
__name(isEvent, "isEvent");
|
|
171
171
|
function createNewEventId() {
|
|
172
|
+
return (0, import_id_provider.newIdOr)(createRandomEventId);
|
|
173
|
+
}
|
|
174
|
+
__name(createNewEventId, "createNewEventId");
|
|
175
|
+
function createRandomEventId() {
|
|
172
176
|
let id = "";
|
|
173
177
|
for (let i = 0; i < 8; i++) {
|
|
174
178
|
id += ASCII_LETTERS_AND_NUMBERS[Math.floor(Math.random() * ASCII_LETTERS_AND_NUMBERS.length)];
|
|
175
179
|
}
|
|
176
180
|
return id;
|
|
177
181
|
}
|
|
178
|
-
__name(
|
|
182
|
+
__name(createRandomEventId, "createRandomEventId");
|
|
179
183
|
const PRESERVE_KEYS_CAMEL_CASE = [
|
|
180
184
|
"actions.stateDelta",
|
|
181
185
|
"actions.artifactDelta",
|
|
@@ -42,6 +42,7 @@ var import_logger = require("../utils/logger.js");
|
|
|
42
42
|
* SPDX-License-Identifier: Apache-2.0
|
|
43
43
|
*/
|
|
44
44
|
var FeatureName = /* @__PURE__ */ ((FeatureName2) => {
|
|
45
|
+
FeatureName2["COMPUTER_USE"] = "COMPUTER_USE";
|
|
45
46
|
FeatureName2["PROGRESSIVE_SSE_STREAMING"] = "PROGRESSIVE_SSE_STREAMING";
|
|
46
47
|
return FeatureName2;
|
|
47
48
|
})(FeatureName || {});
|
|
@@ -52,6 +53,10 @@ var FeatureStage = /* @__PURE__ */ ((FeatureStage2) => {
|
|
|
52
53
|
return FeatureStage2;
|
|
53
54
|
})(FeatureStage || {});
|
|
54
55
|
const FEATURE_REGISTRY = {
|
|
56
|
+
["COMPUTER_USE" /* COMPUTER_USE */]: {
|
|
57
|
+
stage: "experimental" /* EXPERIMENTAL */,
|
|
58
|
+
defaultOn: true
|
|
59
|
+
},
|
|
55
60
|
["PROGRESSIVE_SSE_STREAMING" /* PROGRESSIVE_SSE_STREAMING */]: {
|
|
56
61
|
stage: "experimental" /* EXPERIMENTAL */,
|
|
57
62
|
defaultOn: false
|