@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,59 @@
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
+ class ForwardingArtifactService {
9
+ constructor(toolContext) {
10
+ this.toolContext = toolContext;
11
+ this.invocationContext = toolContext.invocationContext;
12
+ }
13
+ // TODO - b/425992518: Remove unnecessary parameters. We should rethink the
14
+ // abstraction layer to make it more clear.
15
+ async saveArtifact(request) {
16
+ return this.toolContext.saveArtifact(request.filename, request.artifact);
17
+ }
18
+ async loadArtifact(request) {
19
+ return this.toolContext.loadArtifact(request.filename, request.version);
20
+ }
21
+ async listArtifactKeys() {
22
+ return this.toolContext.listArtifacts();
23
+ }
24
+ async deleteArtifact(request) {
25
+ if (!this.toolContext.invocationContext.artifactService) {
26
+ throw new Error("Artifact service is not initialized.");
27
+ }
28
+ return this.toolContext.invocationContext.artifactService.deleteArtifact(
29
+ request
30
+ );
31
+ }
32
+ async listVersions(request) {
33
+ if (!this.toolContext.invocationContext.artifactService) {
34
+ throw new Error("Artifact service is not initialized.");
35
+ }
36
+ return this.toolContext.invocationContext.artifactService.listVersions(
37
+ request
38
+ );
39
+ }
40
+ listArtifactVersions(request) {
41
+ if (!this.toolContext.invocationContext.artifactService) {
42
+ throw new Error("Artifact service is not initialized.");
43
+ }
44
+ return this.toolContext.invocationContext.artifactService.listArtifactVersions(
45
+ request
46
+ );
47
+ }
48
+ getArtifactVersion(request) {
49
+ if (!this.toolContext.invocationContext.artifactService) {
50
+ throw new Error("Artifact service is not initialized.");
51
+ }
52
+ return this.toolContext.invocationContext.artifactService.getArtifactVersion(
53
+ request
54
+ );
55
+ }
56
+ }
57
+ export {
58
+ ForwardingArtifactService
59
+ };
@@ -0,0 +1,80 @@
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, _b;
9
+ import { Type } from "@google/genai";
10
+ import { isZodObject, zodObjectToSchema } from "../utils/simple_zod_to_json.js";
11
+ import { BaseTool } from "./base_tool.js";
12
+ function toSchema(parameters) {
13
+ if (parameters === void 0) {
14
+ return { type: Type.OBJECT, properties: {} };
15
+ }
16
+ if (isZodObject(parameters)) {
17
+ return zodObjectToSchema(parameters);
18
+ }
19
+ return parameters;
20
+ }
21
+ const FUNCTION_TOOL_SIGNATURE_SYMBOL = Symbol.for("google.adk.functionTool");
22
+ function isFunctionTool(obj) {
23
+ return typeof obj === "object" && obj !== null && FUNCTION_TOOL_SIGNATURE_SYMBOL in obj && obj[FUNCTION_TOOL_SIGNATURE_SYMBOL] === true;
24
+ }
25
+ class FunctionTool extends (_b = BaseTool, _a = FUNCTION_TOOL_SIGNATURE_SYMBOL, _b) {
26
+ /**
27
+ * The constructor acts as the user-friendly factory.
28
+ * @param options The configuration for the tool.
29
+ */
30
+ constructor(options) {
31
+ var _a2;
32
+ const name = (_a2 = options.name) != null ? _a2 : options.execute.name;
33
+ if (!name) {
34
+ throw new Error(
35
+ "Tool name cannot be empty. Either name the `execute` function or provide a `name`."
36
+ );
37
+ }
38
+ super({
39
+ name,
40
+ description: options.description,
41
+ isLongRunning: options.isLongRunning
42
+ });
43
+ /** A unique symbol to identify ADK function tool class. */
44
+ this[_a] = true;
45
+ this.execute = options.execute;
46
+ this.parameters = options.parameters;
47
+ }
48
+ /**
49
+ * Provide a schema for the function.
50
+ */
51
+ _getDeclaration() {
52
+ return {
53
+ name: this.name,
54
+ description: this.description,
55
+ parameters: toSchema(this.parameters)
56
+ };
57
+ }
58
+ /**
59
+ * Logic for running the tool.
60
+ */
61
+ async runAsync(req) {
62
+ try {
63
+ let validatedArgs = req.args;
64
+ if (isZodObject(this.parameters)) {
65
+ validatedArgs = this.parameters.parse(req.args);
66
+ }
67
+ return await this.execute(
68
+ validatedArgs,
69
+ req.toolContext
70
+ );
71
+ } catch (error) {
72
+ const errorMessage = error instanceof Error ? error.message : String(error);
73
+ throw new Error(`Error in tool '${this.name}': ${errorMessage}`);
74
+ }
75
+ }
76
+ }
77
+ export {
78
+ FunctionTool,
79
+ isFunctionTool
80
+ };
@@ -0,0 +1,54 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import {
9
+ isGemini1Model,
10
+ isGeminiModel,
11
+ isGeminiModelIdCheckDisabled
12
+ } from "../utils/model_name.js";
13
+ import { BaseTool } from "./base_tool.js";
14
+ function applyGoogleMapsGrounding(llmRequest) {
15
+ if (!llmRequest.model) {
16
+ return;
17
+ }
18
+ const modelCheckDisabled = isGeminiModelIdCheckDisabled();
19
+ llmRequest.config = llmRequest.config || {};
20
+ llmRequest.config.tools = llmRequest.config.tools || [];
21
+ if (isGemini1Model(llmRequest.model)) {
22
+ throw new Error(
23
+ "Google Maps grounding tool cannot be used with Gemini 1.x models."
24
+ );
25
+ }
26
+ if (isGeminiModel(llmRequest.model) || modelCheckDisabled) {
27
+ llmRequest.config.tools.push({
28
+ googleMaps: {}
29
+ });
30
+ return;
31
+ }
32
+ throw new Error(
33
+ `Google maps tool is not supported for model ${llmRequest.model}`
34
+ );
35
+ }
36
+ class GoogleMapsGroundingTool extends BaseTool {
37
+ constructor() {
38
+ super({ name: "google_maps", description: "Google Maps Grounding Tool" });
39
+ }
40
+ runAsync() {
41
+ return Promise.resolve();
42
+ }
43
+ async processLlmRequest({
44
+ llmRequest
45
+ }) {
46
+ applyGoogleMapsGrounding(llmRequest);
47
+ }
48
+ }
49
+ const GOOGLE_MAPS_GROUNDING = new GoogleMapsGroundingTool();
50
+ export {
51
+ GOOGLE_MAPS_GROUNDING,
52
+ GoogleMapsGroundingTool,
53
+ applyGoogleMapsGrounding
54
+ };
@@ -0,0 +1,51 @@
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 { isGemini1Model, isGeminiModel } from "../utils/model_name.js";
9
+ import { BaseTool } from "./base_tool.js";
10
+ class GoogleSearchTool extends BaseTool {
11
+ constructor() {
12
+ super({ name: "google_search", description: "Google Search Tool" });
13
+ }
14
+ runAsync() {
15
+ return Promise.resolve();
16
+ }
17
+ async processLlmRequest({
18
+ llmRequest
19
+ }) {
20
+ if (!llmRequest.model) {
21
+ return;
22
+ }
23
+ llmRequest.config = llmRequest.config || {};
24
+ llmRequest.config.tools = llmRequest.config.tools || [];
25
+ if (isGemini1Model(llmRequest.model)) {
26
+ if (llmRequest.config.tools.length > 0) {
27
+ throw new Error(
28
+ "Google search tool can not be used with other tools in Gemini 1.x."
29
+ );
30
+ }
31
+ llmRequest.config.tools.push({
32
+ googleSearchRetrieval: {}
33
+ });
34
+ return;
35
+ }
36
+ if (isGeminiModel(llmRequest.model)) {
37
+ llmRequest.config.tools.push({
38
+ googleSearch: {}
39
+ });
40
+ return;
41
+ }
42
+ throw new Error(
43
+ `Google search tool is not supported for model ${llmRequest.model}`
44
+ );
45
+ }
46
+ }
47
+ const GOOGLE_SEARCH = new GoogleSearchTool();
48
+ export {
49
+ GOOGLE_SEARCH,
50
+ GoogleSearchTool
51
+ };
@@ -0,0 +1,161 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { Type } from "@google/genai";
9
+ import { appendInstructions } from "../models/llm_request.js";
10
+ import { getLogger } from "../utils/logger.js";
11
+ import {
12
+ BaseTool
13
+ } from "./base_tool.js";
14
+ const logger = getLogger();
15
+ const GEMINI_SUPPORTED_INLINE_MIME_PREFIXES = ["image/", "audio/", "video/"];
16
+ const GEMINI_SUPPORTED_INLINE_MIME_TYPES = /* @__PURE__ */ new Set(["application/pdf"]);
17
+ const TEXT_LIKE_MIME_TYPES = /* @__PURE__ */ new Set([
18
+ "application/csv",
19
+ "application/json",
20
+ "application/xml"
21
+ ]);
22
+ function normalizeMimeType(mimeType) {
23
+ if (!mimeType) {
24
+ return void 0;
25
+ }
26
+ return mimeType.split(";")[0].trim();
27
+ }
28
+ function isInlineMimeTypeSupported(mimeType) {
29
+ const normalized = normalizeMimeType(mimeType);
30
+ if (!normalized) {
31
+ return false;
32
+ }
33
+ return GEMINI_SUPPORTED_INLINE_MIME_PREFIXES.some(
34
+ (prefix) => normalized.startsWith(prefix)
35
+ ) || GEMINI_SUPPORTED_INLINE_MIME_TYPES.has(normalized);
36
+ }
37
+ function asSafePartForLlm(artifact, artifactName) {
38
+ const inlineData = artifact.inlineData;
39
+ if (!inlineData) {
40
+ return artifact;
41
+ }
42
+ if (isInlineMimeTypeSupported(inlineData.mimeType)) {
43
+ return artifact;
44
+ }
45
+ const mimeType = normalizeMimeType(inlineData.mimeType) || "application/octet-stream";
46
+ const data = inlineData.data;
47
+ if (!data) {
48
+ return {
49
+ text: `[Artifact: ${artifactName}, type: ${mimeType}. No inline data was provided.]`
50
+ };
51
+ }
52
+ const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
53
+ const decodedBuffer = Buffer.from(data, "base64");
54
+ if (isTextLike) {
55
+ try {
56
+ const decoded = decodedBuffer.toString("utf8");
57
+ return { text: decoded };
58
+ } catch {
59
+ }
60
+ }
61
+ const sizeKb = decodedBuffer.length / 1024;
62
+ return {
63
+ text: `[Binary artifact: ${artifactName}, type: ${mimeType}, size: ${sizeKb.toFixed(1)} KB. Content cannot be displayed inline.]`
64
+ };
65
+ }
66
+ class LoadArtifactsTool extends BaseTool {
67
+ constructor() {
68
+ super({
69
+ name: "load_artifacts",
70
+ description: `Loads artifacts into the session for this request.
71
+
72
+ NOTE: Call when you need access to artifacts (for example, uploads saved by the web UI).`
73
+ });
74
+ }
75
+ _getDeclaration() {
76
+ return {
77
+ name: this.name,
78
+ description: this.description,
79
+ parameters: {
80
+ type: Type.OBJECT,
81
+ properties: {
82
+ artifact_names: {
83
+ type: Type.ARRAY,
84
+ items: {
85
+ type: Type.STRING
86
+ },
87
+ description: "The names of the artifacts to load."
88
+ }
89
+ }
90
+ }
91
+ };
92
+ }
93
+ async runAsync({ args }) {
94
+ const artifactNames = args["artifact_names"] || [];
95
+ return {
96
+ artifact_names: artifactNames,
97
+ status: "artifact contents temporarily inserted and removed. to access these artifacts, call load_artifacts tool again."
98
+ };
99
+ }
100
+ async processLlmRequest(request) {
101
+ await super.processLlmRequest(request);
102
+ await this.appendArtifactsToLlmRequest(
103
+ request.toolContext,
104
+ request.llmRequest
105
+ );
106
+ }
107
+ async appendArtifactsToLlmRequest(toolContext, llmRequest) {
108
+ if (!toolContext.invocationContext.artifactService) {
109
+ return;
110
+ }
111
+ const artifactNames = await toolContext.listArtifacts();
112
+ if (!artifactNames || artifactNames.length === 0) {
113
+ return;
114
+ }
115
+ appendInstructions(llmRequest, [
116
+ `You have a list of artifacts:
117
+ ${JSON.stringify(
118
+ artifactNames
119
+ )}
120
+
121
+ When the user asks questions about any of the artifacts, you should call the
122
+ \`load_artifacts\` function to load the artifact. Always call load_artifacts
123
+ before answering questions related to the artifacts, regardless of whether the
124
+ artifacts have been loaded before. Do not depend on prior answers about the
125
+ artifacts.`
126
+ ]);
127
+ const contents = llmRequest.contents;
128
+ if (contents && contents.length > 0) {
129
+ const lastContent = contents[contents.length - 1];
130
+ if (lastContent.role === "user" && lastContent.parts && lastContent.parts.length > 0) {
131
+ const functionResponsePart = lastContent.parts[0];
132
+ const functionResponse = functionResponsePart.functionResponse;
133
+ if (functionResponse && functionResponse.name === "load_artifacts") {
134
+ const response = functionResponse.response || {};
135
+ const namesToLoad = response["artifact_names"] || [];
136
+ for (const artifactName of namesToLoad) {
137
+ let artifact = await toolContext.loadArtifact(artifactName);
138
+ if (!artifact && !artifactName.startsWith("user:")) {
139
+ const prefixedName = `user:${artifactName}`;
140
+ artifact = await toolContext.loadArtifact(prefixedName);
141
+ }
142
+ if (!artifact) {
143
+ logger.warn(`Artifact "${artifactName}" not found, skipping`);
144
+ continue;
145
+ }
146
+ const artifactPart = asSafePartForLlm(artifact, artifactName);
147
+ llmRequest.contents.push({
148
+ role: "user",
149
+ parts: [{ text: `Artifact ${artifactName} is:` }, artifactPart]
150
+ });
151
+ }
152
+ }
153
+ }
154
+ }
155
+ }
156
+ }
157
+ const LOAD_ARTIFACTS = new LoadArtifactsTool();
158
+ export {
159
+ LOAD_ARTIFACTS,
160
+ LoadArtifactsTool
161
+ };
@@ -0,0 +1,80 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { Type } from "@google/genai";
9
+ import { appendInstructions } from "../models/llm_request.js";
10
+ import {
11
+ BaseTool
12
+ } from "./base_tool.js";
13
+ class LoadMemoryTool extends BaseTool {
14
+ constructor() {
15
+ super({
16
+ name: "load_memory",
17
+ description: "Loads the memory for the current user.\n\nNOTE: Currently this tool only uses text part from the memory."
18
+ });
19
+ }
20
+ _getDeclaration() {
21
+ return {
22
+ name: this.name,
23
+ description: this.description,
24
+ parameters: {
25
+ type: Type.OBJECT,
26
+ properties: {
27
+ query: {
28
+ type: Type.STRING,
29
+ description: "The query to load the memory for."
30
+ }
31
+ },
32
+ required: ["query"]
33
+ }
34
+ };
35
+ }
36
+ async runAsync({
37
+ args,
38
+ toolContext
39
+ }) {
40
+ try {
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
+ return {
47
+ memories: searchMemoryResponse.memories.map((m) => {
48
+ var _a, _b;
49
+ return {
50
+ // Join all text parts by a space, or empty string if no text parts
51
+ content: (_b = (_a = m.content.parts) == null ? void 0 : _a.map((p) => {
52
+ var _a2;
53
+ return (_a2 = p.text) != null ? _a2 : "";
54
+ }).join(" ")) != null ? _b : "",
55
+ author: m.author,
56
+ timestamp: m.timestamp
57
+ };
58
+ })
59
+ };
60
+ } catch (e) {
61
+ console.error("ERROR in LoadMemoryTool runAsync:", e);
62
+ throw e;
63
+ }
64
+ }
65
+ async processLlmRequest(request) {
66
+ await super.processLlmRequest(request);
67
+ if (!request.toolContext.invocationContext.memoryService) {
68
+ return;
69
+ }
70
+ appendInstructions(request.llmRequest, [
71
+ `You have memory. You can use it to answer questions. If any questions need
72
+ you to look up the memory, you should call load_memory function with a query.`
73
+ ]);
74
+ }
75
+ }
76
+ const LOAD_MEMORY = new LoadMemoryTool();
77
+ export {
78
+ LOAD_MEMORY,
79
+ LoadMemoryTool
80
+ };
@@ -0,0 +1,37 @@
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 {
9
+ FunctionTool
10
+ } from "./function_tool.js";
11
+ const LONG_RUNNING_INSTRUCTION = `
12
+
13
+ NOTE: This is a long-running operation. Do not call this tool again if it has already returned some intermediate or pending status.`;
14
+ class LongRunningFunctionTool extends FunctionTool {
15
+ /**
16
+ * The constructor acts as the user-friendly factory.
17
+ * @param options The configuration for the tool.
18
+ */
19
+ constructor(options) {
20
+ super({ ...options, isLongRunning: true });
21
+ }
22
+ /**
23
+ * Provide a schema for the function.
24
+ */
25
+ _getDeclaration() {
26
+ const declaration = super._getDeclaration();
27
+ if (declaration.description) {
28
+ declaration.description += LONG_RUNNING_INSTRUCTION;
29
+ } else {
30
+ declaration.description = LONG_RUNNING_INSTRUCTION.trimStart();
31
+ }
32
+ return declaration;
33
+ }
34
+ }
35
+ export {
36
+ LongRunningFunctionTool
37
+ };
@@ -0,0 +1,53 @@
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 { Client } from "@modelcontextprotocol/sdk/client/index.js";
9
+ import {
10
+ StdioClientTransport
11
+ } from "@modelcontextprotocol/sdk/client/stdio.js";
12
+ import {
13
+ StreamableHTTPClientTransport
14
+ } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
15
+ class MCPSessionManager {
16
+ constructor(connectionParams) {
17
+ this.connectionParams = connectionParams;
18
+ }
19
+ async createSession() {
20
+ var _a;
21
+ const client = new Client({ name: "MCPClient", version: "1.0.0" });
22
+ switch (this.connectionParams.type) {
23
+ case "StdioConnectionParams":
24
+ await client.connect(
25
+ new StdioClientTransport(this.connectionParams.serverParams)
26
+ );
27
+ break;
28
+ case "StreamableHTTPConnectionParams": {
29
+ const options = (_a = this.connectionParams.transportOptions) != null ? _a : {};
30
+ if (!options.requestInit && this.connectionParams.header !== void 0) {
31
+ options.requestInit = {
32
+ headers: this.connectionParams.header
33
+ };
34
+ }
35
+ await client.connect(
36
+ new StreamableHTTPClientTransport(
37
+ new URL(this.connectionParams.url),
38
+ options
39
+ )
40
+ );
41
+ break;
42
+ }
43
+ default: {
44
+ const _exhaustiveCheck = this.connectionParams;
45
+ break;
46
+ }
47
+ }
48
+ return client;
49
+ }
50
+ }
51
+ export {
52
+ MCPSessionManager
53
+ };
@@ -0,0 +1,40 @@
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 { toGeminiSchema } from "../../utils/gemini_schema_util.js";
9
+ import { BaseTool } from "../base_tool.js";
10
+ class MCPTool extends BaseTool {
11
+ constructor(mcpTool, mcpSessionManager, originalName) {
12
+ super({ name: mcpTool.name, description: mcpTool.description || "" });
13
+ this.mcpTool = mcpTool;
14
+ this.mcpSessionManager = mcpSessionManager;
15
+ this.originalName = originalName || mcpTool.name;
16
+ }
17
+ _getDeclaration() {
18
+ return {
19
+ name: this.mcpTool.name,
20
+ description: this.mcpTool.description,
21
+ parameters: toGeminiSchema(this.mcpTool.inputSchema),
22
+ // TODO: need revisit, refer to this
23
+ // https://modelcontextprotocol.io/specification/2025-06-18/server/tools#tool-result
24
+ response: toGeminiSchema(this.mcpTool.outputSchema)
25
+ };
26
+ }
27
+ async runAsync(request) {
28
+ const session = await this.mcpSessionManager.createSession();
29
+ const callRequest = {};
30
+ callRequest.params = { name: this.originalName, arguments: request.args };
31
+ const result = await session.callTool(callRequest.params, void 0, {
32
+ signal: request.toolContext.abortSignal
33
+ });
34
+ await session.close();
35
+ return result;
36
+ }
37
+ }
38
+ export {
39
+ MCPTool
40
+ };
@@ -0,0 +1,52 @@
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 { logger } from "../../utils/logger.js";
9
+ import { BaseToolset } from "../base_toolset.js";
10
+ import { MCPSessionManager } from "./mcp_session_manager.js";
11
+ import { MCPTool } from "./mcp_tool.js";
12
+ class MCPToolset extends BaseToolset {
13
+ constructor(connectionParams, toolFilter = [], prefix) {
14
+ super(toolFilter, prefix);
15
+ this.mcpSessionManager = new MCPSessionManager(connectionParams);
16
+ }
17
+ async getTools(context) {
18
+ const session = await this.mcpSessionManager.createSession();
19
+ const listResult = await session.listTools();
20
+ await session.close();
21
+ logger.debug(`number of tools: ${listResult.tools.length}`);
22
+ for (const tool of listResult.tools) {
23
+ logger.debug(`tool: ${tool.name}`);
24
+ }
25
+ const tools = listResult.tools.map((tool) => {
26
+ const toolWithPrefix = {
27
+ ...tool,
28
+ name: this.prefix ? `${this.prefix}_${tool.name}` : tool.name
29
+ };
30
+ return new MCPTool(toolWithPrefix, this.mcpSessionManager, tool.name);
31
+ });
32
+ const filter = this.toolFilter;
33
+ if (!filter || Array.isArray(filter) && filter.length === 0) {
34
+ return tools;
35
+ }
36
+ if (Array.isArray(filter)) {
37
+ return tools.filter((tool) => filter.includes(tool.name));
38
+ }
39
+ if (context) {
40
+ return tools.filter((tool) => filter(tool, context));
41
+ }
42
+ logger.warn(
43
+ "MCPToolset: a ToolPredicate toolFilter was provided but getTools() was called without a ReadonlyContext. The filter will not be applied."
44
+ );
45
+ return tools;
46
+ }
47
+ async close() {
48
+ }
49
+ }
50
+ export {
51
+ MCPToolset
52
+ };