@softactivate/adk 1.1.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 (616) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/a2a/a2a_event.js +317 -0
  4. package/dist/cjs/a2a/a2a_remote_agent.js +179 -0
  5. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +205 -0
  6. package/dist/cjs/a2a/a2a_remote_agent_utils.js +165 -0
  7. package/dist/cjs/a2a/agent_card.js +380 -0
  8. package/dist/cjs/a2a/agent_executor.js +221 -0
  9. package/dist/cjs/a2a/agent_to_a2a.js +115 -0
  10. package/dist/cjs/a2a/event_converter_utils.js +201 -0
  11. package/dist/cjs/a2a/event_processor_utils.js +180 -0
  12. package/dist/cjs/a2a/executor_context.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +126 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +223 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +44 -0
  16. package/dist/cjs/agents/base_agent.js +294 -0
  17. package/dist/cjs/agents/context.js +180 -0
  18. package/dist/cjs/agents/functions.js +525 -0
  19. package/dist/cjs/agents/instructions.js +110 -0
  20. package/dist/cjs/agents/invocation_context.js +110 -0
  21. package/dist/cjs/agents/live_request_queue.js +136 -0
  22. package/dist/cjs/agents/llm_agent.js +722 -0
  23. package/dist/cjs/agents/loop_agent.js +84 -0
  24. package/dist/cjs/agents/parallel_agent.js +95 -0
  25. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +132 -0
  26. package/dist/cjs/agents/processors/base_llm_processor.js +44 -0
  27. package/dist/cjs/agents/processors/basic_llm_request_processor.js +68 -0
  28. package/dist/cjs/agents/processors/code_execution_request_processor.js +391 -0
  29. package/dist/cjs/agents/processors/content_processor_utils.js +338 -0
  30. package/dist/cjs/agents/processors/content_request_processor.js +87 -0
  31. package/dist/cjs/agents/processors/context_compactor_request_processor.js +70 -0
  32. package/dist/cjs/agents/processors/identity_llm_request_processor.js +54 -0
  33. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +85 -0
  34. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +165 -0
  35. package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
  36. package/dist/cjs/agents/readonly_context.js +83 -0
  37. package/dist/cjs/agents/routed_agent.js +97 -0
  38. package/dist/cjs/agents/run_config.js +71 -0
  39. package/dist/cjs/agents/sequential_agent.js +106 -0
  40. package/dist/cjs/agents/transcription_entry.js +27 -0
  41. package/dist/cjs/artifacts/base_artifact_service.js +27 -0
  42. package/dist/cjs/artifacts/file_artifact_service.js +522 -0
  43. package/dist/cjs/artifacts/gcs_artifact_service.js +227 -0
  44. package/dist/cjs/artifacts/in_memory_artifact_service.js +181 -0
  45. package/dist/cjs/artifacts/registry.js +55 -0
  46. package/dist/cjs/auth/auth_credential.js +46 -0
  47. package/dist/cjs/auth/auth_handler.js +159 -0
  48. package/dist/cjs/auth/auth_preprocessor.js +178 -0
  49. package/dist/cjs/auth/auth_provider_registry.js +61 -0
  50. package/dist/cjs/auth/auth_schemes.js +62 -0
  51. package/dist/cjs/auth/auth_tool.js +27 -0
  52. package/dist/cjs/auth/base_auth_provider.js +27 -0
  53. package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
  54. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
  55. package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
  56. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +40 -0
  57. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -0
  58. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
  59. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
  60. package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
  61. package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
  62. package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
  63. package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
  64. package/dist/cjs/code_executors/base_code_executor.js +92 -0
  65. package/dist/cjs/code_executors/built_in_code_executor.js +74 -0
  66. package/dist/cjs/code_executors/code_execution_utils.js +161 -0
  67. package/dist/cjs/code_executors/code_executor_context.js +198 -0
  68. package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
  69. package/dist/cjs/common.js +362 -0
  70. package/dist/cjs/context/base_context_compactor.js +27 -0
  71. package/dist/cjs/context/summarizers/base_summarizer.js +27 -0
  72. package/dist/cjs/context/summarizers/llm_summarizer.js +93 -0
  73. package/dist/cjs/context/token_based_context_compactor.js +135 -0
  74. package/dist/cjs/context/truncating_context_compactor.js +58 -0
  75. package/dist/cjs/events/compacted_event.js +53 -0
  76. package/dist/cjs/events/event.js +146 -0
  77. package/dist/cjs/events/event_actions.js +83 -0
  78. package/dist/cjs/events/structured_events.js +105 -0
  79. package/dist/cjs/examples/base_example_provider.js +56 -0
  80. package/dist/cjs/examples/example.js +27 -0
  81. package/dist/cjs/examples/example_util.js +107 -0
  82. package/dist/cjs/features/feature_registry.js +141 -0
  83. package/dist/cjs/index.js +94 -0
  84. package/dist/cjs/index_web.js +33 -0
  85. package/dist/cjs/memory/base_memory_service.js +27 -0
  86. package/dist/cjs/memory/in_memory_memory_service.js +99 -0
  87. package/dist/cjs/memory/memory_entry.js +27 -0
  88. package/dist/cjs/models/apigee_llm.js +182 -0
  89. package/dist/cjs/models/base_llm.js +102 -0
  90. package/dist/cjs/models/base_llm_connection.js +27 -0
  91. package/dist/cjs/models/gemini_llm_connection.js +133 -0
  92. package/dist/cjs/models/google_llm.js +291 -0
  93. package/dist/cjs/models/llm_request.js +82 -0
  94. package/dist/cjs/models/llm_response.js +73 -0
  95. package/dist/cjs/models/registry.js +123 -0
  96. package/dist/cjs/models/routed_llm.js +99 -0
  97. package/dist/cjs/package.json +1 -0
  98. package/dist/cjs/plugins/base_plugin.js +295 -0
  99. package/dist/cjs/plugins/logging_plugin.js +259 -0
  100. package/dist/cjs/plugins/plugin_manager.js +310 -0
  101. package/dist/cjs/plugins/security_plugin.js +156 -0
  102. package/dist/cjs/runner/in_memory_runner.js +58 -0
  103. package/dist/cjs/runner/runner.js +380 -0
  104. package/dist/cjs/sessions/base_session_service.js +121 -0
  105. package/dist/cjs/sessions/database_session_service.js +367 -0
  106. package/dist/cjs/sessions/db/operations.js +109 -0
  107. package/dist/cjs/sessions/db/schema.js +204 -0
  108. package/dist/cjs/sessions/in_memory_session_service.js +210 -0
  109. package/dist/cjs/sessions/registry.js +49 -0
  110. package/dist/cjs/sessions/session.js +48 -0
  111. package/dist/cjs/sessions/state.js +101 -0
  112. package/dist/cjs/skills/loader.js +283 -0
  113. package/dist/cjs/skills/prompt.js +58 -0
  114. package/dist/cjs/skills/skill.js +78 -0
  115. package/dist/cjs/telemetry/google_cloud.js +83 -0
  116. package/dist/cjs/telemetry/setup.js +105 -0
  117. package/dist/cjs/telemetry/tracing.js +253 -0
  118. package/dist/cjs/tools/agent_tool.js +219 -0
  119. package/dist/cjs/tools/base_tool.js +122 -0
  120. package/dist/cjs/tools/base_toolset.js +86 -0
  121. package/dist/cjs/tools/exit_loop_tool.js +63 -0
  122. package/dist/cjs/tools/forwarding_artifact_service.js +87 -0
  123. package/dist/cjs/tools/function_tool.js +109 -0
  124. package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
  125. package/dist/cjs/tools/google_search_tool.js +80 -0
  126. package/dist/cjs/tools/load_artifacts_tool.js +188 -0
  127. package/dist/cjs/tools/load_memory_tool.js +107 -0
  128. package/dist/cjs/tools/long_running_tool.js +63 -0
  129. package/dist/cjs/tools/mcp/mcp_session_manager.js +77 -0
  130. package/dist/cjs/tools/mcp/mcp_tool.js +68 -0
  131. package/dist/cjs/tools/mcp/mcp_toolset.js +80 -0
  132. package/dist/cjs/tools/preload_memory_tool.js +109 -0
  133. package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
  134. package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
  135. package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
  136. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
  137. package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
  138. package/dist/cjs/tools/skill/skill_toolset.js +163 -0
  139. package/dist/cjs/tools/tool_confirmation.js +49 -0
  140. package/dist/cjs/tools/url_context_tool.js +73 -0
  141. package/dist/cjs/tools/vertex_ai_search_tool.js +127 -0
  142. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
  143. package/dist/cjs/utils/client_labels.js +56 -0
  144. package/dist/cjs/utils/env_aware_utils.js +92 -0
  145. package/dist/cjs/utils/experimental.js +74 -0
  146. package/dist/cjs/utils/failover_utils.js +93 -0
  147. package/dist/cjs/utils/file_extension_utils.js +77 -0
  148. package/dist/cjs/utils/file_utils.js +94 -0
  149. package/dist/cjs/utils/gemini_schema_util.js +152 -0
  150. package/dist/cjs/utils/logger.js +173 -0
  151. package/dist/cjs/utils/model_name.js +90 -0
  152. package/dist/cjs/utils/object_notation_utils.js +78 -0
  153. package/dist/cjs/utils/simple_zod_to_json.js +150 -0
  154. package/dist/cjs/utils/streaming_utils.js +330 -0
  155. package/dist/cjs/utils/variant_utils.js +49 -0
  156. package/dist/cjs/version.js +39 -0
  157. package/dist/esm/a2a/a2a_event.js +271 -0
  158. package/dist/esm/a2a/a2a_remote_agent.js +155 -0
  159. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +184 -0
  160. package/dist/esm/a2a/a2a_remote_agent_utils.js +133 -0
  161. package/dist/esm/a2a/agent_card.js +342 -0
  162. package/dist/esm/a2a/agent_executor.js +204 -0
  163. package/dist/esm/a2a/agent_to_a2a.js +82 -0
  164. package/dist/esm/a2a/event_converter_utils.js +189 -0
  165. package/dist/esm/a2a/event_processor_utils.js +161 -0
  166. package/dist/esm/a2a/executor_context.js +25 -0
  167. package/dist/esm/a2a/metadata_converter_utils.js +93 -0
  168. package/dist/esm/a2a/part_converter_utils.js +188 -0
  169. package/dist/esm/agents/active_streaming_tool.js +16 -0
  170. package/dist/esm/agents/base_agent.js +268 -0
  171. package/dist/esm/agents/context.js +152 -0
  172. package/dist/esm/agents/functions.js +489 -0
  173. package/dist/esm/agents/instructions.js +82 -0
  174. package/dist/esm/agents/invocation_context.js +81 -0
  175. package/dist/esm/agents/live_request_queue.js +108 -0
  176. package/dist/esm/agents/llm_agent.js +708 -0
  177. package/dist/esm/agents/loop_agent.js +55 -0
  178. package/dist/esm/agents/parallel_agent.js +66 -0
  179. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +103 -0
  180. package/dist/esm/agents/processors/base_llm_processor.js +15 -0
  181. package/dist/esm/agents/processors/basic_llm_request_processor.js +39 -0
  182. package/dist/esm/agents/processors/code_execution_request_processor.js +368 -0
  183. package/dist/esm/agents/processors/content_processor_utils.js +319 -0
  184. package/dist/esm/agents/processors/content_request_processor.js +61 -0
  185. package/dist/esm/agents/processors/context_compactor_request_processor.js +42 -0
  186. package/dist/esm/agents/processors/identity_llm_request_processor.js +25 -0
  187. package/dist/esm/agents/processors/instructions_llm_request_processor.js +56 -0
  188. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +142 -0
  189. package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
  190. package/dist/esm/agents/readonly_context.js +55 -0
  191. package/dist/esm/agents/routed_agent.js +70 -0
  192. package/dist/esm/agents/run_config.js +42 -0
  193. package/dist/esm/agents/sequential_agent.js +77 -0
  194. package/dist/esm/agents/transcription_entry.js +7 -0
  195. package/dist/esm/artifacts/base_artifact_service.js +7 -0
  196. package/dist/esm/artifacts/file_artifact_service.js +480 -0
  197. package/dist/esm/artifacts/gcs_artifact_service.js +199 -0
  198. package/dist/esm/artifacts/in_memory_artifact_service.js +152 -0
  199. package/dist/esm/artifacts/registry.js +30 -0
  200. package/dist/esm/auth/auth_credential.js +18 -0
  201. package/dist/esm/auth/auth_handler.js +131 -0
  202. package/dist/esm/auth/auth_preprocessor.js +155 -0
  203. package/dist/esm/auth/auth_provider_registry.js +33 -0
  204. package/dist/esm/auth/auth_schemes.js +33 -0
  205. package/dist/esm/auth/auth_tool.js +7 -0
  206. package/dist/esm/auth/base_auth_provider.js +7 -0
  207. package/dist/esm/auth/credential_service/base_credential_service.js +7 -0
  208. package/dist/esm/auth/credential_service/in_memory_credential_service.js +35 -0
  209. package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
  210. package/dist/esm/auth/exchanger/base_credential_exchanger.js +12 -0
  211. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +31 -0
  212. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
  213. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
  214. package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
  215. package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
  216. package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
  217. package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
  218. package/dist/esm/code_executors/base_code_executor.js +63 -0
  219. package/dist/esm/code_executors/built_in_code_executor.js +45 -0
  220. package/dist/esm/code_executors/code_execution_utils.js +127 -0
  221. package/dist/esm/code_executors/code_executor_context.js +170 -0
  222. package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
  223. package/dist/esm/common.js +245 -0
  224. package/dist/esm/context/base_context_compactor.js +7 -0
  225. package/dist/esm/context/summarizers/base_summarizer.js +7 -0
  226. package/dist/esm/context/summarizers/llm_summarizer.js +67 -0
  227. package/dist/esm/context/token_based_context_compactor.js +107 -0
  228. package/dist/esm/context/truncating_context_compactor.js +30 -0
  229. package/dist/esm/events/compacted_event.js +24 -0
  230. package/dist/esm/events/event.js +110 -0
  231. package/dist/esm/events/event_actions.js +54 -0
  232. package/dist/esm/events/structured_events.js +76 -0
  233. package/dist/esm/examples/base_example_provider.js +27 -0
  234. package/dist/esm/examples/example.js +7 -0
  235. package/dist/esm/examples/example_util.js +80 -0
  236. package/dist/esm/features/feature_registry.js +107 -0
  237. package/dist/esm/index.js +50 -0
  238. package/dist/esm/index_web.js +8 -0
  239. package/dist/esm/memory/base_memory_service.js +7 -0
  240. package/dist/esm/memory/in_memory_memory_service.js +71 -0
  241. package/dist/esm/memory/memory_entry.js +7 -0
  242. package/dist/esm/models/apigee_llm.js +154 -0
  243. package/dist/esm/models/base_llm.js +73 -0
  244. package/dist/esm/models/base_llm_connection.js +7 -0
  245. package/dist/esm/models/gemini_llm_connection.js +105 -0
  246. package/dist/esm/models/google_llm.js +265 -0
  247. package/dist/esm/models/llm_request.js +52 -0
  248. package/dist/esm/models/llm_response.js +45 -0
  249. package/dist/esm/models/registry.js +95 -0
  250. package/dist/esm/models/routed_llm.js +73 -0
  251. package/dist/esm/plugins/base_plugin.js +268 -0
  252. package/dist/esm/plugins/logging_plugin.js +235 -0
  253. package/dist/esm/plugins/plugin_manager.js +282 -0
  254. package/dist/esm/plugins/security_plugin.js +124 -0
  255. package/dist/esm/runner/in_memory_runner.js +30 -0
  256. package/dist/esm/runner/runner.js +360 -0
  257. package/dist/esm/sessions/base_session_service.js +91 -0
  258. package/dist/esm/sessions/database_session_service.js +355 -0
  259. package/dist/esm/sessions/db/operations.js +96 -0
  260. package/dist/esm/sessions/db/schema.js +174 -0
  261. package/dist/esm/sessions/in_memory_session_service.js +184 -0
  262. package/dist/esm/sessions/registry.js +27 -0
  263. package/dist/esm/sessions/session.js +20 -0
  264. package/dist/esm/sessions/state.js +73 -0
  265. package/dist/esm/skills/loader.js +244 -0
  266. package/dist/esm/skills/prompt.js +30 -0
  267. package/dist/esm/skills/skill.js +49 -0
  268. package/dist/esm/telemetry/google_cloud.js +54 -0
  269. package/dist/esm/telemetry/setup.js +83 -0
  270. package/dist/esm/telemetry/tracing.js +219 -0
  271. package/dist/esm/tools/agent_tool.js +190 -0
  272. package/dist/esm/tools/base_tool.js +93 -0
  273. package/dist/esm/tools/base_toolset.js +57 -0
  274. package/dist/esm/tools/exit_loop_tool.js +34 -0
  275. package/dist/esm/tools/forwarding_artifact_service.js +59 -0
  276. package/dist/esm/tools/function_tool.js +80 -0
  277. package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
  278. package/dist/esm/tools/google_search_tool.js +51 -0
  279. package/dist/esm/tools/load_artifacts_tool.js +161 -0
  280. package/dist/esm/tools/load_memory_tool.js +80 -0
  281. package/dist/esm/tools/long_running_tool.js +37 -0
  282. package/dist/esm/tools/mcp/mcp_session_manager.js +53 -0
  283. package/dist/esm/tools/mcp/mcp_tool.js +40 -0
  284. package/dist/esm/tools/mcp/mcp_toolset.js +52 -0
  285. package/dist/esm/tools/preload_memory_tool.js +82 -0
  286. package/dist/esm/tools/skill/list_skills_tool.js +50 -0
  287. package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
  288. package/dist/esm/tools/skill/load_skill_tool.js +82 -0
  289. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
  290. package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
  291. package/dist/esm/tools/skill/skill_toolset.js +137 -0
  292. package/dist/esm/tools/tool_confirmation.js +21 -0
  293. package/dist/esm/tools/url_context_tool.js +44 -0
  294. package/dist/esm/tools/vertex_ai_search_tool.js +103 -0
  295. package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
  296. package/dist/esm/utils/client_labels.js +28 -0
  297. package/dist/esm/utils/env_aware_utils.js +59 -0
  298. package/dist/esm/utils/experimental.js +46 -0
  299. package/dist/esm/utils/failover_utils.js +65 -0
  300. package/dist/esm/utils/file_extension_utils.js +51 -0
  301. package/dist/esm/utils/file_utils.js +56 -0
  302. package/dist/esm/utils/gemini_schema_util.js +124 -0
  303. package/dist/esm/utils/logger.js +130 -0
  304. package/dist/esm/utils/model_name.js +58 -0
  305. package/dist/esm/utils/object_notation_utils.js +49 -0
  306. package/dist/esm/utils/simple_zod_to_json.js +123 -0
  307. package/dist/esm/utils/streaming_utils.js +304 -0
  308. package/dist/esm/utils/variant_utils.js +20 -0
  309. package/dist/esm/version.js +11 -0
  310. package/dist/types/a2a/a2a_event.d.ts +139 -0
  311. package/dist/types/a2a/a2a_remote_agent.d.ts +67 -0
  312. package/dist/types/a2a/a2a_remote_agent_run_processor.d.ts +31 -0
  313. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +38 -0
  314. package/dist/types/a2a/agent_card.d.ts +23 -0
  315. package/dist/types/a2a/agent_executor.d.ts +52 -0
  316. package/dist/types/a2a/agent_to_a2a.d.ts +45 -0
  317. package/dist/types/a2a/event_converter_utils.d.ts +20 -0
  318. package/dist/types/a2a/event_processor_utils.d.ts +24 -0
  319. package/dist/types/a2a/executor_context.d.ts +33 -0
  320. package/dist/types/a2a/metadata_converter_utils.d.ts +63 -0
  321. package/dist/types/a2a/part_converter_utils.d.ts +48 -0
  322. package/dist/types/agents/active_streaming_tool.d.ts +29 -0
  323. package/dist/types/agents/base_agent.d.ts +194 -0
  324. package/dist/types/agents/context.d.ts +99 -0
  325. package/dist/types/agents/functions.d.ts +112 -0
  326. package/dist/types/agents/instructions.d.ts +32 -0
  327. package/dist/types/agents/invocation_context.d.ts +162 -0
  328. package/dist/types/agents/live_request_queue.d.ts +67 -0
  329. package/dist/types/agents/llm_agent.d.ts +351 -0
  330. package/dist/types/agents/loop_agent.d.ts +47 -0
  331. package/dist/types/agents/parallel_agent.d.ts +37 -0
  332. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +18 -0
  333. package/dist/types/agents/processors/base_llm_processor.d.ts +27 -0
  334. package/dist/types/agents/processors/basic_llm_request_processor.d.ts +13 -0
  335. package/dist/types/agents/processors/code_execution_request_processor.d.ts +34 -0
  336. package/dist/types/agents/processors/content_processor_utils.d.ts +36 -0
  337. package/dist/types/agents/processors/content_request_processor.d.ts +13 -0
  338. package/dist/types/agents/processors/context_compactor_request_processor.d.ts +22 -0
  339. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +13 -0
  340. package/dist/types/agents/processors/instructions_llm_request_processor.d.ts +16 -0
  341. package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +13 -0
  342. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
  343. package/dist/types/agents/readonly_context.d.ts +39 -0
  344. package/dist/types/agents/routed_agent.d.ts +59 -0
  345. package/dist/types/agents/run_config.d.ts +94 -0
  346. package/dist/types/agents/sequential_agent.d.ts +42 -0
  347. package/dist/types/agents/transcription_entry.d.ts +17 -0
  348. package/dist/types/artifacts/base_artifact_service.d.ts +158 -0
  349. package/dist/types/artifacts/file_artifact_service.d.ts +47 -0
  350. package/dist/types/artifacts/gcs_artifact_service.d.ts +18 -0
  351. package/dist/types/artifacts/in_memory_artifact_service.d.ts +21 -0
  352. package/dist/types/artifacts/registry.d.ts +7 -0
  353. package/dist/types/auth/auth_credential.d.ts +244 -0
  354. package/dist/types/auth/auth_handler.d.ts +28 -0
  355. package/dist/types/auth/auth_preprocessor.d.ts +12 -0
  356. package/dist/types/auth/auth_provider_registry.d.ts +27 -0
  357. package/dist/types/auth/auth_schemes.d.ts +39 -0
  358. package/dist/types/auth/auth_tool.d.ts +51 -0
  359. package/dist/types/auth/base_auth_provider.d.ts +20 -0
  360. package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
  361. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
  362. package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
  363. package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +39 -0
  364. package/dist/types/auth/exchanger/credential_exchanger_registry.d.ts +28 -0
  365. package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
  366. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
  367. package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
  368. package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
  369. package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
  370. package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
  371. package/dist/types/code_executors/base_code_executor.d.ts +74 -0
  372. package/dist/types/code_executors/built_in_code_executor.d.ts +32 -0
  373. package/dist/types/code_executors/code_execution_utils.d.ts +127 -0
  374. package/dist/types/code_executors/code_executor_context.d.ts +85 -0
  375. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
  376. package/dist/types/common.d.ts +137 -0
  377. package/dist/types/context/base_context_compactor.d.ts +24 -0
  378. package/dist/types/context/summarizers/base_summarizer.d.ts +19 -0
  379. package/dist/types/context/summarizers/llm_summarizer.d.ts +23 -0
  380. package/dist/types/context/token_based_context_compactor.d.ts +33 -0
  381. package/dist/types/context/truncating_context_compactor.d.ts +24 -0
  382. package/dist/types/events/compacted_event.d.ts +33 -0
  383. package/dist/types/events/event.d.ts +102 -0
  384. package/dist/types/events/event_actions.d.ts +74 -0
  385. package/dist/types/events/structured_events.d.ts +106 -0
  386. package/dist/types/examples/base_example_provider.d.ts +36 -0
  387. package/dist/types/examples/example.d.ts +19 -0
  388. package/dist/types/examples/example_util.d.ts +13 -0
  389. package/dist/types/features/feature_registry.d.ts +66 -0
  390. package/dist/types/index.d.ts +28 -0
  391. package/dist/types/index_web.d.ts +6 -0
  392. package/dist/types/memory/base_memory_service.d.ts +53 -0
  393. package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
  394. package/dist/types/memory/memory_entry.d.ts +30 -0
  395. package/dist/types/models/apigee_llm.d.ts +59 -0
  396. package/dist/types/models/base_llm.d.ts +66 -0
  397. package/dist/types/models/base_llm_connection.d.ts +51 -0
  398. package/dist/types/models/gemini_llm_connection.d.ts +54 -0
  399. package/dist/types/models/google_llm.d.ts +90 -0
  400. package/dist/types/models/llm_request.d.ts +53 -0
  401. package/dist/types/models/llm_response.d.ts +83 -0
  402. package/dist/types/models/registry.d.ts +49 -0
  403. package/dist/types/models/routed_llm.d.ts +38 -0
  404. package/dist/types/plugins/base_plugin.d.ts +368 -0
  405. package/dist/types/plugins/logging_plugin.d.ts +103 -0
  406. package/dist/types/plugins/plugin_manager.d.ts +175 -0
  407. package/dist/types/plugins/security_plugin.d.ts +60 -0
  408. package/dist/types/runner/in_memory_runner.d.ts +15 -0
  409. package/dist/types/runner/runner.d.ts +117 -0
  410. package/dist/types/sessions/base_session_service.d.ts +149 -0
  411. package/dist/types/sessions/database_session_service.d.ts +32 -0
  412. package/dist/types/sessions/db/operations.d.ts +28 -0
  413. package/dist/types/sessions/db/schema.d.ts +45 -0
  414. package/dist/types/sessions/in_memory_session_service.d.ts +30 -0
  415. package/dist/types/sessions/registry.d.ts +7 -0
  416. package/dist/types/sessions/session.d.ts +46 -0
  417. package/dist/types/sessions/state.d.ts +57 -0
  418. package/dist/types/skills/loader.d.ts +38 -0
  419. package/dist/types/skills/prompt.d.ts +13 -0
  420. package/dist/types/skills/skill.d.ts +48 -0
  421. package/dist/types/telemetry/google_cloud.d.ts +9 -0
  422. package/dist/types/telemetry/setup.d.ts +48 -0
  423. package/dist/types/telemetry/tracing.d.ts +112 -0
  424. package/dist/types/tools/agent_tool.d.ts +73 -0
  425. package/dist/types/tools/base_tool.d.ts +98 -0
  426. package/dist/types/tools/base_toolset.d.ts +74 -0
  427. package/dist/types/tools/exit_loop_tool.d.ts +24 -0
  428. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -0
  429. package/dist/types/tools/function_tool.d.ts +62 -0
  430. package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
  431. package/dist/types/tools/google_search_tool.d.ts +17 -0
  432. package/dist/types/tools/load_artifacts_tool.d.ts +21 -0
  433. package/dist/types/tools/load_memory_tool.d.ts +22 -0
  434. package/dist/types/tools/long_running_tool.d.ts +18 -0
  435. package/dist/types/tools/mcp/mcp_session_manager.d.ts +64 -0
  436. package/dist/types/tools/mcp/mcp_tool.d.ts +36 -0
  437. package/dist/types/tools/mcp/mcp_toolset.d.ts +44 -0
  438. package/dist/types/tools/preload_memory_tool.d.ts +23 -0
  439. package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
  440. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
  441. package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
  442. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
  443. package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
  444. package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
  445. package/dist/types/tools/tool_confirmation.d.ts +25 -0
  446. package/dist/types/tools/url_context_tool.d.ts +17 -0
  447. package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -0
  448. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
  449. package/dist/types/utils/client_labels.d.ts +9 -0
  450. package/dist/types/utils/env_aware_utils.d.ts +38 -0
  451. package/dist/types/utils/experimental.d.ts +11 -0
  452. package/dist/types/utils/failover_utils.d.ts +17 -0
  453. package/dist/types/utils/file_extension_utils.d.ts +21 -0
  454. package/dist/types/utils/file_utils.d.ts +11 -0
  455. package/dist/types/utils/gemini_schema_util.d.ts +15 -0
  456. package/dist/types/utils/logger.d.ts +38 -0
  457. package/dist/types/utils/model_name.d.ts +38 -0
  458. package/dist/types/utils/object_notation_utils.d.ts +21 -0
  459. package/dist/types/utils/simple_zod_to_json.d.ts +13 -0
  460. package/dist/types/utils/streaming_utils.d.ts +40 -0
  461. package/dist/types/utils/variant_utils.d.ts +24 -0
  462. package/dist/types/version.d.ts +6 -0
  463. package/dist/web/a2a/a2a_event.js +271 -0
  464. package/dist/web/a2a/a2a_remote_agent.js +186 -0
  465. package/dist/web/a2a/a2a_remote_agent_run_processor.js +184 -0
  466. package/dist/web/a2a/a2a_remote_agent_utils.js +133 -0
  467. package/dist/web/a2a/agent_card.js +342 -0
  468. package/dist/web/a2a/agent_executor.js +218 -0
  469. package/dist/web/a2a/agent_to_a2a.js +82 -0
  470. package/dist/web/a2a/event_converter_utils.js +203 -0
  471. package/dist/web/a2a/event_processor_utils.js +170 -0
  472. package/dist/web/a2a/executor_context.js +25 -0
  473. package/dist/web/a2a/metadata_converter_utils.js +110 -0
  474. package/dist/web/a2a/part_converter_utils.js +188 -0
  475. package/dist/web/agents/active_streaming_tool.js +16 -0
  476. package/dist/web/agents/base_agent.js +354 -0
  477. package/dist/web/agents/context.js +152 -0
  478. package/dist/web/agents/functions.js +520 -0
  479. package/dist/web/agents/instructions.js +82 -0
  480. package/dist/web/agents/invocation_context.js +81 -0
  481. package/dist/web/agents/live_request_queue.js +126 -0
  482. package/dist/web/agents/llm_agent.js +907 -0
  483. package/dist/web/agents/loop_agent.js +88 -0
  484. package/dist/web/agents/parallel_agent.js +101 -0
  485. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +102 -0
  486. package/dist/web/agents/processors/base_llm_processor.js +15 -0
  487. package/dist/web/agents/processors/basic_llm_request_processor.js +73 -0
  488. package/dist/web/agents/processors/code_execution_request_processor.js +370 -0
  489. package/dist/web/agents/processors/content_processor_utils.js +318 -0
  490. package/dist/web/agents/processors/content_request_processor.js +79 -0
  491. package/dist/web/agents/processors/context_compactor_request_processor.js +60 -0
  492. package/dist/web/agents/processors/identity_llm_request_processor.js +43 -0
  493. package/dist/web/agents/processors/instructions_llm_request_processor.js +74 -0
  494. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +160 -0
  495. package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
  496. package/dist/web/agents/readonly_context.js +55 -0
  497. package/dist/web/agents/routed_agent.js +138 -0
  498. package/dist/web/agents/run_config.js +57 -0
  499. package/dist/web/agents/sequential_agent.js +122 -0
  500. package/dist/web/agents/transcription_entry.js +7 -0
  501. package/dist/web/artifacts/base_artifact_service.js +7 -0
  502. package/dist/web/artifacts/file_artifact_service.js +535 -0
  503. package/dist/web/artifacts/gcs_artifact_service.js +213 -0
  504. package/dist/web/artifacts/in_memory_artifact_service.js +152 -0
  505. package/dist/web/artifacts/registry.js +30 -0
  506. package/dist/web/auth/auth_credential.js +18 -0
  507. package/dist/web/auth/auth_handler.js +148 -0
  508. package/dist/web/auth/auth_preprocessor.js +173 -0
  509. package/dist/web/auth/auth_provider_registry.js +33 -0
  510. package/dist/web/auth/auth_schemes.js +33 -0
  511. package/dist/web/auth/auth_tool.js +7 -0
  512. package/dist/web/auth/base_auth_provider.js +7 -0
  513. package/dist/web/auth/credential_service/base_credential_service.js +7 -0
  514. package/dist/web/auth/credential_service/in_memory_credential_service.js +35 -0
  515. package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
  516. package/dist/web/auth/exchanger/base_credential_exchanger.js +12 -0
  517. package/dist/web/auth/exchanger/credential_exchanger_registry.js +31 -0
  518. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
  519. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
  520. package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
  521. package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
  522. package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
  523. package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
  524. package/dist/web/code_executors/base_code_executor.js +63 -0
  525. package/dist/web/code_executors/built_in_code_executor.js +45 -0
  526. package/dist/web/code_executors/code_execution_utils.js +124 -0
  527. package/dist/web/code_executors/code_executor_context.js +170 -0
  528. package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
  529. package/dist/web/common.js +245 -0
  530. package/dist/web/context/base_context_compactor.js +7 -0
  531. package/dist/web/context/summarizers/base_summarizer.js +7 -0
  532. package/dist/web/context/summarizers/llm_summarizer.js +76 -0
  533. package/dist/web/context/token_based_context_compactor.js +107 -0
  534. package/dist/web/context/truncating_context_compactor.js +30 -0
  535. package/dist/web/events/compacted_event.js +42 -0
  536. package/dist/web/events/event.js +128 -0
  537. package/dist/web/events/event_actions.js +69 -0
  538. package/dist/web/events/structured_events.js +76 -0
  539. package/dist/web/examples/base_example_provider.js +27 -0
  540. package/dist/web/examples/example.js +7 -0
  541. package/dist/web/examples/example_util.js +79 -0
  542. package/dist/web/features/feature_registry.js +107 -0
  543. package/dist/web/index.js +50 -0
  544. package/dist/web/index_web.js +8 -0
  545. package/dist/web/memory/base_memory_service.js +7 -0
  546. package/dist/web/memory/in_memory_memory_service.js +71 -0
  547. package/dist/web/memory/memory_entry.js +7 -0
  548. package/dist/web/models/apigee_llm.js +221 -0
  549. package/dist/web/models/base_llm.js +73 -0
  550. package/dist/web/models/base_llm_connection.js +7 -0
  551. package/dist/web/models/gemini_llm_connection.js +123 -0
  552. package/dist/web/models/google_llm.js +321 -0
  553. package/dist/web/models/llm_request.js +52 -0
  554. package/dist/web/models/llm_response.js +45 -0
  555. package/dist/web/models/registry.js +95 -0
  556. package/dist/web/models/routed_llm.js +122 -0
  557. package/dist/web/plugins/base_plugin.js +268 -0
  558. package/dist/web/plugins/logging_plugin.js +235 -0
  559. package/dist/web/plugins/plugin_manager.js +282 -0
  560. package/dist/web/plugins/security_plugin.js +124 -0
  561. package/dist/web/runner/in_memory_runner.js +30 -0
  562. package/dist/web/runner/runner.js +426 -0
  563. package/dist/web/sessions/base_session_service.js +91 -0
  564. package/dist/web/sessions/database_session_service.js +373 -0
  565. package/dist/web/sessions/db/operations.js +96 -0
  566. package/dist/web/sessions/db/schema.js +174 -0
  567. package/dist/web/sessions/in_memory_session_service.js +184 -0
  568. package/dist/web/sessions/registry.js +27 -0
  569. package/dist/web/sessions/session.js +20 -0
  570. package/dist/web/sessions/state.js +89 -0
  571. package/dist/web/skills/loader.js +262 -0
  572. package/dist/web/skills/prompt.js +30 -0
  573. package/dist/web/skills/skill.js +67 -0
  574. package/dist/web/telemetry/google_cloud.js +54 -0
  575. package/dist/web/telemetry/setup.js +83 -0
  576. package/dist/web/telemetry/tracing.js +234 -0
  577. package/dist/web/tools/agent_tool.js +233 -0
  578. package/dist/web/tools/base_tool.js +93 -0
  579. package/dist/web/tools/base_toolset.js +57 -0
  580. package/dist/web/tools/exit_loop_tool.js +34 -0
  581. package/dist/web/tools/forwarding_artifact_service.js +59 -0
  582. package/dist/web/tools/function_tool.js +80 -0
  583. package/dist/web/tools/google_maps_grounding_tool.js +54 -0
  584. package/dist/web/tools/google_search_tool.js +51 -0
  585. package/dist/web/tools/load_artifacts_tool.js +152 -0
  586. package/dist/web/tools/load_memory_tool.js +79 -0
  587. package/dist/web/tools/long_running_tool.js +54 -0
  588. package/dist/web/tools/mcp/mcp_session_manager.js +53 -0
  589. package/dist/web/tools/mcp/mcp_tool.js +40 -0
  590. package/dist/web/tools/mcp/mcp_toolset.js +70 -0
  591. package/dist/web/tools/preload_memory_tool.js +77 -0
  592. package/dist/web/tools/skill/list_skills_tool.js +50 -0
  593. package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
  594. package/dist/web/tools/skill/load_skill_tool.js +82 -0
  595. package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
  596. package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
  597. package/dist/web/tools/skill/skill_toolset.js +123 -0
  598. package/dist/web/tools/tool_confirmation.js +21 -0
  599. package/dist/web/tools/url_context_tool.js +44 -0
  600. package/dist/web/tools/vertex_ai_search_tool.js +103 -0
  601. package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
  602. package/dist/web/utils/client_labels.js +28 -0
  603. package/dist/web/utils/env_aware_utils.js +59 -0
  604. package/dist/web/utils/experimental.js +46 -0
  605. package/dist/web/utils/failover_utils.js +96 -0
  606. package/dist/web/utils/file_extension_utils.js +51 -0
  607. package/dist/web/utils/file_utils.js +74 -0
  608. package/dist/web/utils/gemini_schema_util.js +155 -0
  609. package/dist/web/utils/logger.js +130 -0
  610. package/dist/web/utils/model_name.js +58 -0
  611. package/dist/web/utils/object_notation_utils.js +49 -0
  612. package/dist/web/utils/simple_zod_to_json.js +123 -0
  613. package/dist/web/utils/streaming_utils.js +322 -0
  614. package/dist/web/utils/variant_utils.js +20 -0
  615. package/dist/web/version.js +11 -0
  616. package/package.json +84 -0
