@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,276 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ /**
6
+ * @license
7
+ * Copyright 2026 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ var _a, _b;
11
+ import { context, createContextKey } from "@opentelemetry/api";
12
+ import {
13
+ MetricReader
14
+ } from "@opentelemetry/sdk-metrics";
15
+ import { formatError } from "../../utils/error_utils.js";
16
+ import { logger } from "../../utils/logger.js";
17
+ const MIN_EXPORT_INTERVAL_MS = 5e3;
18
+ const FLOOR_ENV_VAR = "GOOGLE_CLOUD_AGENT_ENGINE_METRICS_COLLECTION_INTERVAL_FLOOR_MS";
19
+ const EXPORT_INTERVAL_ENV_VAR = "OTEL_METRIC_EXPORT_INTERVAL";
20
+ const EXPORT_TIMEOUT_ENV_VAR = "OTEL_METRIC_EXPORT_TIMEOUT";
21
+ const DEFAULT_EXPORT_INTERVAL_MS = 6e4;
22
+ const DEFAULT_EXPORT_TIMEOUT_MS = 3e4;
23
+ const OVERDUE_PERIODS = 1.5;
24
+ const INFERENCE_START_HOOK_KEY = /* @__PURE__ */ Symbol.for(
25
+ "google.adk.telemetry.inferenceStartHook"
26
+ );
27
+ const SUPPRESS_TRACING_KEY = createContextKey(
28
+ "OpenTelemetry SDK Context Key SUPPRESS_TRACING"
29
+ );
30
+ const EXPORT_RESULT_SUCCESS = 0;
31
+ const REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
32
+ "google.adk.requestDrivenMetricReader"
33
+ );
34
+ function isRequestDrivenMetricReader(obj) {
35
+ return typeof obj === "object" && obj !== null && REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL in obj;
36
+ }
37
+ __name(isRequestDrivenMetricReader, "isRequestDrivenMetricReader");
38
+ const _RequestDrivenMetricReader = class _RequestDrivenMetricReader extends (_b = MetricReader, _a = REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL, _b) {
39
+ constructor({
40
+ exporter,
41
+ exportIntervalMillis,
42
+ exportTimeoutMillis,
43
+ floorMillis,
44
+ now = /* @__PURE__ */ __name(() => performance.now(), "now")
45
+ }) {
46
+ var _a2, _b2;
47
+ super({
48
+ aggregationSelector: (_a2 = exporter.selectAggregation) == null ? void 0 : _a2.bind(exporter),
49
+ aggregationTemporalitySelector: (_b2 = exporter.selectAggregationTemporality) == null ? void 0 : _b2.bind(exporter)
50
+ });
51
+ this[_a] = true;
52
+ this.inferenceStartHook = /* @__PURE__ */ __name(() => this.onInferenceStart(), "inferenceStartHook");
53
+ this.inFlight = 0;
54
+ this.isShutdown = false;
55
+ this.warnedNoRequest = false;
56
+ this.exporter = exporter;
57
+ this.now = now;
58
+ this.periodMillis = resolveMillis({
59
+ name: EXPORT_INTERVAL_ENV_VAR,
60
+ explicit: exportIntervalMillis,
61
+ fallback: DEFAULT_EXPORT_INTERVAL_MS,
62
+ allowZero: false
63
+ });
64
+ this.exportTimeoutMillis = resolveMillis({
65
+ name: EXPORT_TIMEOUT_ENV_VAR,
66
+ explicit: exportTimeoutMillis,
67
+ fallback: DEFAULT_EXPORT_TIMEOUT_MS,
68
+ allowZero: false
69
+ });
70
+ this.floorMillis = resolveMillis({
71
+ name: FLOOR_ENV_VAR,
72
+ explicit: floorMillis,
73
+ fallback: MIN_EXPORT_INTERVAL_MS,
74
+ allowZero: true
75
+ });
76
+ this.nextDue = this.now() + this.periodMillis;
77
+ }
78
+ /** Marks a request as started, and collects if a guidepost has passed. */
79
+ onRequestStart() {
80
+ try {
81
+ const now = this.now();
82
+ const overlap = this.inFlight >= 1;
83
+ if (!overlap) {
84
+ this.busyStart = now;
85
+ }
86
+ this.inFlight += 1;
87
+ if (!this.canCollect() || !overlap || now < this.nextDue) {
88
+ return;
89
+ }
90
+ if (this.floorAllows(now)) {
91
+ this.startCollect(now);
92
+ return;
93
+ }
94
+ this.nextDue += this.periodMillis;
95
+ } catch (error) {
96
+ logger.warn(`Metric request-start hook failed: ${formatError(error)}`);
97
+ }
98
+ }
99
+ /**
100
+ * Marks a request as ended. Collects when no request is left in flight and
101
+ * the floor allows it, and resolves once any running collect has exported.
102
+ */
103
+ async onRequestEnd() {
104
+ try {
105
+ const now = this.now();
106
+ this.inFlight = Math.max(0, this.inFlight - 1);
107
+ if (this.inFlight === 0 && this.canCollect() && this.floorAllows(now)) {
108
+ this.startCollect(now);
109
+ }
110
+ } catch (error) {
111
+ logger.warn(`Metric request-end hook failed: ${formatError(error)}`);
112
+ }
113
+ await this.runningCollect;
114
+ }
115
+ /** Collects at a model-call start if the busy period is overdue. */
116
+ onInferenceStart() {
117
+ try {
118
+ if (this.inFlight === 0) {
119
+ if (!this.warnedNoRequest && !this.isShutdown) {
120
+ this.warnedNoRequest = true;
121
+ logger.warn(
122
+ "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."
123
+ );
124
+ }
125
+ return;
126
+ }
127
+ const now = this.now();
128
+ if (this.canCollect() && this.isOverdue(now) && this.floorAllows(now)) {
129
+ this.startCollect(now);
130
+ }
131
+ } catch (error) {
132
+ logger.warn(`Metric model-call hook failed: ${formatError(error)}`);
133
+ }
134
+ }
135
+ /**
136
+ * Registers the model-call start hook when a provider initializes this
137
+ * reader.
138
+ *
139
+ * Because the hook uses a single process-global slot where the last
140
+ * registered reader wins, only a single active reader is supported.
141
+ */
142
+ onInitialized() {
143
+ Reflect.set(globalThis, INFERENCE_START_HOOK_KEY, this.inferenceStartHook);
144
+ }
145
+ /** Shuts down the reader, exports remaining metrics, and cleans up hooks. */
146
+ async onShutdown() {
147
+ this.isShutdown = true;
148
+ if (Reflect.get(globalThis, INFERENCE_START_HOOK_KEY) === this.inferenceStartHook) {
149
+ Reflect.deleteProperty(globalThis, INFERENCE_START_HOOK_KEY);
150
+ }
151
+ await this.runningCollect;
152
+ await this.runExclusive();
153
+ await this.exporter.shutdown();
154
+ }
155
+ /** Flushes any in-flight and pending metric exports. */
156
+ async onForceFlush() {
157
+ await this.runningCollect;
158
+ await this.runExclusive();
159
+ await this.exporter.forceFlush();
160
+ }
161
+ canCollect() {
162
+ return this.runningCollect === void 0 && !this.isShutdown;
163
+ }
164
+ floorAllows(now) {
165
+ return this.lastCollect === void 0 || now - this.lastCollect >= this.floorMillis;
166
+ }
167
+ /**
168
+ * Returns whether the current busy period has gone 1.5 periods without a
169
+ * collect. A collect from an earlier busy period does not count, so a short
170
+ * request after an idle gap is never overdue: collecting at its model call
171
+ * would set the floor and mute the drain that carries its points.
172
+ */
173
+ isOverdue(now) {
174
+ var _a2;
175
+ if (this.busyStart === void 0) {
176
+ return false;
177
+ }
178
+ const since = Math.max(this.busyStart, (_a2 = this.lastCollect) != null ? _a2 : -Infinity);
179
+ return now - since >= OVERDUE_PERIODS * this.periodMillis;
180
+ }
181
+ /** Starts a collect, and moves the guidepost grid past `now`. */
182
+ startCollect(now) {
183
+ if (now >= this.nextDue) {
184
+ const missed = Math.floor((now - this.nextDue) / this.periodMillis) + 1;
185
+ this.nextDue += missed * this.periodMillis;
186
+ }
187
+ this.lastCollect = now;
188
+ void this.runExclusive();
189
+ }
190
+ /** Runs one collect and export as the running collect. Never rejects. */
191
+ runExclusive() {
192
+ const run = this.collectAndExport().finally(() => {
193
+ if (this.runningCollect === run) {
194
+ this.runningCollect = void 0;
195
+ }
196
+ });
197
+ this.runningCollect = run;
198
+ return run;
199
+ }
200
+ async collectAndExport() {
201
+ var _a2, _b2;
202
+ try {
203
+ const { resourceMetrics, errors } = await this.collect({
204
+ timeoutMillis: this.exportTimeoutMillis
205
+ });
206
+ for (const error of errors) {
207
+ logger.warn(`Metric collection reported: ${formatError(error)}`);
208
+ }
209
+ if (resourceMetrics.resource.asyncAttributesPending) {
210
+ await ((_b2 = (_a2 = resourceMetrics.resource).waitForAsyncAttributes) == null ? void 0 : _b2.call(_a2));
211
+ }
212
+ if (resourceMetrics.scopeMetrics.length === 0) {
213
+ return;
214
+ }
215
+ await this.export(resourceMetrics);
216
+ } catch (error) {
217
+ logger.warn(`Request-driven metric export failed: ${formatError(error)}`);
218
+ }
219
+ }
220
+ async export(resourceMetrics) {
221
+ let timer;
222
+ const timedOut = new Promise((_, reject) => {
223
+ timer = setTimeout(() => {
224
+ reject(
225
+ new Error(
226
+ `Metric export timed out after ${this.exportTimeoutMillis} ms.`
227
+ )
228
+ );
229
+ }, this.exportTimeoutMillis);
230
+ });
231
+ const exported = new Promise((resolve) => {
232
+ context.with(
233
+ context.active().setValue(SUPPRESS_TRACING_KEY, true),
234
+ () => this.exporter.export(resourceMetrics, resolve)
235
+ );
236
+ });
237
+ try {
238
+ const result = await Promise.race([exported, timedOut]);
239
+ if (result.code !== EXPORT_RESULT_SUCCESS) {
240
+ throw new Error(
241
+ `Metric exporter reported a failure: ${formatError(result.error)}`
242
+ );
243
+ }
244
+ } finally {
245
+ clearTimeout(timer);
246
+ }
247
+ }
248
+ };
249
+ __name(_RequestDrivenMetricReader, "RequestDrivenMetricReader");
250
+ let RequestDrivenMetricReader = _RequestDrivenMetricReader;
251
+ function resolveMillis({
252
+ name,
253
+ explicit,
254
+ fallback,
255
+ allowZero
256
+ }) {
257
+ const raw = explicit != null ? explicit : process.env[name];
258
+ if (raw === void 0) {
259
+ return fallback;
260
+ }
261
+ const value = typeof raw === "number" ? raw : Number(raw.trim() || NaN);
262
+ const inRange = allowZero ? value >= 0 : value > 0;
263
+ if (Number.isFinite(value) && inRange) {
264
+ return value;
265
+ }
266
+ logger.warn(
267
+ `Found invalid value for ${name}=${JSON.stringify(raw)}, using default ${fallback}.`
268
+ );
269
+ return fallback;
270
+ }
271
+ __name(resolveMillis, "resolveMillis");
272
+ export {
273
+ MIN_EXPORT_INTERVAL_MS,
274
+ RequestDrivenMetricReader,
275
+ isRequestDrivenMetricReader
276
+ };
@@ -0,0 +1,160 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ /**
6
+ * @license
7
+ * Copyright 2025 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ import {
11
+ createNoopMeter,
12
+ metrics,
13
+ ProxyTracerProvider,
14
+ trace
15
+ } from "@opentelemetry/api";
16
+ import { logs } from "@opentelemetry/api-logs";
17
+ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
18
+ import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
19
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
20
+ import { detectResources, envDetector } from "@opentelemetry/resources";
21
+ import {
22
+ BatchLogRecordProcessor,
23
+ LoggerProvider
24
+ } from "@opentelemetry/sdk-logs";
25
+ import {
26
+ MeterProvider,
27
+ PeriodicExportingMetricReader
28
+ } from "@opentelemetry/sdk-metrics";
29
+ import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
30
+ import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
31
+ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
32
+ const tracerAlreadySet = isTracerProviderRegistered();
33
+ const meterAlreadySet = isMeterProviderRegistered();
34
+ const loggerAlreadySet = isLoggerProviderRegistered();
35
+ if (tracerAlreadySet && meterAlreadySet && loggerAlreadySet) {
36
+ return;
37
+ }
38
+ const exportersConfig = getOtelExportersConfig();
39
+ if (tracerAlreadySet) {
40
+ exportersConfig.enableTracing = false;
41
+ }
42
+ if (meterAlreadySet) {
43
+ exportersConfig.enableMetrics = false;
44
+ }
45
+ if (loggerAlreadySet) {
46
+ exportersConfig.enableLogging = false;
47
+ }
48
+ const resource = otelResource || getOtelResource();
49
+ const allHooks = [...otelHooksToSetup, getOtelExporters(exportersConfig)];
50
+ const spanProcessors = allHooks.flatMap(
51
+ (hooks) => hooks.spanProcessors || []
52
+ );
53
+ const metricReaders = allHooks.flatMap((hooks) => hooks.metricReaders || []);
54
+ const logRecordProcessors = allHooks.flatMap(
55
+ (hooks) => hooks.logRecordProcessors || []
56
+ );
57
+ if (!tracerAlreadySet && spanProcessors.length > 0) {
58
+ const tracerProvider = new NodeTracerProvider({
59
+ resource,
60
+ spanProcessors
61
+ });
62
+ tracerProvider.register();
63
+ }
64
+ if (!meterAlreadySet && metricReaders.length > 0) {
65
+ const meterProvider = new MeterProvider({
66
+ readers: metricReaders,
67
+ resource
68
+ });
69
+ metrics.setGlobalMeterProvider(meterProvider);
70
+ }
71
+ if (!loggerAlreadySet && logRecordProcessors.length > 0) {
72
+ const loggerProvider = new LoggerProvider({
73
+ resource,
74
+ processors: logRecordProcessors
75
+ });
76
+ logs.setGlobalLoggerProvider(loggerProvider);
77
+ }
78
+ }
79
+ __name(maybeSetOtelProviders, "maybeSetOtelProviders");
80
+ function getOtelResource() {
81
+ return detectResources({
82
+ detectors: [envDetector]
83
+ });
84
+ }
85
+ __name(getOtelResource, "getOtelResource");
86
+ function getOtelExportersConfig() {
87
+ return {
88
+ enableTracing: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT),
89
+ enableMetrics: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT),
90
+ enableLogging: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
91
+ };
92
+ }
93
+ __name(getOtelExportersConfig, "getOtelExportersConfig");
94
+ function getOtelExporters(config = getOtelExportersConfig()) {
95
+ const { enableTracing, enableMetrics, enableLogging } = config;
96
+ return {
97
+ spanProcessors: enableTracing ? [new BatchSpanProcessor(new OTLPTraceExporter())] : [],
98
+ metricReaders: enableMetrics ? [
99
+ new PeriodicExportingMetricReader({
100
+ exporter: new OTLPMetricExporter()
101
+ })
102
+ ] : [],
103
+ logRecordProcessors: enableLogging ? [new BatchLogRecordProcessor({ exporter: new OTLPLogExporter() })] : []
104
+ };
105
+ }
106
+ __name(getOtelExporters, "getOtelExporters");
107
+ function isTracerProviderRegistered() {
108
+ var _a, _b, _c, _d, _e, _f, _g;
109
+ const provider = (_b = (_a = trace).getTracerProvider) == null ? void 0 : _b.call(_a);
110
+ if (!provider) {
111
+ return false;
112
+ }
113
+ const noopDelegate = typeof ProxyTracerProvider === "function" ? (_d = (_c = new ProxyTracerProvider()) == null ? void 0 : _c.getDelegate) == null ? void 0 : _d.call(_c) : void 0;
114
+ const getDelegate = provider.getDelegate;
115
+ if (typeof getDelegate === "function") {
116
+ const delegate = getDelegate.call(provider);
117
+ if (!delegate) {
118
+ return false;
119
+ }
120
+ if (noopDelegate && delegate === noopDelegate) {
121
+ return false;
122
+ }
123
+ return ((_e = delegate.constructor) == null ? void 0 : _e.name) !== "NoopTracerProvider";
124
+ }
125
+ if (noopDelegate && provider === noopDelegate) {
126
+ return false;
127
+ }
128
+ return ((_f = provider.constructor) == null ? void 0 : _f.name) !== "ProxyTracerProvider" && ((_g = provider.constructor) == null ? void 0 : _g.name) !== "NoopTracerProvider";
129
+ }
130
+ __name(isTracerProviderRegistered, "isTracerProviderRegistered");
131
+ function isMeterProviderRegistered() {
132
+ var _a, _b, _c;
133
+ const provider = (_b = (_a = metrics).getMeterProvider) == null ? void 0 : _b.call(_a);
134
+ if (!provider) {
135
+ return false;
136
+ }
137
+ const noopMeter = typeof createNoopMeter === "function" ? createNoopMeter() : void 0;
138
+ if (noopMeter && typeof provider.getMeter === "function") {
139
+ if (provider.getMeter("adk") === noopMeter) {
140
+ return false;
141
+ }
142
+ }
143
+ return ((_c = provider.constructor) == null ? void 0 : _c.name) !== "NoopMeterProvider";
144
+ }
145
+ __name(isMeterProviderRegistered, "isMeterProviderRegistered");
146
+ function isLoggerProviderRegistered() {
147
+ var _a, _b, _c, _d;
148
+ const provider = (_b = (_a = logs).getLoggerProvider) == null ? void 0 : _b.call(_a);
149
+ if (!provider) {
150
+ return false;
151
+ }
152
+ if (typeof provider._getDelegate === "function") {
153
+ return provider._delegate !== void 0;
154
+ }
155
+ return ((_c = provider.constructor) == null ? void 0 : _c.name) !== "ProxyLoggerProvider" && ((_d = provider.constructor) == null ? void 0 : _d.name) !== "NoopLoggerProvider";
156
+ }
157
+ __name(isLoggerProviderRegistered, "isLoggerProviderRegistered");
158
+ export {
159
+ maybeSetOtelProviders
160
+ };
@@ -9,6 +9,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
9
9
  */
