@google/adk 2.0.0 → 2.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 (566) hide show
  1. package/dist/cjs/a2a/a2a_event.js +0 -29
  2. package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
  3. package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
  4. package/dist/cjs/a2a/agent_card.js +58 -6
  5. package/dist/cjs/a2a/agent_executor.js +10 -3
  6. package/dist/cjs/a2a/agent_to_a2a.js +6 -1
  7. package/dist/cjs/a2a/event_processor_utils.js +1 -1
  8. package/dist/cjs/a2a/executor_context.js +4 -2
  9. package/dist/cjs/a2a/index.js +4 -0
  10. package/dist/cjs/a2a/request_metadata.js +94 -0
  11. package/dist/cjs/agents/base_agent.js +9 -8
  12. package/dist/cjs/agents/context.js +7 -0
  13. package/dist/cjs/agents/functions.js +150 -47
  14. package/dist/cjs/agents/invocation_context.js +1 -0
  15. package/dist/cjs/agents/llm_agent.js +6 -5
  16. package/dist/cjs/agents/loop_agent.js +1 -1
  17. package/dist/cjs/agents/parallel_agent.js +1 -1
  18. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  19. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
  20. package/dist/cjs/agents/processors/content_processor_utils.js +5 -5
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  23. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  24. package/dist/cjs/agents/readonly_context.js +6 -0
  25. package/dist/cjs/agents/routed_agent.js +1 -1
  26. package/dist/cjs/agents/sequential_agent.js +1 -1
  27. package/dist/cjs/apps/app.js +1 -1
  28. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  29. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  30. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  31. package/dist/cjs/auth/auth_handler.js +44 -8
  32. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  33. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  34. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  35. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  36. package/dist/cjs/code_executors/code_execution_utils.js +2 -2
  37. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  38. package/dist/cjs/code_executors/docker_container.js +282 -0
  39. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  40. package/dist/cjs/common.js +74 -45
  41. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  42. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  43. package/dist/cjs/context/compaction_utils.js +15 -6
  44. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  45. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  46. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  47. package/dist/cjs/errors/already_exists_error.js +50 -0
  48. package/dist/cjs/errors/input_validation_error.js +50 -0
  49. package/dist/cjs/errors/not_found_error.js +50 -0
  50. package/dist/cjs/errors/session_not_found_error.js +50 -0
  51. package/dist/cjs/errors/tool_execution_error.js +68 -0
  52. package/dist/cjs/events/event.js +1 -1
  53. package/dist/cjs/events/event_actions.js +7 -0
  54. package/dist/cjs/examples/base_example_provider.js +1 -1
  55. package/dist/cjs/index.js +47 -0
  56. package/dist/cjs/index_web.js +2 -0
  57. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  58. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  59. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +2 -2
  60. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  61. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  62. package/dist/cjs/models/apigee_llm.js +1 -1
  63. package/dist/cjs/models/base_llm.js +1 -1
  64. package/dist/cjs/models/chrome_prompt_llm.js +304 -0
  65. package/dist/cjs/models/chrome_prompt_utils.js +229 -0
  66. package/dist/cjs/models/google_llm.js +9 -4
  67. package/dist/cjs/models/interactions_utils.js +2 -3
  68. package/dist/cjs/models/registry.js +2 -0
  69. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  70. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  71. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  72. package/dist/cjs/runner/runner.js +29 -26
  73. package/dist/cjs/sessions/database_session_service.js +78 -43
  74. package/dist/cjs/sessions/db/operations.js +229 -22
  75. package/dist/cjs/sessions/db/schema.js +113 -159
  76. package/dist/cjs/sessions/registry.js +5 -1
  77. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  78. package/dist/cjs/telemetry/setup.js +1 -1
  79. package/dist/cjs/telemetry/tracing.js +11 -1
  80. package/dist/cjs/tools/agent_tool.js +4 -5
  81. package/dist/cjs/tools/base_tool.js +14 -4
  82. package/dist/cjs/tools/base_toolset.js +4 -4
  83. package/dist/cjs/tools/built_in_tool.js +75 -0
  84. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  85. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  86. package/dist/cjs/tools/function_tool.js +6 -3
  87. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  88. package/dist/cjs/tools/google_search_tool.js +3 -6
  89. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  90. package/dist/cjs/tools/load_web_page.js +6 -172
  91. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  92. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +11 -2
  93. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  94. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +16 -18
  95. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  96. package/dist/cjs/tools/resume_inputs.js +27 -0
  97. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  98. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  99. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  100. package/dist/cjs/tools/url_context_tool.js +3 -6
  101. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  102. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  103. package/dist/cjs/utils/crypto_shim.js +16 -0
  104. package/dist/cjs/utils/gemini_schema_util.js +0 -6
  105. package/dist/cjs/utils/logger.js +15 -50
  106. package/dist/cjs/utils/logger_browser.js +86 -0
  107. package/dist/cjs/utils/logger_node.js +119 -0
  108. package/dist/cjs/utils/redact_inline_data.js +46 -0
  109. package/dist/cjs/utils/redact_uri.js +15 -1
  110. package/dist/cjs/utils/schema.js +1 -1
  111. package/dist/cjs/utils/ssrf_guard.js +262 -0
  112. package/dist/cjs/version.js +1 -1
  113. package/dist/cjs/workflow/base_node.js +1 -1
  114. package/dist/cjs/workflow/graph.js +1 -1
  115. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  116. package/dist/cjs/workflow/request_input.js +1 -1
  117. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  118. package/dist/cjs/workflow/workflow.js +1 -1
  119. package/dist/esm/a2a/a2a_event.js +0 -28
  120. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  121. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  122. package/dist/esm/a2a/agent_card.js +63 -6
  123. package/dist/esm/a2a/agent_executor.js +10 -3
  124. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  125. package/dist/esm/a2a/event_processor_utils.js +1 -2
  126. package/dist/esm/a2a/executor_context.js +4 -2
  127. package/dist/esm/a2a/index.js +7 -1
  128. package/dist/esm/a2a/request_metadata.js +68 -0
  129. package/dist/esm/agents/base_agent.js +9 -8
  130. package/dist/esm/agents/context.js +7 -0
  131. package/dist/esm/agents/functions.js +152 -48
  132. package/dist/esm/agents/invocation_context.js +1 -0
  133. package/dist/esm/agents/llm_agent.js +6 -5
  134. package/dist/esm/agents/loop_agent.js +1 -1
  135. package/dist/esm/agents/parallel_agent.js +1 -1
  136. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  137. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  138. package/dist/esm/agents/processors/content_processor_utils.js +5 -5
  139. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  140. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  141. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  142. package/dist/esm/agents/readonly_context.js +6 -0
  143. package/dist/esm/agents/routed_agent.js +1 -1
  144. package/dist/esm/agents/sequential_agent.js +1 -1
  145. package/dist/esm/apps/app.js +1 -1
  146. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  147. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  148. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  149. package/dist/esm/auth/auth_handler.js +47 -8
  150. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  151. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  152. package/dist/esm/code_executors/base_code_executor.js +1 -1
  153. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  154. package/dist/esm/code_executors/code_execution_utils.js +2 -2
  155. package/dist/esm/code_executors/container_code_executor.js +155 -0
  156. package/dist/esm/code_executors/docker_container.js +265 -0
  157. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  158. package/dist/esm/common.js +73 -38
  159. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  160. package/dist/esm/context/anchored_context_compactor.js +45 -19
  161. package/dist/esm/context/compaction_utils.js +13 -5
  162. package/dist/esm/context/token_based_context_compactor.js +10 -2
  163. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  164. package/dist/esm/context/truncating_context_compactor.js +17 -5
  165. package/dist/esm/errors/already_exists_error.js +23 -0
  166. package/dist/esm/errors/input_validation_error.js +23 -0
  167. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  168. package/dist/esm/errors/session_not_found_error.js +23 -0
  169. package/dist/esm/errors/tool_execution_error.js +40 -0
  170. package/dist/esm/events/event.js +1 -1
  171. package/dist/esm/events/event_actions.js +6 -0
  172. package/dist/esm/examples/base_example_provider.js +1 -1
  173. package/dist/esm/index.js +37 -0
  174. package/dist/esm/index_web.js +2 -0
  175. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  176. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  177. package/dist/esm/memory/vertex_ai_memory_bank_service.js +2 -2
  178. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  179. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  180. package/dist/esm/models/apigee_llm.js +1 -1
  181. package/dist/esm/models/base_llm.js +1 -1
  182. package/dist/esm/models/chrome_prompt_llm.js +285 -0
  183. package/dist/esm/models/chrome_prompt_utils.js +192 -0
  184. package/dist/esm/models/google_llm.js +9 -4
  185. package/dist/esm/models/interactions_utils.js +2 -3
  186. package/dist/esm/models/registry.js +2 -0
  187. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  188. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  189. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  190. package/dist/esm/runner/runner.js +35 -27
  191. package/dist/esm/sessions/database_session_service.js +58 -25
  192. package/dist/esm/sessions/db/operations.js +229 -22
  193. package/dist/esm/sessions/db/schema.js +111 -160
  194. package/dist/esm/sessions/registry.js +5 -1
  195. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  196. package/dist/esm/telemetry/setup.js +1 -1
  197. package/dist/esm/telemetry/tracing.js +11 -1
  198. package/dist/esm/tools/agent_tool.js +4 -5
  199. package/dist/esm/tools/base_tool.js +11 -3
  200. package/dist/esm/tools/base_toolset.js +4 -4
  201. package/dist/esm/tools/built_in_tool.js +51 -0
  202. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  203. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  204. package/dist/esm/tools/function_tool.js +6 -3
  205. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  206. package/dist/esm/tools/google_search_tool.js +3 -6
  207. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  208. package/dist/esm/tools/load_web_page.js +10 -170
  209. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  210. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +13 -2
  211. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  212. package/dist/esm/tools/openapi_tool/rest_api_tool.js +16 -18
  213. package/dist/esm/tools/preload_memory_tool.js +1 -1
  214. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  215. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  216. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  217. package/dist/esm/tools/url_context_tool.js +3 -6
  218. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  219. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  220. package/dist/esm/utils/crypto_shim.js +14 -0
  221. package/dist/esm/utils/gemini_schema_util.js +0 -6
  222. package/dist/esm/utils/logger.js +14 -40
  223. package/dist/esm/utils/logger_browser.js +58 -0
  224. package/dist/esm/utils/logger_node.js +81 -0
  225. package/dist/esm/utils/redact_inline_data.js +19 -0
  226. package/dist/esm/utils/redact_uri.js +15 -1
  227. package/dist/esm/utils/schema.js +1 -1
  228. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  229. package/dist/esm/version.js +1 -1
  230. package/dist/esm/workflow/base_node.js +1 -1
  231. package/dist/esm/workflow/graph.js +1 -1
  232. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  233. package/dist/esm/workflow/request_input.js +1 -1
  234. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  235. package/dist/esm/workflow/workflow.js +1 -1
  236. package/dist/types/a2a/a2a_event.d.ts +7 -10
  237. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  238. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  239. package/dist/types/a2a/agent_card.d.ts +9 -0
  240. package/dist/types/a2a/agent_executor.d.ts +1 -1
  241. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  242. package/dist/types/a2a/auth.d.ts +5 -1
  243. package/dist/types/a2a/executor_context.d.ts +7 -1
  244. package/dist/types/a2a/index.d.ts +1 -1
  245. package/dist/types/a2a/request_metadata.d.ts +22 -0
  246. package/dist/types/agents/base_agent.d.ts +19 -16
  247. package/dist/types/agents/context.d.ts +8 -0
  248. package/dist/types/agents/functions.d.ts +72 -6
  249. package/dist/types/agents/invocation_context.d.ts +11 -3
  250. package/dist/types/agents/llm_agent.d.ts +9 -7
  251. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  252. package/dist/types/agents/readonly_context.d.ts +4 -0
  253. package/dist/types/agents/run_config.d.ts +21 -8
  254. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  255. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  256. package/dist/types/auth/auth_credential.d.ts +13 -8
  257. package/dist/types/auth/auth_handler.d.ts +12 -1
  258. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  259. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  260. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  261. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  262. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  263. package/dist/types/code_executors/docker_container.d.ts +79 -0
  264. package/dist/types/common.d.ts +22 -20
  265. package/dist/types/context/compaction_utils.d.ts +9 -1
  266. package/dist/types/errors/already_exists_error.d.ts +14 -0
  267. package/dist/types/errors/input_validation_error.d.ts +14 -0
  268. package/dist/types/errors/not_found_error.d.ts +14 -0
  269. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  270. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  271. package/dist/types/events/event_actions.d.ts +13 -0
  272. package/dist/types/index.d.ts +22 -1
  273. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  274. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  275. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  276. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  277. package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
  278. package/dist/types/models/google_llm.d.ts +8 -3
  279. package/dist/types/models/registry.d.ts +3 -2
  280. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  281. package/dist/types/plugins/base_plugin.d.ts +12 -10
  282. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  283. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  284. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  285. package/dist/types/runner/runner.d.ts +7 -8
  286. package/dist/types/sessions/database_session_service.d.ts +1 -1
  287. package/dist/types/sessions/db/operations.d.ts +13 -1
  288. package/dist/types/sessions/db/schema.d.ts +23 -9
  289. package/dist/types/tools/base_tool.d.ts +11 -0
  290. package/dist/types/tools/base_toolset.d.ts +3 -4
  291. package/dist/types/tools/built_in_tool.d.ts +41 -0
  292. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  293. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  294. package/dist/types/tools/function_tool.d.ts +42 -9
  295. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  296. package/dist/types/tools/google_search_tool.d.ts +4 -4
  297. package/dist/types/tools/long_running_tool.d.ts +1 -1
  298. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  299. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
  300. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
  301. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  302. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  303. package/dist/types/tools/resume_inputs.d.ts +25 -0
  304. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  305. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  306. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  307. package/dist/types/tools/url_context_tool.d.ts +4 -4
  308. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  309. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  310. package/dist/types/utils/crypto_shim.d.ts +16 -0
  311. package/dist/types/utils/gemini_schema_util.d.ts +5 -7
  312. package/dist/types/utils/logger.d.ts +23 -1
  313. package/dist/types/utils/logger_browser.d.ts +28 -0
  314. package/dist/types/utils/logger_node.d.ts +20 -0
  315. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  316. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  317. package/dist/types/utils/redact_uri.d.ts +12 -8
  318. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  319. package/dist/types/version.d.ts +1 -1
  320. package/dist/web/index_web.js +304 -3
  321. package/dist/web/index_web.js.map +7 -0
  322. package/package.json +17 -14
  323. package/dist/web/a2a/a2a_event.js +0 -290
  324. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  325. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  326. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  327. package/dist/web/a2a/agent_card.js +0 -373
  328. package/dist/web/a2a/agent_executor.js +0 -246
  329. package/dist/web/a2a/agent_to_a2a.js +0 -126
  330. package/dist/web/a2a/auth.js +0 -41
  331. package/dist/web/a2a/event_converter_utils.js +0 -242
  332. package/dist/web/a2a/event_processor_utils.js +0 -209
  333. package/dist/web/a2a/executor_context.js +0 -28
  334. package/dist/web/a2a/index.js +0 -20
  335. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  336. package/dist/web/a2a/part_converter_utils.js +0 -201
  337. package/dist/web/agents/active_streaming_tool.js +0 -25
  338. package/dist/web/agents/base_agent.js +0 -462
  339. package/dist/web/agents/context.js +0 -146
  340. package/dist/web/agents/framework_function_calls.js +0 -34
  341. package/dist/web/agents/functions.js +0 -462
  342. package/dist/web/agents/instructions.js +0 -188
  343. package/dist/web/agents/invocation_context.js +0 -126
  344. package/dist/web/agents/live_request_queue.js +0 -151
  345. package/dist/web/agents/llm_agent.js +0 -1514
  346. package/dist/web/agents/loop_agent.js +0 -131
  347. package/dist/web/agents/parallel_agent.js +0 -122
  348. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  349. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  350. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  351. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  352. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  353. package/dist/web/agents/processors/content_request_processor.js +0 -73
  354. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  355. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  356. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  357. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  358. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  359. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  360. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  361. package/dist/web/agents/readonly_context.js +0 -60
  362. package/dist/web/agents/routed_agent.js +0 -161
  363. package/dist/web/agents/run_config.js +0 -74
  364. package/dist/web/agents/sequential_agent.js +0 -141
  365. package/dist/web/agents/transcription_entry.js +0 -7
  366. package/dist/web/agents/user_input_request.js +0 -135
  367. package/dist/web/apps/app.js +0 -52
  368. package/dist/web/apps/resumability_config.js +0 -33
  369. package/dist/web/artifacts/base_artifact_service.js +0 -7
  370. package/dist/web/artifacts/file_artifact_service.js +0 -568
  371. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  372. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  373. package/dist/web/artifacts/registry.js +0 -36
  374. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  375. package/dist/web/auth/auth_credential.js +0 -18
  376. package/dist/web/auth/auth_handler.js +0 -151
  377. package/dist/web/auth/auth_preprocessor.js +0 -184
  378. package/dist/web/auth/auth_provider_registry.js +0 -37
  379. package/dist/web/auth/auth_schemes.js +0 -36
  380. package/dist/web/auth/auth_tool.js +0 -7
  381. package/dist/web/auth/base_auth_provider.js +0 -7
  382. package/dist/web/auth/credential_response_binding.js +0 -91
  383. package/dist/web/auth/credential_service/base_credential_service.js +0 -7
  384. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  385. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  386. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  387. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  388. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  389. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  390. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  391. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  392. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  393. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  394. package/dist/web/code_executors/base_code_executor.js +0 -68
  395. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  396. package/dist/web/code_executors/code_execution_utils.js +0 -131
  397. package/dist/web/code_executors/code_executor_context.js +0 -174
  398. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  399. package/dist/web/common.js +0 -452
  400. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  401. package/dist/web/context/anchored_context_compactor.js +0 -120
  402. package/dist/web/context/base_context_compactor.js +0 -7
  403. package/dist/web/context/compaction_utils.js +0 -42
  404. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  405. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  406. package/dist/web/context/token_based_context_compactor.js +0 -118
  407. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  408. package/dist/web/context/truncating_context_compactor.js +0 -34
  409. package/dist/web/environment/base_environment.js +0 -71
  410. package/dist/web/environment/local_environment.js +0 -165
  411. package/dist/web/events/compacted_event.js +0 -51
  412. package/dist/web/events/event.js +0 -208
  413. package/dist/web/events/event_actions.js +0 -74
  414. package/dist/web/events/structured_events.js +0 -79
  415. package/dist/web/examples/base_example_provider.js +0 -32
  416. package/dist/web/examples/example.js +0 -7
  417. package/dist/web/examples/example_util.js +0 -83
  418. package/dist/web/features/feature_registry.js +0 -115
  419. package/dist/web/index.js +0 -57
  420. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  421. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  422. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  423. package/dist/web/integrations/agent_registry/types.js +0 -20
  424. package/dist/web/memory/base_memory_service.js +0 -7
  425. package/dist/web/memory/in_memory_memory_service.js +0 -89
  426. package/dist/web/memory/memory_entry.js +0 -7
  427. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  428. package/dist/web/models/apigee_llm.js +0 -227
  429. package/dist/web/models/base_llm.js +0 -78
  430. package/dist/web/models/base_llm_connection.js +0 -7
  431. package/dist/web/models/gemini_llm_connection.js +0 -183
  432. package/dist/web/models/google_llm.js +0 -396
  433. package/dist/web/models/interactions_utils.js +0 -745
  434. package/dist/web/models/llm_request.js +0 -57
  435. package/dist/web/models/llm_response.js +0 -48
  436. package/dist/web/models/registry.js +0 -100
  437. package/dist/web/models/routed_llm.js +0 -112
  438. package/dist/web/plugins/base_plugin.js +0 -305
  439. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  440. package/dist/web/plugins/logging_plugin.js +0 -241
  441. package/dist/web/plugins/plugin_manager.js +0 -318
  442. package/dist/web/plugins/security_plugin.js +0 -148
  443. package/dist/web/runner/in_memory_runner.js +0 -50
  444. package/dist/web/runner/runner.js +0 -747
  445. package/dist/web/sessions/base_session_service.js +0 -123
  446. package/dist/web/sessions/database_session_service.js +0 -440
  447. package/dist/web/sessions/db/operations.js +0 -124
  448. package/dist/web/sessions/db/schema.js +0 -216
  449. package/dist/web/sessions/in_memory_session_service.js +0 -251
  450. package/dist/web/sessions/registry.js +0 -38
  451. package/dist/web/sessions/session.js +0 -23
  452. package/dist/web/sessions/state.js +0 -159
  453. package/dist/web/sessions/state_write_order.js +0 -74
  454. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  455. package/dist/web/skills/gcp_skill_registry.js +0 -80
  456. package/dist/web/skills/loader.js +0 -372
  457. package/dist/web/skills/prompt.js +0 -34
  458. package/dist/web/skills/skill.js +0 -67
  459. package/dist/web/skills/skill_registry.js +0 -7
  460. package/dist/web/telemetry/google_cloud.js +0 -99
  461. package/dist/web/telemetry/setup.js +0 -89
  462. package/dist/web/telemetry/tracing.js +0 -304
  463. package/dist/web/tools/agent_tool.js +0 -150
  464. package/dist/web/tools/base_tool.js +0 -116
  465. package/dist/web/tools/base_toolset.js +0 -62
  466. package/dist/web/tools/consolidate_context_tool.js +0 -55
  467. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  468. package/dist/web/tools/example_tool.js +0 -46
  469. package/dist/web/tools/exit_loop_tool.js +0 -47
  470. package/dist/web/tools/finish_task_tool.js +0 -92
  471. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  472. package/dist/web/tools/function_tool.js +0 -151
  473. package/dist/web/tools/get_user_choice_tool.js +0 -27
  474. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  475. package/dist/web/tools/google_search_tool.js +0 -55
  476. package/dist/web/tools/load_artifacts_tool.js +0 -159
  477. package/dist/web/tools/load_memory_tool.js +0 -83
  478. package/dist/web/tools/long_running_tool.js +0 -58
  479. package/dist/web/tools/mcp/index.js +0 -11
  480. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  481. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  482. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  483. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  484. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  485. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  486. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  487. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  488. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  489. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  490. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  491. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  492. package/dist/web/tools/preload_memory_tool.js +0 -81
  493. package/dist/web/tools/request_input_tool.js +0 -29
  494. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  495. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  496. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  497. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  498. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  499. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  500. package/dist/web/tools/skill/skill_toolset.js +0 -185
  501. package/dist/web/tools/tool_confirmation.js +0 -43
  502. package/dist/web/tools/url_context_tool.js +0 -48
  503. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  504. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  505. package/dist/web/utils/async_hooks_shim.js +0 -28
  506. package/dist/web/utils/async_queue.js +0 -88
  507. package/dist/web/utils/branch_trie.js +0 -16
  508. package/dist/web/utils/case_utils.js +0 -28
  509. package/dist/web/utils/client_labels.js +0 -70
  510. package/dist/web/utils/crypto_shim.js +0 -18
  511. package/dist/web/utils/deprecated.js +0 -40
  512. package/dist/web/utils/env_aware_utils.js +0 -115
  513. package/dist/web/utils/error_utils.js +0 -101
  514. package/dist/web/utils/experimental.js +0 -54
  515. package/dist/web/utils/failover_utils.js +0 -100
  516. package/dist/web/utils/file_extension_utils.js +0 -55
  517. package/dist/web/utils/file_utils.js +0 -108
  518. package/dist/web/utils/gemini_schema_util.js +0 -177
  519. package/dist/web/utils/genai_schema_to_json.js +0 -80
  520. package/dist/web/utils/live_connection_utils.js +0 -257
  521. package/dist/web/utils/logger.js +0 -140
  522. package/dist/web/utils/model_name.js +0 -75
  523. package/dist/web/utils/object_notation_utils.js +0 -54
  524. package/dist/web/utils/optional_peer.js +0 -38
  525. package/dist/web/utils/output_schema_utils.js +0 -18
  526. package/dist/web/utils/partial_copy.js +0 -26
  527. package/dist/web/utils/redact_uri.js +0 -39
  528. package/dist/web/utils/schema.js +0 -167
  529. package/dist/web/utils/simple_zod_to_json.js +0 -134
  530. package/dist/web/utils/streaming_utils.js +0 -438
  531. package/dist/web/utils/task.js +0 -38
  532. package/dist/web/utils/variant_utils.js +0 -23
  533. package/dist/web/utils/vertex_ai_utils.js +0 -27
  534. package/dist/web/version.js +0 -11
  535. package/dist/web/workflow/base_node.js +0 -215
  536. package/dist/web/workflow/branch_path.js +0 -77
  537. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  538. package/dist/web/workflow/errors.js +0 -140
  539. package/dist/web/workflow/graph.js +0 -127
  540. package/dist/web/workflow/index.js +0 -80
  541. package/dist/web/workflow/node.js +0 -87
  542. package/dist/web/workflow/node_builders.js +0 -40
  543. package/dist/web/workflow/node_context.js +0 -236
  544. package/dist/web/workflow/node_error_event.js +0 -86
  545. package/dist/web/workflow/node_runner.js +0 -481
  546. package/dist/web/workflow/node_state.js +0 -43
  547. package/dist/web/workflow/node_status.js +0 -20
  548. package/dist/web/workflow/nodes/function_node.js +0 -221
  549. package/dist/web/workflow/nodes/join_node.js +0 -47
  550. package/dist/web/workflow/nodes/node_tool.js +0 -131
  551. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  552. package/dist/web/workflow/nodes/tool_node.js +0 -126
  553. package/dist/web/workflow/request_input.js +0 -36
  554. package/dist/web/workflow/retry_config.js +0 -43
  555. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  556. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  557. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  558. package/dist/web/workflow/trigger.js +0 -7
  559. package/dist/web/workflow/utils/graph_parser.js +0 -188
  560. package/dist/web/workflow/utils/graph_validation.js +0 -189
  561. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  562. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  563. package/dist/web/workflow/utils/retry_utils.js +0 -82
  564. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  565. package/dist/web/workflow/workflow.js +0 -529
  566. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * HTTP error types conforming to OpenTelemetry semantics.
