@google/adk 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +17 -2
  2. package/dist/cjs/a2a/a2a_remote_agent_utils.js +8 -4
  3. package/dist/cjs/a2a/agent_card.js +5 -81
  4. package/dist/cjs/a2a/agent_to_a2a.js +7 -0
  5. package/dist/cjs/a2a/event_converter_utils.js +10 -3
  6. package/dist/cjs/agents/agent_engine_client.js +399 -0
  7. package/dist/cjs/agents/base_agent.js +127 -68
  8. package/dist/cjs/agents/functions.js +64 -59
  9. package/dist/cjs/agents/instructions.js +8 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +124 -101
  12. package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
  13. package/dist/cjs/agents/processors/code_execution_request_processor.js +8 -0
  14. package/dist/cjs/agents/processors/content_processor_utils.js +72 -17
  15. package/dist/cjs/agents/processors/content_request_processor.js +51 -2
  16. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  17. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  18. package/dist/cjs/agents/processors/nl_planning_processor.js +13 -3
  19. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  20. package/dist/cjs/cli/cli_eval.js +884 -17
  21. package/dist/cjs/cli/utils/cleanup.js +84 -0
  22. package/dist/cjs/cli/utils/envs.js +33 -2
  23. package/dist/cjs/cli/utils/evals.js +75 -8
  24. package/dist/cjs/cli/utils/logs.js +134 -15
  25. package/dist/cjs/cli/utils/path_validation.js +83 -0
  26. package/dist/cjs/code_executors/container_code_executor.js +171 -38
  27. package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
  28. package/dist/cjs/common.js +59 -32
  29. package/dist/cjs/context/compaction_utils.js +19 -0
  30. package/dist/cjs/errors/input_validation_error.js +3 -2
  31. package/dist/cjs/events/event.js +7 -3
  32. package/dist/cjs/features/feature_registry.js +5 -0
  33. package/dist/cjs/index.js +34 -12
  34. package/dist/cjs/models/google_llm.js +33 -2
  35. package/dist/cjs/models/interactions_utils.js +3 -0
  36. package/dist/cjs/plugins/base_plugin.js +54 -40
  37. package/dist/cjs/plugins/plugin_manager.js +27 -0
  38. package/dist/cjs/runner/runner.js +306 -189
  39. package/dist/cjs/sessions/base_session_service.js +15 -12
  40. package/dist/cjs/sessions/database_session_service.js +232 -38
  41. package/dist/cjs/sessions/db/operations.js +70 -1
  42. package/dist/cjs/sessions/db/schema.js +4 -0
  43. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  44. package/dist/cjs/sessions/stale_session_error.js +59 -0
  45. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  46. package/dist/cjs/skills/loader.js +76 -41
  47. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  48. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  49. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  50. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  51. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  52. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  53. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  54. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  55. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  56. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  57. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  58. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  59. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  60. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  61. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  62. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  63. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  64. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  65. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  66. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  67. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  68. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  69. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  70. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  71. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  72. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  73. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  74. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  75. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  76. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  77. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  78. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  79. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  80. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -6
  81. package/dist/cjs/tools/agent_tool.js +9 -1
  82. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +18 -23
  83. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +109 -43
  84. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +222 -114
  85. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +34 -14
  86. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +175 -0
  87. package/dist/cjs/tools/base_toolset.js +1 -1
  88. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  89. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  90. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  91. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  92. package/dist/cjs/tools/function_tool.js +15 -5
  93. package/dist/cjs/tools/google_api_tool/google_api_tool.js +4 -1
  94. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +174 -0
  95. package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
  96. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  97. package/dist/cjs/tools/google_api_tool/index.js +20 -23
  98. package/dist/cjs/tools/load_artifacts_tool.js +27 -11
  99. package/dist/cjs/tools/load_memory_tool.js +14 -15
  100. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  101. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  102. package/dist/cjs/tools/mcp/mcp_toolset.js +19 -20
  103. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  104. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  105. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  106. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  107. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
  108. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +57 -10
  109. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  110. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  111. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  112. package/dist/cjs/tools/toolbox_toolset.js +193 -0
  113. package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
  114. package/dist/cjs/utils/async_queue.js +37 -3
  115. package/dist/cjs/utils/client_labels.js +17 -2
  116. package/dist/cjs/utils/env_aware_utils.js +13 -7
  117. package/dist/cjs/utils/error_utils.js +40 -2
  118. package/dist/cjs/utils/failover_utils.js +11 -10
  119. package/dist/cjs/utils/gemini_schema_util.js +145 -14
  120. package/dist/cjs/utils/id_provider.js +63 -0
  121. package/dist/cjs/utils/logger_node.js +4 -0
  122. package/dist/cjs/utils/model_name.js +15 -0
  123. package/dist/cjs/utils/output_schema_utils.js +5 -2
  124. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  125. package/dist/cjs/utils/ssrf_guard.js +46 -16
  126. package/dist/cjs/utils/task.js +1 -1
  127. package/dist/cjs/version.js +1 -1
  128. package/dist/cjs/workflow/index.js +2 -0
  129. package/dist/cjs/workflow/node_runner.js +24 -80
  130. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  131. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  132. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  133. package/dist/cjs/workflow/workflow.js +12 -12
  134. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  135. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  136. package/dist/esm/a2a/agent_card.js +5 -83
  137. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  138. package/dist/esm/a2a/event_converter_utils.js +10 -3
  139. package/dist/esm/agents/agent_engine_client.js +382 -0
  140. package/dist/esm/agents/base_agent.js +127 -72
  141. package/dist/esm/agents/functions.js +69 -63
  142. package/dist/esm/agents/instructions.js +8 -6
  143. package/dist/esm/agents/invocation_context.js +2 -2
  144. package/dist/esm/agents/llm_agent.js +130 -106
  145. package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
  146. package/dist/esm/agents/processors/code_execution_request_processor.js +8 -0
  147. package/dist/esm/agents/processors/content_processor_utils.js +72 -17
  148. package/dist/esm/agents/processors/content_request_processor.js +51 -2
  149. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  150. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  151. package/dist/esm/agents/processors/nl_planning_processor.js +13 -3
  152. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  153. package/dist/esm/cli/cli_eval.js +880 -17
  154. package/dist/esm/cli/utils/cleanup.js +56 -0
  155. package/dist/esm/cli/utils/envs.js +33 -2
  156. package/dist/esm/cli/utils/evals.js +74 -8
  157. package/dist/esm/cli/utils/logs.js +132 -13
  158. package/dist/esm/cli/utils/path_validation.js +45 -0
  159. package/dist/esm/code_executors/container_code_executor.js +171 -38
  160. package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
  161. package/dist/esm/common.js +59 -19
  162. package/dist/esm/context/compaction_utils.js +19 -0
  163. package/dist/esm/errors/input_validation_error.js +3 -2
  164. package/dist/esm/events/event.js +7 -3
  165. package/dist/esm/features/feature_registry.js +5 -0
  166. package/dist/esm/index.js +36 -10
  167. package/dist/esm/models/google_llm.js +33 -2
  168. package/dist/esm/models/interactions_utils.js +3 -0
  169. package/dist/esm/plugins/base_plugin.js +54 -40
  170. package/dist/esm/plugins/plugin_manager.js +27 -0
  171. package/dist/esm/runner/runner.js +310 -192
  172. package/dist/esm/sessions/base_session_service.js +13 -11
  173. package/dist/esm/sessions/database_session_service.js +231 -38
  174. package/dist/esm/sessions/db/operations.js +70 -1
  175. package/dist/esm/sessions/db/schema.js +4 -0
  176. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  177. package/dist/esm/sessions/stale_session_error.js +31 -0
  178. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  179. package/dist/esm/skills/loader.js +76 -41
  180. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  181. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  182. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  183. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  184. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  185. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  186. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  187. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  188. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  189. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  190. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  191. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  192. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  193. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  194. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  195. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  196. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  197. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  198. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  199. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  200. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  201. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  202. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  203. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  204. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  205. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  206. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  207. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  208. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  209. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  210. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  211. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  212. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  213. package/dist/esm/telemetry/export/setup.js +160 -0
  214. package/dist/esm/tools/agent_tool.js +9 -1
  215. package/dist/esm/tools/apihub_tool/apihub_toolset.js +17 -22
  216. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +114 -44
  217. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +226 -115
  218. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +34 -14
  219. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +149 -0
  220. package/dist/esm/tools/base_toolset.js +1 -1
  221. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  222. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  223. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  224. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  225. package/dist/esm/tools/function_tool.js +15 -5
  226. package/dist/esm/tools/google_api_tool/google_api_tool.js +4 -1
  227. package/dist/esm/tools/google_api_tool/google_api_toolset.js +147 -0
  228. package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
  229. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  230. package/dist/esm/tools/google_api_tool/index.js +18 -20
  231. package/dist/esm/tools/load_artifacts_tool.js +25 -10
  232. package/dist/esm/tools/load_memory_tool.js +14 -15
  233. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  234. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  235. package/dist/esm/tools/mcp/mcp_toolset.js +19 -20
  236. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  237. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  238. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  239. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  240. package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
  241. package/dist/esm/tools/openapi_tool/rest_api_tool.js +57 -10
  242. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  243. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  244. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  245. package/dist/esm/tools/toolbox_toolset.js +167 -0
  246. package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
  247. package/dist/esm/utils/async_queue.js +37 -3
  248. package/dist/esm/utils/client_labels.js +17 -2
  249. package/dist/esm/utils/env_aware_utils.js +12 -7
  250. package/dist/esm/utils/error_utils.js +37 -1
  251. package/dist/esm/utils/failover_utils.js +11 -10
  252. package/dist/esm/utils/gemini_schema_util.js +144 -14
  253. package/dist/esm/utils/id_provider.js +33 -0
  254. package/dist/esm/utils/logger_node.js +4 -0
  255. package/dist/esm/utils/model_name.js +14 -0
  256. package/dist/esm/utils/output_schema_utils.js +5 -2
  257. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  258. package/dist/esm/utils/ssrf_guard.js +55 -15
  259. package/dist/esm/utils/task.js +1 -1
  260. package/dist/esm/version.js +1 -1
  261. package/dist/esm/workflow/index.js +2 -1
  262. package/dist/esm/workflow/node_runner.js +26 -80
  263. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  264. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  265. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  266. package/dist/esm/workflow/workflow.js +12 -12
  267. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  268. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  269. package/dist/types/agents/agent_engine_client.d.ts +155 -0
  270. package/dist/types/agents/base_agent.d.ts +14 -0
  271. package/dist/types/agents/llm_agent.d.ts +5 -1
  272. package/dist/types/agents/processors/content_processor_utils.d.ts +12 -10
  273. package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
  274. package/dist/types/agents/run_config.d.ts +14 -0
  275. package/dist/types/cli/cli_eval.d.ts +172 -9
  276. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  277. package/dist/types/cli/utils/envs.d.ts +13 -3
  278. package/dist/types/cli/utils/evals.d.ts +64 -1
  279. package/dist/types/cli/utils/logs.d.ts +20 -3
  280. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  281. package/dist/types/code_executors/container_code_executor.d.ts +62 -9
  282. package/dist/types/common.d.ts +21 -18
  283. package/dist/types/context/compaction_utils.d.ts +13 -1
  284. package/dist/types/errors/input_validation_error.d.ts +2 -1
  285. package/dist/types/events/event.d.ts +3 -0
  286. package/dist/types/features/feature_registry.d.ts +1 -0
  287. package/dist/types/index.d.ts +11 -6
  288. package/dist/types/plugins/base_plugin.d.ts +50 -31
  289. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  290. package/dist/types/runner/runner.d.ts +11 -0
  291. package/dist/types/sessions/base_session_service.d.ts +5 -2
  292. package/dist/types/sessions/database_session_service.d.ts +17 -1
  293. package/dist/types/sessions/db/operations.d.ts +2 -1
  294. package/dist/types/sessions/db/schema.d.ts +5 -3
  295. package/dist/types/sessions/stale_session_error.d.ts +21 -0
  296. package/dist/types/skills/loader.d.ts +3 -2
  297. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  298. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  299. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  300. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  301. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  302. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  303. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  304. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  305. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  306. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  307. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  308. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  309. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  310. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  311. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  312. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  313. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  314. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  315. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  316. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  317. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  318. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  319. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  320. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  321. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  322. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  323. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  324. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  325. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  326. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  327. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  328. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  329. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  330. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  331. package/dist/types/tools/agent_tool.d.ts +1 -1
  332. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +14 -21
  333. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +32 -9
  334. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +35 -12
  335. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +3 -3
  336. package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
  337. package/dist/types/tools/base_toolset.d.ts +7 -6
  338. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  339. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  340. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  341. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  342. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +10 -3
  343. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +57 -0
  344. package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
  345. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +5 -4
  346. package/dist/types/tools/google_api_tool/index.d.ts +4 -5
  347. package/dist/types/tools/load_artifacts_tool.d.ts +18 -1
  348. package/dist/types/tools/load_memory_tool.d.ts +32 -4
  349. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  350. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  351. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
  352. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +15 -3
  353. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
  354. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
  355. package/dist/types/tools/toolbox_toolset.d.ts +154 -0
  356. package/dist/types/utils/async_queue.d.ts +14 -0
  357. package/dist/types/utils/client_labels.d.ts +2 -1
  358. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  359. package/dist/types/utils/error_utils.d.ts +4 -0
  360. package/dist/types/utils/gemini_schema_util.d.ts +29 -0
  361. package/dist/types/utils/id_provider.d.ts +43 -0
  362. package/dist/types/utils/model_name.d.ts +8 -0
  363. package/dist/types/utils/output_schema_utils.d.ts +3 -2
  364. package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
  365. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  366. package/dist/types/version.d.ts +1 -1
  367. package/dist/types/workflow/index.d.ts +1 -1
  368. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  369. package/dist/web/index_web.js +94 -88
  370. package/dist/web/index_web.js.map +4 -4
  371. package/package.json +43 -38
  372. package/dist/cjs/agents/remote_agent.js +0 -187
  373. package/dist/cjs/telemetry/google_cloud.js +0 -116
  374. package/dist/cjs/telemetry/tracing.js +0 -350
  375. package/dist/cjs/tools/crewai_tool.js +0 -132
  376. package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +0 -226
  377. package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +0 -58
  378. package/dist/cjs/tools/langchain_tool.js +0 -172
  379. package/dist/cjs/tools/toolbox_tool.js +0 -108
  380. package/dist/esm/agents/remote_agent.js +0 -164
  381. package/dist/esm/telemetry/google_cloud.js +0 -99
  382. package/dist/esm/telemetry/setup.js +0 -89
  383. package/dist/esm/telemetry/tracing.js +0 -315
  384. package/dist/esm/tools/crewai_tool.js +0 -107
  385. package/dist/esm/tools/google_api_tool/google_api_tool_set.js +0 -188
  386. package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +0 -24
  387. package/dist/esm/tools/langchain_tool.js +0 -148
  388. package/dist/esm/tools/toolbox_tool.js +0 -80
  389. package/dist/types/agents/remote_agent.d.ts +0 -68
  390. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  391. package/dist/types/telemetry/tracing.d.ts +0 -129
  392. package/dist/types/tools/crewai_tool.d.ts +0 -85
  393. package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +0 -78
  394. package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +0 -33
  395. package/dist/types/tools/langchain_tool.d.ts +0 -103
  396. package/dist/types/tools/toolbox_tool.d.ts +0 -73
