@google/adk 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +17 -2
  2. package/dist/cjs/a2a/a2a_remote_agent_utils.js +8 -4
  3. package/dist/cjs/a2a/agent_card.js +5 -81
  4. package/dist/cjs/a2a/agent_to_a2a.js +7 -0
  5. package/dist/cjs/a2a/event_converter_utils.js +10 -3
  6. package/dist/cjs/agents/agent_engine_client.js +399 -0
  7. package/dist/cjs/agents/base_agent.js +127 -68
  8. package/dist/cjs/agents/functions.js +64 -59
  9. package/dist/cjs/agents/instructions.js +8 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +124 -101
  12. package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
  13. package/dist/cjs/agents/processors/code_execution_request_processor.js +8 -0
  14. package/dist/cjs/agents/processors/content_processor_utils.js +72 -17
  15. package/dist/cjs/agents/processors/content_request_processor.js +51 -2
  16. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  17. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  18. package/dist/cjs/agents/processors/nl_planning_processor.js +13 -3
  19. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  20. package/dist/cjs/cli/cli_eval.js +884 -17
  21. package/dist/cjs/cli/utils/cleanup.js +84 -0
  22. package/dist/cjs/cli/utils/envs.js +33 -2
  23. package/dist/cjs/cli/utils/evals.js +75 -8
  24. package/dist/cjs/cli/utils/logs.js +134 -15
  25. package/dist/cjs/cli/utils/path_validation.js +83 -0
  26. package/dist/cjs/code_executors/container_code_executor.js +171 -38
  27. package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
  28. package/dist/cjs/common.js +59 -32
  29. package/dist/cjs/context/compaction_utils.js +19 -0
  30. package/dist/cjs/errors/input_validation_error.js +3 -2
  31. package/dist/cjs/events/event.js +7 -3
  32. package/dist/cjs/features/feature_registry.js +5 -0
  33. package/dist/cjs/index.js +34 -12
  34. package/dist/cjs/models/google_llm.js +33 -2
  35. package/dist/cjs/models/interactions_utils.js +3 -0
  36. package/dist/cjs/plugins/base_plugin.js +54 -40
  37. package/dist/cjs/plugins/plugin_manager.js +27 -0
  38. package/dist/cjs/runner/runner.js +306 -189
  39. package/dist/cjs/sessions/base_session_service.js +15 -12
  40. package/dist/cjs/sessions/database_session_service.js +232 -38
  41. package/dist/cjs/sessions/db/operations.js +70 -1
  42. package/dist/cjs/sessions/db/schema.js +4 -0
  43. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  44. package/dist/cjs/sessions/stale_session_error.js +59 -0
  45. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  46. package/dist/cjs/skills/loader.js +76 -41
  47. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  48. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  49. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  50. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  51. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  52. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  53. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  54. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  55. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  56. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  57. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  58. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  59. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  60. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  61. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  62. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  63. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  64. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  65. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  66. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  67. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  68. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  69. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  70. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  71. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  72. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  73. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  74. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  75. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  76. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  77. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  78. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  79. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  80. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -6
  81. package/dist/cjs/tools/agent_tool.js +9 -1
  82. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +18 -23
  83. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +109 -43
  84. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +222 -114
  85. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +34 -14
  86. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +175 -0
  87. package/dist/cjs/tools/base_toolset.js +1 -1
  88. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  89. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  90. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  91. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  92. package/dist/cjs/tools/function_tool.js +15 -5
  93. package/dist/cjs/tools/google_api_tool/google_api_tool.js +4 -1
  94. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +174 -0
  95. package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
  96. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  97. package/dist/cjs/tools/google_api_tool/index.js +20 -23
  98. package/dist/cjs/tools/load_artifacts_tool.js +27 -11
  99. package/dist/cjs/tools/load_memory_tool.js +14 -15
  100. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  101. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  102. package/dist/cjs/tools/mcp/mcp_toolset.js +19 -20
  103. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  104. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  105. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  106. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  107. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
  108. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +57 -10
  109. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  110. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  111. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  112. package/dist/cjs/tools/toolbox_toolset.js +193 -0
  113. package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
  114. package/dist/cjs/utils/async_queue.js +37 -3
  115. package/dist/cjs/utils/client_labels.js +17 -2
  116. package/dist/cjs/utils/env_aware_utils.js +13 -7
  117. package/dist/cjs/utils/error_utils.js +40 -2
  118. package/dist/cjs/utils/failover_utils.js +11 -10
  119. package/dist/cjs/utils/gemini_schema_util.js +145 -14
  120. package/dist/cjs/utils/id_provider.js +63 -0
  121. package/dist/cjs/utils/logger_node.js +4 -0
  122. package/dist/cjs/utils/model_name.js +15 -0
  123. package/dist/cjs/utils/output_schema_utils.js +5 -2
  124. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  125. package/dist/cjs/utils/ssrf_guard.js +46 -16
  126. package/dist/cjs/utils/task.js +1 -1
  127. package/dist/cjs/version.js +1 -1
  128. package/dist/cjs/workflow/index.js +2 -0
  129. package/dist/cjs/workflow/node_runner.js +24 -80
  130. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  131. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  132. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  133. package/dist/cjs/workflow/workflow.js +12 -12
  134. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  135. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  136. package/dist/esm/a2a/agent_card.js +5 -83
  137. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  138. package/dist/esm/a2a/event_converter_utils.js +10 -3
  139. package/dist/esm/agents/agent_engine_client.js +382 -0
  140. package/dist/esm/agents/base_agent.js +127 -72
  141. package/dist/esm/agents/functions.js +69 -63
  142. package/dist/esm/agents/instructions.js +8 -6
  143. package/dist/esm/agents/invocation_context.js +2 -2
  144. package/dist/esm/agents/llm_agent.js +130 -106
  145. package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
  146. package/dist/esm/agents/processors/code_execution_request_processor.js +8 -0
  147. package/dist/esm/agents/processors/content_processor_utils.js +72 -17
  148. package/dist/esm/agents/processors/content_request_processor.js +51 -2
  149. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  150. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  151. package/dist/esm/agents/processors/nl_planning_processor.js +13 -3
  152. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  153. package/dist/esm/cli/cli_eval.js +880 -17
  154. package/dist/esm/cli/utils/cleanup.js +56 -0
  155. package/dist/esm/cli/utils/envs.js +33 -2
  156. package/dist/esm/cli/utils/evals.js +74 -8
  157. package/dist/esm/cli/utils/logs.js +132 -13
  158. package/dist/esm/cli/utils/path_validation.js +45 -0
  159. package/dist/esm/code_executors/container_code_executor.js +171 -38
  160. package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
  161. package/dist/esm/common.js +59 -19
  162. package/dist/esm/context/compaction_utils.js +19 -0
  163. package/dist/esm/errors/input_validation_error.js +3 -2
  164. package/dist/esm/events/event.js +7 -3
  165. package/dist/esm/features/feature_registry.js +5 -0
  166. package/dist/esm/index.js +36 -10
  167. package/dist/esm/models/google_llm.js +33 -2
  168. package/dist/esm/models/interactions_utils.js +3 -0
  169. package/dist/esm/plugins/base_plugin.js +54 -40
  170. package/dist/esm/plugins/plugin_manager.js +27 -0
  171. package/dist/esm/runner/runner.js +310 -192
  172. package/dist/esm/sessions/base_session_service.js +13 -11
  173. package/dist/esm/sessions/database_session_service.js +231 -38
  174. package/dist/esm/sessions/db/operations.js +70 -1
  175. package/dist/esm/sessions/db/schema.js +4 -0
  176. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  177. package/dist/esm/sessions/stale_session_error.js +31 -0
  178. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  179. package/dist/esm/skills/loader.js +76 -41
  180. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  181. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  182. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  183. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  184. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  185. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  186. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  187. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  188. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  189. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  190. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  191. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  192. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  193. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  194. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  195. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  196. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  197. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  198. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  199. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  200. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  201. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  202. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  203. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  204. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  205. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  206. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  207. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  208. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  209. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  210. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  211. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  212. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  213. package/dist/esm/telemetry/export/setup.js +160 -0
  214. package/dist/esm/tools/agent_tool.js +9 -1
  215. package/dist/esm/tools/apihub_tool/apihub_toolset.js +17 -22
  216. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +114 -44
  217. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +226 -115
  218. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +34 -14
  219. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +149 -0
  220. package/dist/esm/tools/base_toolset.js +1 -1
  221. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  222. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  223. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  224. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  225. package/dist/esm/tools/function_tool.js +15 -5
  226. package/dist/esm/tools/google_api_tool/google_api_tool.js +4 -1
  227. package/dist/esm/tools/google_api_tool/google_api_toolset.js +147 -0
  228. package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
  229. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  230. package/dist/esm/tools/google_api_tool/index.js +18 -20
  231. package/dist/esm/tools/load_artifacts_tool.js +25 -10
  232. package/dist/esm/tools/load_memory_tool.js +14 -15
  233. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  234. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  235. package/dist/esm/tools/mcp/mcp_toolset.js +19 -20
  236. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  237. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  238. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  239. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  240. package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
  241. package/dist/esm/tools/openapi_tool/rest_api_tool.js +57 -10
  242. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  243. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  244. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  245. package/dist/esm/tools/toolbox_toolset.js +167 -0
  246. package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
  247. package/dist/esm/utils/async_queue.js +37 -3
  248. package/dist/esm/utils/client_labels.js +17 -2
  249. package/dist/esm/utils/env_aware_utils.js +12 -7
  250. package/dist/esm/utils/error_utils.js +37 -1
  251. package/dist/esm/utils/failover_utils.js +11 -10
  252. package/dist/esm/utils/gemini_schema_util.js +144 -14
  253. package/dist/esm/utils/id_provider.js +33 -0
  254. package/dist/esm/utils/logger_node.js +4 -0
  255. package/dist/esm/utils/model_name.js +14 -0
  256. package/dist/esm/utils/output_schema_utils.js +5 -2
  257. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  258. package/dist/esm/utils/ssrf_guard.js +55 -15
  259. package/dist/esm/utils/task.js +1 -1
  260. package/dist/esm/version.js +1 -1
  261. package/dist/esm/workflow/index.js +2 -1
  262. package/dist/esm/workflow/node_runner.js +26 -80
  263. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  264. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  265. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  266. package/dist/esm/workflow/workflow.js +12 -12
  267. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  268. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  269. package/dist/types/agents/agent_engine_client.d.ts +155 -0
  270. package/dist/types/agents/base_agent.d.ts +14 -0
  271. package/dist/types/agents/llm_agent.d.ts +5 -1
  272. package/dist/types/agents/processors/content_processor_utils.d.ts +12 -10
  273. package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
  274. package/dist/types/agents/run_config.d.ts +14 -0
  275. package/dist/types/cli/cli_eval.d.ts +172 -9
  276. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  277. package/dist/types/cli/utils/envs.d.ts +13 -3
  278. package/dist/types/cli/utils/evals.d.ts +64 -1
  279. package/dist/types/cli/utils/logs.d.ts +20 -3
  280. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  281. package/dist/types/code_executors/container_code_executor.d.ts +62 -9
  282. package/dist/types/common.d.ts +21 -18
  283. package/dist/types/context/compaction_utils.d.ts +13 -1
  284. package/dist/types/errors/input_validation_error.d.ts +2 -1
  285. package/dist/types/events/event.d.ts +3 -0
  286. package/dist/types/features/feature_registry.d.ts +1 -0
  287. package/dist/types/index.d.ts +11 -6
  288. package/dist/types/plugins/base_plugin.d.ts +50 -31
  289. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  290. package/dist/types/runner/runner.d.ts +11 -0
  291. package/dist/types/sessions/base_session_service.d.ts +5 -2
  292. package/dist/types/sessions/database_session_service.d.ts +17 -1
  293. package/dist/types/sessions/db/operations.d.ts +2 -1
  294. package/dist/types/sessions/db/schema.d.ts +5 -3
  295. package/dist/types/sessions/stale_session_error.d.ts +21 -0
  296. package/dist/types/skills/loader.d.ts +3 -2
  297. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  298. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  299. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  300. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  301. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  302. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  303. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  304. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  305. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  306. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  307. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  308. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  309. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  310. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  311. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  312. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  313. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  314. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  315. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  316. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  317. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  318. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  319. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  320. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  321. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  322. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  323. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  324. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  325. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  326. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  327. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  328. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  329. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  330. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  331. package/dist/types/tools/agent_tool.d.ts +1 -1
  332. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +14 -21
  333. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +32 -9
  334. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +35 -12
  335. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +3 -3
  336. package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
  337. package/dist/types/tools/base_toolset.d.ts +7 -6
  338. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  339. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  340. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  341. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  342. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +10 -3
  343. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +57 -0
  344. package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
  345. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +5 -4
  346. package/dist/types/tools/google_api_tool/index.d.ts +4 -5
  347. package/dist/types/tools/load_artifacts_tool.d.ts +18 -1
  348. package/dist/types/tools/load_memory_tool.d.ts +32 -4
  349. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  350. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  351. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
  352. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +15 -3
  353. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
  354. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
  355. package/dist/types/tools/toolbox_toolset.d.ts +154 -0
  356. package/dist/types/utils/async_queue.d.ts +14 -0
  357. package/dist/types/utils/client_labels.d.ts +2 -1
  358. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  359. package/dist/types/utils/error_utils.d.ts +4 -0
  360. package/dist/types/utils/gemini_schema_util.d.ts +29 -0
  361. package/dist/types/utils/id_provider.d.ts +43 -0
  362. package/dist/types/utils/model_name.d.ts +8 -0
  363. package/dist/types/utils/output_schema_utils.d.ts +3 -2
  364. package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
  365. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  366. package/dist/types/version.d.ts +1 -1
  367. package/dist/types/workflow/index.d.ts +1 -1
  368. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  369. package/dist/web/index_web.js +94 -88
  370. package/dist/web/index_web.js.map +4 -4
  371. package/package.json +43 -38
  372. package/dist/cjs/agents/remote_agent.js +0 -187
  373. package/dist/cjs/telemetry/google_cloud.js +0 -116
  374. package/dist/cjs/telemetry/tracing.js +0 -350
  375. package/dist/cjs/tools/crewai_tool.js +0 -132
  376. package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +0 -226
  377. package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +0 -58
  378. package/dist/cjs/tools/langchain_tool.js +0 -172
  379. package/dist/cjs/tools/toolbox_tool.js +0 -108
  380. package/dist/esm/agents/remote_agent.js +0 -164
  381. package/dist/esm/telemetry/google_cloud.js +0 -99
  382. package/dist/esm/telemetry/setup.js +0 -89
  383. package/dist/esm/telemetry/tracing.js +0 -315
  384. package/dist/esm/tools/crewai_tool.js +0 -107
  385. package/dist/esm/tools/google_api_tool/google_api_tool_set.js +0 -188
  386. package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +0 -24
  387. package/dist/esm/tools/langchain_tool.js +0 -148
  388. package/dist/esm/tools/toolbox_tool.js +0 -80
  389. package/dist/types/agents/remote_agent.d.ts +0 -68
  390. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  391. package/dist/types/telemetry/tracing.d.ts +0 -129
  392. package/dist/types/tools/crewai_tool.d.ts +0 -85
  393. package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +0 -78
  394. package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +0 -33
  395. package/dist/types/tools/langchain_tool.d.ts +0 -103
  396. package/dist/types/tools/toolbox_tool.d.ts +0 -73
