@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.
Files changed (326) 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 +282 -55
  7. package/dist/cjs/agents/base_agent.js +111 -68
  8. package/dist/cjs/agents/functions.js +62 -85
  9. package/dist/cjs/agents/instructions.js +7 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +105 -95
  12. package/dist/cjs/agents/processors/content_processor_utils.js +42 -15
  13. package/dist/cjs/agents/processors/content_request_processor.js +28 -11
  14. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  15. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  16. package/dist/cjs/agents/processors/nl_planning_processor.js +2 -1
  17. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  18. package/dist/cjs/cli/cli_eval.js +884 -17
  19. package/dist/cjs/cli/utils/cleanup.js +84 -0
  20. package/dist/cjs/cli/utils/envs.js +33 -2
  21. package/dist/cjs/cli/utils/evals.js +75 -8
  22. package/dist/cjs/cli/utils/logs.js +128 -9
  23. package/dist/cjs/cli/utils/path_validation.js +83 -0
  24. package/dist/cjs/code_executors/container_code_executor.js +158 -36
  25. package/dist/cjs/common.js +50 -12
  26. package/dist/cjs/context/compaction_utils.js +19 -0
  27. package/dist/cjs/events/event.js +7 -3
  28. package/dist/cjs/features/feature_registry.js +5 -0
  29. package/dist/cjs/index.js +29 -14
  30. package/dist/cjs/models/google_llm.js +33 -2
  31. package/dist/cjs/models/interactions_utils.js +3 -0
  32. package/dist/cjs/plugins/base_plugin.js +45 -21
  33. package/dist/cjs/plugins/plugin_manager.js +27 -0
  34. package/dist/cjs/runner/runner.js +306 -189
  35. package/dist/cjs/sessions/base_session_service.js +1 -4
  36. package/dist/cjs/sessions/database_session_service.js +191 -19
  37. package/dist/cjs/sessions/db/operations.js +70 -1
  38. package/dist/cjs/sessions/db/schema.js +4 -0
  39. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  40. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  41. package/dist/cjs/skills/loader.js +29 -28
  42. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  43. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  44. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  45. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  46. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  47. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  48. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  49. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  50. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  51. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  52. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  53. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  54. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  55. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  56. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  57. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  58. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  59. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  60. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  61. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  62. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  63. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  64. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  65. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  66. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  67. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  68. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  69. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  70. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  71. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  72. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  73. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  74. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  75. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -5
  76. package/dist/cjs/tools/agent_tool.js +9 -1
  77. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +22 -34
  78. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +60 -20
  79. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +26 -10
  80. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +14 -23
  81. package/dist/cjs/tools/base_toolset.js +1 -1
  82. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  83. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  84. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  85. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  86. package/dist/cjs/tools/function_tool.js +15 -5
  87. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +3 -2
  88. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  89. package/dist/cjs/tools/load_artifacts_tool.js +15 -5
  90. package/dist/cjs/tools/load_memory_tool.js +2 -5
  91. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  92. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  93. package/dist/cjs/tools/mcp/mcp_toolset.js +18 -6
  94. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  95. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  96. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +45 -14
  97. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  98. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  99. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  100. package/dist/cjs/tools/toolbox_toolset.js +47 -28
  101. package/dist/cjs/utils/async_queue.js +37 -3
  102. package/dist/cjs/utils/client_labels.js +9 -11
  103. package/dist/cjs/utils/env_aware_utils.js +13 -7
  104. package/dist/cjs/utils/error_utils.js +40 -2
  105. package/dist/cjs/utils/failover_utils.js +10 -9
  106. package/dist/cjs/utils/gemini_schema_util.js +125 -12
  107. package/dist/cjs/utils/id_provider.js +63 -0
  108. package/dist/cjs/utils/model_name.js +15 -0
  109. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  110. package/dist/cjs/utils/ssrf_guard.js +46 -16
  111. package/dist/cjs/version.js +1 -1
  112. package/dist/cjs/workflow/index.js +2 -0
  113. package/dist/cjs/workflow/node_runner.js +24 -80
  114. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  115. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  116. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  117. package/dist/cjs/workflow/workflow.js +12 -12
  118. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  119. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  120. package/dist/esm/a2a/agent_card.js +5 -83
  121. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  122. package/dist/esm/a2a/event_converter_utils.js +10 -3
  123. package/dist/esm/agents/agent_engine_client.js +293 -55
  124. package/dist/esm/agents/base_agent.js +111 -72
  125. package/dist/esm/agents/functions.js +67 -89
  126. package/dist/esm/agents/instructions.js +7 -6
  127. package/dist/esm/agents/invocation_context.js +2 -2
  128. package/dist/esm/agents/llm_agent.js +111 -100
  129. package/dist/esm/agents/processors/content_processor_utils.js +42 -15
  130. package/dist/esm/agents/processors/content_request_processor.js +28 -11
  131. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  132. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  133. package/dist/esm/agents/processors/nl_planning_processor.js +2 -1
  134. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  135. package/dist/esm/cli/cli_eval.js +880 -17
  136. package/dist/esm/cli/utils/cleanup.js +56 -0
  137. package/dist/esm/cli/utils/envs.js +33 -2
  138. package/dist/esm/cli/utils/evals.js +74 -8
  139. package/dist/esm/cli/utils/logs.js +128 -9
  140. package/dist/esm/cli/utils/path_validation.js +45 -0
  141. package/dist/esm/code_executors/container_code_executor.js +158 -36
  142. package/dist/esm/common.js +49 -6
  143. package/dist/esm/context/compaction_utils.js +19 -0
  144. package/dist/esm/events/event.js +7 -3
  145. package/dist/esm/features/feature_registry.js +5 -0
  146. package/dist/esm/index.js +27 -15
  147. package/dist/esm/models/google_llm.js +33 -2
  148. package/dist/esm/models/interactions_utils.js +3 -0
  149. package/dist/esm/plugins/base_plugin.js +45 -21
  150. package/dist/esm/plugins/plugin_manager.js +27 -0
  151. package/dist/esm/runner/runner.js +310 -192
  152. package/dist/esm/sessions/base_session_service.js +1 -4
  153. package/dist/esm/sessions/database_session_service.js +191 -19
  154. package/dist/esm/sessions/db/operations.js +70 -1
  155. package/dist/esm/sessions/db/schema.js +4 -0
  156. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  157. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  158. package/dist/esm/skills/loader.js +29 -28
  159. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  160. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  161. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  162. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  163. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  164. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  165. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  166. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  167. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  168. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  169. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  170. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  171. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  172. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  173. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  174. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  175. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  176. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  177. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  178. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  179. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  180. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  181. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  182. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  183. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  184. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  185. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  186. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  187. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  188. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  189. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  190. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  191. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  192. package/dist/esm/telemetry/export/setup.js +160 -0
  193. package/dist/esm/tools/agent_tool.js +9 -1
  194. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +23 -35
  195. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +64 -21
  196. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +26 -10
  197. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +14 -23
  198. package/dist/esm/tools/base_toolset.js +1 -1
  199. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  200. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  201. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  202. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  203. package/dist/esm/tools/function_tool.js +15 -5
  204. package/dist/esm/tools/google_api_tool/google_api_toolset.js +3 -2
  205. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  206. package/dist/esm/tools/load_artifacts_tool.js +15 -5
  207. package/dist/esm/tools/load_memory_tool.js +2 -5
  208. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  209. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  210. package/dist/esm/tools/mcp/mcp_toolset.js +18 -6
  211. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  212. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  213. package/dist/esm/tools/openapi_tool/rest_api_tool.js +45 -14
  214. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  215. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  216. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  217. package/dist/esm/tools/toolbox_toolset.js +47 -28
  218. package/dist/esm/utils/async_queue.js +37 -3
  219. package/dist/esm/utils/client_labels.js +9 -11
  220. package/dist/esm/utils/env_aware_utils.js +12 -7
  221. package/dist/esm/utils/error_utils.js +37 -1
  222. package/dist/esm/utils/failover_utils.js +10 -9
  223. package/dist/esm/utils/gemini_schema_util.js +124 -11
  224. package/dist/esm/utils/id_provider.js +33 -0
  225. package/dist/esm/utils/model_name.js +14 -0
  226. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  227. package/dist/esm/utils/ssrf_guard.js +55 -15
  228. package/dist/esm/version.js +1 -1
  229. package/dist/esm/workflow/index.js +2 -1
  230. package/dist/esm/workflow/node_runner.js +26 -80
  231. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  232. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  233. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  234. package/dist/esm/workflow/workflow.js +12 -12
  235. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  236. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  237. package/dist/types/agents/agent_engine_client.d.ts +121 -3
  238. package/dist/types/agents/base_agent.d.ts +2 -0
  239. package/dist/types/agents/processors/content_processor_utils.d.ts +9 -9
  240. package/dist/types/agents/run_config.d.ts +14 -0
  241. package/dist/types/cli/cli_eval.d.ts +172 -9
  242. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  243. package/dist/types/cli/utils/envs.d.ts +13 -3
  244. package/dist/types/cli/utils/evals.d.ts +64 -1
  245. package/dist/types/cli/utils/logs.d.ts +19 -2
  246. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  247. package/dist/types/code_executors/container_code_executor.d.ts +49 -8
  248. package/dist/types/common.d.ts +16 -9
  249. package/dist/types/context/compaction_utils.d.ts +13 -1
  250. package/dist/types/events/event.d.ts +3 -0
  251. package/dist/types/features/feature_registry.d.ts +1 -0
  252. package/dist/types/index.d.ts +9 -6
  253. package/dist/types/plugins/base_plugin.d.ts +50 -21
  254. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  255. package/dist/types/runner/runner.d.ts +11 -0
  256. package/dist/types/sessions/base_session_service.d.ts +0 -2
  257. package/dist/types/sessions/db/operations.d.ts +2 -1
  258. package/dist/types/sessions/db/schema.d.ts +5 -3
  259. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  260. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  261. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  262. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  263. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  264. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  265. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  266. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  267. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  268. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  269. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  270. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  271. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  272. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  273. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  274. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  275. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  276. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  277. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  278. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  279. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  280. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  281. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  282. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  283. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  284. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  285. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  286. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  287. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  288. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  289. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  290. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  291. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  292. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  293. package/dist/types/tools/agent_tool.d.ts +1 -1
  294. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +13 -4
  295. package/dist/types/tools/base_toolset.d.ts +1 -1
  296. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  297. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  298. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  299. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  300. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +2 -0
  301. package/dist/types/tools/load_artifacts_tool.d.ts +5 -1
  302. package/dist/types/tools/load_memory_tool.d.ts +13 -7
  303. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  304. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  305. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +7 -3
  306. package/dist/types/tools/toolbox_toolset.d.ts +15 -20
  307. package/dist/types/utils/async_queue.d.ts +14 -0
  308. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  309. package/dist/types/utils/error_utils.d.ts +4 -0
  310. package/dist/types/utils/gemini_schema_util.d.ts +27 -6
  311. package/dist/types/utils/id_provider.d.ts +43 -0
  312. package/dist/types/utils/model_name.d.ts +8 -0
  313. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  314. package/dist/types/version.d.ts +1 -1
  315. package/dist/types/workflow/index.d.ts +1 -1
  316. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  317. package/dist/web/index_web.js +86 -88
  318. package/dist/web/index_web.js.map +4 -4
  319. package/package.json +13 -15
  320. package/dist/cjs/telemetry/google_cloud.js +0 -116
  321. package/dist/cjs/telemetry/tracing.js +0 -393
  322. package/dist/esm/telemetry/google_cloud.js +0 -99
  323. package/dist/esm/telemetry/setup.js +0 -88
  324. package/dist/esm/telemetry/tracing.js +0 -361
  325. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  326. package/dist/types/telemetry/tracing.d.ts +0 -143
