@google/adk 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +17 -2
  2. package/dist/cjs/a2a/a2a_remote_agent_utils.js +8 -4
  3. package/dist/cjs/a2a/agent_card.js +5 -81
  4. package/dist/cjs/a2a/agent_to_a2a.js +7 -0
  5. package/dist/cjs/a2a/event_converter_utils.js +10 -3
  6. package/dist/cjs/agents/agent_engine_client.js +282 -55
  7. package/dist/cjs/agents/base_agent.js +111 -68
  8. package/dist/cjs/agents/functions.js +62 -85
  9. package/dist/cjs/agents/instructions.js +7 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +105 -95
  12. package/dist/cjs/agents/processors/content_processor_utils.js +42 -15
  13. package/dist/cjs/agents/processors/content_request_processor.js +28 -11
  14. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  15. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  16. package/dist/cjs/agents/processors/nl_planning_processor.js +2 -1
  17. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  18. package/dist/cjs/cli/cli_eval.js +884 -17
  19. package/dist/cjs/cli/utils/cleanup.js +84 -0
  20. package/dist/cjs/cli/utils/envs.js +33 -2
  21. package/dist/cjs/cli/utils/evals.js +75 -8
  22. package/dist/cjs/cli/utils/logs.js +128 -9
  23. package/dist/cjs/cli/utils/path_validation.js +83 -0
  24. package/dist/cjs/code_executors/container_code_executor.js +158 -36
  25. package/dist/cjs/common.js +50 -12
  26. package/dist/cjs/context/compaction_utils.js +19 -0
  27. package/dist/cjs/events/event.js +7 -3
  28. package/dist/cjs/features/feature_registry.js +5 -0
  29. package/dist/cjs/index.js +29 -14
  30. package/dist/cjs/models/google_llm.js +33 -2
  31. package/dist/cjs/models/interactions_utils.js +3 -0
  32. package/dist/cjs/plugins/base_plugin.js +45 -21
  33. package/dist/cjs/plugins/plugin_manager.js +27 -0
  34. package/dist/cjs/runner/runner.js +306 -189
  35. package/dist/cjs/sessions/base_session_service.js +1 -4
  36. package/dist/cjs/sessions/database_session_service.js +191 -19
  37. package/dist/cjs/sessions/db/operations.js +70 -1
  38. package/dist/cjs/sessions/db/schema.js +4 -0
  39. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  40. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  41. package/dist/cjs/skills/loader.js +29 -28
  42. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  43. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  44. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  45. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  46. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  47. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  48. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  49. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  50. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  51. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  52. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  53. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  54. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  55. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  56. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  57. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  58. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  59. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  60. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  61. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  62. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  63. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  64. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  65. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  66. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  67. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  68. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  69. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  70. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  71. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  72. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  73. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  74. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  75. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -5
  76. package/dist/cjs/tools/agent_tool.js +9 -1
  77. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +22 -34
  78. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +60 -20
  79. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +26 -10
  80. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +14 -23
  81. package/dist/cjs/tools/base_toolset.js +1 -1
  82. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  83. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  84. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  85. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  86. package/dist/cjs/tools/function_tool.js +15 -5
  87. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +3 -2
  88. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  89. package/dist/cjs/tools/load_artifacts_tool.js +15 -5
  90. package/dist/cjs/tools/load_memory_tool.js +2 -5
  91. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  92. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  93. package/dist/cjs/tools/mcp/mcp_toolset.js +18 -6
  94. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  95. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  96. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +45 -14
  97. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  98. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  99. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  100. package/dist/cjs/tools/toolbox_toolset.js +47 -28
  101. package/dist/cjs/utils/async_queue.js +37 -3
  102. package/dist/cjs/utils/client_labels.js +9 -11
  103. package/dist/cjs/utils/env_aware_utils.js +13 -7
  104. package/dist/cjs/utils/error_utils.js +40 -2
  105. package/dist/cjs/utils/failover_utils.js +10 -9
  106. package/dist/cjs/utils/gemini_schema_util.js +125 -12
  107. package/dist/cjs/utils/id_provider.js +63 -0
  108. package/dist/cjs/utils/model_name.js +15 -0
  109. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  110. package/dist/cjs/utils/ssrf_guard.js +46 -16
  111. package/dist/cjs/version.js +1 -1
  112. package/dist/cjs/workflow/index.js +2 -0
  113. package/dist/cjs/workflow/node_runner.js +24 -80
  114. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  115. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  116. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  117. package/dist/cjs/workflow/workflow.js +12 -12
  118. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  119. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  120. package/dist/esm/a2a/agent_card.js +5 -83
  121. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  122. package/dist/esm/a2a/event_converter_utils.js +10 -3
  123. package/dist/esm/agents/agent_engine_client.js +293 -55
  124. package/dist/esm/agents/base_agent.js +111 -72
  125. package/dist/esm/agents/functions.js +67 -89
  126. package/dist/esm/agents/instructions.js +7 -6
  127. package/dist/esm/agents/invocation_context.js +2 -2
  128. package/dist/esm/agents/llm_agent.js +111 -100
  129. package/dist/esm/agents/processors/content_processor_utils.js +42 -15
  130. package/dist/esm/agents/processors/content_request_processor.js +28 -11
  131. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  132. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  133. package/dist/esm/agents/processors/nl_planning_processor.js +2 -1
  134. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  135. package/dist/esm/cli/cli_eval.js +880 -17
  136. package/dist/esm/cli/utils/cleanup.js +56 -0
  137. package/dist/esm/cli/utils/envs.js +33 -2
  138. package/dist/esm/cli/utils/evals.js +74 -8
  139. package/dist/esm/cli/utils/logs.js +128 -9
  140. package/dist/esm/cli/utils/path_validation.js +45 -0
  141. package/dist/esm/code_executors/container_code_executor.js +158 -36
  142. package/dist/esm/common.js +49 -6
  143. package/dist/esm/context/compaction_utils.js +19 -0
  144. package/dist/esm/events/event.js +7 -3
  145. package/dist/esm/features/feature_registry.js +5 -0
  146. package/dist/esm/index.js +27 -15
  147. package/dist/esm/models/google_llm.js +33 -2
  148. package/dist/esm/models/interactions_utils.js +3 -0
  149. package/dist/esm/plugins/base_plugin.js +45 -21
  150. package/dist/esm/plugins/plugin_manager.js +27 -0
  151. package/dist/esm/runner/runner.js +310 -192
  152. package/dist/esm/sessions/base_session_service.js +1 -4
  153. package/dist/esm/sessions/database_session_service.js +191 -19
  154. package/dist/esm/sessions/db/operations.js +70 -1
  155. package/dist/esm/sessions/db/schema.js +4 -0
  156. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  157. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  158. package/dist/esm/skills/loader.js +29 -28
  159. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  160. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  161. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  162. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  163. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  164. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  165. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  166. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  167. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  168. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  169. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  170. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  171. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  172. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  173. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  174. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  175. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  176. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  177. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  178. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  179. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  180. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  181. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  182. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  183. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  184. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  185. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  186. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  187. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  188. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  189. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  190. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  191. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  192. package/dist/esm/telemetry/export/setup.js +160 -0
  193. package/dist/esm/tools/agent_tool.js +9 -1
  194. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +23 -35
  195. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +64 -21
  196. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +26 -10
  197. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +14 -23
  198. package/dist/esm/tools/base_toolset.js +1 -1
  199. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  200. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  201. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  202. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  203. package/dist/esm/tools/function_tool.js +15 -5
  204. package/dist/esm/tools/google_api_tool/google_api_toolset.js +3 -2
  205. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  206. package/dist/esm/tools/load_artifacts_tool.js +15 -5
  207. package/dist/esm/tools/load_memory_tool.js +2 -5
  208. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  209. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  210. package/dist/esm/tools/mcp/mcp_toolset.js +18 -6
  211. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  212. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  213. package/dist/esm/tools/openapi_tool/rest_api_tool.js +45 -14
  214. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  215. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  216. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  217. package/dist/esm/tools/toolbox_toolset.js +47 -28
  218. package/dist/esm/utils/async_queue.js +37 -3
  219. package/dist/esm/utils/client_labels.js +9 -11
  220. package/dist/esm/utils/env_aware_utils.js +12 -7
  221. package/dist/esm/utils/error_utils.js +37 -1
  222. package/dist/esm/utils/failover_utils.js +10 -9
  223. package/dist/esm/utils/gemini_schema_util.js +124 -11
  224. package/dist/esm/utils/id_provider.js +33 -0
  225. package/dist/esm/utils/model_name.js +14 -0
  226. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  227. package/dist/esm/utils/ssrf_guard.js +55 -15
  228. package/dist/esm/version.js +1 -1
  229. package/dist/esm/workflow/index.js +2 -1
  230. package/dist/esm/workflow/node_runner.js +26 -80
  231. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  232. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  233. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  234. package/dist/esm/workflow/workflow.js +12 -12
  235. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  236. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  237. package/dist/types/agents/agent_engine_client.d.ts +121 -3
  238. package/dist/types/agents/base_agent.d.ts +2 -0
  239. package/dist/types/agents/processors/content_processor_utils.d.ts +9 -9
  240. package/dist/types/agents/run_config.d.ts +14 -0
  241. package/dist/types/cli/cli_eval.d.ts +172 -9
  242. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  243. package/dist/types/cli/utils/envs.d.ts +13 -3
  244. package/dist/types/cli/utils/evals.d.ts +64 -1
  245. package/dist/types/cli/utils/logs.d.ts +19 -2
  246. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  247. package/dist/types/code_executors/container_code_executor.d.ts +49 -8
  248. package/dist/types/common.d.ts +16 -9
  249. package/dist/types/context/compaction_utils.d.ts +13 -1
  250. package/dist/types/events/event.d.ts +3 -0
  251. package/dist/types/features/feature_registry.d.ts +1 -0
  252. package/dist/types/index.d.ts +9 -6
  253. package/dist/types/plugins/base_plugin.d.ts +50 -21
  254. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  255. package/dist/types/runner/runner.d.ts +11 -0
  256. package/dist/types/sessions/base_session_service.d.ts +0 -2
  257. package/dist/types/sessions/db/operations.d.ts +2 -1
  258. package/dist/types/sessions/db/schema.d.ts +5 -3
  259. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  260. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  261. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  262. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  263. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  264. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  265. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  266. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  267. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  268. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  269. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  270. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  271. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  272. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  273. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  274. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  275. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  276. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  277. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  278. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  279. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  280. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  281. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  282. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  283. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  284. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  285. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  286. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  287. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  288. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  289. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  290. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  291. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  292. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  293. package/dist/types/tools/agent_tool.d.ts +1 -1
  294. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +13 -4
  295. package/dist/types/tools/base_toolset.d.ts +1 -1
  296. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  297. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  298. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  299. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  300. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +2 -0
  301. package/dist/types/tools/load_artifacts_tool.d.ts +5 -1
  302. package/dist/types/tools/load_memory_tool.d.ts +13 -7
  303. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  304. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  305. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +7 -3
  306. package/dist/types/tools/toolbox_toolset.d.ts +15 -20
  307. package/dist/types/utils/async_queue.d.ts +14 -0
  308. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  309. package/dist/types/utils/error_utils.d.ts +4 -0
  310. package/dist/types/utils/gemini_schema_util.d.ts +27 -6
  311. package/dist/types/utils/id_provider.d.ts +43 -0
  312. package/dist/types/utils/model_name.d.ts +8 -0
  313. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  314. package/dist/types/version.d.ts +1 -1
  315. package/dist/types/workflow/index.d.ts +1 -1
  316. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  317. package/dist/web/index_web.js +86 -88
  318. package/dist/web/index_web.js.map +4 -4
  319. package/package.json +13 -15
  320. package/dist/cjs/telemetry/google_cloud.js +0 -116
  321. package/dist/cjs/telemetry/tracing.js +0 -393
  322. package/dist/esm/telemetry/google_cloud.js +0 -99
  323. package/dist/esm/telemetry/setup.js +0 -88
  324. package/dist/esm/telemetry/tracing.js +0 -361
  325. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  326. package/dist/types/telemetry/tracing.d.ts +0 -143
