@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
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
var __defProp = Object.defineProperty;
|
|
9
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
10
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
13
|
+
var __export = (target, all) => {
|
|
14
|
+
for (var name in all)
|
|
15
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
+
};
|
|
17
|
+
var __copyProps = (to, from, except, desc) => {
|
|
18
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
19
|
+
for (let key of __getOwnPropNames(from))
|
|
20
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
21
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
26
|
+
var request_driven_metric_reader_exports = {};
|
|
27
|
+
__export(request_driven_metric_reader_exports, {
|
|
28
|
+
MIN_EXPORT_INTERVAL_MS: () => MIN_EXPORT_INTERVAL_MS,
|
|
29
|
+
RequestDrivenMetricReader: () => RequestDrivenMetricReader,
|
|
30
|
+
isRequestDrivenMetricReader: () => isRequestDrivenMetricReader
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(request_driven_metric_reader_exports);
|
|
33
|
+
var import_api = require("@opentelemetry/api");
|
|
34
|
+
var import_sdk_metrics = require("@opentelemetry/sdk-metrics");
|
|
35
|
+
var import_error_utils = require("../../utils/error_utils.js");
|
|
36
|
+
var import_logger = require("../../utils/logger.js");
|
|
37
|
+
/**
|
|
38
|
+
* @license
|
|
39
|
+
* Copyright 2026 Google LLC
|
|
40
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
41
|
+
*/
|
|
42
|
+
var _a, _b;
|
|
43
|
+
const MIN_EXPORT_INTERVAL_MS = 5e3;
|
|
44
|
+
const FLOOR_ENV_VAR = "GOOGLE_CLOUD_AGENT_ENGINE_METRICS_COLLECTION_INTERVAL_FLOOR_MS";
|
|
45
|
+
const EXPORT_INTERVAL_ENV_VAR = "OTEL_METRIC_EXPORT_INTERVAL";
|
|
46
|
+
const EXPORT_TIMEOUT_ENV_VAR = "OTEL_METRIC_EXPORT_TIMEOUT";
|
|
47
|
+
const DEFAULT_EXPORT_INTERVAL_MS = 6e4;
|
|
48
|
+
const DEFAULT_EXPORT_TIMEOUT_MS = 3e4;
|
|
49
|
+
const OVERDUE_PERIODS = 1.5;
|
|
50
|
+
const INFERENCE_START_HOOK_KEY = /* @__PURE__ */ Symbol.for(
|
|
51
|
+
"google.adk.telemetry.inferenceStartHook"
|
|
52
|
+
);
|
|
53
|
+
const SUPPRESS_TRACING_KEY = (0, import_api.createContextKey)(
|
|
54
|
+
"OpenTelemetry SDK Context Key SUPPRESS_TRACING"
|
|
55
|
+
);
|
|
56
|
+
const EXPORT_RESULT_SUCCESS = 0;
|
|
57
|
+
const REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
|
|
58
|
+
"google.adk.requestDrivenMetricReader"
|
|
59
|
+
);
|
|
60
|
+
function isRequestDrivenMetricReader(obj) {
|
|
61
|
+
return typeof obj === "object" && obj !== null && REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL in obj;
|
|
62
|
+
}
|
|
63
|
+
__name(isRequestDrivenMetricReader, "isRequestDrivenMetricReader");
|
|
64
|
+
const _RequestDrivenMetricReader = class _RequestDrivenMetricReader extends (_b = import_sdk_metrics.MetricReader, _a = REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL, _b) {
|
|
65
|
+
constructor({
|
|
66
|
+
exporter,
|
|
67
|
+
exportIntervalMillis,
|
|
68
|
+
exportTimeoutMillis,
|
|
69
|
+
floorMillis,
|
|
70
|
+
now = /* @__PURE__ */ __name(() => performance.now(), "now")
|
|
71
|
+
}) {
|
|
72
|
+
var _a2, _b2;
|
|
73
|
+
super({
|
|
74
|
+
aggregationSelector: (_a2 = exporter.selectAggregation) == null ? void 0 : _a2.bind(exporter),
|
|
75
|
+
aggregationTemporalitySelector: (_b2 = exporter.selectAggregationTemporality) == null ? void 0 : _b2.bind(exporter)
|
|
76
|
+
});
|
|
77
|
+
this[_a] = true;
|
|
78
|
+
this.inferenceStartHook = /* @__PURE__ */ __name(() => this.onInferenceStart(), "inferenceStartHook");
|
|
79
|
+
this.inFlight = 0;
|
|
80
|
+
this.isShutdown = false;
|
|
81
|
+
this.warnedNoRequest = false;
|
|
82
|
+
this.exporter = exporter;
|
|
83
|
+
this.now = now;
|
|
84
|
+
this.periodMillis = resolveMillis({
|
|
85
|
+
name: EXPORT_INTERVAL_ENV_VAR,
|
|
86
|
+
explicit: exportIntervalMillis,
|
|
87
|
+
fallback: DEFAULT_EXPORT_INTERVAL_MS,
|
|
88
|
+
allowZero: false
|
|
89
|
+
});
|
|
90
|
+
this.exportTimeoutMillis = resolveMillis({
|
|
91
|
+
name: EXPORT_TIMEOUT_ENV_VAR,
|
|
92
|
+
explicit: exportTimeoutMillis,
|
|
93
|
+
fallback: DEFAULT_EXPORT_TIMEOUT_MS,
|
|
94
|
+
allowZero: false
|
|
95
|
+
});
|
|
96
|
+
this.floorMillis = resolveMillis({
|
|
97
|
+
name: FLOOR_ENV_VAR,
|
|
98
|
+
explicit: floorMillis,
|
|
99
|
+
fallback: MIN_EXPORT_INTERVAL_MS,
|
|
100
|
+
allowZero: true
|
|
101
|
+
});
|
|
102
|
+
this.nextDue = this.now() + this.periodMillis;
|
|
103
|
+
}
|
|
104
|
+
/** Marks a request as started, and collects if a guidepost has passed. */
|
|
105
|
+
onRequestStart() {
|
|
106
|
+
try {
|
|
107
|
+
const now = this.now();
|
|
108
|
+
const overlap = this.inFlight >= 1;
|
|
109
|
+
if (!overlap) {
|
|
110
|
+
this.busyStart = now;
|
|
111
|
+
}
|
|
112
|
+
this.inFlight += 1;
|
|
113
|
+
if (!this.canCollect() || !overlap || now < this.nextDue) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
if (this.floorAllows(now)) {
|
|
117
|
+
this.startCollect(now);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
this.nextDue += this.periodMillis;
|
|
121
|
+
} catch (error) {
|
|
122
|
+
import_logger.logger.warn(`Metric request-start hook failed: ${(0, import_error_utils.formatError)(error)}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Marks a request as ended. Collects when no request is left in flight and
|
|
127
|
+
* the floor allows it, and resolves once any running collect has exported.
|
|
128
|
+
*/
|
|
129
|
+
async onRequestEnd() {
|
|
130
|
+
try {
|
|
131
|
+
const now = this.now();
|
|
132
|
+
this.inFlight = Math.max(0, this.inFlight - 1);
|
|
133
|
+
if (this.inFlight === 0 && this.canCollect() && this.floorAllows(now)) {
|
|
134
|
+
this.startCollect(now);
|
|
135
|
+
}
|
|
136
|
+
} catch (error) {
|
|
137
|
+
import_logger.logger.warn(`Metric request-end hook failed: ${(0, import_error_utils.formatError)(error)}`);
|
|
138
|
+
}
|
|
139
|
+
await this.runningCollect;
|
|
140
|
+
}
|
|
141
|
+
/** Collects at a model-call start if the busy period is overdue. */
|
|
142
|
+
onInferenceStart() {
|
|
143
|
+
try {
|
|
144
|
+
if (this.inFlight === 0) {
|
|
145
|
+
if (!this.warnedNoRequest && !this.isShutdown) {
|
|
146
|
+
this.warnedNoRequest = true;
|
|
147
|
+
import_logger.logger.warn(
|
|
148
|
+
"A model call started with no active request in RequestDrivenMetricReader. Wrap each request with agentRuntimeRequestHooks(otelHooks) so metrics are collected and exported while requests hold the CPU."
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const now = this.now();
|
|
154
|
+
if (this.canCollect() && this.isOverdue(now) && this.floorAllows(now)) {
|
|
155
|
+
this.startCollect(now);
|
|
156
|
+
}
|
|
157
|
+
} catch (error) {
|
|
158
|
+
import_logger.logger.warn(`Metric model-call hook failed: ${(0, import_error_utils.formatError)(error)}`);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Registers the model-call start hook when a provider initializes this
|
|
163
|
+
* reader.
|
|
164
|
+
*
|
|
165
|
+
* Because the hook uses a single process-global slot where the last
|
|
166
|
+
* registered reader wins, only a single active reader is supported.
|
|
167
|
+
*/
|
|
168
|
+
onInitialized() {
|
|
169
|
+
Reflect.set(globalThis, INFERENCE_START_HOOK_KEY, this.inferenceStartHook);
|
|
170
|
+
}
|
|
171
|
+
/** Shuts down the reader, exports remaining metrics, and cleans up hooks. */
|
|
172
|
+
async onShutdown() {
|
|
173
|
+
this.isShutdown = true;
|
|
174
|
+
if (Reflect.get(globalThis, INFERENCE_START_HOOK_KEY) === this.inferenceStartHook) {
|
|
175
|
+
Reflect.deleteProperty(globalThis, INFERENCE_START_HOOK_KEY);
|
|
176
|
+
}
|
|
177
|
+
await this.runningCollect;
|
|
178
|
+
await this.runExclusive();
|
|
179
|
+
await this.exporter.shutdown();
|
|
180
|
+
}
|
|
181
|
+
/** Flushes any in-flight and pending metric exports. */
|
|
182
|
+
async onForceFlush() {
|
|
183
|
+
await this.runningCollect;
|
|
184
|
+
await this.runExclusive();
|
|
185
|
+
await this.exporter.forceFlush();
|
|
186
|
+
}
|
|
187
|
+
canCollect() {
|
|
188
|
+
return this.runningCollect === void 0 && !this.isShutdown;
|
|
189
|
+
}
|
|
190
|
+
floorAllows(now) {
|
|
191
|
+
return this.lastCollect === void 0 || now - this.lastCollect >= this.floorMillis;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Returns whether the current busy period has gone 1.5 periods without a
|
|
195
|
+
* collect. A collect from an earlier busy period does not count, so a short
|
|
196
|
+
* request after an idle gap is never overdue: collecting at its model call
|
|
197
|
+
* would set the floor and mute the drain that carries its points.
|
|
198
|
+
*/
|
|
199
|
+
isOverdue(now) {
|
|
200
|
+
var _a2;
|
|
201
|
+
if (this.busyStart === void 0) {
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
const since = Math.max(this.busyStart, (_a2 = this.lastCollect) != null ? _a2 : -Infinity);
|
|
205
|
+
return now - since >= OVERDUE_PERIODS * this.periodMillis;
|
|
206
|
+
}
|
|
207
|
+
/** Starts a collect, and moves the guidepost grid past `now`. */
|
|
208
|
+
startCollect(now) {
|
|
209
|
+
if (now >= this.nextDue) {
|
|
210
|
+
const missed = Math.floor((now - this.nextDue) / this.periodMillis) + 1;
|
|
211
|
+
this.nextDue += missed * this.periodMillis;
|
|
212
|
+
}
|
|
213
|
+
this.lastCollect = now;
|
|
214
|
+
void this.runExclusive();
|
|
215
|
+
}
|
|
216
|
+
/** Runs one collect and export as the running collect. Never rejects. */
|
|
217
|
+
runExclusive() {
|
|
218
|
+
const run = this.collectAndExport().finally(() => {
|
|
219
|
+
if (this.runningCollect === run) {
|
|
220
|
+
this.runningCollect = void 0;
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
this.runningCollect = run;
|
|
224
|
+
return run;
|
|
225
|
+
}
|
|
226
|
+
async collectAndExport() {
|
|
227
|
+
var _a2, _b2;
|
|
228
|
+
try {
|
|
229
|
+
const { resourceMetrics, errors } = await this.collect({
|
|
230
|
+
timeoutMillis: this.exportTimeoutMillis
|
|
231
|
+
});
|
|
232
|
+
for (const error of errors) {
|
|
233
|
+
import_logger.logger.warn(`Metric collection reported: ${(0, import_error_utils.formatError)(error)}`);
|
|
234
|
+
}
|
|
235
|
+
if (resourceMetrics.resource.asyncAttributesPending) {
|
|
236
|
+
await ((_b2 = (_a2 = resourceMetrics.resource).waitForAsyncAttributes) == null ? void 0 : _b2.call(_a2));
|
|
237
|
+
}
|
|
238
|
+
if (resourceMetrics.scopeMetrics.length === 0) {
|
|
239
|
+
return;
|
|
240
|
+
}
|
|
241
|
+
await this.export(resourceMetrics);
|
|
242
|
+
} catch (error) {
|
|
243
|
+
import_logger.logger.warn(`Request-driven metric export failed: ${(0, import_error_utils.formatError)(error)}`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
async export(resourceMetrics) {
|
|
247
|
+
let timer;
|
|
248
|
+
const timedOut = new Promise((_, reject) => {
|
|
249
|
+
timer = setTimeout(() => {
|
|
250
|
+
reject(
|
|
251
|
+
new Error(
|
|
252
|
+
`Metric export timed out after ${this.exportTimeoutMillis} ms.`
|
|
253
|
+
)
|
|
254
|
+
);
|
|
255
|
+
}, this.exportTimeoutMillis);
|
|
256
|
+
});
|
|
257
|
+
const exported = new Promise((resolve) => {
|
|
258
|
+
import_api.context.with(
|
|
259
|
+
import_api.context.active().setValue(SUPPRESS_TRACING_KEY, true),
|
|
260
|
+
() => this.exporter.export(resourceMetrics, resolve)
|
|
261
|
+
);
|
|
262
|
+
});
|
|
263
|
+
try {
|
|
264
|
+
const result = await Promise.race([exported, timedOut]);
|
|
265
|
+
if (result.code !== EXPORT_RESULT_SUCCESS) {
|
|
266
|
+
throw new Error(
|
|
267
|
+
`Metric exporter reported a failure: ${(0, import_error_utils.formatError)(result.error)}`
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
} finally {
|
|
271
|
+
clearTimeout(timer);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
__name(_RequestDrivenMetricReader, "RequestDrivenMetricReader");
|
|
276
|
+
let RequestDrivenMetricReader = _RequestDrivenMetricReader;
|
|
277
|
+
function resolveMillis({
|
|
278
|
+
name,
|
|
279
|
+
explicit,
|
|
280
|
+
fallback,
|
|
281
|
+
allowZero
|
|
282
|
+
}) {
|
|
283
|
+
const raw = explicit != null ? explicit : process.env[name];
|
|
284
|
+
if (raw === void 0) {
|
|
285
|
+
return fallback;
|
|
286
|
+
}
|
|
287
|
+
const value = typeof raw === "number" ? raw : Number(raw.trim() || NaN);
|
|
288
|
+
const inRange = allowZero ? value >= 0 : value > 0;
|
|
289
|
+
if (Number.isFinite(value) && inRange) {
|
|
290
|
+
return value;
|
|
291
|
+
}
|
|
292
|
+
import_logger.logger.warn(
|
|
293
|
+
`Found invalid value for ${name}=${JSON.stringify(raw)}, using default ${fallback}.`
|
|
294
|
+
);
|
|
295
|
+
return fallback;
|
|
296
|
+
}
|
|
297
|
+
__name(resolveMillis, "resolveMillis");
|
|
298
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
299
|
+
0 && (module.exports = {
|
|
300
|
+
MIN_EXPORT_INTERVAL_MS,
|
|
301
|
+
RequestDrivenMetricReader,
|
|
302
|
+
isRequestDrivenMetricReader
|
|
303
|
+
});
|
|
@@ -44,8 +44,24 @@ var import_sdk_trace_node = require("@opentelemetry/sdk-trace-node");
|
|
|
44
44
|
* SPDX-License-Identifier: Apache-2.0
|
|
45
45
|
*/
|
|
46
46
|
function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
|
|
47
|
+
const tracerAlreadySet = isTracerProviderRegistered();
|
|
48
|
+
const meterAlreadySet = isMeterProviderRegistered();
|
|
49
|
+
const loggerAlreadySet = isLoggerProviderRegistered();
|
|
50
|
+
if (tracerAlreadySet && meterAlreadySet && loggerAlreadySet) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const exportersConfig = getOtelExportersConfig();
|
|
54
|
+
if (tracerAlreadySet) {
|
|
55
|
+
exportersConfig.enableTracing = false;
|
|
56
|
+
}
|
|
57
|
+
if (meterAlreadySet) {
|
|
58
|
+
exportersConfig.enableMetrics = false;
|
|
59
|
+
}
|
|
60
|
+
if (loggerAlreadySet) {
|
|
61
|
+
exportersConfig.enableLogging = false;
|
|
62
|
+
}
|
|
47
63
|
const resource = otelResource || getOtelResource();
|
|
48
|
-
const allHooks = [...otelHooksToSetup, getOtelExporters()];
|
|
64
|
+
const allHooks = [...otelHooksToSetup, getOtelExporters(exportersConfig)];
|
|
49
65
|
const spanProcessors = allHooks.flatMap(
|
|
50
66
|
(hooks) => hooks.spanProcessors || []
|
|
51
67
|
);
|
|
@@ -53,21 +69,21 @@ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
|
|
|
53
69
|
const logRecordProcessors = allHooks.flatMap(
|
|
54
70
|
(hooks) => hooks.logRecordProcessors || []
|
|
55
71
|
);
|
|
56
|
-
if (spanProcessors.length > 0) {
|
|
72
|
+
if (!tracerAlreadySet && spanProcessors.length > 0) {
|
|
57
73
|
const tracerProvider = new import_sdk_trace_node.NodeTracerProvider({
|
|
58
74
|
resource,
|
|
59
75
|
spanProcessors
|
|
60
76
|
});
|
|
61
77
|
tracerProvider.register();
|
|
62
78
|
}
|
|
63
|
-
if (metricReaders.length > 0) {
|
|
79
|
+
if (!meterAlreadySet && metricReaders.length > 0) {
|
|
64
80
|
const meterProvider = new import_sdk_metrics.MeterProvider({
|
|
65
81
|
readers: metricReaders,
|
|
66
82
|
resource
|
|
67
83
|
});
|
|
68
84
|
import_api.metrics.setGlobalMeterProvider(meterProvider);
|
|
69
85
|
}
|
|
70
|
-
if (logRecordProcessors.length > 0) {
|
|
86
|
+
if (!loggerAlreadySet && logRecordProcessors.length > 0) {
|
|
71
87
|
const loggerProvider = new import_sdk_logs.LoggerProvider({
|
|
72
88
|
resource,
|
|
73
89
|
processors: logRecordProcessors
|
|
@@ -78,7 +94,7 @@ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
|
|
|
78
94
|
__name(maybeSetOtelProviders, "maybeSetOtelProviders");
|
|
79
95
|
function getOtelResource() {
|
|
80
96
|
return (0, import_resources.detectResources)({
|
|
81
|
-
detectors: []
|
|
97
|
+
detectors: [import_resources.envDetector]
|
|
82
98
|
});
|
|
83
99
|
}
|
|
84
100
|
__name(getOtelResource, "getOtelResource");
|
|
@@ -103,6 +119,57 @@ function getOtelExporters(config = getOtelExportersConfig()) {
|
|
|
103
119
|
};
|
|
104
120
|
}
|
|
105
121
|
__name(getOtelExporters, "getOtelExporters");
|
|
122
|
+
function isTracerProviderRegistered() {
|
|
123
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
124
|
+
const provider = (_b = (_a = import_api.trace).getTracerProvider) == null ? void 0 : _b.call(_a);
|
|
125
|
+
if (!provider) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
const noopDelegate = typeof import_api.ProxyTracerProvider === "function" ? (_d = (_c = new import_api.ProxyTracerProvider()) == null ? void 0 : _c.getDelegate) == null ? void 0 : _d.call(_c) : void 0;
|
|
129
|
+
const getDelegate = provider.getDelegate;
|
|
130
|
+
if (typeof getDelegate === "function") {
|
|
131
|
+
const delegate = getDelegate.call(provider);
|
|
132
|
+
if (!delegate) {
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
if (noopDelegate && delegate === noopDelegate) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
return ((_e = delegate.constructor) == null ? void 0 : _e.name) !== "NoopTracerProvider";
|
|
139
|
+
}
|
|
140
|
+
if (noopDelegate && provider === noopDelegate) {
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
return ((_f = provider.constructor) == null ? void 0 : _f.name) !== "ProxyTracerProvider" && ((_g = provider.constructor) == null ? void 0 : _g.name) !== "NoopTracerProvider";
|
|
144
|
+
}
|
|
145
|
+
__name(isTracerProviderRegistered, "isTracerProviderRegistered");
|
|
146
|
+
function isMeterProviderRegistered() {
|
|
147
|
+
var _a, _b, _c;
|
|
148
|
+
const provider = (_b = (_a = import_api.metrics).getMeterProvider) == null ? void 0 : _b.call(_a);
|
|
149
|
+
if (!provider) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
const noopMeter = typeof import_api.createNoopMeter === "function" ? (0, import_api.createNoopMeter)() : void 0;
|
|
153
|
+
if (noopMeter && typeof provider.getMeter === "function") {
|
|
154
|
+
if (provider.getMeter("adk") === noopMeter) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return ((_c = provider.constructor) == null ? void 0 : _c.name) !== "NoopMeterProvider";
|
|
159
|
+
}
|
|
160
|
+
__name(isMeterProviderRegistered, "isMeterProviderRegistered");
|
|
161
|
+
function isLoggerProviderRegistered() {
|
|
162
|
+
var _a, _b, _c, _d;
|
|
163
|
+
const provider = (_b = (_a = import_api_logs.logs).getLoggerProvider) == null ? void 0 : _b.call(_a);
|
|
164
|
+
if (!provider) {
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
if (typeof provider._getDelegate === "function") {
|
|
168
|
+
return provider._delegate !== void 0;
|
|
169
|
+
}
|
|
170
|
+
return ((_c = provider.constructor) == null ? void 0 : _c.name) !== "ProxyLoggerProvider" && ((_d = provider.constructor) == null ? void 0 : _d.name) !== "NoopLoggerProvider";
|
|
171
|
+
}
|
|
172
|
+
__name(isLoggerProviderRegistered, "isLoggerProviderRegistered");
|
|
106
173
|
// Annotate the CommonJS export names for ESM import in node:
|
|
107
174
|
0 && (module.exports = {
|
|
108
175
|
maybeSetOtelProviders
|
|
@@ -30,6 +30,7 @@ __export(agent_tool_exports, {
|
|
|
30
30
|
});
|
|
31
31
|
module.exports = __toCommonJS(agent_tool_exports);
|
|
32
32
|
var import_genai = require("@google/genai");
|
|
33
|
+
var import_lodash_es = require("lodash-es");
|
|
33
34
|
var import_llm_agent = require("../agents/llm_agent.js");
|
|
34
35
|
var import_in_memory_memory_service = require("../memory/in_memory_memory_service.js");
|
|
35
36
|
var import_runner = require("../runner/runner.js");
|
|
@@ -156,12 +157,18 @@ const _AgentTool = class _AgentTool extends (_b = import_base_tool.BaseTool, _a
|
|
|
156
157
|
memoryService: (_b2 = toolContext.invocationContext.memoryService) != null ? _b2 : new import_in_memory_memory_service.InMemoryMemoryService(),
|
|
157
158
|
credentialService: toolContext.invocationContext.credentialService
|
|
158
159
|
});
|
|
160
|
+
const parentState = toolContext.state.toRecord();
|
|
159
161
|
const session = await runner.sessionService.getOrCreateSession({
|
|
160
162
|
appName: this.agent.name,
|
|
161
163
|
userId: toolContext.invocationContext.userId,
|
|
162
164
|
sessionId: toolContext.invocationContext.session.id,
|
|
163
|
-
state:
|
|
165
|
+
state: parentState
|
|
164
166
|
});
|
|
167
|
+
const stateDelta = Object.fromEntries(
|
|
168
|
+
Object.entries(parentState).filter(
|
|
169
|
+
([key, value]) => !key.startsWith(import_state.State.TEMP_PREFIX) && !(0, import_lodash_es.isEqual)(session.state[key], value)
|
|
170
|
+
)
|
|
171
|
+
);
|
|
165
172
|
if ((_c = toolContext.abortSignal) == null ? void 0 : _c.aborted) {
|
|
166
173
|
return "";
|
|
167
174
|
}
|
|
@@ -170,6 +177,7 @@ const _AgentTool = class _AgentTool extends (_b = import_base_tool.BaseTool, _a
|
|
|
170
177
|
userId: session.userId,
|
|
171
178
|
sessionId: session.id,
|
|
172
179
|
newMessage: content,
|
|
180
|
+
stateDelta: Object.keys(stateDelta).length > 0 ? stateDelta : void 0,
|
|
173
181
|
abortSignal: toolContext.abortSignal
|
|
174
182
|
})) {
|
|
175
183
|
if ((_d = toolContext.abortSignal) == null ? void 0 : _d.aborted) {
|
|
@@ -38,6 +38,7 @@ __export(application_integration_toolset_exports, {
|
|
|
38
38
|
});
|
|
39
39
|
module.exports = __toCommonJS(application_integration_toolset_exports);
|
|
40
40
|
var import_auth_credential = require("../../auth/auth_credential.js");
|
|
41
|
+
var import_case_utils = require("../../utils/case_utils.js");
|
|
41
42
|
var import_experimental = require("../../utils/experimental.js");
|
|
42
43
|
var import_json_utils = require("../../utils/json_utils.js");
|
|
43
44
|
var import_logger = require("../../utils/logger.js");
|
|
@@ -134,8 +135,8 @@ let ApplicationIntegrationToolset = class extends import_base_toolset.BaseToolse
|
|
|
134
135
|
const authCredential = buildAuthCredential(serviceAccountJson);
|
|
135
136
|
const toolsByName = /* @__PURE__ */ new Map();
|
|
136
137
|
if (integration) {
|
|
137
|
-
const
|
|
138
|
-
const spec2 = toOpenApiDocument(
|
|
138
|
+
const specRecord2 = await integrationClient.getOpenApiSpecForIntegration();
|
|
139
|
+
const spec2 = toOpenApiDocument(specRecord2);
|
|
139
140
|
for (const [path, pathItem] of Object.entries((_a = spec2.paths) != null ? _a : {})) {
|
|
140
141
|
const openApiToolset = new import_openapi_toolset.OpenAPIToolset({
|
|
141
142
|
specDict: { ...spec2, paths: { [removeFragment(path)]: pathItem } },
|
|
@@ -162,25 +163,30 @@ let ApplicationIntegrationToolset = class extends import_base_toolset.BaseToolse
|
|
|
162
163
|
"Authentication schema and credentials are not used because authOverrideEnabled is not enabled in the connection."
|
|
163
164
|
);
|
|
164
165
|
}
|
|
165
|
-
const
|
|
166
|
+
const specRecord = await integrationClient.getOpenApiSpecForConnection(
|
|
166
167
|
resolvedToolName,
|
|
167
168
|
toolInstructions
|
|
168
169
|
);
|
|
169
|
-
const spec = toOpenApiDocument(
|
|
170
|
-
|
|
171
|
-
|
|
170
|
+
const spec = toOpenApiDocument(specRecord);
|
|
171
|
+
const operations = new import_openapi_spec_parser.OpenApiSpecParser({
|
|
172
|
+
preservePropertyNames: true
|
|
173
|
+
}).parse(spec);
|
|
172
174
|
for (const openApiOperation of operations) {
|
|
173
175
|
const operationObject = (0, import_json_utils.toJsonObject)(openApiOperation.operation);
|
|
174
176
|
const operation = toStringValue(operationObject["x-operation"]);
|
|
175
177
|
const entity = toStringValue(operationObject["x-entity"]);
|
|
176
178
|
const action = toStringValue(operationObject["x-action"]);
|
|
177
|
-
const restApiTool = (0, import_rest_api_tool.createRestApiTool)(
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
179
|
+
const restApiTool = (0, import_rest_api_tool.createRestApiTool)(
|
|
180
|
+
{
|
|
181
|
+
...openApiOperation,
|
|
182
|
+
name: (0, import_case_utils.toSnakeCaseName)(openApiOperation.name),
|
|
183
|
+
endpoint: {
|
|
184
|
+
...openApiOperation.endpoint,
|
|
185
|
+
path: removeFragment(openApiOperation.endpoint.path)
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
{ preservePropertyNames: true }
|
|
189
|
+
);
|
|
184
190
|
restApiTool.configureAuthScheme(AUTH_SCHEME);
|
|
185
191
|
restApiTool.configureAuthCredential(authCredential);
|
|
186
192
|
const tool = new import_integration_connector_tool.IntegrationConnectorTool({
|
|
@@ -205,26 +211,8 @@ __name(ApplicationIntegrationToolset, "ApplicationIntegrationToolset");
|
|
|
205
211
|
ApplicationIntegrationToolset = __decorateClass([
|
|
206
212
|
import_experimental.experimental
|
|
207
213
|
], ApplicationIntegrationToolset);
|
|
208
|
-
function
|
|
209
|
-
|
|
210
|
-
const schemas = (_a = spec.components) == null ? void 0 : _a.schemas;
|
|
211
|
-
if (!schemas) {
|
|
212
|
-
return;
|
|
213
|
-
}
|
|
214
|
-
for (const [schemaName, schema] of Object.entries(schemas)) {
|
|
215
|
-
if (schemaName.endsWith("_Request") && (0, import_json_utils.isJsonObject)(schema) && (0, import_json_utils.isJsonObject)(schema.properties) && !("query" in schema.properties) && !("dynamicAuthConfig" in schema.properties)) {
|
|
216
|
-
schema.properties = {
|
|
217
|
-
...schema.properties,
|
|
218
|
-
dynamicAuthConfig: {
|
|
219
|
-
$ref: "#/components/schemas/dynamicAuthConfig"
|
|
220
|
-
}
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
__name(addDynamicAuthConfigToConnectionSchemas, "addDynamicAuthConfigToConnectionSchemas");
|
|
226
|
-
function toOpenApiDocument(specDict) {
|
|
227
|
-
return specDict;
|
|
214
|
+
function toOpenApiDocument(specRecord) {
|
|
215
|
+
return specRecord;
|
|
228
216
|
}
|
|
229
217
|
__name(toOpenApiDocument, "toOpenApiDocument");
|
|
230
218
|
function toStringValue(value) {
|
|
@@ -245,7 +233,7 @@ function buildAuthCredential(serviceAccountJson) {
|
|
|
245
233
|
if (!(0, import_json_utils.isJsonObject)(key)) {
|
|
246
234
|
throw new Error("serviceAccountJson must hold a JSON object.");
|
|
247
235
|
}
|
|
248
|
-
const [, authCredential] = (0, import_auth_helpers.
|
|
236
|
+
const [, authCredential] = (0, import_auth_helpers.serviceAccountRecordToSchemeCredential)(key, [
|
|
249
237
|
import_cloud_request.CLOUD_PLATFORM_SCOPE
|
|
250
238
|
]);
|
|
251
239
|
return authCredential;
|