@@ -33,6 +33,7 @@ var import_sdk = require("@a2a-js/sdk");
33
33
  var import_client = require("@a2a-js/sdk/client");
34
34
  var import_base_agent = require("../agents/base_agent.js");
35
35
  var import_event = require("../events/event.js");
36
+ var import_instrumentation = require("../telemetry/api/instrumentation.js");
36
37
  var import_env_aware_utils = require("../utils/env_aware_utils.js");
37
38
  var import_logger = require("../utils/logger.js");
38
39
  var import_a2a_event = require("./a2a_event.js");
@@ -46,6 +47,18 @@ var import_metadata_converter_utils = require("./metadata_converter_utils.js");
46
47
  * Copyright 2026 Google LLC
47
48
  * SPDX-License-Identifier: Apache-2.0
48
49
  */
50
+ function createTracePropagatingClientFactory() {
51
+ const fetchImpl = (0, import_instrumentation.propagateTraceContext)();
52
+ return new import_client.ClientFactory(
53
+ import_client.ClientFactoryOptions.createFrom(import_client.ClientFactoryOptions.default, {
54
+ transports: [
55
+ new import_client.JsonRpcTransportFactory({ fetchImpl }),
56
+ new import_client.RestTransportFactory({ fetchImpl })
57
+ ]
58
+ })
59
+ );
60
+ }
61
+ __name(createTracePropagatingClientFactory, "createTracePropagatingClientFactory");
49
62
  const _RemoteA2AAgent = class _RemoteA2AAgent extends import_base_agent.BaseAgent {
50
63
  constructor(a2aConfig) {
51
64
  super(a2aConfig);
@@ -56,6 +69,7 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends import_base_agent.BaseAgen
56
69
  }
57
70
  }