@@ -0,0 +1,303 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var request_driven_metric_reader_exports = {};
27
+ __export(request_driven_metric_reader_exports, {
28
+ MIN_EXPORT_INTERVAL_MS: () => MIN_EXPORT_INTERVAL_MS,
29
+ RequestDrivenMetricReader: () => RequestDrivenMetricReader,
30
+ isRequestDrivenMetricReader: () => isRequestDrivenMetricReader
31
+ });
32
+ module.exports = __toCommonJS(request_driven_metric_reader_exports);
33
+ var import_api = require("@opentelemetry/api");
34
+ var import_sdk_metrics = require("@opentelemetry/sdk-metrics");
35
+ var import_error_utils = require("../../utils/error_utils.js");
36
+ var import_logger = require("../../utils/logger.js");
37
+ /**
38
+ * @license
39
+ * Copyright 2026 Google LLC
40
+ * SPDX-License-Identifier: Apache-2.0
41
+ */
42
+ var _a, _b;
43
+ const MIN_EXPORT_INTERVAL_MS = 5e3;
44
+ const FLOOR_ENV_VAR = "GOOGLE_CLOUD_AGENT_ENGINE_METRICS_COLLECTION_INTERVAL_FLOOR_MS";
45
+ const EXPORT_INTERVAL_ENV_VAR = "OTEL_METRIC_EXPORT_INTERVAL";
46
+ const EXPORT_TIMEOUT_ENV_VAR = "OTEL_METRIC_EXPORT_TIMEOUT";
47
+ const DEFAULT_EXPORT_INTERVAL_MS = 6e4;
48
+ const DEFAULT_EXPORT_TIMEOUT_MS = 3e4;
49
+ const OVERDUE_PERIODS = 1.5;
50
+ const INFERENCE_START_HOOK_KEY = /* @__PURE__ */ Symbol.for(
51
+ "google.adk.telemetry.inferenceStartHook"
52
+ );
53
+ const SUPPRESS_TRACING_KEY = (0, import_api.createContextKey)(
54
+ "OpenTelemetry SDK Context Key SUPPRESS_TRACING"
55
+ );
56
+ const EXPORT_RESULT_SUCCESS = 0;
57
+ const REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
58
+ "google.adk.requestDrivenMetricReader"
59
+ );
60
+ function isRequestDrivenMetricReader(obj) {
61
+ return typeof obj === "object" && obj !== null && REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL in obj;
62
+ }
63
+ __name(isRequestDrivenMetricReader, "isRequestDrivenMetricReader");
64
+ const _RequestDrivenMetricReader = class _RequestDrivenMetricReader extends (_b = import_sdk_metrics.MetricReader, _a = REQUEST_DRIVEN_METRIC_READER_SIGNATURE_SYMBOL, _b) {
65
+ constructor({
66
+ exporter,
67
+ exportIntervalMillis,
68
+ exportTimeoutMillis,
69
+ floorMillis,
70
+ now = /* @__PURE__ */ __name(() => performance.now(), "now")
71
+ }) {
72
+ var _a2, _b2;
73
+ super({
74
+ aggregationSelector: (_a2 = exporter.selectAggregation) == null ? void 0 : _a2.bind(exporter),
75
+ aggregationTemporalitySelector: (_b2 = exporter.selectAggregationTemporality) == null ? void 0 : _b2.bind(exporter)
76
+ });
77
+ this[_a] = true;
78
+ this.inferenceStartHook = /* @__PURE__ */ __name(() => this.onInferenceStart(), "inferenceStartHook");
79
+ this.inFlight = 0;
80
+ this.isShutdown = false;
81
+ this.warnedNoRequest = false;
82
+ this.exporter = exporter;
83
+ this.now = now;
84
+ this.periodMillis = resolveMillis({
85
+ name: EXPORT_INTERVAL_ENV_VAR,
86
+ explicit: exportIntervalMillis,
87
+ fallback: DEFAULT_EXPORT_INTERVAL_MS,
88
+ allowZero: false
89
+ });
90
+ this.exportTimeoutMillis = resolveMillis({
91
+ name: EXPORT_TIMEOUT_ENV_VAR,
92
+ explicit: exportTimeoutMillis,
93
+ fallback: DEFAULT_EXPORT_TIMEOUT_MS,
94
+ allowZero: false
95
+ });
96
+ this.floorMillis = resolveMillis({
97
+ name: FLOOR_ENV_VAR,
98
+ explicit: floorMillis,
99
+ fallback: MIN_EXPORT_INTERVAL_MS,
100
+ allowZero: true
101
+ });
102
+ this.nextDue = this.now() + this.periodMillis;
103
+ }
104
+ /** Marks a request as started, and collects if a guidepost has passed. */
105
+ onRequestStart() {
106
+ try {
107
+ const now = this.now();
108
+ const overlap = this.inFlight >= 1;
109
+ if (!overlap) {
110
+ this.busyStart = now;
111
+ }
112
+ this.inFlight += 1;
113
+ if (!this.canCollect() || !overlap || now < this.nextDue) {
114
+ return;
115
+ }
116
+ if (this.floorAllows(now)) {
117
+ this.startCollect(now);
118
+ return;
119
+ }
120
+ this.nextDue += this.periodMillis;
121
+ } catch (error) {
122
+ import_logger.logger.warn(`Metric request-start hook failed: ${(0, import_error_utils.formatError)(error)}`);
123
+ }
124
+ }
125
+ /**
126
+ * Marks a request as ended. Collects when no request is left in flight and
127
+ * the floor allows it, and resolves once any running collect has exported.
128
+ */
129
+ async onRequestEnd() {
130
+ try {
131
+ const now = this.now();
132
+ this.inFlight = Math.max(0, this.inFlight - 1);
133
+ if (this.inFlight === 0 && this.canCollect() && this.floorAllows(now)) {
134
+ this.startCollect(now);
135
+ }
136
+ } catch (error) {
137
+ import_logger.logger.warn(`Metric request-end hook failed: ${(0, import_error_utils.formatError)(error)}`);
138
+ }
139
+ await this.runningCollect;
140
+ }
141
+ /** Collects at a model-call start if the busy period is overdue. */
142
+ onInferenceStart() {
143
+ try {
144
+ if (this.inFlight === 0) {
145
+ if (!this.warnedNoRequest && !this.isShutdown) {
146
+ this.warnedNoRequest = true;
147
+ import_logger.logger.warn(
148
+ "A model call started with no active request in RequestDrivenMetricReader. Wrap each request with agentRuntimeRequestHooks(otelHooks) so metrics are collected and exported while requests hold the CPU."
149
+ );
150
+ }
151
+ return;
152
+ }
153
+ const now = this.now();
154
+ if (this.canCollect() && this.isOverdue(now) && this.floorAllows(now)) {
155
+ this.startCollect(now);
156
+ }
157
+ } catch (error) {
158
+ import_logger.logger.warn(`Metric model-call hook failed: ${(0, import_error_utils.formatError)(error)}`);
159
+ }
160
+ }
161
+ /**
162
+ * Registers the model-call start hook when a provider initializes this
163
+ * reader.
164
+ *
165
+ * Because the hook uses a single process-global slot where the last
166
+ * registered reader wins, only a single active reader is supported.
167
+ */
168
+ onInitialized() {
169
+ Reflect.set(globalThis, INFERENCE_START_HOOK_KEY, this.inferenceStartHook);
170
+ }
171
+ /** Shuts down the reader, exports remaining metrics, and cleans up hooks. */
172
+ async onShutdown() {
173
+ this.isShutdown = true;
174
+ if (Reflect.get(globalThis, INFERENCE_START_HOOK_KEY) === this.inferenceStartHook) {
175
+ Reflect.deleteProperty(globalThis, INFERENCE_START_HOOK_KEY);
176
+ }
177
+ await this.runningCollect;
178
+ await this.runExclusive();
179
+ await this.exporter.shutdown();
180
+ }
181
+ /** Flushes any in-flight and pending metric exports. */
182
+ async onForceFlush() {
183
+ await this.runningCollect;
184
+ await this.runExclusive();
185
+ await this.exporter.forceFlush();
186
+ }
187
+ canCollect() {
188
+ return this.runningCollect === void 0 && !this.isShutdown;
189
+ }
190
+ floorAllows(now) {
191
+ return this.lastCollect === void 0 || now - this.lastCollect >= this.floorMillis;
192
+ }
193
+ /**
194
+ * Returns whether the current busy period has gone 1.5 periods without a
195
+ * collect. A collect from an earlier busy period does not count, so a short
196
+ * request after an idle gap is never overdue: collecting at its model call
197
+ * would set the floor and mute the drain that carries its points.
198
+ */
199
+ isOverdue(now) {
200
+ var _a2;
201
+ if (this.busyStart === void 0) {
202
+ return false;
203
+ }
204
+ const since = Math.max(this.busyStart, (_a2 = this.lastCollect) != null ? _a2 : -Infinity);
205
+ return now - since >= OVERDUE_PERIODS * this.periodMillis;
206
+ }
207
+ /** Starts a collect, and moves the guidepost grid past `now`. */
208
+ startCollect(now) {
209
+ if (now >= this.nextDue) {
210
+ const missed = Math.floor((now - this.nextDue) / this.periodMillis) + 1;
211
+ this.nextDue += missed * this.periodMillis;
212
+ }
213
+ this.lastCollect = now;
214
+ void this.runExclusive();
215
+ }
216
+ /** Runs one collect and export as the running collect. Never rejects. */
217
+ runExclusive() {
218
+ const run = this.collectAndExport().finally(() => {
219
+ if (this.runningCollect === run) {
220
+ this.runningCollect = void 0;
221
+ }
222
+ });
223
+ this.runningCollect = run;
224
+ return run;
225
+ }
226
+ async collectAndExport() {
227
+ var _a2, _b2;
228
+ try {
229
+ const { resourceMetrics, errors } = await this.collect({
230
+ timeoutMillis: this.exportTimeoutMillis
231
+ });
232
+ for (const error of errors) {
233
+ import_logger.logger.warn(`Metric collection reported: ${(0, import_error_utils.formatError)(error)}`);
234
+ }
235
+ if (resourceMetrics.resource.asyncAttributesPending) {
236
+ await ((_b2 = (_a2 = resourceMetrics.resource).waitForAsyncAttributes) == null ? void 0 : _b2.call(_a2));
237
+ }
238
+ if (resourceMetrics.scopeMetrics.length === 0) {
239
+ return;
240
+ }
241
+ await this.export(resourceMetrics);
242
+ } catch (error) {
243
+ import_logger.logger.warn(`Request-driven metric export failed: ${(0, import_error_utils.formatError)(error)}`);
244
+ }
245
+ }
246
+ async export(resourceMetrics) {
247
+ let timer;
248
+ const timedOut = new Promise((_, reject) => {
249
+ timer = setTimeout(() => {
250
+ reject(
251
+ new Error(
252
+ `Metric export timed out after ${this.exportTimeoutMillis} ms.`
253
+ )
254
+ );
255
+ }, this.exportTimeoutMillis);
256
+ });
257
+ const exported = new Promise((resolve) => {
258
+ import_api.context.with(
259
+ import_api.context.active().setValue(SUPPRESS_TRACING_KEY, true),
260
+ () => this.exporter.export(resourceMetrics, resolve)
261
+ );
262
+ });
263
+ try {
264
+ const result = await Promise.race([exported, timedOut]);
265
+ if (result.code !== EXPORT_RESULT_SUCCESS) {
266
+ throw new Error(
267
+ `Metric exporter reported a failure: ${(0, import_error_utils.formatError)(result.error)}`
268
+ );
269
+ }
270
+ } finally {
271
+ clearTimeout(timer);
272
+ }
273
+ }
274
+ };
275
+ __name(_RequestDrivenMetricReader, "RequestDrivenMetricReader");
276
+ let RequestDrivenMetricReader = _RequestDrivenMetricReader;
277
+ function resolveMillis({
278
+ name,
279
+ explicit,
280
+ fallback,
281
+ allowZero
282
+ }) {
283
+ const raw = explicit != null ? explicit : process.env[name];
284
+ if (raw === void 0) {
285
+ return fallback;
286
+ }
287
+ const value = typeof raw === "number" ? raw : Number(raw.trim() || NaN);
288
+ const inRange = allowZero ? value >= 0 : value > 0;
289
+ if (Number.isFinite(value) && inRange) {
290
+ return value;
291
+ }
292
+ import_logger.logger.warn(
293
+ `Found invalid value for ${name}=${JSON.stringify(raw)}, using default ${fallback}.`
294
+ );
295
+ return fallback;
296
+ }
297
+ __name(resolveMillis, "resolveMillis");
298
+ // Annotate the CommonJS export names for ESM import in node:
299
+ 0 && (module.exports = {
300
+ MIN_EXPORT_INTERVAL_MS,
301
+ RequestDrivenMetricReader,
302
+ isRequestDrivenMetricReader
303
+ });
@@ -44,8 +44,24 @@ var import_sdk_trace_node = require("@opentelemetry/sdk-trace-node");
44
44
  * SPDX-License-Identifier: Apache-2.0