@@ -0,0 +1,54 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { MetricExporter } from "@google-cloud/opentelemetry-cloud-monitoring-exporter";
9
+ import { TraceExporter } from "@google-cloud/opentelemetry-cloud-trace-exporter";
10
+ import { gcpDetector } from "@opentelemetry/resource-detector-gcp";
11
+ import { detectResources } from "@opentelemetry/resources";
12
+ import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
13
+ import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
14
+ import { GoogleAuth } from "google-auth-library";
15
+ import { logger } from "../utils/logger.js";
16
+ const GCP_PROJECT_ERROR_MESSAGE = "Cannot determine GCP Project. OTel GCP Exporters cannot be set up. Please make sure to log into correct GCP Project.";
17
+ async function getGcpProjectId() {
18
+ try {
19
+ const auth = new GoogleAuth();
20
+ const projectId = await auth.getProjectId();
21
+ return projectId || void 0;
22
+ } catch (_e) {
23
+ return void 0;
24
+ }
25
+ }
26
+ async function getGcpExporters(config = {}) {
27
+ const {
28
+ enableTracing = false,
29
+ enableMetrics = false
30
+ // enableCloudLogging = false,
31
+ } = config;
32
+ const projectId = await getGcpProjectId();
33
+ if (!projectId) {
34
+ logger.warn(GCP_PROJECT_ERROR_MESSAGE);
35
+ return {};
36
+ }
37
+ return {
38
+ spanProcessors: enableTracing ? [new BatchSpanProcessor(new TraceExporter({ projectId }))] : [],
39
+ metricReaders: enableMetrics ? [
40
+ new PeriodicExportingMetricReader({
41
+ exporter: new MetricExporter({ projectId }),
42
+ exportIntervalMillis: 5e3
43
+ })
44
+ ] : [],
45
+ logRecordProcessors: []
46
+ };
47
+ }
48
+ function getGcpResource() {
49
+ return detectResources({ detectors: [gcpDetector] });
50
+ }
51
+ export {
52
+ getGcpExporters,
53
+ getGcpResource
54
+ };
@@ -0,0 +1,83 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { metrics, trace } from "@opentelemetry/api";
9
+ import { logs } from "@opentelemetry/api-logs";
10
+ import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
11
+ import { OTLPMetricExporter } from "@opentelemetry/exporter-metrics-otlp-http";
12
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
13
+ import { detectResources } from "@opentelemetry/resources";
14
+ import {
15
+ BatchLogRecordProcessor,
16
+ LoggerProvider
17
+ } from "@opentelemetry/sdk-logs";
18
+ import {
19
+ MeterProvider,
20
+ PeriodicExportingMetricReader
21
+ } from "@opentelemetry/sdk-metrics";
22
+ import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
23
+ import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
24
+ function maybeSetOtelProviders(otelHooksToSetup = [], otelResource) {
25
+ const resource = otelResource || getOtelResource();
26
+ const allHooks = [...otelHooksToSetup, getOtelExporters()];
27
+ const spanProcessors = allHooks.flatMap(
28
+ (hooks) => hooks.spanProcessors || []
29
+ );
30
+ const metricReaders = allHooks.flatMap((hooks) => hooks.metricReaders || []);
31
+ const logRecordProcessors = allHooks.flatMap(
32
+ (hooks) => hooks.logRecordProcessors || []
33
+ );
34
+ if (spanProcessors.length > 0) {
35
+ const tracerProvider = new NodeTracerProvider({
36
+ resource,
37
+ spanProcessors
38
+ });
39
+ tracerProvider.register();
40
+ trace.setGlobalTracerProvider(tracerProvider);
41
+ }
42
+ if (metricReaders.length > 0) {
43
+ const meterProvider = new MeterProvider({
44
+ readers: metricReaders,
45
+ resource
46
+ });
47
+ metrics.setGlobalMeterProvider(meterProvider);
48
+ }
49
+ if (logRecordProcessors.length > 0) {
50
+ const loggerProvider = new LoggerProvider({
51
+ resource,
52
+ processors: logRecordProcessors
53
+ });
54
+ logs.setGlobalLoggerProvider(loggerProvider);
55
+ }
56
+ }
57
+ function getOtelResource() {
58
+ return detectResources({
59
+ detectors: []
60
+ });
61
+ }
62
+ function getOtelExportersConfig() {
63
+ return {
64
+ enableTracing: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT),
65
+ enableMetrics: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT),
66
+ enableLogging: !!(process.env.OTEL_EXPORTER_OTLP_ENDPOINT || process.env.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT)
67
+ };
68
+ }
69
+ function getOtelExporters(config = getOtelExportersConfig()) {
70
+ const { enableTracing, enableMetrics, enableLogging } = config;
71
+ return {
72
+ spanProcessors: enableTracing ? [new BatchSpanProcessor(new OTLPTraceExporter())] : [],
73
+ metricReaders: enableMetrics ? [
74
+ new PeriodicExportingMetricReader({
75
+ exporter: new OTLPMetricExporter()
76
+ })
77
+ ] : [],
78
+ logRecordProcessors: enableLogging ? [new BatchLogRecordProcessor(new OTLPLogExporter())] : []
79
+ };
80
+ }
81
+ export {
82
+ maybeSetOtelProviders
83
+ };
@@ -0,0 +1,234 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
6
+ var __objRest = (source, exclude) => {
7
+ var target = {};
8
+ for (var prop in source)
9
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
10
+ target[prop] = source[prop];
11
+ if (source != null && __getOwnPropSymbols)
12
+ for (var prop of __getOwnPropSymbols(source)) {
13
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
14
+ target[prop] = source[prop];
15
+ }
16
+ return target;
17
+ };
18
+ /**
19
+ * @license
20
+ * Copyright 2025 Google LLC
21
+ * SPDX-License-Identifier: Apache-2.0
22
+ */
23
+ import { context, trace } from "@opentelemetry/api";
24
+ import { version } from "../version.js";
25
+ const GEN_AI_AGENT_DESCRIPTION = "gen_ai.agent.description";
26
+ const GEN_AI_AGENT_NAME = "gen_ai.agent.name";
27
+ const GEN_AI_CONVERSATION_ID = "gen_ai.conversation.id";
28
+ const GEN_AI_OPERATION_NAME = "gen_ai.operation.name";
29
+ const GEN_AI_TOOL_CALL_ID = "gen_ai.tool.call.id";
30
+ const GEN_AI_TOOL_DESCRIPTION = "gen_ai.tool.description";
31
+ const GEN_AI_TOOL_NAME = "gen_ai.tool.name";
32
+ const GEN_AI_TOOL_TYPE = "gen_ai.tool.type";
33
+ const tracer = trace.getTracer("gcp.vertex.agent", version);
34
+ function safeJsonSerialize(obj) {
35
+ try {
36
+ return JSON.stringify(obj);
37
+ } catch (_e) {
38
+ return "<not serializable>";
39
+ }
40
+ }
41
+ function traceAgentInvocation({
42
+ agent,
43
+ invocationContext
44
+ }) {
45
+ const span = trace.getActiveSpan();
46
+ if (!span) return;
47
+ span.setAttributes({
48
+ [GEN_AI_OPERATION_NAME]: "invoke_agent",
49
+ // Conditionally Required
50
+ [GEN_AI_AGENT_DESCRIPTION]: agent.description,
51
+ [GEN_AI_AGENT_NAME]: agent.name,
52
+ [GEN_AI_CONVERSATION_ID]: invocationContext.session.id
53
+ });
54
+ }
55
+ function traceToolCall({
56
+ tool,
57
+ args,
58
+ functionResponseEvent
59
+ }) {
60
+ var _a, _b;
61
+ const span = trace.getActiveSpan();
62
+ if (!span) return;
63
+ span.setAttributes({
64
+ [GEN_AI_OPERATION_NAME]: "execute_tool",
65
+ [GEN_AI_TOOL_DESCRIPTION]: tool.description || "",
66
+ [GEN_AI_TOOL_NAME]: tool.name,
67
+ // e.g. FunctionTool
68
+ [GEN_AI_TOOL_TYPE]: tool.constructor.name,
69
+ // Setting empty llm request and response (as UI expect these) while not
70
+ // applicable for tool_response.
71
+ "gcp.vertex.agent.llm_request": "{}",
72
+ "gcp.vertex.agent.llm_response": "{}",
73
+ "gcp.vertex.agent.tool_call_args": shouldAddRequestResponseToSpans() ? safeJsonSerialize(args) : "{}"
74
+ });
75
+ let toolCallId = "<not specified>";
76
+ let toolResponse = "<not specified>";
77
+ if ((_a = functionResponseEvent.content) == null ? void 0 : _a.parts) {
78
+ const responseParts = functionResponseEvent.content.parts;
79
+ const functionResponse = (_b = responseParts[0]) == null ? void 0 : _b.functionResponse;
80
+ if (functionResponse == null ? void 0 : functionResponse.id) {
81
+ toolCallId = functionResponse.id;
82
+ }
83
+ if (functionResponse == null ? void 0 : functionResponse.response) {
84
+ toolResponse = functionResponse.response;
85
+ }
86
+ }
87
+ if (typeof toolResponse !== "object" || toolResponse === null) {
88
+ toolResponse = { result: toolResponse };
89
+ }
90
+ span.setAttributes({
91
+ [GEN_AI_TOOL_CALL_ID]: toolCallId,
92
+ "gcp.vertex.agent.event_id": functionResponseEvent.id,
93
+ "gcp.vertex.agent.tool_response": shouldAddRequestResponseToSpans() ? safeJsonSerialize(toolResponse) : "{}"
94
+ });
95
+ }
96
+ function traceMergedToolCalls({
97
+ responseEventId,
98
+ functionResponseEvent
99
+ }) {
100
+ const span = trace.getActiveSpan();
101
+ if (!span) return;
102
+ span.setAttributes({
103
+ [GEN_AI_OPERATION_NAME]: "execute_tool",
104
+ [GEN_AI_TOOL_NAME]: "(merged tools)",
105
+ [GEN_AI_TOOL_DESCRIPTION]: "(merged tools)",
106
+ [GEN_AI_TOOL_CALL_ID]: responseEventId,
107
+ "gcp.vertex.agent.tool_call_args": "N/A",
108
+ "gcp.vertex.agent.event_id": responseEventId,
109
+ // Setting empty llm request and response (as UI expect these) while not
110
+ // applicable for tool_response.
111
+ "gcp.vertex.agent.llm_request": "{}",
112
+ "gcp.vertex.agent.llm_response": "{}"
113
+ });
114
+ span.setAttribute(
115
+ "gcp.vertex.agent.tool_response",
116
+ shouldAddRequestResponseToSpans() ? safeJsonSerialize(functionResponseEvent) : "{}"
117
+ );
118
+ }
119
+ function traceCallLlm({
120
+ invocationContext,
121
+ eventId,
122
+ llmRequest,
123
+ llmResponse
124
+ }) {
125
+ var _a, _b, _c;
126
+ const span = trace.getActiveSpan();
127
+ if (!span) return;
128
+ span.setAttributes({
129
+ "gen_ai.system": "gcp.vertex.agent",
130
+ "gen_ai.request.model": llmRequest.model,
131
+ "gcp.vertex.agent.invocation_id": invocationContext.invocationId,
132
+ "gcp.vertex.agent.session_id": invocationContext.session.id,
133
+ "gcp.vertex.agent.event_id": eventId,
134
+ // Consider removing once GenAI SDK provides a way to record this info.
135
+ "gcp.vertex.agent.llm_request": shouldAddRequestResponseToSpans() ? safeJsonSerialize(buildLlmRequestForTrace(llmRequest)) : "{}"
136
+ });
137
+ if ((_a = llmRequest.config) == null ? void 0 : _a.topP) {
138
+ span.setAttribute("gen_ai.request.top_p", llmRequest.config.topP);
139
+ }
140
+ if (((_b = llmRequest.config) == null ? void 0 : _b.maxOutputTokens) !== void 0) {
141
+ span.setAttribute(
142
+ "gen_ai.request.max_tokens",
143
+ llmRequest.config.maxOutputTokens
144
+ );
145
+ }
146
+ span.setAttribute(
147
+ "gcp.vertex.agent.llm_response",
148
+ shouldAddRequestResponseToSpans() ? safeJsonSerialize(llmResponse) : "{}"
149
+ );
150
+ if (llmResponse.usageMetadata) {
151
+ span.setAttribute(
152
+ "gen_ai.usage.input_tokens",
153
+ llmResponse.usageMetadata.promptTokenCount || 0
154
+ );
155
+ }
156
+ if ((_c = llmResponse.usageMetadata) == null ? void 0 : _c.candidatesTokenCount) {
157
+ span.setAttribute(
158
+ "gen_ai.usage.output_tokens",
159
+ llmResponse.usageMetadata.candidatesTokenCount
160
+ );
161
+ }
162
+ if (llmResponse.finishReason) {
163
+ const finishReasonValue = typeof llmResponse.finishReason === "string" ? llmResponse.finishReason.toLowerCase() : String(llmResponse.finishReason).toLowerCase();
164
+ span.setAttribute("gen_ai.response.finish_reasons", [finishReasonValue]);
165
+ }
166
+ }
167
+ function traceSendData({
168
+ invocationContext,
169
+ eventId,
170
+ data
171
+ }) {
172
+ const span = trace.getActiveSpan();
173
+ if (!span) return;
174
+ span.setAttributes({
175
+ "gcp.vertex.agent.invocation_id": invocationContext.invocationId,
176
+ "gcp.vertex.agent.event_id": eventId
177
+ });
178
+ span.setAttribute(
179
+ "gcp.vertex.agent.data",
180
+ shouldAddRequestResponseToSpans() ? safeJsonSerialize(data) : "{}"
181
+ );
182
+ }
183
+ function buildLlmRequestForTrace(llmRequest) {
184
+ const result = {
185
+ model: llmRequest.model,
186
+ contents: []
187
+ };
188
+ if (llmRequest.config) {
189
+ const _a = llmRequest.config, { responseSchema } = _a, cleanConfig = __objRest(_a, ["responseSchema"]);
190
+ result.config = cleanConfig;
191
+ }
192
+ result.contents = llmRequest.contents.map((content) => {
193
+ var _a2;
194
+ return {
195
+ role: content.role,
196
+ parts: ((_a2 = content.parts) == null ? void 0 : _a2.filter((part) => !part.inlineData)) || []
197
+ };
198
+ });
199
+ return result;
200
+ }
201
+ function bindOtelContextToAsyncGenerator(ctx, generator) {
202
+ return {
203
+ // Bind the next() method to execute within the provided context
204
+ next: context.bind(ctx, generator.next.bind(generator)),
205
+ // Bind the return() method to execute within the provided context
206
+ return: context.bind(ctx, generator.return.bind(generator)),
207
+ // Bind the throw() method to execute within the provided context
208
+ throw: context.bind(ctx, generator.throw.bind(generator)),
209
+ // Ensure the async iterator symbol also returns a context-bound generator
210
+ [Symbol.asyncIterator]() {
211
+ return bindOtelContextToAsyncGenerator(
212
+ ctx,
213
+ generator[Symbol.asyncIterator]()
214
+ );
215
+ }
216
+ };
217
+ }
218
+ function runAsyncGeneratorWithOtelContext(otelContext, generatorFnContext, generatorFn) {
219
+ const generator = generatorFn.call(generatorFnContext);
220
+ return bindOtelContextToAsyncGenerator(otelContext, generator);
221
+ }
222
+ function shouldAddRequestResponseToSpans() {
223
+ const envValue = process.env.ADK_CAPTURE_MESSAGE_CONTENT_IN_SPANS || "true";
224
+ return envValue === "true" || envValue === "1";
225
+ }
226
+ export {
227
+ runAsyncGeneratorWithOtelContext,
228
+ traceAgentInvocation,
229
+ traceCallLlm,
230
+ traceMergedToolCalls,
231
+ traceSendData,
232
+ traceToolCall,
233
+ tracer
234
+ };
@@ -0,0 +1,233 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
4
+ var __await = function(promise, isYieldStar) {
5
+ this[0] = promise;
6
+ this[1] = isYieldStar;
7
+ };
8
+ var __asyncGenerator = (__this, __arguments, generator) => {
9
+ var resume = (k, v, yes, no) => {
10
+ try {
11
+ var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done;
12
+ Promise.resolve(isAwait ? v[0] : v).then((y) => isAwait ? resume(k === "return" ? k : "next", v[1] ? { done: y.done, value: y.value } : y, yes, no) : yes({ value: y, done })).catch((e) => resume("throw", e, yes, no));
13
+ } catch (e) {
14
+ no(e);
15
+ }
16
+ }, method = (k) => it[k] = (x) => new Promise((yes, no) => resume(k, x, yes, no)), it = {};
17
+ return generator = generator.apply(__this, __arguments), it[__knownSymbol("asyncIterator")] = () => it, method("next"), method("throw"), method("return"), it;
18
+ };
19
+ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
20
+ /**
21
+ * @license
22
+ * Copyright 2025 Google LLC
23
+ * SPDX-License-Identifier: Apache-2.0
24
+ */
25
+ var _a, _b;
26
+ import { Type } from "@google/genai";
27
+ import { isLlmAgent } from "../agents/llm_agent.js";
28
+ import { InMemoryMemoryService } from "../memory/in_memory_memory_service.js";
29
+ import { Runner } from "../runner/runner.js";
30
+ import { InMemorySessionService } from "../sessions/in_memory_session_service.js";
31
+ import { GoogleLLMVariant } from "../utils/variant_utils.js";
32
+ import { BaseTool } from "./base_tool.js";
33
+ import { ForwardingArtifactService } from "./forwarding_artifact_service.js";
34
+ const AGENT_TOOL_SIGNATURE_SYMBOL = Symbol.for("google.adk.agentTool");
35
+ function isAgentTool(obj) {
36
+ return typeof obj === "object" && obj !== null && AGENT_TOOL_SIGNATURE_SYMBOL in obj && obj[AGENT_TOOL_SIGNATURE_SYMBOL] === true;
37
+ }
38
+ class AgentTool extends (_b = BaseTool, _a = AGENT_TOOL_SIGNATURE_SYMBOL, _b) {
39
+ constructor(config) {
40
+ super({
41
+ name: config.agent.name,
42
+ description: config.agent.description || ""
43
+ });
44
+ /** A unique symbol to identify ADK agent tool class. */
45
+ this[_a] = true;
46
+ this.agent = config.agent;
47
+ this.skipSummarization = config.skipSummarization || false;
48
+ }
49
+ _getDeclaration() {
50
+ let declaration;
51
+ if (isLlmAgent(this.agent) && this.agent.inputSchema) {
52
+ declaration = {
53
+ name: this.name,
54
+ description: this.description,
55
+ // TODO(b/425992518): We should not use the agent's input schema as is.
56
+ // It should be validated and possibly transformed. Consider similar
57
+ // logic to one we have in Python ADK.
58
+ parameters: this.agent.inputSchema
59
+ };
60
+ } else {
61
+ declaration = {
62
+ name: this.name,
63
+ description: this.description,
64
+ parameters: {
65
+ type: Type.OBJECT,
66
+ properties: {
67
+ "request": {
68
+ type: Type.STRING
69
+ }
70
+ },
71
+ required: ["request"]
72
+ }
73
+ };
74
+ }
75
+ if (this.apiVariant !== GoogleLLMVariant.GEMINI_API) {
76
+ const hasOutputSchema = isLlmAgent(this.agent) && this.agent.outputSchema;
77
+ declaration.response = hasOutputSchema ? { type: Type.OBJECT } : { type: Type.STRING };
78
+ }
79
+ return declaration;
80
+ }
81
+ /**
82
+ * Sets up the Runner and Session for sub-agent execution.
83
+ *
84
+ * Shared by {@link runAsync} and {@link runAsyncWithEvents}.
85
+ */
86
+ async setupRunnerAndSession({
87
+ args,
88
+ toolContext
89
+ }) {
90
+ var _a2, _b2;
91
+ const hasInputSchema = isLlmAgent(this.agent) && this.agent.inputSchema;
92
+ const content = {
93
+ role: "user",
94
+ parts: [
95
+ {
96
+ // TODO(b/425992518): Should be validated. Consider similar
97
+ // logic to one we have in Python ADK.
98
+ text: hasInputSchema ? JSON.stringify(args) : args["request"]
99
+ }
100
+ ]
101
+ };
102
+ const runner = new Runner({
103
+ appName: this.agent.name,
104
+ agent: this.agent,
105
+ artifactService: new ForwardingArtifactService(toolContext),
106
+ sessionService: (_a2 = toolContext.invocationContext.sessionService) != null ? _a2 : new InMemorySessionService(),
107
+ memoryService: (_b2 = toolContext.invocationContext.memoryService) != null ? _b2 : new InMemoryMemoryService(),
108
+ credentialService: toolContext.invocationContext.credentialService
109
+ });
110
+ const session = await runner.sessionService.getOrCreateSession({
111
+ appName: this.agent.name,
112
+ userId: toolContext.invocationContext.userId,
113
+ sessionId: toolContext.invocationContext.session.id,
114
+ state: toolContext.state.toRecord()
115
+ });
116
+ return {
117
+ runner,
118
+ content,
119
+ sessionUserId: session.userId,
120
+ sessionId: session.id
121
+ };
122
+ }
123
+ /**
124
+ * Builds the tool result from the last content event of the sub-agent.
125
+ *
126
+ * Excludes thought parts and applies the output schema (if any).
127
+ */
128
+ buildToolResultFromContent(lastContent) {
129
+ var _a2;
130
+ if (!((_a2 = lastContent == null ? void 0 : lastContent.parts) == null ? void 0 : _a2.length)) {
131
+ return "";
132
+ }
133
+ const hasOutputSchema = isLlmAgent(this.agent) && this.agent.outputSchema;
134
+ const mergedText = lastContent.parts.filter((part) => !part.thought).map((part) => part.text).filter((text) => text).join("\n");
135
+ return hasOutputSchema ? JSON.parse(mergedText) : mergedText;
136
+ }
137
+ async runAsync({
138
+ args,
139
+ toolContext
140
+ }) {
141
+ var _a2, _b2;
142
+ if (this.skipSummarization) {
143
+ toolContext.actions.skipSummarization = true;
144
+ }
145
+ const { runner, content, sessionUserId, sessionId } = await this.setupRunnerAndSession({ args, toolContext });
146
+ if ((_a2 = toolContext.abortSignal) == null ? void 0 : _a2.aborted) {
147
+ return "";
148
+ }
149
+ let lastEvent;
150
+ try {
151
+ for (var iter = __forAwait(runner.runAsync({
152
+ userId: sessionUserId,
153
+ sessionId,
154
+ newMessage: content,
155
+ runConfig: toolContext.invocationContext.runConfig,
156
+ abortSignal: toolContext.abortSignal
157
+ })), more, temp, error; more = !(temp = await iter.next()).done; more = false) {
158
+ const event = temp.value;
159
+ if ((_b2 = toolContext.abortSignal) == null ? void 0 : _b2.aborted) {
160
+ return;
161
+ }
162
+ if (event.actions.stateDelta) {
163
+ toolContext.state.update(event.actions.stateDelta);
164
+ }
165
+ lastEvent = event;
166
+ }
167
+ } catch (temp) {
168
+ error = [temp];
169
+ } finally {
170
+ try {
171
+ more && (temp = iter.return) && await temp.call(iter);
172
+ } finally {
173
+ if (error)
174
+ throw error[0];
175
+ }
176
+ }
177
+ return this.buildToolResultFromContent(lastEvent == null ? void 0 : lastEvent.content);
178
+ }
179
+ /**
180
+ * Runs the wrapped agent and yields the sub-agent's events as they are
181
+ * produced, providing real-time visibility into sub-agent progress.
182
+ *
183
+ * Counterpart to {@link runAsync}; the caller is responsible for tracking
184
+ * the last content event and building the final tool result via
185
+ * {@link buildToolResultFromContent}.
186
+ */
187
+ runAsyncWithEvents(_0) {
188
+ return __asyncGenerator(this, arguments, function* ({
189
+ args,
190
+ toolContext
191
+ }) {
192
+ var _a2, _b2;
193
+ if (this.skipSummarization) {
194
+ toolContext.actions.skipSummarization = true;
195
+ }
196
+ const { runner, content, sessionUserId, sessionId } = yield new __await(this.setupRunnerAndSession({ args, toolContext }));
197
+ if ((_a2 = toolContext.abortSignal) == null ? void 0 : _a2.aborted) {
198
+ return;
199
+ }
200
+ try {
201
+ for (var iter = __forAwait(runner.runAsync({
202
+ userId: sessionUserId,
203
+ sessionId,
204
+ newMessage: content,
205
+ runConfig: toolContext.invocationContext.runConfig,
206
+ abortSignal: toolContext.abortSignal
207
+ })), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
208
+ const event = temp.value;
209
+ if ((_b2 = toolContext.abortSignal) == null ? void 0 : _b2.aborted) {
210
+ return;
211
+ }
212
+ if (event.actions.stateDelta) {
213
+ toolContext.state.update(event.actions.stateDelta);
214
+ }
215
+ yield event;
216
+ }
217
+ } catch (temp) {
218
+ error = [temp];
219
+ } finally {
220
+ try {
221
+ more && (temp = iter.return) && (yield new __await(temp.call(iter)));
222
+ } finally {
223
+ if (error)
224
+ throw error[0];
225
+ }
226
+ }
227
+ });
228
+ }
229
+ }
230
+ export {
231
+ AgentTool,
232
+ isAgentTool
233
+ };
@@ -0,0 +1,93 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ var _a;
9
+ import { getGoogleLlmVariant } from "../utils/variant_utils.js";
10
+ const BASE_TOOL_SIGNATURE_SYMBOL = Symbol.for("google.adk.baseTool");
11
+ function isBaseTool(obj) {
12
+ return typeof obj === "object" && obj !== null && BASE_TOOL_SIGNATURE_SYMBOL in obj && obj[BASE_TOOL_SIGNATURE_SYMBOL] === true;
13
+ }
14
+ _a = BASE_TOOL_SIGNATURE_SYMBOL;
15
+ class BaseTool {
16
+ /**
17
+ * Base constructor for a tool.
18
+ *
19
+ * @param params The parameters for `BaseTool`.
20
+ */
21
+ constructor(params) {
22
+ /** A unique symbol to identify ADK base tool class. */
23
+ this[_a] = true;
24
+ var _a2;
25
+ this.name = params.name;
26
+ this.description = params.description;
27
+ this.isLongRunning = (_a2 = params.isLongRunning) != null ? _a2 : false;
28
+ }
29
+ /**
30
+ * Gets the OpenAPI specification of this tool in the form of a
31
+ * FunctionDeclaration.
32
+ *
33
+ * NOTE
34
+ * - Required if subclass uses the default implementation of
35
+ * `processLlmRequest` to add function declaration to LLM request.
36
+ * - Otherwise, can be skipped, e.g. for a built-in GoogleSearch tool for
37
+ * Gemini.
38
+ *
39
+ * @return The FunctionDeclaration of this tool, or undefined if it doesn't
40
+ * need to be added to LlmRequest.config.
41
+ */
42
+ _getDeclaration() {
43
+ return void 0;
44
+ }
45
+ /**
46
+ * Processes the outgoing LLM request for this tool.
47
+ *
48
+ * Use cases:
49
+ * - Most common use case is adding this tool to the LLM request.
50
+ * - Some tools may just preprocess the LLM request before it's sent out.
51
+ *
52
+ * @param request The request to process the LLM request.
53
+ */
54
+ async processLlmRequest({ llmRequest }) {
55
+ const functionDeclaration = this._getDeclaration();
56
+ if (!functionDeclaration) {
57
+ return;
58
+ }
59
+ if (this.name in llmRequest.toolsDict) {
60
+ throw new Error("Duplicate tool name: ".concat(this.name));
61
+ }
62
+ llmRequest.toolsDict[this.name] = this;
63
+ const tool = findToolWithFunctionDeclarations(llmRequest);
64
+ if (tool) {
65
+ if (!tool.functionDeclarations) {
66
+ tool.functionDeclarations = [];
67
+ }
68
+ tool.functionDeclarations.push(functionDeclaration);
69
+ } else {
70
+ llmRequest.config = llmRequest.config || {};
71
+ llmRequest.config.tools = llmRequest.config.tools || [];
72
+ llmRequest.config.tools.push({
73
+ functionDeclarations: [functionDeclaration]
74
+ });
75
+ }
76
+ }
77
+ /**
78
+ * The Google API LLM variant to use.
79
+ */
80
+ get apiVariant() {
81
+ return getGoogleLlmVariant();
82
+ }
83
+ }
84
+ function findToolWithFunctionDeclarations(llmRequest) {
85
+ var _a2;
86
+ return (((_a2 = llmRequest.config) == null ? void 0 : _a2.tools) || []).find(
87
+ (tool) => "functionDeclarations" in tool
88
+ );
89
+ }
90
+ export {
91
+ BaseTool,
92
+ isBaseTool
93
+ };