58
71
  async init() {
72
+ var _a;
59
73
  if (this.isInitialized) {
60
74
  return;
61
75
  }
@@ -68,7 +82,7 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends import_base_agent.BaseAgen
68
82
  this.a2aConfig.resolveAgentCardOptions
69
83
  );
70
84
  if (!this.client) {
71
- const factory = this.a2aConfig.clientFactory || new import_client.ClientFactory();
85
+ const factory = (_a = this.a2aConfig.clientFactory) != null ? _a : createTracePropagatingClientFactory();
72
86
  this.client = await factory.createFromAgentCard(this.card);
73
87
  }
74
88
  }
@@ -84,7 +98,8 @@ const _RemoteA2AAgent = class _RemoteA2AAgent extends import_base_agent.BaseAgen
84
98
  }
85
99
  const userFnCall = (0, import_a2a_remote_agent_utils.getUserFunctionCallAt)(
86
100
  context.session,
87
- events.length - 1
101
+ events.length - 1,
102
+ this.name
88
103
  );
89
104
  let parts;
90
105
  let taskId = void 0;
@@ -46,7 +46,8 @@ var import_part_converter_utils = require("./part_converter_utils.js");
46
46
  * Copyright 2026 Google LLC
47
47
  * SPDX-License-Identifier: Apache-2.0