8
+ *
9
+ * The string values populate the `error.type` span attribute, so they are
10
+ * observable outside the process and must stay identical to the adk-python
11
+ * `ToolErrorType` members.
12
+ */
13
+ export declare enum ToolErrorType {
14
+ BAD_REQUEST = "BAD_REQUEST",
15
+ UNAUTHORIZED = "UNAUTHORIZED",
16
+ FORBIDDEN = "FORBIDDEN",
17
+ NOT_FOUND = "NOT_FOUND",
18
+ REQUEST_TIMEOUT = "REQUEST_TIMEOUT",
19
+ INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
20
+ BAD_GATEWAY = "BAD_GATEWAY",
21
+ SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE",
22
+ GATEWAY_TIMEOUT = "GATEWAY_TIMEOUT"
23
+ }
24
+ /**
25
+ * Represents an error that occurs during the execution of a tool.
26
+ */
27
+ export declare class ToolExecutionError extends Error {
28
+ readonly errorType?: (ToolErrorType | string) | undefined;
29
+ /**
30
+ * @param message A message describing the error.
31
+ * @param errorType The semantic error type (e.g.
32
+ * {@link ToolErrorType.REQUEST_TIMEOUT} or `'500'`). Used to populate the
33
+ * `error.type` span attribute in OpenTelemetry traces.
34
+ */
35
+ constructor(message: string, errorType?: (ToolErrorType | string) | undefined);
36
+ }
@@ -79,6 +79,19 @@ export interface EventActions {
79
79
  * @returns A fully populated {@link EventActions} object.
80
80
  */
81
81
  export declare function createEventActions(state?: Partial<EventActions>): EventActions;
82
+ /**
83
+ * Returns whether the given {@link EventActions} still holds only its default
84
+ * values, i.e. the event carries no state, artifact, auth, confirmation,
85
+ * transfer, escalation or summarization signal.
86
+ *
87
+ * An actions object is considered non-default when any dictionary field has at
88
+ * least one entry, or when any scalar field has been explicitly set (including
89
+ * being set to `false`).
90
+ *
91
+ * @param actions - The actions to inspect.
92
+ * @returns `true` when every field is at its default value.
93
+ */
94
+ export declare function isDefaultEventActions(actions: EventActions): boolean;
82
95
  /**
83
96
  * Merges a list of {@link EventActions} objects into a single
84
97
  * {@link EventActions} object.
@@ -11,17 +11,38 @@ export { GcsArtifactService } from './artifacts/gcs_artifact_service.js';
11
11
  export { getArtifactServiceFromUri } from './artifacts/registry.js';
12
12
  export { AgentEngineSandboxCodeExecutor, type AgentEngineSandboxCodeExecutorOptions, } from './code_executors/agent_engine_sandbox_code_executor.js';
13
13
  export { CodeExecutionLanguage } from './code_executors/code_execution_utils.js';
14
+ export { ContainerCodeExecutor, type ContainerCodeExecutorOptions, } from './code_executors/container_code_executor.js';
14
15
  export { UnsafeLocalCodeExecutor, type UnsafeLocalCodeExecutorOptions, } from './code_executors/unsafe_local_code_executor.js';
15
16
  export * from './common.js';
16
17
  export { LocalEnvironment } from './environment/local_environment.js';
17
18
  export type { LocalEnvironmentOptions } from './environment/local_environment.js';
19
+ export { VertexAiMemoryBankService } from './memory/vertex_ai_memory_bank_service.js';
20
+ export type { VertexAiMemoryBankServiceOptions } from './memory/vertex_ai_memory_bank_service.js';
21
+ export { VertexAiRagMemoryService } from './memory/vertex_ai_rag_memory_service.js';
22
+ export type { VertexAiRagMemoryServiceOptions } from './memory/vertex_ai_rag_memory_service.js';
18
23
  export { DatabaseSessionService } from './sessions/database_session_service.js';
19
24
  export { getSessionServiceFromUri } from './sessions/registry.js';
20
25
  export { VertexAiSessionService } from './sessions/vertex_ai_session_service.js';
21
26
  export type { VertexAiCreateSessionRequest, VertexAiSessionServiceOptions, } from './sessions/vertex_ai_session_service.js';
22
- export { loadAllSkillsInDir, loadSkillFromDir, validateSkillDir, } from './skills/loader.js';
27
+ export { GCPSkillRegistry } from './skills/gcp_skill_registry.js';
28
+ export type { GCPSkillRegistryOptions } from './skills/gcp_skill_registry.js';
29
+ export { loadAllSkillsInDir, loadSkillFromDir, loadSkillFromZipBuffer, validateSkillDir, } from './skills/loader.js';
30
+ export { LOAD_WEB_PAGE, loadWebPage } from './tools/load_web_page.js';
31
+ export type { LoadWebPageOptions } from './tools/load_web_page.js';
32
+ export { OpenApiSpecParser } from './tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js';
33
+ export type { OperationEndpoint, ParsedOperation, } from './tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js';
34
+ export { OperationParser } from './tools/openapi_tool/openapi_spec_parser/operation_parser.js';
35
+ export type { ApiParameter } from './tools/openapi_tool/openapi_spec_parser/operation_parser.js';
36
+ export { ToolAuthHandler } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
37
+ export type { AuthPreparationResult } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
38
+ export { OpenAPIToolset } from './tools/openapi_tool/openapi_toolset.js';
39
+ export { createRestApiTool, RestApiTool, } from './tools/openapi_tool/rest_api_tool.js';
40
+ export { FilesRetrieval } from './tools/retrieval/files_retrieval.js';
41
+ export type { FilesRetrievalConstructorParams, FilesRetrievalParams, } from './tools/retrieval/files_retrieval.js';
42
+ export { LoadSkillResourceTool } from './tools/skill/load_skill_resource_tool.js';
23
43
  export { RunSkillInlineScriptErrorCode, RunSkillInlineScriptTool, } from './tools/skill/run_skill_inline_script_tool.js';
24
44
  export { RunSkillScriptTool } from './tools/skill/run_skill_script_tool.js';
45
+ export { SkillToolset } from './tools/skill/skill_toolset.js';
25
46
  export * from './integrations/agent_registry/agent_registry.js';
26
47
  export * from './telemetry/google_cloud.js';
27
48
  export * from './telemetry/setup.js';
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Session } from '../sessions/session.js';
7
+ /** The RAG file a chunk came from, identified by its display name. */
8
+ export interface SourceIdentity {
9
+ appName: string;
10
+ userId: string;
11
+ sessionId: string;
12
+ }
13
+ /** One line of a stored transcript. */
14
+ export interface TranscriptEvent {
15
+ author: string;
16
+ /** Epoch milliseconds. The transcript itself stores seconds. */
17
+ timestamp: number;
18
+ text: string;
19
+ }
20
+ /**
21
+ * Builds the `displayName` under which a session's transcript is stored.
22
+ *
23
+ * The identifiers are encoded because they may contain dots, which the legacy
24
+ * dot-delimited form cannot represent unambiguously.
25
+ */
26
+ export declare function buildSourceDisplayName(appName: string, userId: string, sessionId: string): string;
27
+ /**
28
+ * Recovers the identifiers from a `displayName`, or returns `undefined` when
29
+ * the name is malformed or ambiguous.
30
+ *
31
+ * Two forms are read. The prefixed form is the one both this service and
32
+ * adk-python write, so a corpus either writes stays readable by the other. The
33
+ * unprefixed `{app}.{user}.{session}` form is read only: adk-python wrote it
34
+ * before it adopted the prefix, and no writer here emits it.
35
+ *
36
+ * A dot-delimited name with four or more parts is ambiguous:
37
+ * `demo.alice.smith.s1` names either user `alice` or user `alice.smith`.
38
+ * Accepting it would hand one user another user's memories, so it is rejected.
39
+ */
40
+ export declare function parseSourceDisplayName(displayName: string): SourceIdentity | undefined;
41
+ /**
42
+ * Renders a session as the newline-delimited JSON transcript that both ADK
43
+ * implementations read, one object per text-bearing event.
44
+ *
45
+ * The timestamp is written in seconds because adk-python writes seconds; a
46
+ * corpus is shared between the two.
47
+ */
48
+ export declare function serializeSessionTranscript(session: Session): string;
49
+ /**
50
+ * Reads the events out of a retrieved transcript chunk.
51
+ *
52
+ * A line that is not JSON is skipped: a corpus may hold files this service
53
+ * never wrote.
54
+ */
55
+ export declare function parseTranscriptEvents(text: string): TranscriptEvent[];
@@ -0,0 +1,89 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { RagRetrievalConfig, VertexRagStore } from '@google/genai';
7
+ /** One file in a RAG corpus. */
8
+ export interface RagFile {
9
+ /**
10
+ * Full resource name,
11
+ * `projects/{project}/locations/{location}/ragCorpora/{corpus}/ragFiles/{file}`.
12
+ */
13
+ name?: string;
14
+ /** Caller-supplied label for the file. */
15
+ displayName?: string;
16
+ }
17
+ /** One page of a `ragFiles` listing. */
18
+ export interface ListRagFilesResponse {
19
+ ragFiles?: RagFile[];
20
+ nextPageToken?: string;
21
+ }
22
+ /** One chunk returned by a retrieval query. */
23
+ export interface RagContext {
24
+ /** The `displayName` of the RAG file this chunk came from. */
25
+ sourceDisplayName?: string;
26
+ text?: string;
27
+ }
28
+ /** The response of a retrieval query. */
29
+ export interface RetrieveContextsResponse {
30
+ contexts?: {
31
+ contexts?: RagContext[];
32
+ };
33
+ }
34
+ /** Parameters of {@link RagApiClient.listRagFiles}. */
35
+ export interface ListRagFilesParams {
36
+ ragCorpus: string;
37
+ pageSize: number;
38
+ pageToken?: string;
39
+ }
40
+ /** Parameters of {@link RagApiClient.uploadRagFile}. */
41
+ export interface UploadRagFileParams {
42
+ ragCorpus: string;
43
+ displayName: string;
44
+ content: string;
45
+ }
46
+ /** Parameters of {@link RagApiClient.retrieveContexts}. */
47
+ export interface RetrieveContextsParams {
48
+ /** `projects/{project}/locations/{location}`. */
49
+ parent: string;
50
+ vertexRagStore: VertexRagStore;
51
+ /** `@google/genai` models the store and the config, but not the query. */
52
+ query: {
53
+ text: string;
54
+ ragRetrievalConfig?: RagRetrievalConfig;
55
+ };
56
+ }
57
+ /**
58
+ * The file and retrieval calls of the Vertex AI RAG Engine.
59
+ *
60
+ * `VertexRagApiClient` is the implementation; the interface is the seam
61
+ * a test substitutes.
62
+ */
63
+ export interface RagApiClient {
64
+ listRagFiles(params: ListRagFilesParams): Promise<ListRagFilesResponse>;
65
+ uploadRagFile(params: UploadRagFileParams): Promise<void>;
66
+ retrieveContexts(params: RetrieveContextsParams): Promise<RetrieveContextsResponse>;
67
+ }
68
+ /**
69
+ * A {@link RagApiClient} over the Vertex AI RAG Engine REST API.
70
+ *
71
+ * The calls go to the REST API directly because neither
72
+ * `@google-cloud/vertexai` nor `@google/genai` ships a RAG client. Requests
73
+ * carry Application Default Credentials.
74
+ */
75
+ export declare class VertexRagApiClient implements RagApiClient {
76
+ private readonly host;
77
+ private readonly auth;
78
+ constructor(options: {
79
+ location: string;
80
+ });
81
+ /** Lists one page of the files in a corpus. */
82
+ listRagFiles(params: ListRagFilesParams): Promise<ListRagFilesResponse>;
83
+ /** Uploads `content` into a corpus as one RAG file. */
84
+ uploadRagFile(params: UploadRagFileParams): Promise<void>;
85
+ /** Runs a retrieval query over a corpus. */
86
+ retrieveContexts(params: RetrieveContextsParams): Promise<RetrieveContextsResponse>;
87
+ private authHeaders;
88
+ private send;
89
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Session } from '../sessions/session.js';
7
+ import { BaseMemoryService, SearchMemoryRequest, SearchMemoryResponse } from './base_memory_service.js';
8
+ import { RagApiClient } from './vertex_ai_rag_api.js';
9
+ /** Options for {@link VertexAiRagMemoryService}. */
10
+ export interface VertexAiRagMemoryServiceOptions {
11
+ /**
12
+ * `projects/{project}/locations/{location}/ragCorpora/{ragCorpusId}`, or a
13
+ * bare `{ragCorpusId}` when the project and the location are resolvable.
14
+ */
15
+ ragCorpus: string;
16
+ /** Number of contexts to retrieve. Sent as `ragRetrievalConfig.topK`. */
17
+ similarityTopK?: number;
18
+ /** Only return contexts below this vector distance. Defaults to 10. */
19
+ vectorDistanceThreshold?: number;
20
+ /** Defaults to `process.env.GOOGLE_CLOUD_PROJECT`. */
21
+ projectId?: string;
22
+ /** Defaults to `process.env.GOOGLE_CLOUD_LOCATION`. */
23
+ location?: string;
24
+ }
25
+ /**
26
+ * A {@link BaseMemoryService} backed by a Vertex AI RAG Engine corpus.
27
+ *
28
+ * A finished session is uploaded as one RAG file holding its transcript, and a
29
+ * search retrieves the chunks of those transcripts that match the query. Only
30
+ * `addSessionToMemory` and `searchMemory` are supported, matching adk-python.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * const memoryService = new VertexAiRagMemoryService({
35
+ * ragCorpus: 'projects/my-project/locations/us-central1/ragCorpora/12345',
36
+ * similarityTopK: 5,
37
+ * });
38
+ * await memoryService.addSessionToMemory(session);
39
+ * ```
40
+ */
41
+ export declare class VertexAiRagMemoryService implements BaseMemoryService {
42
+ private readonly ragCorpus;
43
+ private readonly projectId;
44
+ private readonly location;
45
+ private readonly similarityTopK?;
46
+ private readonly vectorDistanceThreshold;
47
+ private readonly ragApiClient;
48
+ /**
49
+ * @param ragApiClient An internal seam for tests to substitute a fake REST
50
+ * client. Production callers omit it and get a client for the resolved
51
+ * location.
52
+ * @internal
53
+ */
54
+ constructor(options: VertexAiRagMemoryServiceOptions, ragApiClient?: RagApiClient);
55
+ /** Uploads the session's transcript into the corpus as one RAG file. */
56
+ addSessionToMemory(session: Session): Promise<void>;
57
+ searchMemory(request: SearchMemoryRequest): Promise<SearchMemoryResponse>;
58
+ /**
59
+ * Returns the ids of the corpus files owned by the requesting app and user,
60
+ * or `undefined` when the corpus could not be listed within the page budget.
61
+ *
62
+ * An `undefined` result retrieves over the whole corpus. Narrowing only
63
+ * improves ranking and transfer size, and every returned context is filtered
64
+ * by tenant anyway. Scoping to a partial listing would instead hide the
65
+ * caller's own memories.
66
+ */
67
+ private listTenantRagFileIds;
68
+ }
@@ -0,0 +1,210 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseLlm } from './base_llm.js';
7
+ import type { BaseLlmConnection } from './base_llm_connection.js';
8
+ import type { LlmRequest } from './llm_request.js';
9
+ import type { LlmResponse } from './llm_response.js';
10
+ export { stripAdkIdentityPreamble } from './chrome_prompt_utils.js';
11
+ /**
12
+ * An ADK `BaseLlm` backed by Chrome's built-in on-device model, reached through
13
+ * the Prompt API (`globalThis.LanguageModel`).
14
+ *
15
+ * ## What this adapter is for
16
+ *
17
+ * ADK's agent loop is built around a model that emits *function calls*: the
18
+ * Runner inspects them, applies before/after-tool callbacks, executes the tool,
19
+ * appends a function response and loops. Chrome's Prompt API offers `prompt()`
20
+ * and `promptStreaming()`, which return a plain string.
21
+ *
22
+ * Chrome does expose a `tools` option on `LanguageModel.create()`, but its
23
+ * contract differs in a way that matters here: each tool carries an `execute()`
24
+ * callback and *the browser runs the tool itself*, feeding the result back into
25
+ * the model internally. The caller receives only the final text. That takes ADK
26
+ * out of its own loop — no tool callbacks, no per-call events, no confirmation
27
+ * hooks, no session state updates and nothing to trace.
28
+ *
29
+ * So this adapter synthesises function calling out of constrained decoding
30
+ * instead. Tools are described in the system prompt, and the reply is forced to
31
+ * match a JSON Schema whose branches are "final answer" or "call this exact
32
+ * tool with these exact arguments" (via `responseConstraint`). The reply is
33
+ * parsed back into genai `functionCall` parts, and ADK stays in control.
34
+ *
35
+ * ## Session strategy
36
+ *
37
+ * ADK is stateless per request: it re-sends the whole conversation every time.
38
+ * Chrome sessions are stateful, and `create()` is far more expensive than
39
+ * `prompt()`. This adapter therefore keeps one warm "base" session holding only
40
+ * the system prompt and `clone()`s it per request, destroying the clone after
41
+ * the turn. The conversation history rides in the prompt input.
42
+ *
43
+ * ## Availability
44
+ *
45
+ * The Prompt API is exposed to documents, not to workers, and it is desktop
46
+ * only with a substantial hardware floor. Call {@link availability} before
47
+ * relying on it. `create()` also requires a user gesture while the model is
48
+ * still downloading, so build the session in response to a user action.
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * const llm = new ChromeBuiltInLlm();
53
+ * if ((await llm.availability()) === 'unavailable') {
54
+ * // Fall back to a hosted model.
55
+ * }
56
+ * const agent = new LlmAgent({name: 'search', model: llm, tools: [...]});
57
+ * ```
58
+ */
59
+ /** Whether the on-device model can serve a request right now. */
60
+ export type ChromeModelAvailability = 'unavailable' | 'downloadable' | 'downloading' | 'available';
61
+ /** A modality declared at session creation. */
62
+ export interface ChromeExpectedModality {
63
+ type: 'text' | 'image' | 'audio';
64
+ languages?: string[];
65
+ }
66
+ /** One piece of a multimodal message. */
67
+ export interface ChromeMessageContent {
68
+ type: 'text' | 'image' | 'audio';
69
+ value: string;
70
+ }
71
+ /** A single turn handed to `prompt()`. */
72
+ export interface ChromeMessage {
73
+ role: 'system' | 'user' | 'assistant';
74
+ content: string | ChromeMessageContent[];
75
+ }
76
+ /** Emits `downloadprogress` while the model is fetched on first use. */
77
+ export interface ChromeCreateMonitor {
78
+ addEventListener(type: 'downloadprogress', listener: (event: {
79
+ loaded: number;
80
+ }) => void): void;
81
+ }
82
+ /** Options accepted by `LanguageModel.availability()`. */
83
+ export interface ChromeCreateCoreOptions {
84
+ expectedInputs?: ChromeExpectedModality[];
85
+ expectedOutputs?: ChromeExpectedModality[];
86
+ }
87
+ /** Options accepted by `LanguageModel.create()`. */
88
+ export interface ChromeCreateOptions extends ChromeCreateCoreOptions {
89
+ signal?: AbortSignal;
90
+ initialPrompts?: ChromeMessage[];
91
+ monitor?: (monitor: ChromeCreateMonitor) => void;
92
+ temperature?: number;
93
+ topK?: number;
94
+ }
95
+ /** Options accepted by `prompt()` and `promptStreaming()`. */
96
+ export interface ChromePromptOptions {
97
+ signal?: AbortSignal;
98
+ responseConstraint?: Record<string, unknown>;
99
+ omitResponseConstraintInput?: boolean;
100
+ }
101
+ /** A live Prompt API session. */
102
+ export interface ChromeLanguageModelSession {
103
+ prompt(input: string | ChromeMessage[], options?: ChromePromptOptions): Promise<string>;
104
+ promptStreaming(input: string | ChromeMessage[], options?: ChromePromptOptions): ReadableStream<string>;
105
+ clone(options?: {
106
+ signal?: AbortSignal;
107
+ }): Promise<ChromeLanguageModelSession>;
108
+ destroy?(): void;
109
+ addEventListener?(type: 'contextoverflow', listener: () => void): void;
110
+ readonly contextUsage?: number;
111
+ readonly contextWindow?: number;
112
+ }
113
+ /** The `LanguageModel` global itself. */
114
+ export interface ChromeLanguageModelFactory {
115
+ availability(options?: ChromeCreateCoreOptions): Promise<ChromeModelAvailability>;
116
+ create(options?: ChromeCreateOptions): Promise<ChromeLanguageModelSession>;
117
+ }
118
+ /** Timing and context signals emitted while the adapter runs. */
119
+ export interface ChromeBuiltInDiagnostic {
120
+ phase: 'create' | 'prompt' | 'parse-fallback' | 'context-overflow';
121
+ ms?: number;
122
+ contextUsage?: number;
123
+ contextWindow?: number;
124
+ note?: string;
125
+ }
126
+ /** Constructor options for {@link ChromeBuiltInLlm}. */
127
+ export interface ChromeBuiltInLlmParams {
128
+ /** Model id used for registry matching. Defaults to `chrome-on-device`. */
129
+ model?: string;
130
+ /**
131
+ * Injects an alternative implementation of the `LanguageModel` global, for
132
+ * tests and for embedding a stand-in. Defaults to
133
+ * `globalThis.LanguageModel`.
134
+ */
135
+ languageModel?: ChromeLanguageModelFactory;
136
+ /**
137
+ * Sampling temperature. Accepted only in extension contexts; on a plain web
138
+ * page `create()` rejects it and the adapter retries without it.
139
+ */
140
+ temperature?: number;
141
+ /** Sampling top-K. Subject to the same restriction as `temperature`. */
142
+ topK?: number;
143
+ /** Modalities to declare at session creation. */
144
+ expectedInputs?: ChromeExpectedModality[];
145
+ expectedOutputs?: ChromeExpectedModality[];
146
+ /** Receives bytes-loaded progress while the model downloads on first use. */
147
+ onDownloadProgress?: (loaded: number) => void;
148
+ /**
149
+ * Rewrites the system prompt before a session is created.
150
+ *
151
+ * This exists because of a specific and costly interaction with ADK. Every
152
+ * request is prefixed by ADK's identity processor with:
153
+ *
154
+ * You are an agent. Your internal name is "<agent name>".
155
+ *
156
+ * Under a `ParallelAgent` fan-out each child has a different name, so every
157
+ * child produces a *different* system prompt, so the warm base session never
158
+ * hits and each child pays a full `create()` — the most expensive call
159
+ * available — precisely when the most calls are in flight.
160
+ *
161
+ * Pass {@link stripAdkIdentityPreamble} to drop it. That is safe whenever
162
+ * agent transfer is disabled, because the identity line exists to support
163
+ * transfer. Leave it unset for multi-agent setups that route by name.
164
+ */
165
+ normalizeSystemPrompt?: (systemPrompt: string) => string;
166
+ /** Receives timing and context diagnostics. */
167
+ onDiagnostic?: (diagnostic: ChromeBuiltInDiagnostic) => void;
168
+ }
169
+ /** Thrown when the browser has no usable on-device model. */
170
+ export declare class ChromeModelUnavailableError extends Error {
171
+ readonly availability: ChromeModelAvailability | 'missing-api';
172
+ constructor(availability: ChromeModelAvailability | 'missing-api');
173
+ }
174
+ /** See the file overview for the design rationale. */
175
+ export declare class ChromeBuiltInLlm extends BaseLlm {
176
+ static readonly supportedModels: Array<string | RegExp>;
177
+ private readonly params;
178
+ /**
179
+ * A warm session holding only the system prompt, cloned per request.
180
+ *
181
+ * The *promise* is memoised, not the resolved session. Under a
182
+ * `ParallelAgent` fan-out every child reaches this at the same instant, and
183
+ * caching only the resolved value means they all observe an empty cache and
184
+ * each create their own session — turning the optimisation into a no-op
185
+ * precisely when it matters most. Sharing the in-flight promise collapses
186
+ * them onto one `create()`.
187
+ */
188
+ private baseSessionPromise?;
189
+ private baseSession?;
190
+ private baseSessionKey?;
191
+ constructor(params?: ChromeBuiltInLlmParams);
192
+ private get api();
193
+ /** Reports whether this browser can actually run the model. */
194
+ availability(): Promise<ChromeModelAvailability>;
195
+ private diagnostic;
196
+ /**
197
+ * Returns a session cloned from a warm base carrying `systemPrompt`, and
198
+ * rebuilds that base only when the system prompt or sampling changes.
199
+ */
200
+ private acquireSession;
201
+ private createBaseSession;
202
+ generateContentAsync(llmRequest: LlmRequest, stream?: boolean, abortSignal?: AbortSignal): AsyncGenerator<LlmResponse, void>;
203
+ private promptOnce;
204
+ private streamText;
205
+ /** Turns the constrained JSON reply into an ADK response. */
206
+ private parseToolChoice;
207
+ connect(_llmRequest: LlmRequest): Promise<BaseLlmConnection>;
208
+ /** Releases the warm base session. */
209
+ destroy(): void;
210
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Content, FunctionDeclaration } from '@google/genai';
7
+ import type { ChromeMessage } from './chrome_prompt_llm.js';
8
+ import type { LlmRequest } from './llm_request.js';
9
+ import type { LlmResponse } from './llm_response.js';
10
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
11
+ /** Pulls function declarations out of a request's tool config. */
12
+ export declare function collectFunctionDeclarations(llmRequest: LlmRequest): FunctionDeclaration[];
13
+ /**
14
+ * Builds the constrained-decoding schema: a union of "final answer" and one
15
+ * branch per available tool, each carrying that tool's exact argument schema.
16
+ *
17
+ * A single-value `enum` is used rather than `const`, because it is semantically
18
+ * identical and more widely supported across constraint engines.
19
+ */
20
+ export declare function buildToolChoiceSchema(declarations: FunctionDeclaration[]): Record<string, unknown>;
21
+ /** Renders tool declarations into instructions the model can act on. */
22
+ export declare function renderToolInstructions(declarations: FunctionDeclaration[]): string;
23
+ /**
24
+ * Renders a tool result as text the model can actually read.
25
+ *
26
+ * ADK wraps a tool's string return value as `{result: "<the string>"}`. Naively
27
+ * JSON-stringifying that produces double-encoded output, in which every quote
28
+ * is escaped twice:
29
+ *
30
+ * [tool_result] search -> {"result":"{\"matches\":[{\"id\":8, ...
31
+ *
32
+ * A large model shrugs at this. A small one has to spend attention unpicking
33
+ * the encoding before it can read the payload, and often just fails. Unwrapping
34
+ * the single `result` key and re-emitting plain JSON costs nothing and gives
35
+ * the model something legible:
36
+ *
37
+ * [tool_result] search -> {"matches":[{"id":8, ...
38
+ */
39
+ export declare function renderToolResult(response: unknown): string;
40
+ /**
41
+ * Maps genai `Content[]` onto Prompt API messages.
42
+ *
43
+ * Function calls and responses have no native representation in a Prompt API
44
+ * message, so they are serialised to text. Without this the model loses the
45
+ * thread of a multi-step tool interaction.
46
+ */
47
+ export declare function contentsToMessages(contents: Content[]): ChromeMessage[];
48
+ /** Extracts the system instruction from a request as plain text. */
49
+ export declare function extractSystemInstruction(llmRequest: LlmRequest): string;
50
+ /**
51
+ * Removes ADK's per-agent identity preamble from a system prompt.
52
+ *
53
+ * Turns:
54
+ *
55
+ * You are an agent. Your internal name is "rerank_11".
56
+ * The description about you is "..."
57
+ *
58
+ * <the actual instruction>
59
+ *
60
+ * into just the instruction, so that sibling agents sharing one instruction
61
+ * also share one cached session. See
62
+ * {@link ChromeBuiltInLlmParams.normalizeSystemPrompt}.
63
+ */
64
+ export declare function stripAdkIdentityPreamble(systemPrompt: string): string;
65
+ /** Whether an error is an aborted-operation error from a cancelled signal. */
66
+ export declare function isAbortError(error: unknown): boolean;
67
+ export declare function finalText(text: string): LlmResponse;
68
+ export declare function errorResponse(error: unknown): LlmResponse;
@@ -81,9 +81,14 @@ export declare class Gemini extends BaseLlm {
81
81
  /**
82
82
  * Sends a request to the Gemini model.
83
83
  *
84
- * @param llmRequest LlmRequest, the request to send to the Gemini model.
85
- * @param stream bool = false, whether to do streaming call.
86
- * @yields LlmResponse: The model response.
84
+ * @param llmRequest The request to send to the Gemini model.
85
+ * @param stream Whether to make a streaming call. Defaults to `false`.
86
+ * @yields Each {@link LlmResponse} produced by the model. A non-streaming
87
+ * call yields exactly one; a streaming call yields the partial responses
88
+ * as they arrive, then a final aggregated response whenever the stream
89
+ * carried either content or usage/grounding/citation metadata. A
90
+ * metadata-only stream therefore still ends with one, holding the
91
+ * metadata and no `content`; only a stream with neither ends silently.
87
92
  */
88
93
  generateContentAsync(llmRequest: LlmRequest, stream?: boolean, abortSignal?: AbortSignal): AsyncGenerator<LlmResponse, void>;
89
94
  protected getHttpOptions(): HttpOptions;
@@ -5,8 +5,9 @@
5
5
  */
6
6
  import { BaseLlm } from './base_llm.js';
7
7
  /**
8
- * type[BaseLlm] equivalent in TypeScript, represents a class that can be new-ed
9
- * to create a BaseLlm instance.
8
+ * The constructor of a {@link BaseLlm} subclass, rather than an instance of
9
+ * one: a class that can be `new`-ed with a model name, and that also exposes
10
+ * the static `supportedModels` patterns the registry matches against.
10
11
  */
11
12
  export type BaseLlmType = (new (params: {
12
13
  model: string;