@@ -6,28 +6,26 @@ const require = topLevelCreateRequire(import.meta.url);
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
8
  import { GoogleApiTool, isGoogleApiTool } from "./google_api_tool.js";
9
- import { GoogleApiToolSet, isGoogleApiToolSet } from "./google_api_tool_set.js";
9
+ import { GoogleApiToolset, isGoogleApiToolset } from "./google_api_toolset.js";
10
10
  import {
11
- bigqueryToolSet,
12
- calendarToolSet,
13
- docsToolSet,
14
- gmailToolSet,
15
- sheetsToolSet,
16
- slidesToolSet,
17
- youtubeToolSet
18
- } from "./google_api_tool_sets.js";
19
- import { GoogleApiToOpenApiConverter } from "./googleapi_to_openapi_converter.js";
11
+ BigQueryToolset,
12
+ CalendarToolset,
13
+ DocsToolset,
14
+ GmailToolset,
15
+ SheetsToolset,
16
+ SlidesToolset,
17
+ YoutubeToolset
18
+ } from "./google_api_toolsets.js";
20
19
  export {
21
- GoogleApiToOpenApiConverter,
20
+ BigQueryToolset,
21
+ CalendarToolset,
22
+ DocsToolset,
23
+ GmailToolset,
22
24
  GoogleApiTool,
23
- GoogleApiToolSet,
24
- bigqueryToolSet,
25
- calendarToolSet,
26
- docsToolSet,
27
- gmailToolSet,
25
+ GoogleApiToolset,
26
+ SheetsToolset,
27
+ SlidesToolset,
28
+ YoutubeToolset,
28
29
  isGoogleApiTool,
29
- isGoogleApiToolSet,
30
- sheetsToolSet,
31
- slidesToolSet,
32
- youtubeToolSet
30
+ isGoogleApiToolset
33
31
  };