10
10
  var _a, _b;
11
11
  import { Type } from "@google/genai";
12
+ import { isEqual } from "lodash-es";
12
13
  import { isLlmAgent } from "../agents/llm_agent.js";
13
14
  import { InMemoryMemoryService } from "../memory/in_memory_memory_service.js";
14
15
  import { Runner } from "../runner/runner.js";
@@ -129,12 +130,18 @@ const _AgentTool = class _AgentTool extends (_b = BaseTool, _a = AGENT_TOOL_SIGN
129
130
  memoryService: (_b2 = toolContext.invocationContext.memoryService) != null ? _b2 : new InMemoryMemoryService(),
130
131
  credentialService: toolContext.invocationContext.credentialService
131
132
  });
133
+ const parentState = toolContext.state.toRecord();
132
134
  const session = await runner.sessionService.getOrCreateSession({
133
135
  appName: this.agent.name,
134
136
  userId: toolContext.invocationContext.userId,
135
137
  sessionId: toolContext.invocationContext.session.id,
136
- state: toolContext.state.toRecord()
138
+ state: parentState
137
139
  });
140
+ const stateDelta = Object.fromEntries(
141
+ Object.entries(parentState).filter(
142
+ ([key, value]) => !key.startsWith(State.TEMP_PREFIX) && !isEqual(session.state[key], value)
143
+ )
144
+ );
138
145
  if ((_c = toolContext.abortSignal) == null ? void 0 : _c.aborted) {
139
146
  return "";
140
147
  }