45
45
  */
46
46
  function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
47
+ const tracerAlreadySet = isTracerProviderRegistered();
48
+ const meterAlreadySet = isMeterProviderRegistered();
49
+ const loggerAlreadySet = isLoggerProviderRegistered();
50
+ if (tracerAlreadySet && meterAlreadySet && loggerAlreadySet) {
51
+ return;
52
+ }
53
+ const exportersConfig = getOtelExportersConfig();
54
+ if (tracerAlreadySet) {
55
+ exportersConfig.enableTracing = false;
56
+ }
57
+ if (meterAlreadySet) {
58
+ exportersConfig.enableMetrics = false;
59
+ }
60
+ if (loggerAlreadySet) {
61
+ exportersConfig.enableLogging = false;
62
+ }
47
63
  const resource = otelResource || getOtelResource();
48
- const allHooks = [...otelHooksToSetup, getOtelExporters()];
64
+ const allHooks = [...otelHooksToSetup, getOtelExporters(exportersConfig)];
49
65
  const spanProcessors = allHooks.flatMap(
50
66
  (hooks) => hooks.spanProcessors || []
51
67
  );
@@ -53,21 +69,21 @@ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
53
69
  const logRecordProcessors = allHooks.flatMap(
54
70
  (hooks) => hooks.logRecordProcessors || []
55
71
  );