@@ -9,6 +9,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
9
9
  */
10
10
  import { Type } from "@google/genai";
11
11
  import { appendInstructions } from "../models/llm_request.js";
12
+ import { base64Decode } from "../utils/env_aware_utils.js";
12
13
  import { logger } from "../utils/logger.js";
13
14
  import {
14
15
  BaseTool
@@ -24,7 +25,7 @@ function normalizeMimeType(mimeType) {
24
25
  if (!mimeType) {
25
26
  return void 0;
26
27
  }
27
- return mimeType.split(";")[0].trim();
28
+ return mimeType.split(";")[0].trim().toLowerCase();
28
29
  }
29
30
  __name(normalizeMimeType, "normalizeMimeType");
30
31
  function isInlineMimeTypeSupported(mimeType) {
@@ -37,31 +38,44 @@ function isInlineMimeTypeSupported(mimeType) {
37
38
  ) || GEMINI_SUPPORTED_INLINE_MIME_TYPES.has(normalized);
38
39
  }
39
40
  __name(isInlineMimeTypeSupported, "isInlineMimeTypeSupported");
40
- function asSafePartForLlm(artifact, artifactName) {
41
+ function base64ByteLength(data) {
42
+ const digits = data.replace(/[=\s]/g, "").length;
43
+ return Math.floor(digits * 3 / 4);
44
+ }
45
+ __name(base64ByteLength, "base64ByteLength");
46
+ function asSafePartForLlm(artifact, artifactName, options) {
47
+ if ((options == null ? void 0 : options.inlineMediaAsPlaceholder) && !artifact.inlineData && artifact.fileData) {
48
+ const fileUri = artifact.fileData.fileUri || "unknown";
49
+ const mimeType2 = normalizeMimeType(artifact.fileData.mimeType) || "application/octet-stream";
50
+ return {
51
+ text: `[Artifact: ${artifactName}, uri: ${fileUri}, type: ${mimeType2}.]`
52
+ };
53
+ }
41
54
  const inlineData = artifact.inlineData;
42
55
  if (!inlineData) {
43
56
  return artifact;
44
57
  }
45
- if (isInlineMimeTypeSupported(inlineData.mimeType)) {
58
+ if (!(options == null ? void 0 : options.inlineMediaAsPlaceholder) && isInlineMimeTypeSupported(inlineData.mimeType)) {
46
59
  return artifact;
47
60
  }
48
61
  const mimeType = normalizeMimeType(inlineData.mimeType) || "application/octet-stream";
62
+ const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
49
63
  const data = inlineData.data;
50
- if (!data) {
64
+ if (data === void 0 || data === null || !isTextLike && data === "") {
51
65
  return {
52
66
  text: `[Artifact: ${artifactName}, type: ${mimeType}. No inline data was provided.]`
53
67
  };
54
68
  }
55
- const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
56
- const decodedBuffer = Buffer.from(data, "base64");
57
69
  if (isTextLike) {
70
+ if (data === "") {
71
+ return { text: "" };
72
+ }
58
73
  try {
59
- const decoded = decodedBuffer.toString("utf8");
60
- return { text: decoded };
74
+ return { text: base64Decode(data.replace(/-/g, "+").replace(/_/g, "/")) };
61
75
  } catch {
62
76
  }
63
77
  }
64
- const sizeKb = decodedBuffer.length / 1024;
78
+ const sizeKb = base64ByteLength(data) / 1024;
65
79
  return {
66
80
  text: `[Binary artifact: ${artifactName}, type: ${mimeType}, size: ${sizeKb.toFixed(1)} KB. Content cannot be displayed inline.]`
67
81
  };
@@ -188,5 +202,6 @@ let LoadArtifactsTool = _LoadArtifactsTool;
188
202
  const LOAD_ARTIFACTS = new LoadArtifactsTool();
189
203
  export {
190
204
  LOAD_ARTIFACTS,
191
- LoadArtifactsTool
205
+ LoadArtifactsTool,
206
+ asSafePartForLlm
192
207
  };
@@ -13,11 +13,13 @@ import {
13
13
  BaseTool
14
14
  } from "./base_tool.js";
15
15
  const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
16
- constructor() {
16
+ constructor(options = {}) {
17
+ var _a;
17
18
  super({
18
19
  name: "load_memory",
19
- description: "Loads the memory for the current user.\n\nNOTE: Currently this tool only uses text part from the memory."
20
+ description: "Loads the memory for the current user."
20
21
  });
22
+ this.textOnlyContent = (_a = options.textOnlyContent) != null ? _a : false;
21
23
  }
22
24
  _getDeclaration() {
23
25
  return {
@@ -35,16 +37,13 @@ const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
35
37
  }
36
38
  };
37
39
  }
38
- async runAsync({
39
- args,
40
- toolContext
41
- }) {
42
- try {
43
- const query = args["query"];
44
- if (!toolContext.invocationContext.memoryService) {
45
- throw new Error("Memory service is not initialized.");
46
- }
47
- const searchMemoryResponse = await toolContext.searchMemory(query);
40
+ async runAsync({ args, toolContext }) {
41
+ const query = args["query"];
42
+ if (!toolContext.invocationContext.memoryService) {
43
+ throw new Error("Memory service is not initialized.");
44
+ }
45
+ const searchMemoryResponse = await toolContext.searchMemory(query);
46
+ if (this.textOnlyContent) {
48
47
  return {
49
48
  memories: searchMemoryResponse.memories.map((m) => {
50
49
  var _a, _b;
@@ -59,10 +58,10 @@ const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
59
58
  };
60
59
  })
61
60
  };
62
- } catch (e) {
63
- console.error("ERROR in LoadMemoryTool runAsync:", e);
64
- throw e;
65
61
  }
62
+ return {
63
+ memories: searchMemoryResponse.memories
64
+ };
66
65
  }
67
66
  async processLlmRequest(request) {
68
67
  await super.processLlmRequest(request);
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  * Copyright 2025 Google LLC
29
29
  * SPDX-License-Identifier: Apache-2.0
30
30
  */
31
+ import { instrumentMcpFetch } from "../../telemetry/api/instrumentation.js";
31
32
  import { mergeTrackingHeaders } from "../../utils/client_labels.js";
32
33
  import { formatError } from "../../utils/error_utils.js";
33
34
  import { logger } from "../../utils/logger.js";
@@ -48,7 +49,8 @@ function buildTransportOptions(params) {
48
49
  requestInit: {
49
50
  ...transportOptions == null ? void 0 : transportOptions.requestInit,
50
51
  headers: mergeTrackingHeaders(callerHeaders)
51
- }
52
+ },
53
+ fetch: instrumentMcpFetch(transportOptions == null ? void 0 : transportOptions.fetch)
52
54
  };
53
55
  }
54
56
  __name(buildTransportOptions, "buildTransportOptions");
@@ -60,7 +62,8 @@ function buildSseTransportOptions(params) {
60
62
  requestInit: {
61
63
  ...transportOptions == null ? void 0 : transportOptions.requestInit,
62
64
  headers: mergeTrackingHeaders(callerHeaders)
63
- }
65
+ },
66
+ fetch: instrumentMcpFetch(transportOptions == null ? void 0 : transportOptions.fetch)
64
67
  };
65
68
  }
66
69
  __name(buildSseTransportOptions, "buildSseTransportOptions");
@@ -69,6 +72,23 @@ const _MCPSessionManager = class _MCPSessionManager {
69
72
  this.activeSessions = /* @__PURE__ */ new Set();
70
73
  this.connectionParams = connectionParams;
71
74
  }
75
+ /**
76
+ * Builds per-request options for MCP client operations.
77
+ *
78
+ * For a stdio connection with a configured `timeout`, the timeout is
79
+ * converted from seconds to milliseconds. Otherwise the MCP SDK applies its
80
+ * own default request timeout.
81
+ *
82
+ * @param signal Optional abort signal to attach to the request.
83
+ * @return The request options for the MCP SDK client.
84
+ */
85
+ getRequestOptions(signal) {
86
+ const options = signal !== void 0 ? { signal } : {};
87
+ if (this.connectionParams.type === "StdioConnectionParams" && this.connectionParams.timeout !== void 0) {
88
+ options.timeout = this.connectionParams.timeout * 1e3;
89
+ }
90
+ return options;
91
+ }
72
92
  async createSession() {
73
93
  const { Client } = await loadOptionalPeer(
74
94
  MCP_SDK,
@@ -86,7 +106,7 @@ const _MCPSessionManager = class _MCPSessionManager {
86
106
  this.connectionParams.serverParams
87
107
  );
88
108
  transport.onerror = logTransportError;
89
- await client.connect(transport);
109
+ await client.connect(transport, this.getRequestOptions());
90
110
  break;
91
111
  }
92
112
  case "StreamableHTTPConnectionParams": {
@@ -31,9 +31,13 @@ const _MCPTool = class _MCPTool extends BaseTool {
31
31
  try {
32
32
  const callRequest = {};
33
33
  callRequest.params = { name: this.originalName, arguments: request.args };
34
- const result = await session.callTool(callRequest.params, void 0, {
35
- signal: request.toolContext.abortSignal
36
- });
34
+ const result = await session.callTool(
35
+ callRequest.params,
36
+ void 0,
37
+ this.mcpSessionManager.getRequestOptions(
38
+ request.toolContext.abortSignal
39
+ )
40
+ );
37
41
  return result;
38
42
  } finally {
39
43
  await this.mcpSessionManager.closeSession(session);
@@ -20,7 +20,10 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
20
20
  const session = await this.mcpSessionManager.createSession();
21
21
  let listResult;
22
22
  try {
23
- listResult = await session.listTools();
23
+ listResult = await session.listTools(
24
+ void 0,
25
+ this.mcpSessionManager.getRequestOptions()
26
+ );
24
27
  } finally {
25
28
  await this.mcpSessionManager.closeSession(session);
26
29
  }
@@ -35,20 +38,7 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
35
38
  };
36
39
  return new MCPTool(toolWithPrefix, this.mcpSessionManager, tool.name);
37
40
  });
38
- const filter = this.toolFilter;
39
- if (!filter || Array.isArray(filter) && filter.length === 0) {
40
- return tools;
41
- }
42
- if (Array.isArray(filter)) {
43
- return tools.filter((tool) => filter.includes(tool.name));
44
- }
45
- if (context) {
46
- return tools.filter((tool) => filter(tool, context));
47
- }
48
- logger.warn(
49
- "MCPToolset: a ToolPredicate toolFilter was provided but getTools() was called without a ReadonlyContext. The filter will not be applied."
50
- );
51
- return tools;
41
+ return tools.filter((tool) => this.isToolSelected(tool, context));
52
42
  }
53
43
  /**
54
44
  * Lists the names of the resources advertised by the MCP server.
@@ -58,7 +48,10 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
58
48
  async listResources() {
59
49
  const session = await this.mcpSessionManager.createSession();
60
50
  try {
61
- const result = await session.listResources();
51
+ const result = await session.listResources(
52
+ void 0,
53
+ this.mcpSessionManager.getRequestOptions()
54
+ );
62
55
  return result.resources.map((resource) => resource.name);
63
56
  } finally {
64
57
  await this.mcpSessionManager.closeSession(session);
@@ -75,7 +68,10 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
75
68
  const session = await this.mcpSessionManager.createSession();
76
69
  let result;
77
70
  try {
78
- result = await session.listResources();
71
+ result = await session.listResources(
72
+ void 0,
73
+ this.mcpSessionManager.getRequestOptions()
74
+ );
79
75
  } finally {
80
76
  await this.mcpSessionManager.closeSession(session);
81
77
  }
@@ -105,9 +101,12 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
105
101
  }
106
102
  const session = await this.mcpSessionManager.createSession();
107
103
  try {
108
- const result = await session.readResource({
109
- uri: resourceInfo.uri
110
- });
104
+ const result = await session.readResource(
105
+ {
106
+ uri: resourceInfo.uri
107
+ },
108
+ this.mcpSessionManager.getRequestOptions()
109
+ );
111
110
  return result.contents;
112
111
  } finally {
113
112
  await this.mcpSessionManager.closeSession(session);
@@ -12,6 +12,7 @@ import {
12
12
  AuthCredentialTypes
13
13
  } from "../../../auth/auth_credential.js";
14
14
  import { camelCaseKeys } from "../../../utils/case_utils.js";
15
+ import { formatError } from "../../../utils/error_utils.js";
15
16
  const INTERNAL_AUTH_PREFIX = "_auth_prefix_vaf_";
16
17
  const API_KEY_LOCATIONS = ["header", "query", "cookie"];
17
18
  const OPENID_FETCH_TIMEOUT_MS = 1e4;
@@ -165,7 +166,7 @@ function tokenToSchemeCredential(tokenType, location, name, credentialValue) {
165
166
  throw new Error(`Invalid security scheme type: ${tokenType}`);
166
167
  }
167
168
  __name(tokenToSchemeCredential, "tokenToSchemeCredential");
168
- function serviceAccountDictToSchemeCredential(config, scopes) {
169
+ function serviceAccountRecordToSchemeCredential(config, scopes) {
169
170
  const authCredential = {
170
171
  authType: AuthCredentialTypes.SERVICE_ACCOUNT,
171
172
  serviceAccount: {
@@ -179,7 +180,7 @@ function serviceAccountDictToSchemeCredential(config, scopes) {
179
180
  };
180
181
  return [bearerJwtScheme(), authCredential];
181
182
  }
182
- __name(serviceAccountDictToSchemeCredential, "serviceAccountDictToSchemeCredential");
183
+ __name(serviceAccountRecordToSchemeCredential, "serviceAccountRecordToSchemeCredential");
183
184
  function serviceAccountSchemeCredential(config) {
184
185
  const authCredential = {
185
186
  authType: AuthCredentialTypes.SERVICE_ACCOUNT,
@@ -188,9 +189,9 @@ function serviceAccountSchemeCredential(config) {
188
189
  return [bearerJwtScheme(), authCredential];
189
190
  }
190
191
  __name(serviceAccountSchemeCredential, "serviceAccountSchemeCredential");
191
- function openidDictToSchemeCredential(configDict, scopes, credentialDict) {
192
+ function openidRecordToSchemeCredential(configRecord, scopes, credentialRecord) {
192
193
  const parsedConfig = OpenIdConnectConfigSchema.safeParse(
193
- camelCaseKeys(configDict)
194
+ camelCaseKeys(configRecord)
194
195
  );
195
196
  if (!parsedConfig.success) {
196
197
  throw new Error(
@@ -198,33 +199,33 @@ function openidDictToSchemeCredential(configDict, scopes, credentialDict) {
198
199
  );
199
200
  }
200
201
  const openidScheme = { ...parsedConfig.data, scopes };
201
- const values = Object.values(credentialDict);
202
+ const values = Object.values(credentialRecord);
202
203
  if (values.length === 1) {
203
204
  const wrapped = JsonObjectSchema.safeParse(values[0]);
204
205
  if (wrapped.success && "client_id" in wrapped.data && "client_secret" in wrapped.data) {
205
- credentialDict = wrapped.data;
206
+ credentialRecord = wrapped.data;
206
207
  }
207
208
  }
208
209
  const missingFields = REQUIRED_CREDENTIAL_FIELDS.filter(
209
- (field) => !(field in credentialDict)
210
+ (field) => !(field in credentialRecord)
210
211
  );
211
212
  if (missingFields.length > 0) {
212
213
  throw new Error(
213
- `Missing required fields in credential_dict: ${missingFields.join(", ")}`
214
+ `Missing required fields in credentialRecord: ${missingFields.join(", ")}`
214
215
  );
215
216
  }
216
217
  const authCredential = {
217
218
  authType: AuthCredentialTypes.OPEN_ID_CONNECT,
218
219
  oauth2: {
219
- clientId: String(credentialDict["client_id"]),
220
- clientSecret: String(credentialDict["client_secret"]),
221
- redirectUri: "redirect_uri" in credentialDict ? String(credentialDict["redirect_uri"]) : void 0
220
+ clientId: String(credentialRecord["client_id"]),
221
+ clientSecret: String(credentialRecord["client_secret"]),
222
+ redirectUri: "redirect_uri" in credentialRecord ? String(credentialRecord["redirect_uri"]) : void 0
222
223
  }
223
224
  };
224
225
  return [openidScheme, authCredential];
225
226
  }
226
- __name(openidDictToSchemeCredential, "openidDictToSchemeCredential");
227
- async function openidUrlToSchemeCredential(openidUrl, scopes, credentialDict) {
227
+ __name(openidRecordToSchemeCredential, "openidRecordToSchemeCredential");
228
+ async function openidUrlToSchemeCredential(openidUrl, scopes, credentialRecord) {
228
229
  let response;
229
230
  try {
230
231
  response = await fetch(openidUrl, {
@@ -235,21 +236,21 @@ async function openidUrlToSchemeCredential(openidUrl, scopes, credentialDict) {
235
236
  }
236
237
  } catch (e) {
237
238
  throw new Error(
238
- `Failed to fetch OpenID configuration from ${openidUrl}: ${String(e)}`
239
+ `Failed to fetch OpenID configuration from ${openidUrl}: ${formatError(e)}`
239
240
  );
240
241
  }
241
- let configDict;
242
+ let configRecord;
242
243
  try {
243
- configDict = JsonObjectSchema.parse(await response.json());
244
+ configRecord = JsonObjectSchema.parse(await response.json());
244
245
  } catch (e) {
245
246
  throw new Error(
246
- `Invalid JSON response from OpenID configuration endpoint ${openidUrl}: ${String(e)}`
247
+ `Invalid JSON response from OpenID configuration endpoint ${openidUrl}: ${formatError(e)}`
247
248
  );
248
249
  }
249
- return openidDictToSchemeCredential(
250
- { ...configDict, openIdConnectUrl: openidUrl },
250
+ return openidRecordToSchemeCredential(
251
+ { ...configRecord, openIdConnectUrl: openidUrl },
251
252
  scopes,
252
- credentialDict
253
+ credentialRecord
253
254
  );
254
255
  }
255
256
  __name(openidUrlToSchemeCredential, "openidUrlToSchemeCredential");
@@ -300,9 +301,9 @@ function parseSecurityScheme(schema, data) {
300
301
  return result.data;
301
302
  }
302
303
  __name(parseSecurityScheme, "parseSecurityScheme");
303
- function dictToAuthScheme(data) {
304
+ function recordToAuthScheme(data) {
304
305
  if (!("type" in data)) {
305
- throw new Error("Missing 'type' field in security scheme dictionary.");
306
+ throw new Error("Missing 'type' field in security scheme object.");
306
307
  }
307
308
  const securityType = data["type"];
308
309
  switch (securityType) {
@@ -318,17 +319,17 @@ function dictToAuthScheme(data) {
318
319
  throw new Error(`Invalid security scheme type: ${securityType}`);
319
320
  }
320
321
  }
321
- __name(dictToAuthScheme, "dictToAuthScheme");
322
+ __name(recordToAuthScheme, "recordToAuthScheme");
322
323
  export {
323
324
  INTERNAL_AUTH_PREFIX,
324
325
  applyCredential,
325
326
  createApiKeyScheme,
326
327
  createBearerScheme,
327
328
  credentialToParam,
328
- dictToAuthScheme,
329
- openidDictToSchemeCredential,
329
+ openidRecordToSchemeCredential,
330
330
  openidUrlToSchemeCredential,
331
- serviceAccountDictToSchemeCredential,
331
+ recordToAuthScheme,
332
+ serviceAccountRecordToSchemeCredential,
332
333
  serviceAccountSchemeCredential,
333
334
  tokenToSchemeCredential
334
335
  };
@@ -24,7 +24,7 @@ import { experimental } from "../../../../utils/experimental.js";
24
24
  function checkSchemeCredentialType(authScheme, authCredential) {
25
25
  if (!authCredential) {
26
26
  throw new Error(
27
- "auth_credential is empty. Please create AuthCredential using OAuth2Auth."
27
+ "authCredential is empty. Please create AuthCredential using OAuth2Auth."
28
28
  );
29
29
  }
30
30
  if (authScheme.type !== AuthSchemeType.OPEN_ID_CONNECT && authScheme.type !== AuthSchemeType.OAUTH2) {
@@ -34,7 +34,7 @@ function checkSchemeCredentialType(authScheme, authCredential) {
34
34
  }
35
35
  if (!authCredential.oauth2 && !authCredential.http) {
36
36
  throw new Error(
37
- "auth_credential is not configured with oauth2. Please create AuthCredential and set OAuth2Auth."
37
+ "authCredential is not configured with oauth2. Please create AuthCredential and set OAuth2Auth."
38
38
  );
39
39
  }
40
40
  }
@@ -55,12 +55,12 @@ function generateAuthToken(authCredential) {
55
55
  }
56
56
  __name(generateAuthToken, "generateAuthToken");
57
57
  function exchangeCredential(authScheme, authCredential) {
58
- var _a, _b;
58
+ var _a;
59
59
  checkSchemeCredentialType(authScheme, authCredential);
60
60
  if (authCredential.http) {
61
61
  return authCredential;
62
62
  }
63
- if (((_a = authCredential.oauth2) == null ? void 0 : _a.accessToken) || ((_b = authCredential.oauth2) == null ? void 0 : _b.refreshToken)) {
63
+ if ((_a = authCredential.oauth2) == null ? void 0 : _a.accessToken) {
64
64
  return generateAuthToken(authCredential);
65
65
  }
66
66
  return null;
@@ -29,15 +29,27 @@ const VALID_SCHEMA_TYPES = /* @__PURE__ */ new Set([
29
29
  "string"
30
30
  ]);
31
31
  let OpenApiSpecParser = class {
32
+ /**
33
+ * @param options.preservePropertyNames Keeps the original parameter and
34
+ * function names instead of converting them to snake_case.
35
+ * @param options.unconstrainedObjectBodyAsParameter Emits a whole-body
36
+ * parameter named `body` when an object request body schema has no
37
+ * properties. Defaults to `false`.
38
+ * @deprecated Retained for backwards compatibility; empty object schemas
39
+ * produce no parameters by default. This option will be removed in a
40
+ * future release.
41
+ */
32
42
  constructor(options = {}) {
33
- var _a;
43
+ var _a, _b;
34
44
  this.preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
45
+ this.unconstrainedObjectBodyAsParameter = (_b = options.unconstrainedObjectBodyAsParameter) != null ? _b : false;
35
46
  }
36
47
  parse(openapiSpec) {
37
48
  const resolvedSpec = resolveReferences(openapiSpec);
38
49
  const sanitizedSpec = sanitizeSchemaTypes(resolvedSpec);
39
50
  return collectOperations(sanitizedSpec, {
40
- preservePropertyNames: this.preservePropertyNames
51
+ preservePropertyNames: this.preservePropertyNames,
52
+ unconstrainedObjectBodyAsParameter: this.unconstrainedObjectBodyAsParameter
41
53
  });
42
54
  }
43
55
  };
@@ -172,17 +184,18 @@ function resolveServerUrl(server) {
172
184
  }
173
185
  __name(resolveServerUrl, "resolveServerUrl");
174
186
  function collectOperations(spec, options = {}) {
175
- var _a, _b, _c;
187
+ var _a, _b, _c, _d;
176
188
  const preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
189
+ const unconstrainedObjectBodyAsParameter = (_b = options.unconstrainedObjectBodyAsParameter) != null ? _b : false;
177
190
  const operations = [];
178
- const server = (_b = spec.servers) == null ? void 0 : _b[0];
191
+ const server = (_c = spec.servers) == null ? void 0 : _c[0];
179
192
  const baseUrl = server ? resolveServerUrl(server) : "";
180
193
  const globalSecurity = spec.security || [];
181
194
  let globalSchemeName;
182
195
  if (globalSecurity.length > 0) {
183
196
  globalSchemeName = Object.keys(globalSecurity[0])[0];
184
197
  }
185
- const authSchemes = ((_c = spec.components) == null ? void 0 : _c.securitySchemes) || {};
198
+ const authSchemes = ((_d = spec.components) == null ? void 0 : _d.securitySchemes) || {};
186
199
  for (const [path, pathItem] of Object.entries(spec.paths || {})) {
187
200
  if (!pathItem) continue;
188
201
  const methods = [
@@ -205,7 +218,8 @@ function collectOperations(spec, options = {}) {
205
218
  operation.operationId = toSnakeCaseName(`${path}_${method}`);
206
219
  }
207
220
  const parser = new OperationParser(operation, {
208
- preservePropertyNames
221
+ preservePropertyNames,
222
+ unconstrainedObjectBodyAsParameter
209
223
  });
210
224
  let authSchemeName;
211
225
  if (operation.security && operation.security.length > 0) {
@@ -34,13 +34,20 @@ let OperationParser = class {
34
34
  * function names instead of converting them to snake_case.
35
35
  * @param options.shouldParse Whether to parse the operation during
36
36
  * construction. Defaults to `true`.
37
+ * @param options.unconstrainedObjectBodyAsParameter Emits a whole-body
38
+ * parameter named `body` when an object request body schema has no
39
+ * properties. Defaults to `false`.
40
+ * @deprecated Retained for backwards compatibility; empty object schemas
41
+ * produce no parameters by default. This option will be removed in a
42
+ * future release.
37
43
  */
38
44
  constructor(operation, options = {}) {
39
45
  this.params = [];
40
- var _a, _b;
46
+ var _a, _b, _c;
41
47
  this.operation = typeof operation === "string" ? JSON.parse(operation) : operation;
42
48
  this.preservePropertyNames = (_a = options.preservePropertyNames) != null ? _a : false;
43
- if ((_b = options.shouldParse) != null ? _b : true) {
49
+ this.unconstrainedObjectBodyAsParameter = (_b = options.unconstrainedObjectBodyAsParameter) != null ? _b : false;
50
+ if ((_c = options.shouldParse) != null ? _c : true) {
44
51
  this.processOperationParameters();
45
52
  this.processRequestBody();
46
53
  this.returnValue = this.processReturnValue();
@@ -60,6 +67,7 @@ let OperationParser = class {
60
67
  return renameReservedKeywords(toSnakeCaseName(originalName));
61
68
  }
62
69
  processOperationParameters() {
70
+ var _a;
63
71
  const parameters = this.operation.parameters || [];
64
72
  for (const param of parameters) {
65
73
  if ("name" in param) {
@@ -70,9 +78,12 @@ let OperationParser = class {
70
78
  this.params.push({
71
79
  originalName,
72
80
  paramLocation: location,
73
- paramSchema: schema,
81
+ paramSchema: {
82
+ ...schema,
83
+ description: schema.description || description || void 0
84
+ },
74
85
  description,
75
- required: param.required || false,
86
+ required: (_a = param.required) != null ? _a : false,
76
87
  name: this.getParamName(originalName)
77
88
  });
78
89
  }
@@ -108,7 +119,7 @@ let OperationParser = class {
108
119
  });
109
120
  }
110
121
  }
111
- } else {
122
+ } else if (this.unconstrainedObjectBodyAsParameter) {
112
123
  this.params.push({
113
124
  originalName: "",
114
125
  paramLocation: "body",
@@ -129,7 +140,7 @@ let OperationParser = class {
129
140
  });
130
141
  } else {
131
142
  this.params.push({
132
- originalName: "body",
143
+ originalName: "",
133
144
  paramLocation: "body",
134
145
  paramSchema: schema,
135
146
  description,