@@ -143,6 +150,7 @@ const _AgentTool = class _AgentTool extends (_b = BaseTool, _a = AGENT_TOOL_SIGN
143
150
  userId: session.userId,
144
151
  sessionId: session.id,
145
152
  newMessage: content,
153
+ stateDelta: Object.keys(stateDelta).length > 0 ? stateDelta : void 0,
146
154
  abortSignal: toolContext.abortSignal
147
155
  })) {
148
156
  if ((_d = toolContext.abortSignal) == null ? void 0 : _d.aborted) {
@@ -16,7 +16,7 @@ var __decorateClass = (decorators, target, key, kind) => {
16
16
  * Copyright 2026 Google LLC
17
17
  * SPDX-License-Identifier: Apache-2.0
18
18
  */
19
- import yaml from "js-yaml";
19
+ import * as yaml from "js-yaml";
20
20
  import { toSnakeCaseName } from "../../utils/case_utils.js";
21
21
  import { experimental } from "../../utils/experimental.js";
22
22
  import { BaseToolset } from "../base_toolset.js";
@@ -24,15 +24,15 @@ import { OpenAPIToolset } from "../openapi_tool/openapi_toolset.js";
24
24
  import { APIHubClient } from "./clients/apihub_client.js";
25
25
  let APIHubToolset = class extends BaseToolset {
26
26
  constructor(options) {
27
- var _a, _b, _c, _d;
28
- super([]);
29
- this.name = (_a = options.name) != null ? _a : "";
30
- this.description = (_b = options.description) != null ? _b : "";
27
+ var _a, _b, _c, _d, _e;
28
+ super((_a = options.toolFilter) != null ? _a : []);
29
+ this.name = (_b = options.name) != null ? _b : "";
30
+ this.description = (_c = options.description) != null ? _c : "";
31
31
  this.apihubResourceName = options.apihubResourceName;
32
- this.lazyLoadSpec = (_c = options.lazyLoadSpec) != null ? _c : false;
32
+ this.lazyLoadSpec = (_d = options.lazyLoadSpec) != null ? _d : false;
33
33
  this.authScheme = options.authScheme;
34
34
  this.authCredential = options.authCredential;
35
- this.apihubClient = (_d = options.apihubClient) != null ? _d : new APIHubClient({
35
+ this.apihubClient = (_e = options.apihubClient) != null ? _e : new APIHubClient({
36
36
  accessToken: options.accessToken,
37
37
  serviceAccountJson: options.serviceAccountJson
38
38
  });
@@ -51,21 +51,12 @@ let APIHubToolset = class extends BaseToolset {
51
51
  const toolset = await this.loadToolset();
52
52
  return toolset ? toolset.getTools(context) : [];
53
53
  }
54
- /**
55
- * Returns the tool with the given name, or `undefined` when the spec
56
- * produced no such tool.
57
- *
58
- * Unlike `OpenAPIToolset.getTool`, the result is a Promise, because the spec
59
- * may still be loading.
60
- *
61
- * @param name The tool name, which is the operation ID in snake_case.
62
- * @throws When the spec cannot be fetched or is not valid YAML or JSON.
63
- */
64
- async getTool(name) {
65
- const toolset = await this.loadToolset();
66
- return toolset == null ? void 0 : toolset.getTool(name);
67
- }
68
54
  async close() {
55
+ if (!this.toolsetPromise) {
56
+ return;
57
+ }
58
+ const toolset = await this.toolsetPromise.catch(() => void 0);
59
+ await (toolset == null ? void 0 : toolset.close());
69
60
  }
70
61
  loadToolset() {
71
62
  if (!this.toolsetPromise) {
@@ -84,6 +75,9 @@ let APIHubToolset = class extends BaseToolset {
84
75
  const spec = await this.apihubClient.getSpecContent(
85
76
  this.apihubResourceName
86
77
  );
78
+ if (!spec.trim()) {
79
+ return void 0;
80
+ }
87
81
  const specDict = yaml.load(spec);
88
82
  if (!specDict) {
89
83
  return void 0;
@@ -93,7 +87,8 @@ let APIHubToolset = class extends BaseToolset {
93
87
  return new OpenAPIToolset({
94
88
  specDict,
95
89
  authScheme: this.authScheme,
96
- authCredential: this.authCredential
90
+ authCredential: this.authCredential,
91
+ toolFilter: this.toolFilter
97
92
  });
98
93
  }
99
94
  };