@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
@@ -51,7 +51,7 @@ function normalizeMimeType(mimeType) {
51
51
  if (!mimeType) {
52
52
  return void 0;
53
53
  }
54
- return mimeType.split(";")[0].trim();
54
+ return mimeType.split(";")[0].trim().toLowerCase();
55
55
  }
56
56
  __name(normalizeMimeType, "normalizeMimeType");
57
57
  function isInlineMimeTypeSupported(mimeType) {
@@ -69,23 +69,33 @@ function base64ByteLength(data) {
69
69
  return Math.floor(digits * 3 / 4);
70
70
  }
71
71
  __name(base64ByteLength, "base64ByteLength");
72
- function asSafePartForLlm(artifact, artifactName) {
72
+ function asSafePartForLlm(artifact, artifactName, options) {
73
+ if ((options == null ? void 0 : options.inlineMediaAsPlaceholder) && !artifact.inlineData && artifact.fileData) {
74
+ const fileUri = artifact.fileData.fileUri || "unknown";
75
+ const mimeType2 = normalizeMimeType(artifact.fileData.mimeType) || "application/octet-stream";
76
+ return {
77
+ text: `[Artifact: ${artifactName}, uri: ${fileUri}, type: ${mimeType2}.]`
78
+ };
79
+ }
73
80
  const inlineData = artifact.inlineData;
74
81
  if (!inlineData) {
75
82
  return artifact;
76
83
  }
77
- if (isInlineMimeTypeSupported(inlineData.mimeType)) {
84
+ if (!(options == null ? void 0 : options.inlineMediaAsPlaceholder) && isInlineMimeTypeSupported(inlineData.mimeType)) {
78
85
  return artifact;
79
86
  }
80
87
  const mimeType = normalizeMimeType(inlineData.mimeType) || "application/octet-stream";
88
+ const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
81
89
  const data = inlineData.data;
82
- if (!data) {
90
+ if (data === void 0 || data === null || !isTextLike && data === "") {
83
91
  return {
84
92
  text: `[Artifact: ${artifactName}, type: ${mimeType}. No inline data was provided.]`
85
93
  };
86
94
  }
87
- const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
88
95
  if (isTextLike) {
96
+ if (data === "") {
97
+ return { text: "" };
98
+ }
89
99
  try {
90
100
  return { text: (0, import_env_aware_utils.base64Decode)(data.replace(/-/g, "+").replace(/_/g, "/")) };
91
101
  } catch {
@@ -42,7 +42,7 @@ const _LoadMemoryTool = class _LoadMemoryTool extends import_base_tool.BaseTool
42
42
  var _a;
43
43
  super({
44
44
  name: "load_memory",
45
- description: "Loads the memory for the current user.\n\nNOTE: Currently this tool only uses text part from the memory."
45
+ description: "Loads the memory for the current user."
46
46
  });
47
47
  this.textOnlyContent = (_a = options.textOnlyContent) != null ? _a : false;
48
48
  }
@@ -62,10 +62,7 @@ const _LoadMemoryTool = class _LoadMemoryTool extends import_base_tool.BaseTool
62
62
  }
63
63
  };
64
64
  }
65
- async runAsync({
66
- args,
67
- toolContext
68
- }) {
65
+ async runAsync({ args, toolContext }) {
69
66
  const query = args["query"];
70
67
  if (!toolContext.invocationContext.memoryService) {
71
68
  throw new Error("Memory service is not initialized.");
@@ -38,6 +38,7 @@ __export(mcp_session_manager_exports, {
38
38
  MCPSessionManager: () => MCPSessionManager
39
39
  });
40
40
  module.exports = __toCommonJS(mcp_session_manager_exports);
41
+ var import_instrumentation = require("../../telemetry/api/instrumentation.js");
41
42
  var import_client_labels = require("../../utils/client_labels.js");
42
43
  var import_error_utils = require("../../utils/error_utils.js");
43
44
  var import_logger = require("../../utils/logger.js");
@@ -63,7 +64,8 @@ function buildTransportOptions(params) {
63
64
  requestInit: {
64
65
  ...transportOptions == null ? void 0 : transportOptions.requestInit,
65
66
  headers: (0, import_client_labels.mergeTrackingHeaders)(callerHeaders)
66
- }
67
+ },
68
+ fetch: (0, import_instrumentation.instrumentMcpFetch)(transportOptions == null ? void 0 : transportOptions.fetch)
67
69
  };
68
70
  }
69
71
  __name(buildTransportOptions, "buildTransportOptions");
@@ -75,7 +77,8 @@ function buildSseTransportOptions(params) {
75
77
  requestInit: {
76
78
  ...transportOptions == null ? void 0 : transportOptions.requestInit,
77
79
  headers: (0, import_client_labels.mergeTrackingHeaders)(callerHeaders)
78
- }
80
+ },
81
+ fetch: (0, import_instrumentation.instrumentMcpFetch)(transportOptions == null ? void 0 : transportOptions.fetch)
79
82
  };
80
83
  }
81
84
  __name(buildSseTransportOptions, "buildSseTransportOptions");
@@ -84,6 +87,23 @@ const _MCPSessionManager = class _MCPSessionManager {
84
87
  this.activeSessions = /* @__PURE__ */ new Set();
85
88
  this.connectionParams = connectionParams;
86
89
  }
90
+ /**
91
+ * Builds per-request options for MCP client operations.
92
+ *
93
+ * For a stdio connection with a configured `timeout`, the timeout is
94
+ * converted from seconds to milliseconds. Otherwise the MCP SDK applies its
95
+ * own default request timeout.
96
+ *
97
+ * @param signal Optional abort signal to attach to the request.
98
+ * @return The request options for the MCP SDK client.
99
+ */
100
+ getRequestOptions(signal) {
101
+ const options = signal !== void 0 ? { signal } : {};
102
+ if (this.connectionParams.type === "StdioConnectionParams" && this.connectionParams.timeout !== void 0) {
103
+ options.timeout = this.connectionParams.timeout * 1e3;
104
+ }
105
+ return options;
106
+ }
87
107
  async createSession() {
88
108
  const { Client } = await (0, import_optional_peer.loadOptionalPeer)(
89
109
  MCP_SDK,
@@ -101,7 +121,7 @@ const _MCPSessionManager = class _MCPSessionManager {
101
121
  this.connectionParams.serverParams
102
122
  );
103
123
  transport.onerror = logTransportError;
104
- await client.connect(transport);
124
+ await client.connect(transport, this.getRequestOptions());
105
125
  break;
106
126
  }
107
127
  case "StreamableHTTPConnectionParams": {
@@ -57,9 +57,13 @@ const _MCPTool = class _MCPTool extends import_base_tool.BaseTool {
57
57
  try {
58
58
  const callRequest = {};
59
59
  callRequest.params = { name: this.originalName, arguments: request.args };
60
- const result = await session.callTool(callRequest.params, void 0, {
61
- signal: request.toolContext.abortSignal
62
- });
60
+ const result = await session.callTool(
61
+ callRequest.params,
62
+ void 0,
63
+ this.mcpSessionManager.getRequestOptions(
64
+ request.toolContext.abortSignal
65
+ )
66
+ );
63
67
  return result;
64
68
  } finally {
65
69
  await this.mcpSessionManager.closeSession(session);
@@ -46,7 +46,10 @@ const _MCPToolset = class _MCPToolset extends import_base_toolset.BaseToolset {
46
46
  const session = await this.mcpSessionManager.createSession();
47
47
  let listResult;
48
48
  try {
49
- listResult = await session.listTools();
49
+ listResult = await session.listTools(
50
+ void 0,
51
+ this.mcpSessionManager.getRequestOptions()
52
+ );
50
53
  } finally {
51
54
  await this.mcpSessionManager.closeSession(session);
52
55
  }
@@ -71,7 +74,10 @@ const _MCPToolset = class _MCPToolset extends import_base_toolset.BaseToolset {
71
74
  async listResources() {
72
75
  const session = await this.mcpSessionManager.createSession();
73
76
  try {
74
- const result = await session.listResources();
77
+ const result = await session.listResources(
78
+ void 0,
79
+ this.mcpSessionManager.getRequestOptions()
80
+ );
75
81
  return result.resources.map((resource) => resource.name);
76
82
  } finally {
77
83
  await this.mcpSessionManager.closeSession(session);
@@ -88,7 +94,10 @@ const _MCPToolset = class _MCPToolset extends import_base_toolset.BaseToolset {
88
94
  const session = await this.mcpSessionManager.createSession();
89
95
  let result;
90
96
  try {
91
- result = await session.listResources();
97
+ result = await session.listResources(
98
+ void 0,
99
+ this.mcpSessionManager.getRequestOptions()
100
+ );
92
101
  } finally {
93
102
  await this.mcpSessionManager.closeSession(session);
94
103
  }
@@ -118,9 +127,12 @@ const _MCPToolset = class _MCPToolset extends import_base_toolset.BaseToolset {
118
127
  }
119
128
  const session = await this.mcpSessionManager.createSession();
120
129
  try {
121
- const result = await session.readResource({
122
- uri: resourceInfo.uri
123
- });
130
+ const result = await session.readResource(
131
+ {
132
+ uri: resourceInfo.uri
133
+ },
134
+ this.mcpSessionManager.getRequestOptions()
135
+ );
124
136
  return result.contents;
125
137
  } finally {
126
138
  await this.mcpSessionManager.closeSession(session);
@@ -30,10 +30,10 @@ __export(auth_helpers_exports, {
30
30
  createApiKeyScheme: () => createApiKeyScheme,
31
31
  createBearerScheme: () => createBearerScheme,
32
32
  credentialToParam: () => credentialToParam,
33
- dictToAuthScheme: () => dictToAuthScheme,
34
- openidDictToSchemeCredential: () => openidDictToSchemeCredential,
33
+ openidRecordToSchemeCredential: () => openidRecordToSchemeCredential,
35
34
  openidUrlToSchemeCredential: () => openidUrlToSchemeCredential,
36
- serviceAccountDictToSchemeCredential: () => serviceAccountDictToSchemeCredential,
35
+ recordToAuthScheme: () => recordToAuthScheme,
36
+ serviceAccountRecordToSchemeCredential: () => serviceAccountRecordToSchemeCredential,
37
37
  serviceAccountSchemeCredential: () => serviceAccountSchemeCredential,
38
38
  tokenToSchemeCredential: () => tokenToSchemeCredential
39
39
  });
@@ -41,6 +41,7 @@ module.exports = __toCommonJS(auth_helpers_exports);
41
41
  var import_zod = require("zod");
42
42
  var import_auth_credential = require("../../../auth/auth_credential.js");
43
43
  var import_case_utils = require("../../../utils/case_utils.js");
44
+ var import_error_utils = require("../../../utils/error_utils.js");
44
45
  /**
45
46
  * @license
46
47
  * Copyright 2026 Google LLC
@@ -199,7 +200,7 @@ function tokenToSchemeCredential(tokenType, location, name, credentialValue) {
199
200
  throw new Error(`Invalid security scheme type: ${tokenType}`);
200
201
  }
201
202
  __name(tokenToSchemeCredential, "tokenToSchemeCredential");
202
- function serviceAccountDictToSchemeCredential(config, scopes) {
203
+ function serviceAccountRecordToSchemeCredential(config, scopes) {
203
204
  const authCredential = {
204
205
  authType: import_auth_credential.AuthCredentialTypes.SERVICE_ACCOUNT,
205
206
  serviceAccount: {
@@ -213,7 +214,7 @@ function serviceAccountDictToSchemeCredential(config, scopes) {
213
214
  };
214
215
  return [bearerJwtScheme(), authCredential];
215
216
  }
216
- __name(serviceAccountDictToSchemeCredential, "serviceAccountDictToSchemeCredential");
217
+ __name(serviceAccountRecordToSchemeCredential, "serviceAccountRecordToSchemeCredential");
217
218
  function serviceAccountSchemeCredential(config) {
218
219
  const authCredential = {
219
220
  authType: import_auth_credential.AuthCredentialTypes.SERVICE_ACCOUNT,
@@ -222,9 +223,9 @@ function serviceAccountSchemeCredential(config) {
222
223
  return [bearerJwtScheme(), authCredential];
223
224
  }
224
225
  __name(serviceAccountSchemeCredential, "serviceAccountSchemeCredential");
225
- function openidDictToSchemeCredential(configDict, scopes, credentialDict) {
226
+ function openidRecordToSchemeCredential(configRecord, scopes, credentialRecord) {
226
227
  const parsedConfig = OpenIdConnectConfigSchema.safeParse(
227
- (0, import_case_utils.camelCaseKeys)(configDict)
228
+ (0, import_case_utils.camelCaseKeys)(configRecord)
228
229
  );
229
230
  if (!parsedConfig.success) {
230
231
  throw new Error(
@@ -232,33 +233,33 @@ function openidDictToSchemeCredential(configDict, scopes, credentialDict) {
232
233
  );
233
234
  }
234
235
  const openidScheme = { ...parsedConfig.data, scopes };
235
- const values = Object.values(credentialDict);
236
+ const values = Object.values(credentialRecord);
236
237
  if (values.length === 1) {
237
238
  const wrapped = JsonObjectSchema.safeParse(values[0]);
238
239
  if (wrapped.success && "client_id" in wrapped.data && "client_secret" in wrapped.data) {
239
- credentialDict = wrapped.data;
240
+ credentialRecord = wrapped.data;
240
241
  }
241
242
  }
242
243
  const missingFields = REQUIRED_CREDENTIAL_FIELDS.filter(
243
- (field) => !(field in credentialDict)
244
+ (field) => !(field in credentialRecord)
244
245
  );
245
246
  if (missingFields.length > 0) {
246
247
  throw new Error(
247
- `Missing required fields in credential_dict: ${missingFields.join(", ")}`
248
+ `Missing required fields in credentialRecord: ${missingFields.join(", ")}`
248
249
  );
249
250
  }
250
251
  const authCredential = {
251
252
  authType: import_auth_credential.AuthCredentialTypes.OPEN_ID_CONNECT,
252
253
  oauth2: {
253
- clientId: String(credentialDict["client_id"]),
254
- clientSecret: String(credentialDict["client_secret"]),
255
- redirectUri: "redirect_uri" in credentialDict ? String(credentialDict["redirect_uri"]) : void 0
254
+ clientId: String(credentialRecord["client_id"]),
255
+ clientSecret: String(credentialRecord["client_secret"]),
256
+ redirectUri: "redirect_uri" in credentialRecord ? String(credentialRecord["redirect_uri"]) : void 0
256
257
  }
257
258
  };
258
259
  return [openidScheme, authCredential];
259
260
  }
260
- __name(openidDictToSchemeCredential, "openidDictToSchemeCredential");
261
- async function openidUrlToSchemeCredential(openidUrl, scopes, credentialDict) {
261
+ __name(openidRecordToSchemeCredential, "openidRecordToSchemeCredential");
262
+ async function openidUrlToSchemeCredential(openidUrl, scopes, credentialRecord) {
262
263
  let response;
263
264
  try {
264
265
  response = await fetch(openidUrl, {
@@ -269,21 +270,21 @@ async function openidUrlToSchemeCredential(openidUrl, scopes, credentialDict) {
269
270
  }
270
271
  } catch (e) {
271
272
  throw new Error(
272
- `Failed to fetch OpenID configuration from ${openidUrl}: ${String(e)}`
273
+ `Failed to fetch OpenID configuration from ${openidUrl}: ${(0, import_error_utils.formatError)(e)}`
273
274
  );
274
275
  }
275
- let configDict;
276
+ let configRecord;
276
277
  try {
277
- configDict = JsonObjectSchema.parse(await response.json());
278
+ configRecord = JsonObjectSchema.parse(await response.json());
278
279
  } catch (e) {
279
280
  throw new Error(
280
- `Invalid JSON response from OpenID configuration endpoint ${openidUrl}: ${String(e)}`
281
+ `Invalid JSON response from OpenID configuration endpoint ${openidUrl}: ${(0, import_error_utils.formatError)(e)}`
281
282
  );
282
283
  }
283
- return openidDictToSchemeCredential(
284
- { ...configDict, openIdConnectUrl: openidUrl },
284
+ return openidRecordToSchemeCredential(
285
+ { ...configRecord, openIdConnectUrl: openidUrl },
285
286
  scopes,
286
- credentialDict
287
+ credentialRecord
287
288
  );
288
289
  }
289
290
  __name(openidUrlToSchemeCredential, "openidUrlToSchemeCredential");
@@ -334,9 +335,9 @@ function parseSecurityScheme(schema, data) {
334
335
  return result.data;
335
336
  }
336
337
  __name(parseSecurityScheme, "parseSecurityScheme");
337
- function dictToAuthScheme(data) {
338
+ function recordToAuthScheme(data) {
338
339
  if (!("type" in data)) {
339
- throw new Error("Missing 'type' field in security scheme dictionary.");
340
+ throw new Error("Missing 'type' field in security scheme object.");
340
341
  }
341
342
  const securityType = data["type"];
342
343
  switch (securityType) {
@@ -352,7 +353,7 @@ function dictToAuthScheme(data) {
352
353
  throw new Error(`Invalid security scheme type: ${securityType}`);
353
354
  }
354
355
  }
355
- __name(dictToAuthScheme, "dictToAuthScheme");
356
+ __name(recordToAuthScheme, "recordToAuthScheme");
356
357
  // Annotate the CommonJS export names for ESM import in node:
357
358
  0 && (module.exports = {
358
359
  INTERNAL_AUTH_PREFIX,
@@ -360,10 +361,10 @@ __name(dictToAuthScheme, "dictToAuthScheme");
360
361
  createApiKeyScheme,
361
362
  createBearerScheme,
362
363
  credentialToParam,
363
- dictToAuthScheme,
364
- openidDictToSchemeCredential,
364
+ openidRecordToSchemeCredential,
365
365
  openidUrlToSchemeCredential,
366
- serviceAccountDictToSchemeCredential,
366
+ recordToAuthScheme,
367
+ serviceAccountRecordToSchemeCredential,
367
368
  serviceAccountSchemeCredential,
368
369
  tokenToSchemeCredential
369
370
  });
@@ -50,7 +50,7 @@ var import_experimental = require("../../../../utils/experimental.js");
50
50
  function checkSchemeCredentialType(authScheme, authCredential) {
51
51
  if (!authCredential) {
52
52
  throw new Error(
53
- "auth_credential is empty. Please create AuthCredential using OAuth2Auth."
53
+ "authCredential is empty. Please create AuthCredential using OAuth2Auth."
54
54
  );
55
55
  }
56
56
  if (authScheme.type !== import_auth_schemes.AuthSchemeType.OPEN_ID_CONNECT && authScheme.type !== import_auth_schemes.AuthSchemeType.OAUTH2) {
@@ -60,7 +60,7 @@ function checkSchemeCredentialType(authScheme, authCredential) {
60
60
  }
61
61
  if (!authCredential.oauth2 && !authCredential.http) {
62
62
  throw new Error(
63
- "auth_credential is not configured with oauth2. Please create AuthCredential and set OAuth2Auth."
63
+ "authCredential is not configured with oauth2. Please create AuthCredential and set OAuth2Auth."
64
64
  );
65
65
  }
66
66
  }
@@ -203,22 +203,32 @@ function encodePathParamValue(name, value) {
203
203
  return encodeURIComponent(value);
204
204
  }
205
205
  __name(encodePathParamValue, "encodePathParamValue");
206
+ function toParamString(value) {
207
+ if (Array.isArray(value)) {
208
+ return value.filter((item) => item !== void 0 && item !== null).map(toParamString).join(",");
209
+ }
210
+ if (typeof value === "object" && value !== null) {
211
+ return Object.entries(value).filter(([, v]) => v !== void 0 && v !== null).map(([k, v]) => `${k},${toParamString(v)}`).join(",");
212
+ }
213
+ return String(value);
214
+ }
215
+ __name(toParamString, "toParamString");
206
216
  function serializeQueryValue(value) {
207
217
  return typeof value === "object" && value !== null ? JSON.stringify(value) : String(value);
208
218
  }
209
219
  __name(serializeQueryValue, "serializeQueryValue");
210
- function appendQueryParam(queryParams, name, value) {
220
+ function appendParamValue(target, name, value) {
211
221
  if (!Array.isArray(value)) {
212
- queryParams.append(name, serializeQueryValue(value));
222
+ target.append(name, serializeQueryValue(value));
213
223
  return;
214
224
  }
215
225
  for (const item of value) {
216
226
  if (item !== void 0 && item !== null) {
217
- queryParams.append(name, serializeQueryValue(item));
227
+ target.append(name, serializeQueryValue(item));
218
228
  }
219
229
  }
220
230
  }
221
- __name(appendQueryParam, "appendQueryParam");
231
+ __name(appendParamValue, "appendParamValue");
222
232
  function prepareRequestParams(endpoint, parameters, args) {
223
233
  const headers = {};
224
234
  const queryParams = new URLSearchParams();
@@ -233,18 +243,24 @@ function prepareRequestParams(endpoint, parameters, args) {
233
243
  const originalName = param.originalName;
234
244
  const location = param.paramLocation;
235
245
  if (location === "path") {
236
- pathParams[originalName] = encodePathParamValue(
237
- originalName,
238
- String(argValue)
239
- );
246
+ if (argValue !== void 0 && argValue !== null) {
247
+ pathParams[originalName] = encodePathParamValue(
248
+ originalName,
249
+ toParamString(argValue)
250
+ );
251
+ }
240
252
  } else if (location === "query") {
241
253
  if (argValue !== void 0 && argValue !== null && argValue !== "") {
242
- appendQueryParam(queryParams, originalName, argValue);
254
+ appendParamValue(queryParams, originalName, argValue);
243
255
  }
244
256
  } else if (location === "header") {
245
- headers[originalName] = String(argValue);
257
+ if (argValue !== void 0 && argValue !== null) {
258
+ headers[originalName] = toParamString(argValue);
259
+ }
246
260
  } else if (location === "cookie") {
247
- cookies[originalName] = String(argValue);
261
+ if (argValue !== void 0 && argValue !== null) {
262
+ cookies[originalName] = toParamString(argValue);
263
+ }
248
264
  } else if (location === "body") {
249
265
  if (originalName === "body" || originalName === "array" || originalName === "") {
250
266
  body = argValue;
@@ -278,6 +294,18 @@ function isRawBody(value) {
278
294
  return typeof value === "string" || ArrayBuffer.isView(value) || value instanceof ArrayBuffer || value instanceof Blob;
279
295
  }
280
296
  __name(isRawBody, "isRawBody");
297
+ function isFormFields(value) {
298
+ return typeof value === "object" && value !== null && !Array.isArray(value);
299
+ }
300
+ __name(isFormFields, "isFormFields");
301
+ function appendFormFields(target, fields) {
302
+ for (const [name, value] of Object.entries(fields)) {
303
+ if (value !== void 0 && value !== null) {
304
+ appendParamValue(target, name, value);
305
+ }
306
+ }
307
+ }
308
+ __name(appendFormFields, "appendFormFields");
281
309
  function prepareRequestBody(requestBody, body, bodyData, headers) {
282
310
  const finalData = body !== void 0 ? body : Object.keys(bodyData).length > 0 ? bodyData : void 0;
283
311
  if (requestBody && "content" in requestBody) {
@@ -288,13 +316,16 @@ function prepareRequestBody(requestBody, body, bodyData, headers) {
288
316
  headers["Content-Type"] = mimeType;
289
317
  return typeof finalData === "string" ? finalData : JSON.stringify(finalData);
290
318
  } else if (mimeType === "application/x-www-form-urlencoded") {
319
+ if (isFormFields(finalData)) {
320
+ const formParams = new URLSearchParams();
321
+ appendFormFields(formParams, finalData);
322
+ return formParams;
323
+ }
291
324
  return new URLSearchParams(finalData);
292
325
  } else if (mimeType === "multipart/form-data") {
293
326
  const formData = new FormData();
294
327
  if (typeof finalData === "object" && finalData !== null) {
295
- for (const [key, value] of Object.entries(finalData)) {
296
- formData.append(key, String(value));
297
- }
328
+ appendFormFields(formData, finalData);
298
329
  }
299
330
  return formData;
300
331
  } else if (mimeType === "application/octet-stream") {
@@ -48,6 +48,7 @@ __export(load_skill_resource_tool_exports, {
48
48
  module.exports = __toCommonJS(load_skill_resource_tool_exports);
49
49
  var import_genai = require("@google/genai");
50
50
  var import_node_path = __toESM(require("node:path"), 1);
51
+ var import_instrumentation = require("../../telemetry/api/instrumentation.js");
51
52
  var import_experimental = require("../../utils/experimental.js");
52
53
  var import_file_utils = require("../../utils/file_utils.js");
53
54
  var import_base_tool = require("../base_tool.js");
@@ -105,6 +106,11 @@ let LoadSkillResourceTool = class extends import_base_tool.BaseTool {
105
106
  };
106
107
  }
107
108
  resourcePath = import_node_path.default.posix.normalize(resourcePath);
109
+ const skillActivity = (0, import_instrumentation.recordSkillActivity)({
110
+ kind: "resource",
111
+ skillName,
112
+ resourcePath
113
+ });
108
114
  let skill;
109
115
  try {
110
116
  skill = await this.toolset.getOrFetchSkill(
@@ -123,6 +129,7 @@ let LoadSkillResourceTool = class extends import_base_tool.BaseTool {
123
129
  error_code: "SKILL_NOT_FOUND"
124
130
  };
125
131
  }
132
+ skillActivity.recordSkill(skill);
126
133
  let content;
127
134
  const skillResources = skill.resources || {};
128
135
  if (resourcePath.startsWith("references/")) {
@@ -38,6 +38,7 @@ __export(load_skill_tool_exports, {
38
38
  module.exports = __toCommonJS(load_skill_tool_exports);
39
39
  var import_genai = require("@google/genai");
40
40
  var import_invocation_context = require("../../agents/invocation_context.js");
41
+ var import_instrumentation = require("../../telemetry/api/instrumentation.js");
41
42
  var import_experimental = require("../../utils/experimental.js");
42
43
  var import_base_tool = require("../base_tool.js");
43
44
  /**
@@ -80,6 +81,7 @@ let LoadSkillTool = class extends import_base_tool.BaseTool {
80
81
  error_code: "MISSING_SKILL_NAME"
81
82
  };
82
83
  }
84
+ const skillActivity = (0, import_instrumentation.recordSkillActivity)({ kind: "load", skillName });
83
85
  let skill;
84
86
  try {
85
87
  skill = await this.toolset.getOrFetchSkill(
@@ -98,6 +100,7 @@ let LoadSkillTool = class extends import_base_tool.BaseTool {
98
100
  error_code: "SKILL_NOT_FOUND"
99
101
  };
100
102
  }
103
+ skillActivity.recordSkill(skill);
101
104
  const agentName = (0, import_invocation_context.requireAgent)(toolContext.invocationContext).name;
102
105
  const stateKey = `_adk_activated_skill_${agentName}`;
103
106
  const currentActivated = toolContext.state.get(stateKey) || [];
@@ -51,6 +51,7 @@ var import_genai = require("@google/genai");
51
51
  var path = __toESM(require("node:path"), 1);
52
52
  var import_llm_agent = require("../../agents/llm_agent.js");
53
53
  var import_code_execution_utils = require("../../code_executors/code_execution_utils.js");
54
+ var import_instrumentation = require("../../telemetry/api/instrumentation.js");
54
55
  var import_experimental = require("../../utils/experimental.js");
55
56
  var import_file_extension_utils = require("../../utils/file_extension_utils.js");
56
57
  var import_file_utils = require("../../utils/file_utils.js");
@@ -112,6 +113,11 @@ let RunSkillScriptTool = class extends import_base_tool.BaseTool {
112
113
  errorCode: "MISSING_SCRIPT_PATH"
113
114
  };
114
115
  }
116
+ const skillActivity = (0, import_instrumentation.recordSkillActivity)({
117
+ kind: "script",
118
+ skillName,
119
+ scriptPath
120
+ });
115
121
  let skill;
116
122
  try {
117
123
  skill = await this.toolset.getOrFetchSkill(
@@ -130,9 +136,11 @@ let RunSkillScriptTool = class extends import_base_tool.BaseTool {
130
136
  errorCode: "SKILL_NOT_FOUND"
131
137
  };
132
138
  }
133
- const relScriptPath = scriptPath.startsWith("scripts/") ? scriptPath.substring("scripts/".length) : scriptPath;
139
+ skillActivity.recordSkill(skill);
140
+ let relScriptPath = scriptPath.startsWith("scripts/") ? scriptPath.substring("scripts/".length) : scriptPath;
134
141
  let script = (_b = (_a = skill.resources) == null ? void 0 : _a.scripts) == null ? void 0 : _b[relScriptPath];
135
142
  if (!script) {
143
+ relScriptPath = scriptPath;
136
144
  script = (_d = (_c = skill.resources) == null ? void 0 : _c.scripts) == null ? void 0 : _d[scriptPath];
137
145
  }
138
146
  if (!script) {
@@ -159,7 +167,9 @@ let RunSkillScriptTool = class extends import_base_tool.BaseTool {
159
167
  const result = await codeExecutor.executeCode({
160
168
  invocationContext: toolContext.invocationContext,
161
169
  codeExecutionInput: {
162
- code: buildWrapperCode(scriptPath, language),
170
+ // Scripts are always written under scripts/ (see
171
+ // getSkillResourceFiles), with or without the prefix in script_path.
172
+ code: buildWrapperCode(`scripts/${relScriptPath}`, language),
163
173
  inputFiles: getSkillResourceFiles(skill),
164
174
  language,
165
175
  args: scriptArgs