56
- if (spanProcessors.length > 0) {
72
+ if (!tracerAlreadySet && spanProcessors.length > 0) {
57
73
  const tracerProvider = new import_sdk_trace_node.NodeTracerProvider({
58
74
  resource,
59
75
  spanProcessors
60
76
  });
61
77
  tracerProvider.register();
62
78
  }
63
- if (metricReaders.length > 0) {
79
+ if (!meterAlreadySet && metricReaders.length > 0) {
64
80
  const meterProvider = new import_sdk_metrics.MeterProvider({
65
81
  readers: metricReaders,
66
82
  resource
67
83
  });
68
84
  import_api.metrics.setGlobalMeterProvider(meterProvider);
69
85
  }
70
- if (logRecordProcessors.length > 0) {
86
+ if (!loggerAlreadySet && logRecordProcessors.length > 0) {
71
87
  const loggerProvider = new import_sdk_logs.LoggerProvider({
72
88
  resource,
73
89
  processors: logRecordProcessors
@@ -78,7 +94,7 @@ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
78
94
  __name(maybeSetOtelProviders, "maybeSetOtelProviders");
79
95
  function getOtelResource() {
80
96
  return (0, import_resources.detectResources)({
81
- detectors: []
97
+ detectors: [import_resources.envDetector]
82
98
  });
83
99
  }
84
100
  __name(getOtelResource, "getOtelResource");
@@ -103,6 +119,57 @@ function getOtelExporters(config = getOtelExportersConfig()) {
103
119
  };
104
120
  }
105
121
  __name(getOtelExporters, "getOtelExporters");
122
+ function isTracerProviderRegistered() {
123
+ var _a, _b, _c, _d, _e, _f, _g;
124
+ const provider = (_b = (_a = import_api.trace).getTracerProvider) == null ? void 0 : _b.call(_a);
125
+ if (!provider) {
126
+ return false;
127
+ }
128
+ const noopDelegate = typeof import_api.ProxyTracerProvider === "function" ? (_d = (_c = new import_api.ProxyTracerProvider()) == null ? void 0 : _c.getDelegate) == null ? void 0 : _d.call(_c) : void 0;
129
+ const getDelegate = provider.getDelegate;
130
+ if (typeof getDelegate === "function") {
131
+ const delegate = getDelegate.call(provider);
132
+ if (!delegate) {
133
+ return false;
134
+ }
135
+ if (noopDelegate && delegate === noopDelegate) {
136
+ return false;
137
+ }
138
+ return ((_e = delegate.constructor) == null ? void 0 : _e.name) !== "NoopTracerProvider";
139
+ }
140
+ if (noopDelegate && provider === noopDelegate) {
141
+ return false;
142
+ }
143
+ return ((_f = provider.constructor) == null ? void 0 : _f.name) !== "ProxyTracerProvider" && ((_g = provider.constructor) == null ? void 0 : _g.name) !== "NoopTracerProvider";
144
+ }
145
+ __name(isTracerProviderRegistered, "isTracerProviderRegistered");
146
+ function isMeterProviderRegistered() {
147
+ var _a, _b, _c;
148
+ const provider = (_b = (_a = import_api.metrics).getMeterProvider) == null ? void 0 : _b.call(_a);
149
+ if (!provider) {
150
+ return false;
151
+ }
152
+ const noopMeter = typeof import_api.createNoopMeter === "function" ? (0, import_api.createNoopMeter)() : void 0;
153
+ if (noopMeter && typeof provider.getMeter === "function") {
154
+ if (provider.getMeter("adk") === noopMeter) {
155
+ return false;
156
+ }
157
+ }
158
+ return ((_c = provider.constructor) == null ? void 0 : _c.name) !== "NoopMeterProvider";
159
+ }
160
+ __name(isMeterProviderRegistered, "isMeterProviderRegistered");
161
+ function isLoggerProviderRegistered() {
162
+ var _a, _b, _c, _d;
163
+ const provider = (_b = (_a = import_api_logs.logs).getLoggerProvider) == null ? void 0 : _b.call(_a);
164
+ if (!provider) {
165
+ return false;
166
+ }
167
+ if (typeof provider._getDelegate === "function") {
168
+ return provider._delegate !== void 0;
169
+ }
170
+ return ((_c = provider.constructor) == null ? void 0 : _c.name) !== "ProxyLoggerProvider" && ((_d = provider.constructor) == null ? void 0 : _d.name) !== "NoopLoggerProvider";
171
+ }
172
+ __name(isLoggerProviderRegistered, "isLoggerProviderRegistered");
106
173
  // Annotate the CommonJS export names for ESM import in node:
107
174
  0 && (module.exports = {
108
175
  maybeSetOtelProviders
@@ -30,6 +30,7 @@ __export(agent_tool_exports, {
30
30
  });
31
31
  module.exports = __toCommonJS(agent_tool_exports);
32
32
  var import_genai = require("@google/genai");
33
+ var import_lodash_es = require("lodash-es");
33
34
  var import_llm_agent = require("../agents/llm_agent.js");
34
35
  var import_in_memory_memory_service = require("../memory/in_memory_memory_service.js");
35
36
  var import_runner = require("../runner/runner.js");
@@ -156,12 +157,18 @@ const _AgentTool = class _AgentTool extends (_b = import_base_tool.BaseTool, _a
156
157
  memoryService: (_b2 = toolContext.invocationContext.memoryService) != null ? _b2 : new import_in_memory_memory_service.InMemoryMemoryService(),
157
158
  credentialService: toolContext.invocationContext.credentialService
158
159
  });
160
+ const parentState = toolContext.state.toRecord();
159
161
  const session = await runner.sessionService.getOrCreateSession({
160
162
  appName: this.agent.name,
161
163
  userId: toolContext.invocationContext.userId,
162
164
  sessionId: toolContext.invocationContext.session.id,
163
- state: 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) {
@@ -38,6 +38,7 @@ __export(application_integration_toolset_exports, {
38
38
  });
39
39
  module.exports = __toCommonJS(application_integration_toolset_exports);
40
40
  var import_auth_credential = require("../../auth/auth_credential.js");
41
+ var import_case_utils = require("../../utils/case_utils.js");
41
42
  var import_experimental = require("../../utils/experimental.js");
42
43
  var import_json_utils = require("../../utils/json_utils.js");
43
44
  var import_logger = require("../../utils/logger.js");
@@ -134,8 +135,8 @@ let ApplicationIntegrationToolset = class extends import_base_toolset.BaseToolse
134
135
  const authCredential = buildAuthCredential(serviceAccountJson);
135
136
  const toolsByName = /* @__PURE__ */ new Map();
136
137
  if (integration) {
137
- const specDict2 = await integrationClient.getOpenApiSpecForIntegration();
138
- const spec2 = toOpenApiDocument(specDict2);
138
+ const specRecord2 = await integrationClient.getOpenApiSpecForIntegration();
139
+ const spec2 = toOpenApiDocument(specRecord2);
139
140
  for (const [path, pathItem] of Object.entries((_a = spec2.paths) != null ? _a : {})) {
140
141
  const openApiToolset = new import_openapi_toolset.OpenAPIToolset({
141
142
  specDict: { ...spec2, paths: { [removeFragment(path)]: pathItem } },
@@ -162,25 +163,30 @@ let ApplicationIntegrationToolset = class extends import_base_toolset.BaseToolse
162
163
  "Authentication schema and credentials are not used because authOverrideEnabled is not enabled in the connection."
163
164
  );
164
165
  }
165
- const specDict = await integrationClient.getOpenApiSpecForConnection(
166
+ const specRecord = await integrationClient.getOpenApiSpecForConnection(
166
167
  resolvedToolName,
167
168
  toolInstructions
168
169
  );
169
- const spec = toOpenApiDocument(specDict);
170
- addDynamicAuthConfigToConnectionSchemas(spec);
171
- const operations = new import_openapi_spec_parser.OpenApiSpecParser().parse(spec);
170
+ const spec = toOpenApiDocument(specRecord);
171
+ const operations = new import_openapi_spec_parser.OpenApiSpecParser({
172
+ preservePropertyNames: true
173
+ }).parse(spec);
172
174
  for (const openApiOperation of operations) {
173
175
  const operationObject = (0, import_json_utils.toJsonObject)(openApiOperation.operation);
174
176
  const operation = toStringValue(operationObject["x-operation"]);
175
177
  const entity = toStringValue(operationObject["x-entity"]);
176
178
  const action = toStringValue(operationObject["x-action"]);
177
- const restApiTool = (0, import_rest_api_tool.createRestApiTool)({
178
- ...openApiOperation,
179
- endpoint: {
180
- ...openApiOperation.endpoint,
181
- path: removeFragment(openApiOperation.endpoint.path)
182
- }
183
- });
179
+ const restApiTool = (0, import_rest_api_tool.createRestApiTool)(
180
+ {
181
+ ...openApiOperation,
182
+ name: (0, import_case_utils.toSnakeCaseName)(openApiOperation.name),
183
+ endpoint: {
184
+ ...openApiOperation.endpoint,
185
+ path: removeFragment(openApiOperation.endpoint.path)
186
+ }
187
+ },
188
+ { preservePropertyNames: true }
189
+ );
184
190
  restApiTool.configureAuthScheme(AUTH_SCHEME);
185
191
  restApiTool.configureAuthCredential(authCredential);
186
192
  const tool = new import_integration_connector_tool.IntegrationConnectorTool({
@@ -205,26 +211,8 @@ __name(ApplicationIntegrationToolset, "ApplicationIntegrationToolset");
205
211
  ApplicationIntegrationToolset = __decorateClass([
206
212
  import_experimental.experimental
207
213
  ], ApplicationIntegrationToolset);
208
- function addDynamicAuthConfigToConnectionSchemas(spec) {
209
- var _a;
210
- const schemas = (_a = spec.components) == null ? void 0 : _a.schemas;
211
- if (!schemas) {
212
- return;
213
- }
214
- for (const [schemaName, schema] of Object.entries(schemas)) {
215
- if (schemaName.endsWith("_Request") && (0, import_json_utils.isJsonObject)(schema) && (0, import_json_utils.isJsonObject)(schema.properties) && !("query" in schema.properties) && !("dynamicAuthConfig" in schema.properties)) {
216
- schema.properties = {
217
- ...schema.properties,
218
- dynamicAuthConfig: {
219
- $ref: "#/components/schemas/dynamicAuthConfig"
220
- }
221
- };
222
- }
223
- }
224
- }
225
- __name(addDynamicAuthConfigToConnectionSchemas, "addDynamicAuthConfigToConnectionSchemas");
226
- function toOpenApiDocument(specDict) {
227
- return specDict;
214
+ function toOpenApiDocument(specRecord) {
215
+ return specRecord;
228
216
  }
229
217
  __name(toOpenApiDocument, "toOpenApiDocument");
230
218
  function toStringValue(value) {
@@ -245,7 +233,7 @@ function buildAuthCredential(serviceAccountJson) {
245
233
  if (!(0, import_json_utils.isJsonObject)(key)) {
246
234
  throw new Error("serviceAccountJson must hold a JSON object.");
247
235
  }
248
- const [, authCredential] = (0, import_auth_helpers.serviceAccountDictToSchemeCredential)(key, [
236
+ const [, authCredential] = (0, import_auth_helpers.serviceAccountRecordToSchemeCredential)(key, [
249
237
  import_cloud_request.CLOUD_PLATFORM_SCOPE
250
238
  ]);
251
239
  return authCredential;