@@ -0,0 +1,763 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __create = Object.create;
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __getProtoOf = Object.getPrototypeOf;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+ var google_cloud_exports = {};
37
+ __export(google_cloud_exports, {
38
+ AuthenticatedLogExporter: () => AuthenticatedLogExporter,
39
+ AuthenticatedMetricExporter: () => AuthenticatedMetricExporter,
40
+ AuthenticatedTraceExporter: () => AuthenticatedTraceExporter,
41
+ GCPBatchLogRecordProcessor: () => GCPBatchLogRecordProcessor,
42
+ agentRuntimeRequestHooks: () => import_agent_runtime.agentRuntimeRequestHooks,
43
+ clearProjectCache: () => clearProjectCache,
44
+ fetchProject: () => fetchProject,
45
+ getAgentEngineUserAgentHeader: () => getAgentEngineUserAgentHeader,
46
+ getGcpExporters: () => getGcpExporters,
47
+ getGcpProjectId: () => getGcpProjectId,
48
+ getGcpResource: () => getGcpResource,
49
+ getTelemetryEndpoint: () => getTelemetryEndpoint
50
+ });
51
+ module.exports = __toCommonJS(google_cloud_exports);
52
+ var import_api = require("@opentelemetry/api");
53
+ var import_exporter_logs_otlp_http = require("@opentelemetry/exporter-logs-otlp-http");
54
+ var import_exporter_metrics_otlp_http = require("@opentelemetry/exporter-metrics-otlp-http");
55
+ var import_exporter_trace_otlp_http = require("@opentelemetry/exporter-trace-otlp-http");
56
+ var import_resource_detector_gcp = require("@opentelemetry/resource-detector-gcp");
57
+ var import_resources = require("@opentelemetry/resources");
58
+ var import_sdk_logs = require("@opentelemetry/sdk-logs");
59
+ var import_sdk_metrics = require("@opentelemetry/sdk-metrics");
60
+ var import_sdk_trace_base = require("@opentelemetry/sdk-trace-base");
61
+ var import_google_auth_library = require("google-auth-library");
62
+ var import_node_crypto = require("node:crypto");
63
+ var fs = __toESM(require("node:fs"), 1);
64
+ var import_logger = require("../../utils/logger.js");
65
+ var import_version = require("../../version.js");
66
+ var import_agent_runtime = require("./agent_runtime.js");
67
+ var import_request_driven_metric_reader = require("./request_driven_metric_reader.js");
68
+ /**
69
+ * @license
70
+ * Copyright 2025 Google LLC
71
+ * SPDX-License-Identifier: Apache-2.0
72
+ */
73
+ const CLOUD_PLATFORM_SCOPE = "https://www.googleapis.com/auth/cloud-platform";
74
+ const DEFAULT_TELEMETRY_TRACES_ENDPOINT = "https://telemetry.googleapis.com/v1/traces";
75
+ const DEFAULT_MTLS_TELEMETRY_TRACES_ENDPOINT = "https://telemetry.mtls.googleapis.com/v1/traces";
76
+ const DEFAULT_TELEMETRY_METRICS_ENDPOINT = "https://telemetry.googleapis.com/v1/metrics";
77
+ const DEFAULT_MTLS_TELEMETRY_METRICS_ENDPOINT = "https://telemetry.mtls.googleapis.com/v1/metrics";
78
+ const DEFAULT_TELEMETRY_LOGS_ENDPOINT = "https://telemetry.googleapis.com/v1/logs";
79
+ const DEFAULT_MTLS_TELEMETRY_LOGS_ENDPOINT = "https://telemetry.mtls.googleapis.com/v1/logs";
80
+ const GCP_PROJECT_ERROR_MESSAGE = "Cannot determine GCP Project. OTel GCP Exporters cannot be set up. Please make sure to log into correct GCP Project.";
81
+ const GCP_DEFAULT_LOG_NAME = "GCP_DEFAULT_LOG_NAME";
82
+ const ADK_OTEL = "adk-otel";
83
+ const DEFAULT_AGENT_ENGINE_LOG_NAME = "aiplatform.googleapis.com/reasoning_engine_stdout";
84
+ const GCP_LOG_NAME = "gcp.log_name";
85
+ const EVENT_NAME = "event.name";
86
+ const GCP_RESOURCE_TYPE = "gcp.resource_type";
87
+ const LOCATION = "location";
88
+ const REASONING_ENGINE_ID = "reasoning_engine_id";
89
+ const RESOURCE_CONTAINER = "resource_container";
90
+ const SERVICE_VERSION = "service.version";
91
+ const POD_NAME_HASHES = /-[a-z0-9]+-[a-z0-9]{5}$/;
92
+ const K8S_NAMESPACE_PATH = "/var/run/secrets/kubernetes.io/serviceaccount/namespace";
93
+ const PROJECT_CACHE_SIZE = 32;
94
+ const projectCache = /* @__PURE__ */ new Map();
95
+ function clearProjectCache() {
96
+ projectCache.clear();
97
+ }
98
+ __name(clearProjectCache, "clearProjectCache");
99
+ function normalizeHeaders(headers) {
100
+ if (!headers) {
101
+ return {};
102
+ }
103
+ if (typeof headers.forEach === "function") {
104
+ const result = {};
105
+ headers.forEach((value, key) => {
106
+ result[key] = value;
107
+ });
108
+ return result;
109
+ }
110
+ return { ...headers };
111
+ }
112
+ __name(normalizeHeaders, "normalizeHeaders");
113
+ function useClientCertEffective() {
114
+ var _a;
115
+ const useClientCertStr = ((_a = process.env.GOOGLE_API_USE_CLIENT_CERTIFICATE) != null ? _a : "false").toLowerCase();
116
+ if (useClientCertStr !== "true" && useClientCertStr !== "false") {
117
+ import_logger.logger.warn(
118
+ "Environment variable `GOOGLE_API_USE_CLIENT_CERTIFICATE` must be either `true` or `false`"
119
+ );
120
+ }
121
+ return useClientCertStr === "true";
122
+ }
123
+ __name(useClientCertEffective, "useClientCertEffective");
124
+ function getTelemetryEndpoint(defaultEndpoint, mtlsEndpoint) {
125
+ var _a;
126
+ const useMtlsEndpointStr = ((_a = process.env.GOOGLE_API_USE_MTLS_ENDPOINT) != null ? _a : "auto").toLowerCase();
127
+ let useMtlsEndpoint = "auto";
128
+ if (useMtlsEndpointStr === "auto" || useMtlsEndpointStr === "always" || useMtlsEndpointStr === "never") {
129
+ useMtlsEndpoint = useMtlsEndpointStr;
130
+ } else {
131
+ import_logger.logger.warn(
132
+ 'Environment variable `GOOGLE_API_USE_MTLS_ENDPOINT` must be one of ["auto", "always", "never"]. Defaulting to auto.'
133
+ );
134
+ useMtlsEndpoint = "auto";
135
+ }
136
+ if (useMtlsEndpoint === "always") {
137
+ return mtlsEndpoint;
138
+ }
139
+ if (useMtlsEndpoint === "never") {
140
+ return defaultEndpoint;
141
+ }
142
+ if (useClientCertEffective()) {
143
+ return mtlsEndpoint;
144
+ }
145
+ return defaultEndpoint;
146
+ }
147
+ __name(getTelemetryEndpoint, "getTelemetryEndpoint");
148
+ function getAgentEngineUserAgentHeader() {
149
+ if (!process.env.GOOGLE_CLOUD_AGENT_ENGINE_ENABLE_TELEMETRY) {
150
+ return {};
151
+ }
152
+ return {
153
+ "User-Agent": `Vertex-Agent-Engine/${import_version.version}`
154
+ };
155
+ }
156
+ __name(getAgentEngineUserAgentHeader, "getAgentEngineUserAgentHeader");
157
+ const _AuthenticatedTraceExporter = class _AuthenticatedTraceExporter {
158
+ constructor(auth, endpoint, userAgentHeaders = {}) {
159
+ this.currentHeaders = {};
160
+ this.warnedAuthFailure = false;
161
+ this.auth = auth;
162
+ this.endpoint = endpoint;
163
+ this.userAgentHeaders = userAgentHeaders;
164
+ this.delegate = new import_exporter_trace_otlp_http.OTLPTraceExporter({
165
+ url: endpoint,
166
+ headers: /* @__PURE__ */ __name(async () => this.currentHeaders, "headers")
167
+ });
168
+ }
169
+ /**
170
+ * Exports spans to Google Cloud.
171
+ *
172
+ * @param spans Spans to export.
173
+ * @param resultCallback Callback called with the export result.
174
+ */
175
+ export(spans, resultCallback) {
176
+ void this.exportAsync(spans, resultCallback);
177
+ }
178
+ async exportAsync(spans, resultCallback) {
179
+ try {
180
+ const authHeaders = await this.auth.getRequestHeaders(this.endpoint);
181
+ this.currentHeaders = {
182
+ ...normalizeHeaders(authHeaders),
183
+ ...this.userAgentHeaders
184
+ };
185
+ } catch (error) {
186
+ if (!this.warnedAuthFailure) {
187
+ this.warnedAuthFailure = true;
188
+ import_logger.logger.warn(
189
+ "Failed to obtain Google Cloud credentials for telemetry export.",
190
+ { error }
191
+ );
192
+ }
193
+ resultCallback({
194
+ code: 1,
195
+ error: error instanceof Error ? error : new Error(String(error))
196
+ });
197
+ return;
198
+ }
199
+ this.delegate.export(spans, resultCallback);
200
+ }
201
+ /**
202
+ * Shuts down the trace exporter.
203
+ */
204
+ shutdown() {
205
+ return this.delegate.shutdown();
206
+ }
207
+ /**
208
+ * Flushes pending traces.
209
+ */
210
+ forceFlush() {
211
+ return this.delegate.forceFlush();
212
+ }
213
+ };
214
+ __name(_AuthenticatedTraceExporter, "AuthenticatedTraceExporter");
215
+ let AuthenticatedTraceExporter = _AuthenticatedTraceExporter;
216
+ const _AuthenticatedMetricExporter = class _AuthenticatedMetricExporter {
217
+ constructor(auth, endpoint, userAgentHeaders = {}) {
218
+ this.currentHeaders = {};
219
+ this.warnedAuthFailure = false;
220
+ this.auth = auth;
221
+ this.endpoint = endpoint;
222
+ this.userAgentHeaders = userAgentHeaders;
223
+ this.delegate = new import_exporter_metrics_otlp_http.OTLPMetricExporter({
224
+ url: endpoint,
225
+ headers: /* @__PURE__ */ __name(async () => this.currentHeaders, "headers")
226
+ });
227
+ }
228
+ /**
229
+ * Exports metrics to Google Cloud.
230
+ *
231
+ * @param metrics Metrics to export.
232
+ * @param resultCallback Callback called with the export result.
233
+ */
234
+ export(metrics2, resultCallback) {
235
+ void this.exportAsync(metrics2, resultCallback);
236
+ }
237
+ async exportAsync(metrics2, resultCallback) {
238
+ try {
239
+ const authHeaders = await this.auth.getRequestHeaders(this.endpoint);
240
+ this.currentHeaders = {
241
+ ...normalizeHeaders(authHeaders),
242
+ ...this.userAgentHeaders
243
+ };
244
+ } catch (error) {
245
+ if (!this.warnedAuthFailure) {
246
+ this.warnedAuthFailure = true;
247
+ import_logger.logger.warn(
248
+ "Failed to obtain Google Cloud credentials for telemetry export.",
249
+ { error }
250
+ );
251
+ }
252
+ resultCallback({
253
+ code: 1,
254
+ error: error instanceof Error ? error : new Error(String(error))
255
+ });
256
+ return;
257
+ }
258
+ this.delegate.export(metrics2, resultCallback);
259
+ }
260
+ /**
261
+ * Shuts down the metric exporter.
262
+ */
263
+ shutdown() {
264
+ return this.delegate.shutdown();
265
+ }
266
+ /**
267
+ * Flushes pending metrics.
268
+ */
269
+ forceFlush() {
270
+ return this.delegate.forceFlush();
271
+ }
272
+ /**
273
+ * Selects aggregation temporality for instrument type.
274
+ *
275
+ * @param instrumentType Instrument type.
276
+ */
277
+ selectAggregationTemporality(instrumentType) {
278
+ return this.delegate.selectAggregationTemporality(instrumentType);
279
+ }
280
+ };
281
+ __name(_AuthenticatedMetricExporter, "AuthenticatedMetricExporter");
282
+ let AuthenticatedMetricExporter = _AuthenticatedMetricExporter;
283
+ const _AuthenticatedLogExporter = class _AuthenticatedLogExporter {
284
+ constructor(auth, endpoint, userAgentHeaders = {}) {
285
+ this.currentHeaders = {};
286
+ this.warnedAuthFailure = false;
287
+ this.auth = auth;
288
+ this.endpoint = endpoint;
289
+ this.userAgentHeaders = userAgentHeaders;
290
+ this.delegate = new import_exporter_logs_otlp_http.OTLPLogExporter({
291
+ url: endpoint,
292
+ headers: /* @__PURE__ */ __name(async () => this.currentHeaders, "headers")
293
+ });
294
+ }
295
+ /**
296
+ * Exports log records to Google Cloud.
297
+ *
298
+ * @param logs Log records to export.
299
+ * @param resultCallback Callback called with the export result.
300
+ */
301
+ export(logs, resultCallback) {
302
+ void this.exportAsync(logs, resultCallback);
303
+ }
304
+ async exportAsync(logs, resultCallback) {
305
+ try {
306
+ const authHeaders = await this.auth.getRequestHeaders(this.endpoint);
307
+ this.currentHeaders = {
308
+ ...normalizeHeaders(authHeaders),
309
+ ...this.userAgentHeaders
310
+ };
311
+ } catch (error) {
312
+ if (!this.warnedAuthFailure) {
313
+ this.warnedAuthFailure = true;
314
+ import_logger.logger.warn(
315
+ "Failed to obtain Google Cloud credentials for telemetry export.",
316
+ { error }
317
+ );
318
+ }
319
+ resultCallback({
320
+ code: 1,
321
+ error: error instanceof Error ? error : new Error(String(error))
322
+ });
323
+ return;
324
+ }
325
+ this.delegate.export(logs, resultCallback);
326
+ }
327
+ /**
328
+ * Shuts down the log exporter.
329
+ */
330
+ shutdown() {
331
+ return this.delegate.shutdown();
332
+ }
333
+ /**
334
+ * Flushes pending log records.
335
+ */
336
+ forceFlush() {
337
+ return this.delegate.forceFlush();
338
+ }
339
+ };
340
+ __name(_AuthenticatedLogExporter, "AuthenticatedLogExporter");
341
+ let AuthenticatedLogExporter = _AuthenticatedLogExporter;
342
+ function agentEngineLogResource(projectId) {
343
+ const agentEngineId = process.env.GOOGLE_CLOUD_AGENT_ENGINE_ID;
344
+ if (!agentEngineId) {
345
+ return (0, import_resources.emptyResource)();
346
+ }
347
+ const location = process.env.GOOGLE_CLOUD_AGENT_ENGINE_LOCATION || process.env.GOOGLE_CLOUD_LOCATION || "";
348
+ return (0, import_resources.resourceFromAttributes)({
349
+ [GCP_RESOURCE_TYPE]: "aiplatform.googleapis.com/ReasoningEngine",
350
+ [LOCATION]: location,
351
+ [REASONING_ENGINE_ID]: agentEngineId,
352
+ [RESOURCE_CONTAINER]: `projects/${projectId}`
353
+ });
354
+ }
355
+ __name(agentEngineLogResource, "agentEngineLogResource");
356
+ const _GCPBatchLogRecordProcessor = class _GCPBatchLogRecordProcessor extends import_sdk_logs.BatchLogRecordProcessor {
357
+ constructor(exporterOrOptions, projectId) {
358
+ var _a, _b;
359
+ const options = "export" in exporterOrOptions ? { exporter: exporterOrOptions } : exporterOrOptions;
360
+ super(options);
361
+ const effectiveProjectId = (_a = projectId != null ? projectId : "projectId" in exporterOrOptions ? exporterOrOptions.projectId : void 0) != null ? _a : "";
362
+ this.logResource = agentEngineLogResource(effectiveProjectId);
363
+ const defaultLogNameEnv = (_b = process.env[GCP_DEFAULT_LOG_NAME]) == null ? void 0 : _b.trim();
364
+ this.defaultLogName = defaultLogNameEnv && defaultLogNameEnv.length > 0 ? defaultLogNameEnv : process.env.GOOGLE_CLOUD_AGENT_ENGINE_ID ? DEFAULT_AGENT_ENGINE_LOG_NAME : ADK_OTEL;
365
+ }
366
+ onEmit(logRecord) {
367
+ var _a, _b, _c, _d;
368
+ const attributes = { ...logRecord.attributes };
369
+ if (logRecord.eventName) {
370
+ attributes[EVENT_NAME] = (_a = attributes[EVENT_NAME]) != null ? _a : logRecord.eventName;
371
+ }
372
+ attributes[GCP_LOG_NAME] = (_b = attributes[GCP_LOG_NAME]) != null ? _b : this.defaultLogName;
373
+ const baseResource = (_c = logRecord.resource) != null ? _c : (0, import_resources.emptyResource)();
374
+ const mergedResource = baseResource.merge(this.logResource);
375
+ const serviceVersion = mergedResource.attributes[SERVICE_VERSION];
376
+ if (serviceVersion !== void 0) {
377
+ attributes[SERVICE_VERSION] = (_d = attributes[SERVICE_VERSION]) != null ? _d : serviceVersion;
378
+ }
379
+ const emitted = Object.create(
380
+ Object.getPrototypeOf(logRecord),
381
+ {
382
+ ...Object.getOwnPropertyDescriptors(logRecord),
383
+ resource: {
384
+ value: mergedResource,
385
+ writable: true,
386
+ enumerable: true,
387
+ configurable: true
388
+ },
389
+ attributes: {
390
+ value: attributes,
391
+ writable: true,
392
+ enumerable: true,
393
+ configurable: true
394
+ },
395
+ ...process.env.GOOGLE_CLOUD_AGENT_ENGINE_ID && logRecord.eventName ? {
396
+ eventName: {
397
+ value: void 0,
398
+ writable: true,
399
+ enumerable: true,
400
+ configurable: true
401
+ },
402
+ _eventName: {
403
+ value: void 0,
404
+ writable: true,
405
+ enumerable: false,
406
+ configurable: true
407
+ }
408
+ } : {}
409
+ }
410
+ );
411
+ super.onEmit(emitted);
412
+ }
413
+ };
414
+ __name(_GCPBatchLogRecordProcessor, "GCPBatchLogRecordProcessor");
415
+ let GCPBatchLogRecordProcessor = _GCPBatchLogRecordProcessor;
416
+ async function fetchProject(project, auth) {
417
+ var _a;
418
+ if (!project) {
419
+ return { id: "", number: "" };
420
+ }
421
+ const cached = projectCache.get(project);
422
+ if (cached) {
423
+ return cached;
424
+ }
425
+ const isDigits = /^\d+$/.test(project);
426
+ const known = {
427
+ id: isDigits ? "" : project,
428
+ number: ""
429
+ };
430
+ try {
431
+ const authClient = auth != null ? auth : new import_google_auth_library.GoogleAuth({
432
+ scopes: [CLOUD_PLATFORM_SCOPE]
433
+ });
434
+ const url = `https://cloudresourcemanager.googleapis.com/v3/projects/${encodeURIComponent(project)}`;
435
+ const response = await authClient.request({
436
+ url
437
+ });
438
+ const data = response.data;
439
+ const projectNumber = (data == null ? void 0 : data.name) ? data.name.replace(/^projects\//, "") : "";
440
+ const projectId = (_a = data == null ? void 0 : data.projectId) != null ? _a : isDigits ? "" : project;
441
+ const resolved = {
442
+ id: projectId,
443
+ number: projectNumber
444
+ };
445
+ if (projectCache.size >= PROJECT_CACHE_SIZE) {
446
+ const firstKey = projectCache.keys().next().value;
447
+ if (firstKey !== void 0) {
448
+ projectCache.delete(firstKey);
449
+ }
450
+ }
451
+ projectCache.set(project, resolved);
452
+ return resolved;
453
+ } catch (error) {
454
+ import_logger.logger.warn(
455
+ "Failed to look up the project's other identifier. Your traces and logs may not be associated, and the agent URN may be incomplete. To fix this, ensure the Cloud Resource Manager API is enabled with the 'resourcemanager.projects.get' permission.",
456
+ { error }
457
+ );
458
+ return known;
459
+ }
460
+ }
461
+ __name(fetchProject, "fetchProject");
462
+ async function getGcpProjectId(auth) {
463
+ if (process.env.GOOGLE_CLOUD_PROJECT) {
464
+ return process.env.GOOGLE_CLOUD_PROJECT;
465
+ }
466
+ try {
467
+ const authClient = auth != null ? auth : new import_google_auth_library.GoogleAuth({
468
+ scopes: [CLOUD_PLATFORM_SCOPE]
469
+ });
470
+ const projectId = await authClient.getProjectId();
471
+ return projectId || void 0;
472
+ } catch {
473
+ return void 0;
474
+ }
475
+ }
476
+ __name(getGcpProjectId, "getGcpProjectId");
477
+ function k8sNamespace() {
478
+ try {
479
+ return fs.readFileSync(K8S_NAMESPACE_PATH, "utf8").trim();
480
+ } catch {
481
+ return "";
482
+ }
483
+ }
484
+ __name(k8sNamespace, "k8sNamespace");
485
+ function k8sDeployment() {
486
+ var _a;
487
+ const hostname = (_a = process.env.HOSTNAME) != null ? _a : "";
488
+ if (POD_NAME_HASHES.test(hostname)) {
489
+ return hostname.replace(POD_NAME_HASHES, "");
490
+ }
491
+ return "";
492
+ }
493
+ __name(k8sDeployment, "k8sDeployment");
494
+ function urnAgentRuntimeSegment() {
495
+ const agentEngineId = process.env.GOOGLE_CLOUD_AGENT_ENGINE_ID;
496
+ if (!agentEngineId) {
497
+ import_logger.logger.warn(
498
+ "The Agent Runtime instance ID is unknown, so no agent URN is set."
499
+ );
500
+ return "";
501
+ }
502
+ return `aiplatform:reasoningEngines:${agentEngineId}`;
503
+ }
504
+ __name(urnAgentRuntimeSegment, "urnAgentRuntimeSegment");
505
+ function urnGkeSegment(attributes) {
506
+ const cluster = attributes["k8s.cluster.name"] || "";
507
+ const namespace = attributes["k8s.namespace.name"] || k8sNamespace();
508
+ const deployment = attributes["k8s.deployment.name"] || k8sDeployment();
509
+ if (!cluster) {
510
+ import_logger.logger.warn(
511
+ "The GKE cluster is unknown, so no agent URN is set. Set k8s.cluster.name in OTEL_RESOURCE_ATTRIBUTES to state it."
512
+ );
513
+ }
514
+ if (!namespace) {
515
+ import_logger.logger.warn(
516
+ "The GKE namespace is unknown, so no agent URN is set. Set k8s.namespace.name in OTEL_RESOURCE_ATTRIBUTES to state it."
517
+ );
518
+ }
519
+ if (!deployment) {
520
+ import_logger.logger.warn(
521
+ "The GKE Deployment is unknown, so no agent URN is set. Set k8s.deployment.name in OTEL_RESOURCE_ATTRIBUTES to state it."
522
+ );
523
+ }
524
+ if (!cluster || !namespace || !deployment) {
525
+ return "";
526
+ }
527
+ return `container:clusters:${cluster}:k8s:namespaces:${namespace}:apps:deployments:${deployment}`;
528
+ }
529
+ __name(urnGkeSegment, "urnGkeSegment");
530
+ function urnCloudRunSegment(attributes) {
531
+ const service = attributes["faas.name"] || "";
532
+ if (!service) {
533
+ import_logger.logger.warn(
534
+ "The Cloud Run service name is unknown, so no agent URN is set."
535
+ );
536
+ return "";
537
+ }
538
+ return `run:services:${service}`;
539
+ }
540
+ __name(urnCloudRunSegment, "urnCloudRunSegment");
541
+ function urnWorkloadSegment(attributes) {
542
+ const platform = attributes["cloud.platform"];
543
+ if (platform === "gcp.agent_engine") {
544
+ return urnAgentRuntimeSegment();
545
+ }
546
+ if (platform === "gcp_kubernetes_engine") {
547
+ return urnGkeSegment(attributes);
548
+ }
549
+ if (platform === "gcp_cloud_run") {
550
+ return urnCloudRunSegment(attributes);
551
+ }
552
+ return null;
553
+ }
554
+ __name(urnWorkloadSegment, "urnWorkloadSegment");
555
+ function urnLocationSegment(attributes) {
556
+ const zone = attributes["cloud.availability_zone"];
557
+ if (zone) {
558
+ return `zones:${zone}`;
559
+ }
560
+ const region = attributes["cloud.region"];
561
+ if (region) {
562
+ return `locations:${region}`;
563
+ }
564
+ return "";
565
+ }
566
+ __name(urnLocationSegment, "urnLocationSegment");
567
+ async function getUrnEnrichedResource(resource, fallbackProjectId) {
568
+ const attributes = resource.attributes;
569
+ if (attributes["gen_ai.main_agent.id"]) {
570
+ return (0, import_resources.emptyResource)();
571
+ }
572
+ const workload = urnWorkloadSegment(attributes);
573
+ if (!workload) {
574
+ return (0, import_resources.emptyResource)();
575
+ }
576
+ const projectId = attributes["cloud.account.id"] || fallbackProjectId;
577
+ if (!projectId) {
578
+ import_logger.logger.warn("The project ID is unknown, so no agent URN is set.");
579
+ return (0, import_resources.emptyResource)();
580
+ }
581
+ const projectInfo = await fetchProject(projectId);
582
+ if (!projectInfo.number) {
583
+ import_logger.logger.warn(
584
+ `The number of project '${projectId}' is unknown, so no agent URN is set.`
585
+ );
586
+ return (0, import_resources.emptyResource)();
587
+ }
588
+ const location = urnLocationSegment(attributes);
589
+ if (!location) {
590
+ import_logger.logger.warn(
591
+ "Neither a zone nor a region could be detected, so no agent URN is set."
592
+ );
593
+ return (0, import_resources.emptyResource)();
594
+ }
595
+ const urn = [
596
+ "urn:agent",
597
+ `projects-${projectInfo.number}`,
598
+ `projects:${projectInfo.number}`,
599
+ location,
600
+ workload
601
+ ].join(":");
602
+ return (0, import_resources.resourceFromAttributes)({ "gen_ai.main_agent.id": urn });
603
+ }
604
+ __name(getUrnEnrichedResource, "getUrnEnrichedResource");
605
+ async function getGcpResource(projectId) {
606
+ var _a, _b;
607
+ let resolvedProjectId = projectId;
608
+ if (!resolvedProjectId) {
609
+ resolvedProjectId = await getGcpProjectId();
610
+ }
611
+ const instanceId = `${(0, import_node_crypto.randomUUID)().replace(/-/g, "")}-${process.pid}`;
612
+ const commonAttributes = {
613
+ "service.instance.id": instanceId
614
+ };
615
+ if (resolvedProjectId) {
616
+ commonAttributes["gcp.project_id"] = resolvedProjectId;
617
+ commonAttributes["cloud.account.id"] = resolvedProjectId;
618
+ } else {
619
+ import_logger.logger.warn(
620
+ "No project could be determined, so telemetry will not name one. Set GOOGLE_CLOUD_PROJECT, or pass a project explicitly, if it should."
621
+ );
622
+ }
623
+ let resource = (0, import_resources.resourceFromAttributes)(commonAttributes);
624
+ const agentEngineId = process.env.GOOGLE_CLOUD_AGENT_ENGINE_ID;
625
+ if (agentEngineId) {
626
+ const location = process.env.GOOGLE_CLOUD_AGENT_ENGINE_LOCATION || process.env.GOOGLE_CLOUD_LOCATION || "";
627
+ if (!location) {
628
+ import_logger.logger.warn(
629
+ "On Agent Runtime with no location set, so this deployment cannot be named. Set GOOGLE_CLOUD_AGENT_ENGINE_LOCATION or GOOGLE_CLOUD_LOCATION."
630
+ );
631
+ }
632
+ const aeAttributes = {
633
+ "cloud.provider": "gcp",
634
+ "cloud.platform": "gcp.agent_engine",
635
+ "service.name": agentEngineId,
636
+ "service.version": (_a = process.env.GOOGLE_CLOUD_AGENT_ENGINE_RUNTIME_REVISION_ID) != null ? _a : "",
637
+ "cloud.region": location
638
+ };
639
+ if (resolvedProjectId && location) {
640
+ aeAttributes["cloud.resource_id"] = `//aiplatform.googleapis.com/projects/${resolvedProjectId}/locations/${location}/reasoningEngines/${agentEngineId}`;
641
+ }
642
+ resource = resource.merge(
643
+ (0, import_resources.defaultResource)().merge((0, import_resources.resourceFromAttributes)(aeAttributes))
644
+ );
645
+ }
646
+ const otelDetected = (0, import_resources.detectResources)({ detectors: [import_resources.envDetector] });
647
+ resource = resource.merge(otelDetected);
648
+ if (!agentEngineId) {
649
+ try {
650
+ const gcpDetected = (0, import_resources.detectResources)({ detectors: [import_resource_detector_gcp.gcpDetector] });
651
+ if (gcpDetected.asyncAttributesPending) {
652
+ await ((_b = gcpDetected.waitForAsyncAttributes) == null ? void 0 : _b.call(gcpDetected));
653
+ }
654
+ resource = resource.merge(gcpDetected);
655
+ } catch (error) {
656
+ import_logger.logger.warn(
657
+ "Could not detect GCP resource attributes. GCE, GKE or CloudRun related resource attributes may be missing.",
658
+ { error }
659
+ );
660
+ }
661
+ }
662
+ const urnResource = await getUrnEnrichedResource(resource, resolvedProjectId);
663
+ resource = resource.merge(urnResource);
664
+ return resource;
665
+ }
666
+ __name(getGcpResource, "getGcpResource");
667
+ function createMetricReader(exporter) {
668
+ if (process.env.GOOGLE_CLOUD_AGENT_ENGINE_ID) {
669
+ if (!(import_api.metrics.getMeterProvider() instanceof import_sdk_metrics.MeterProvider)) {
670
+ return new import_request_driven_metric_reader.RequestDrivenMetricReader({ exporter });
671
+ }
672
+ import_logger.logger.warn(
673
+ "A MeterProvider is already installed; skipping request-driven metric export. On Agent Runtime metrics may be dropped between requests."
674
+ );
675
+ }
676
+ return new import_sdk_metrics.PeriodicExportingMetricReader({
677
+ exporter,
678
+ exportIntervalMillis: import_request_driven_metric_reader.MIN_EXPORT_INTERVAL_MS
679
+ });
680
+ }
681
+ __name(createMetricReader, "createMetricReader");
682
+ async function getGcpExporters(config = {}) {
683
+ const {
684
+ enableTracing = false,
685
+ enableMetrics = false,
686
+ enableLogging = false,
687
+ auth: providedAuth
688
+ } = config;
689
+ const auth = providedAuth != null ? providedAuth : new import_google_auth_library.GoogleAuth({
690
+ scopes: [CLOUD_PLATFORM_SCOPE]
691
+ });
692
+ let projectId = config.projectId;
693
+ if (!projectId) {
694
+ projectId = await getGcpProjectId(auth);
695
+ }
696
+ if (process.env.GOOGLE_CLOUD_AGENT_ENGINE_ID && projectId) {
697
+ const projectInfo = await fetchProject(projectId, auth);
698
+ projectId = projectInfo.id || projectId;
699
+ }
700
+ if (!projectId) {
701
+ import_logger.logger.warn(GCP_PROJECT_ERROR_MESSAGE);
702
+ return {};
703
+ }
704
+ const userAgentHeaders = getAgentEngineUserAgentHeader();
705
+ const spanProcessors = enableTracing ? [
706
+ new import_sdk_trace_base.BatchSpanProcessor(
707
+ new AuthenticatedTraceExporter(
708
+ auth,
709
+ getTelemetryEndpoint(
710
+ DEFAULT_TELEMETRY_TRACES_ENDPOINT,
711
+ DEFAULT_MTLS_TELEMETRY_TRACES_ENDPOINT
712
+ ),
713
+ userAgentHeaders
714
+ )
715
+ )
716
+ ] : [];
717
+ const metricReaders = enableMetrics ? [
718
+ createMetricReader(
719
+ new AuthenticatedMetricExporter(
720
+ auth,
721
+ getTelemetryEndpoint(
722
+ DEFAULT_TELEMETRY_METRICS_ENDPOINT,
723
+ DEFAULT_MTLS_TELEMETRY_METRICS_ENDPOINT
724
+ ),
725
+ userAgentHeaders
726
+ )
727
+ )
728
+ ] : [];
729
+ const logRecordProcessors = enableLogging ? [
730
+ new GCPBatchLogRecordProcessor(
731
+ new AuthenticatedLogExporter(
732
+ auth,
733
+ getTelemetryEndpoint(
734
+ DEFAULT_TELEMETRY_LOGS_ENDPOINT,
735
+ DEFAULT_MTLS_TELEMETRY_LOGS_ENDPOINT
736
+ ),
737
+ userAgentHeaders
738
+ ),
739
+ projectId
740
+ )
741
+ ] : [];
742
+ return {
743
+ spanProcessors,
744
+ metricReaders,
745
+ logRecordProcessors
746
+ };
747
+ }
748
+ __name(getGcpExporters, "getGcpExporters");
749
+ // Annotate the CommonJS export names for ESM import in node:
750
+ 0 && (module.exports = {
751
+ AuthenticatedLogExporter,
752
+ AuthenticatedMetricExporter,
753
+ AuthenticatedTraceExporter,
754
+ GCPBatchLogRecordProcessor,
755
+ agentRuntimeRequestHooks,
756
+ clearProjectCache,
757
+ fetchProject,
758
+ getAgentEngineUserAgentHeader,
759
+ getGcpExporters,
760
+ getGcpProjectId,
761
+ getGcpResource,
762
+ getTelemetryEndpoint
763
+ });