48
48
  */
49
- function getUserFunctionCallAt(session, index) {
49
+ function getUserFunctionCallAt(session, index, agentName) {
50
+ var _a, _b;
50
51
  const events = session.events;
51
52
  if (index < 0 || index >= events.length) {
52
53
  return void 0;
@@ -55,13 +56,16 @@ function getUserFunctionCallAt(session, index) {
55
56
  if (candidate.author !== "user") {
56
57
  return void 0;
57
58
  }
58
- const fnCallId = getFunctionResponseCallId(candidate);
59
- if (!fnCallId) {
59
+ const fnCallIds = (_b = (_a = candidate.content) == null ? void 0 : _a.parts) == null ? void 0 : _b.map((part) => {
60
+ var _a2;
61
+ return (_a2 = part.functionResponse) == null ? void 0 : _a2.id;
62
+ }).filter((id) => !!id);
63
+ if (!(fnCallIds == null ? void 0 : fnCallIds.length)) {
60
64
  return void 0;
61
65
  }
62
66
  for (let i = index - 1; i >= 0; i--) {
63
67
  const request = events[i];
64
- if (!isFunctionCallEvent(request, fnCallId)) {
68
+ if (request.author !== agentName || !fnCallIds.some((callId) => isFunctionCallEvent(request, callId))) {
65
69
  continue;
66
70
  }
67
71
  const metadata = request.customMetadata || {};
@@ -43,12 +43,11 @@ module.exports = __toCommonJS(agent_card_exports);
43
43
  var import_client = require("@a2a-js/sdk/client");
44
44
  var fs = __toESM(require("node:fs/promises"), 1);
45
45
  var import_node_url = require("node:url");
46
- var import_invocation_context = require("../agents/invocation_context.js");
47
46
  var import_llm_agent = require("../agents/llm_agent.js");
48
47
  var import_loop_agent = require("../agents/loop_agent.js");
49
48
  var import_parallel_agent = require("../agents/parallel_agent.js");
50
- var import_readonly_context = require("../agents/readonly_context.js");
51
49
  var import_sequential_agent = require("../agents/sequential_agent.js");
50
+ var import_instrumentation = require("../telemetry/api/instrumentation.js");
52
51
  var import_base_tool = require("../tools/base_tool.js");
53
52
  var import_base_toolset = require("../tools/base_toolset.js");
54
53
  var import_logger = require("../utils/logger.js");
@@ -67,7 +66,7 @@ async function resolveAgentCard(agentCard, options = {}) {
67
66
  if (source.startsWith("http://") || source.startsWith("https://")) {
68
67
  await refuseLinkLocalHost(source);
69
68
  const resolver = new import_client.DefaultAgentCardResolver({
70
- fetchImpl: refuseRedirectFetch
69
+ fetchImpl: tracePropagatingRefuseRedirectFetch
71
70
  });
72
71
  const card = await resolver.resolve(source);
73
72
  validateCardRpcTargets(card, source, options);
@@ -107,6 +106,7 @@ async function refuseRedirectFetch(url, init) {
107
106
  return response;
108
107
  }
109
108
  __name(refuseRedirectFetch, "refuseRedirectFetch");
109
+ const tracePropagatingRefuseRedirectFetch = (0, import_instrumentation.propagateTraceContext)(refuseRedirectFetch);
110
110
  function parseCardUrl(source) {
111
111
  let url;
112
112
  try {
@@ -273,7 +273,7 @@ async function buildLLMAgentSkills(agent) {
273
273
  {
274
274
  id: agent.name,
275
275
  name: "model",
276
- description: await buildDescriptionFromInstructions(agent),
276
+ description: buildAgentDescription(agent),
277
277
  tags: ["llm"]
278
278
  }
279
279
  ];
@@ -342,7 +342,7 @@ function buildAgentDescription(agent) {
342
342
  if (agent.description) {
343
343
  descriptionParts.push(agent.description);
344
344
  }
345
- if (agent.subAgents.length > 0) {
345
+ if (!(0, import_llm_agent.isLlmAgent)(agent) && agent.subAgents.length > 0) {
346
346
  if ((0, import_loop_agent.isLoopAgent)(agent)) {
347
347
  descriptionParts.push(buildLoopAgentDescription(agent));
348
348
  } else if ((0, import_parallel_agent.isParallelAgent)(agent)) {
@@ -420,82 +420,6 @@ function buildLoopAgentDescription(agent) {
420
420
  return `${descriptions.join(" ")} in a loop (max ${maxIterations} iterations).`;
421
421
  }
422
422
  __name(buildLoopAgentDescription, "buildLoopAgentDescription");
423
- async function buildDescriptionFromInstructions(agent) {
424
- const descriptionParts = [];
425
- if (agent.description) {
426
- descriptionParts.push(agent.description);
427
- }
428
- if (agent.instruction) {
429
- let instructionStr;
430
- if (typeof agent.instruction === "function") {
431
- const dummyContext = new import_readonly_context.ReadonlyContext(
432
- new import_invocation_context.InvocationContext({
433
- agent
434
- })
435
- );
436
- try {
437
- instructionStr = await agent.instruction(dummyContext);
438
- } catch (e) {
439
- import_logger.logger.warn("Failed to resolve dynamic instruction for AgentCard", e);
440
- instructionStr = "";
441
- }
442
- } else {
443
- instructionStr = agent.instruction;
444
- }
445
- if (instructionStr) {
446
- descriptionParts.push(replacePronouns(instructionStr));
447
- }
448
- }
449
- const root = agent.rootAgent;
450
- if ((0, import_llm_agent.isLlmAgent)(root) && root.globalInstruction) {
451
- let globalInstructionStr;
452
- if (typeof root.globalInstruction === "function") {
453
- const dummyContext = new import_readonly_context.ReadonlyContext(
454
- new import_invocation_context.InvocationContext({
455
- agent
456
- })
457
- );
458
- try {
459
- globalInstructionStr = await root.globalInstruction(dummyContext);
460
- } catch (e) {
461
- import_logger.logger.warn(
462
- "Failed to resolve dynamic global instruction for AgentCard",
463
- e
464
- );
465
- globalInstructionStr = "";
466
- }
467
- } else {
468
- globalInstructionStr = root.globalInstruction;
469
- }
470
- if (globalInstructionStr) {
471
- descriptionParts.push(replacePronouns(globalInstructionStr));
472
- }
473
- }
474
- if (descriptionParts.length > 0) {
475
- return descriptionParts.join(" ");
476
- } else {
477
- return getDefaultAgentDescription(agent);
478
- }
479
- }
480
- __name(buildDescriptionFromInstructions, "buildDescriptionFromInstructions");
481
- function replacePronouns(instruction) {
482
- const substitutions = [
483
- { original: "you were", target: "I was" },
484
- { original: "you are", target: "I am" },
485
- { original: "you're", target: "I am" },
486
- { original: "you've", target: "I have" },
487
- { original: "yours", target: "mine" },
488
- { original: "your", target: "my" },
489
- { original: "you", target: "I" }
490
- ];
491
- let result = instruction;
492
- for (const sub of substitutions) {
493
- const pattern = new RegExp(`\\b${sub.original}\\b`, "gi");
494
- result = result.replace(pattern, sub.target);
495
- }
496
- return result;
497
- }
498
- __name(replacePronouns, "replacePronouns");
499
423
  function getDefaultAgentDescription(agent) {
500
424
  if ((0, import_loop_agent.isLoopAgent)(agent)) {
501
425
  return "A loop workflow agent";
@@ -44,6 +44,7 @@ var import_sdk = require("@a2a-js/sdk");
44
44
  var import_server = require("@a2a-js/sdk/server");
45
45
  var import_run_config = require("../agents/run_config.js");
46
46
  var import_in_memory_session_service = require("../sessions/in_memory_session_service.js");
47
+ var import_instrumentation = require("../telemetry/api/instrumentation.js");
47
48
  var import_logger = require("../utils/logger.js");
48
49
  var import_optional_peer = require("../utils/optional_peer.js");
49
50
  var import_agent_card = require("./agent_card.js");
@@ -63,6 +64,10 @@ async function loadExpressBindings() {
63
64
  return { express: expressModule.default, a2aExpress };
64
65
  }
65
66
  __name(loadExpressBindings, "loadExpressBindings");
67
+ function continueRemoteTrace(req, _res, next) {
68
+ (0, import_instrumentation.runWithRemoteTraceContext)(req.headers, () => next());
69
+ }
70
+ __name(continueRemoteTrace, "continueRemoteTrace");
66
71
  function resolveA2aUserBuilder(options, a2aExpress) {
67
72
  if (options.authentication) {
68
73
  return options.authentication;
@@ -124,6 +129,7 @@ async function toA2a(agent, options = {}) {
124
129
  );
125
130
  app.use(
126
131
  `${basePath}/rest`,
132
+ continueRemoteTrace,
127
133
  a2aExpress.restHandler({
128
134
  requestHandler,
129
135
  userBuilder
@@ -131,6 +137,7 @@ async function toA2a(agent, options = {}) {
131
137
  );
132
138
  app.use(
133
139
  `${basePath}/jsonrpc`,
140
+ continueRemoteTrace,
134
141
  a2aExpress.jsonRpcHandler({
135
142
  requestHandler,
136
143
  userBuilder
@@ -79,7 +79,12 @@ function messageToAdkEvent(msg, invocationId, agentName, branch) {
79
79
  return {
80
80
  ...createAdkEventFromMetadata(msg),
81
81
  invocationId,
82
- author: msg.role === import_a2a_event.MessageRole.USER ? import_a2a_event.MessageRole.USER : agentName,
82
+ // The role on a peer's message is the peer's own claim and must not decide
83
+ // authorship: letting `user` through here lets a remote agent post events
84
+ // that read as the local user's, which is a trust anchor elsewhere (tool
85
+ // confirmations are approved only from user-authored events). Attribute the
86
+ // event to the peer, the same way the task and status converters below do.
87
+ author: agentName,
83
88
  branch,
84
89
  content,
85
90
  turnComplete: true,
@@ -194,8 +199,10 @@ function createAdkEventFromMetadata(a2aEvent) {
194
199
  // (set it to a shared ancestor branch, or omit it) to leak its content
195
200
  // into an unrelated sibling agent's LLM context. Every caller of the
196
201
  // `*ToAdkEvent` functions in this file force-sets `branch` from its own
197
- // local `InvocationContext` instead, the same way `author` is handled.
198
- author: metadata[import_metadata_converter_utils.A2AMetadataKeys.AUTHOR],
202
+ // local `InvocationContext` instead, the same way `author` is handled:
203
+ // `author` is likewise never restored from peer metadata here, since every
204
+ // converter sets it from the local context after the spread, so reading it
205
+ // from metadata would be dead and read as if a peer could set the author.
199
206
  partial: metadata[import_metadata_converter_utils.A2AMetadataKeys.PARTIAL],
200
207
  errorCode: metadata[import_metadata_converter_utils.A2AMetadataKeys.ERROR_CODE],
201
208
  errorMessage: metadata[import_metadata_converter_utils.A2AMetadataKeys.ERROR_MESSAGE],