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