@google/adk 2.0.0 → 2.2.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 (658) 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 +66 -6
  5. package/dist/cjs/a2a/agent_executor.js +18 -6
  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 +21 -6
  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 +15 -7
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/nl_planning_processor.js +114 -0
  23. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  24. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  25. package/dist/cjs/agents/readonly_context.js +6 -0
  26. package/dist/cjs/agents/routed_agent.js +1 -1
  27. package/dist/cjs/agents/sequential_agent.js +1 -1
  28. package/dist/cjs/apps/app.js +1 -1
  29. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  30. package/dist/cjs/artifacts/gcs_artifact_service.js +13 -7
  31. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  32. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  33. package/dist/cjs/auth/auth_credential.js +12 -2
  34. package/dist/cjs/auth/auth_handler.js +44 -8
  35. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  36. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  37. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  38. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  39. package/dist/cjs/code_executors/code_execution_utils.js +5 -5
  40. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  41. package/dist/cjs/code_executors/docker_container.js +282 -0
  42. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  43. package/dist/cjs/common.js +119 -45
  44. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  45. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  46. package/dist/cjs/context/compaction_utils.js +15 -6
  47. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  48. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  49. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  50. package/dist/cjs/errors/already_exists_error.js +50 -0
  51. package/dist/cjs/errors/input_validation_error.js +50 -0
  52. package/dist/cjs/errors/not_found_error.js +50 -0
  53. package/dist/cjs/errors/session_not_found_error.js +50 -0
  54. package/dist/cjs/errors/tool_execution_error.js +68 -0
  55. package/dist/cjs/events/event.js +1 -1
  56. package/dist/cjs/events/event_actions.js +7 -0
  57. package/dist/cjs/examples/base_example_provider.js +1 -1
  58. package/dist/cjs/examples/example.js +92 -0
  59. package/dist/cjs/examples/example_util.js +28 -4
  60. package/dist/cjs/examples/index.js +39 -0
  61. package/dist/cjs/examples/vertex_ai_example_store.js +39 -0
  62. package/dist/cjs/index.js +93 -0
  63. package/dist/cjs/index_web.js +2 -0
  64. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  65. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  66. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -7
  67. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  68. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  69. package/dist/cjs/models/apigee_llm.js +1 -1
  70. package/dist/cjs/models/base_llm.js +2 -7
  71. package/dist/cjs/models/chrome_prompt_llm.js +318 -0
  72. package/dist/cjs/models/chrome_prompt_utils.js +281 -0
  73. package/dist/cjs/models/gemini_llm_connection.js +5 -4
  74. package/dist/cjs/models/google_llm.js +9 -4
  75. package/dist/cjs/models/interactions_utils.js +2 -3
  76. package/dist/cjs/models/registry.js +2 -0
  77. package/dist/cjs/planners/base_planner.js +56 -0
  78. package/dist/cjs/planners/built_in_planner.js +85 -0
  79. package/dist/cjs/planners/plan_re_act_planner.js +172 -0
  80. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  81. package/dist/cjs/plugins/base_plugin.js +46 -61
  82. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  83. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  84. package/dist/cjs/runner/runner.js +29 -26
  85. package/dist/cjs/sessions/database_session_service.js +78 -43
  86. package/dist/cjs/sessions/db/operations.js +229 -22
  87. package/dist/cjs/sessions/db/schema.js +113 -159
  88. package/dist/cjs/sessions/registry.js +5 -1
  89. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  90. package/dist/cjs/telemetry/setup.js +1 -1
  91. package/dist/cjs/telemetry/tracing.js +11 -1
  92. package/dist/cjs/tools/agent_tool.js +4 -5
  93. package/dist/cjs/tools/base_tool.js +14 -4
  94. package/dist/cjs/tools/base_toolset.js +4 -4
  95. package/dist/cjs/tools/built_in_tool.js +75 -0
  96. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  97. package/dist/cjs/tools/example_tool.js +1 -1
  98. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  99. package/dist/cjs/tools/function_tool.js +6 -3
  100. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  101. package/dist/cjs/tools/google_search_tool.js +3 -6
  102. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  103. package/dist/cjs/tools/load_web_page.js +6 -172
  104. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  105. package/dist/cjs/tools/mcp/mcp_session_manager.js +14 -8
  106. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +292 -4
  107. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  108. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +70 -0
  109. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +120 -0
  110. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -10
  111. package/dist/cjs/tools/openapi_tool/common/common.js +139 -0
  112. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  113. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +74 -14
  114. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -34
  115. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +14 -2
  116. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +106 -46
  117. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  118. package/dist/cjs/tools/resume_inputs.js +27 -0
  119. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  120. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  121. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  122. package/dist/cjs/tools/skill/skill_toolset.js +2 -0
  123. package/dist/cjs/tools/tool_context.js +41 -0
  124. package/dist/cjs/tools/url_context_tool.js +3 -6
  125. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  126. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  127. package/dist/cjs/tools/webmcp/index.js +37 -0
  128. package/dist/cjs/tools/webmcp/webmcp_tool.js +156 -0
  129. package/dist/cjs/tools/webmcp/webmcp_toolset.js +116 -0
  130. package/dist/cjs/tools/webmcp/webmcp_types.js +50 -0
  131. package/dist/cjs/utils/case_utils.js +52 -2
  132. package/dist/cjs/utils/client_labels.js +67 -0
  133. package/dist/cjs/utils/crypto_shim.js +16 -0
  134. package/dist/cjs/utils/gemini_schema_util.js +103 -9
  135. package/dist/cjs/utils/hash_utils.js +73 -0
  136. package/dist/cjs/utils/live_connection_utils.js +10 -9
  137. package/dist/cjs/utils/logger.js +15 -50
  138. package/dist/cjs/utils/logger_browser.js +86 -0
  139. package/dist/cjs/utils/logger_node.js +119 -0
  140. package/dist/cjs/utils/model_name.js +17 -2
  141. package/dist/cjs/utils/redact_inline_data.js +46 -0
  142. package/dist/cjs/utils/redact_uri.js +15 -1
  143. package/dist/cjs/utils/schema.js +1 -1
  144. package/dist/cjs/utils/simple_zod_to_json.js +5 -0
  145. package/dist/cjs/utils/ssrf_guard.js +262 -0
  146. package/dist/cjs/version.js +1 -1
  147. package/dist/cjs/workflow/base_node.js +1 -1
  148. package/dist/cjs/workflow/graph.js +1 -1
  149. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  150. package/dist/cjs/workflow/request_input.js +1 -1
  151. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  152. package/dist/cjs/workflow/workflow.js +1 -1
  153. package/dist/esm/a2a/a2a_event.js +0 -28
  154. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  155. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  156. package/dist/esm/a2a/agent_card.js +71 -6
  157. package/dist/esm/a2a/agent_executor.js +18 -6
  158. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  159. package/dist/esm/a2a/event_processor_utils.js +1 -2
  160. package/dist/esm/a2a/executor_context.js +4 -2
  161. package/dist/esm/a2a/index.js +7 -1
  162. package/dist/esm/a2a/request_metadata.js +68 -0
  163. package/dist/esm/agents/base_agent.js +9 -8
  164. package/dist/esm/agents/context.js +7 -0
  165. package/dist/esm/agents/functions.js +152 -48
  166. package/dist/esm/agents/invocation_context.js +1 -0
  167. package/dist/esm/agents/llm_agent.js +24 -6
  168. package/dist/esm/agents/loop_agent.js +1 -1
  169. package/dist/esm/agents/parallel_agent.js +1 -1
  170. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  171. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  172. package/dist/esm/agents/processors/content_processor_utils.js +15 -7
  173. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  174. package/dist/esm/agents/processors/nl_planning_processor.js +87 -0
  175. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  176. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  177. package/dist/esm/agents/readonly_context.js +6 -0
  178. package/dist/esm/agents/routed_agent.js +1 -1
  179. package/dist/esm/agents/sequential_agent.js +1 -1
  180. package/dist/esm/apps/app.js +1 -1
  181. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  182. package/dist/esm/artifacts/gcs_artifact_service.js +13 -7
  183. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  184. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  185. package/dist/esm/auth/auth_credential.js +11 -1
  186. package/dist/esm/auth/auth_handler.js +47 -8
  187. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  188. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  189. package/dist/esm/code_executors/base_code_executor.js +1 -1
  190. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  191. package/dist/esm/code_executors/code_execution_utils.js +5 -5
  192. package/dist/esm/code_executors/container_code_executor.js +155 -0
  193. package/dist/esm/code_executors/docker_container.js +265 -0
  194. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  195. package/dist/esm/common.js +111 -40
  196. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  197. package/dist/esm/context/anchored_context_compactor.js +45 -19
  198. package/dist/esm/context/compaction_utils.js +13 -5
  199. package/dist/esm/context/token_based_context_compactor.js +10 -2
  200. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  201. package/dist/esm/context/truncating_context_compactor.js +17 -5
  202. package/dist/esm/errors/already_exists_error.js +23 -0
  203. package/dist/esm/errors/input_validation_error.js +23 -0
  204. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  205. package/dist/esm/errors/session_not_found_error.js +23 -0
  206. package/dist/esm/errors/tool_execution_error.js +40 -0
  207. package/dist/esm/events/event.js +1 -1
  208. package/dist/esm/events/event_actions.js +6 -0
  209. package/dist/esm/examples/base_example_provider.js +1 -1
  210. package/dist/esm/examples/example.js +85 -0
  211. package/dist/esm/examples/example_util.js +25 -3
  212. package/dist/{web/auth/credential_service/base_credential_service.js → esm/examples/index.js} +4 -0
  213. package/dist/{web/version.js → esm/examples/vertex_ai_example_store.js} +2 -2
  214. package/dist/esm/index.js +87 -0
  215. package/dist/esm/index_web.js +2 -0
  216. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  217. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  218. package/dist/esm/memory/vertex_ai_memory_bank_service.js +19 -7
  219. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  220. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  221. package/dist/esm/models/apigee_llm.js +1 -1
  222. package/dist/esm/models/base_llm.js +3 -8
  223. package/dist/esm/models/chrome_prompt_llm.js +302 -0
  224. package/dist/esm/models/chrome_prompt_utils.js +241 -0
  225. package/dist/esm/models/gemini_llm_connection.js +6 -5
  226. package/dist/esm/models/google_llm.js +9 -4
  227. package/dist/esm/models/interactions_utils.js +2 -3
  228. package/dist/esm/models/registry.js +2 -0
  229. package/dist/esm/planners/base_planner.js +28 -0
  230. package/dist/esm/planners/built_in_planner.js +57 -0
  231. package/dist/esm/planners/plan_re_act_planner.js +145 -0
  232. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  233. package/dist/esm/plugins/base_plugin.js +46 -61
  234. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  235. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  236. package/dist/esm/runner/runner.js +35 -27
  237. package/dist/esm/sessions/database_session_service.js +58 -25
  238. package/dist/esm/sessions/db/operations.js +229 -22
  239. package/dist/esm/sessions/db/schema.js +111 -160
  240. package/dist/esm/sessions/registry.js +5 -1
  241. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  242. package/dist/esm/telemetry/setup.js +1 -1
  243. package/dist/esm/telemetry/tracing.js +11 -1
  244. package/dist/esm/tools/agent_tool.js +4 -5
  245. package/dist/esm/tools/base_tool.js +11 -3
  246. package/dist/esm/tools/base_toolset.js +4 -4
  247. package/dist/esm/tools/built_in_tool.js +51 -0
  248. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  249. package/dist/esm/tools/example_tool.js +1 -1
  250. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  251. package/dist/esm/tools/function_tool.js +6 -3
  252. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  253. package/dist/esm/tools/google_search_tool.js +3 -6
  254. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  255. package/dist/esm/tools/load_web_page.js +10 -170
  256. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  257. package/dist/esm/tools/mcp/mcp_session_manager.js +14 -8
  258. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +285 -3
  259. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  260. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +43 -0
  261. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +93 -0
  262. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -12
  263. package/dist/esm/tools/openapi_tool/common/common.js +112 -0
  264. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  265. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +81 -14
  266. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -33
  267. package/dist/esm/tools/openapi_tool/openapi_toolset.js +14 -2
  268. package/dist/esm/tools/openapi_tool/rest_api_tool.js +105 -46
  269. package/dist/esm/tools/preload_memory_tool.js +1 -1
  270. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  271. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  272. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  273. package/dist/esm/tools/skill/skill_toolset.js +2 -0
  274. package/dist/{web/context/base_context_compactor.js → esm/tools/tool_context.js} +8 -0
  275. package/dist/esm/tools/url_context_tool.js +3 -6
  276. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  277. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  278. package/dist/{web/auth/base_auth_provider.js → esm/tools/webmcp/index.js} +3 -0
  279. package/dist/esm/tools/webmcp/webmcp_tool.js +131 -0
  280. package/dist/esm/tools/webmcp/webmcp_toolset.js +89 -0
  281. package/dist/{web/utils/crypto_shim.js → esm/tools/webmcp/webmcp_types.js} +10 -6
  282. package/dist/esm/utils/case_utils.js +49 -1
  283. package/dist/esm/utils/client_labels.js +65 -0
  284. package/dist/esm/utils/crypto_shim.js +14 -0
  285. package/dist/esm/utils/gemini_schema_util.js +102 -9
  286. package/dist/esm/utils/hash_utils.js +45 -0
  287. package/dist/esm/utils/live_connection_utils.js +11 -10
  288. package/dist/esm/utils/logger.js +14 -40
  289. package/dist/esm/utils/logger_browser.js +58 -0
  290. package/dist/esm/utils/logger_node.js +81 -0
  291. package/dist/esm/utils/model_name.js +15 -2
  292. package/dist/esm/utils/redact_inline_data.js +19 -0
  293. package/dist/esm/utils/redact_uri.js +15 -1
  294. package/dist/esm/utils/schema.js +1 -1
  295. package/dist/esm/utils/simple_zod_to_json.js +5 -0
  296. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  297. package/dist/esm/version.js +1 -1
  298. package/dist/esm/workflow/base_node.js +1 -1
  299. package/dist/esm/workflow/graph.js +1 -1
  300. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  301. package/dist/esm/workflow/request_input.js +1 -1
  302. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  303. package/dist/esm/workflow/workflow.js +1 -1
  304. package/dist/types/a2a/a2a_event.d.ts +7 -10
  305. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  306. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  307. package/dist/types/a2a/agent_card.d.ts +9 -0
  308. package/dist/types/a2a/agent_executor.d.ts +1 -1
  309. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  310. package/dist/types/a2a/auth.d.ts +5 -1
  311. package/dist/types/a2a/executor_context.d.ts +7 -1
  312. package/dist/types/a2a/index.d.ts +1 -1
  313. package/dist/types/a2a/request_metadata.d.ts +22 -0
  314. package/dist/types/agents/base_agent.d.ts +19 -16
  315. package/dist/types/agents/context.d.ts +8 -0
  316. package/dist/types/agents/functions.d.ts +72 -6
  317. package/dist/types/agents/invocation_context.d.ts +11 -3
  318. package/dist/types/agents/llm_agent.d.ts +20 -7
  319. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  320. package/dist/types/agents/processors/nl_planning_processor.d.ts +30 -0
  321. package/dist/types/agents/readonly_context.d.ts +4 -0
  322. package/dist/types/agents/run_config.d.ts +21 -8
  323. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  324. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  325. package/dist/types/auth/auth_credential.d.ts +22 -8
  326. package/dist/types/auth/auth_handler.d.ts +12 -1
  327. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  328. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  329. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  330. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  331. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  332. package/dist/types/code_executors/docker_container.d.ts +79 -0
  333. package/dist/types/common.d.ts +37 -23
  334. package/dist/types/context/compaction_utils.d.ts +9 -1
  335. package/dist/types/errors/already_exists_error.d.ts +14 -0
  336. package/dist/types/errors/input_validation_error.d.ts +14 -0
  337. package/dist/types/errors/not_found_error.d.ts +14 -0
  338. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  339. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  340. package/dist/types/events/event_actions.d.ts +13 -0
  341. package/dist/types/examples/base_example_provider.d.ts +2 -2
  342. package/dist/types/examples/example.d.ts +75 -0
  343. package/dist/types/examples/example_util.d.ts +13 -2
  344. package/dist/types/examples/index.d.ts +18 -0
  345. package/dist/types/examples/vertex_ai_example_store.d.ts +7 -0
  346. package/dist/types/index.d.ts +31 -1
  347. package/dist/types/memory/memory_entry.d.ts +15 -0
  348. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  349. package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +9 -0
  350. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  351. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  352. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  353. package/dist/types/models/chrome_prompt_utils.d.ts +97 -0
  354. package/dist/types/models/google_llm.d.ts +8 -3
  355. package/dist/types/models/registry.d.ts +3 -2
  356. package/dist/types/planners/base_planner.d.ts +50 -0
  357. package/dist/types/planners/built_in_planner.d.ts +53 -0
  358. package/dist/types/planners/plan_re_act_planner.d.ts +21 -0
  359. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  360. package/dist/types/plugins/base_plugin.d.ts +64 -62
  361. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  362. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  363. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  364. package/dist/types/runner/runner.d.ts +7 -8
  365. package/dist/types/sessions/database_session_service.d.ts +1 -1
  366. package/dist/types/sessions/db/operations.d.ts +13 -1
  367. package/dist/types/sessions/db/schema.d.ts +23 -9
  368. package/dist/types/skills/skill_registry.d.ts +8 -0
  369. package/dist/types/tools/base_tool.d.ts +11 -0
  370. package/dist/types/tools/base_toolset.d.ts +3 -4
  371. package/dist/types/tools/built_in_tool.d.ts +41 -0
  372. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  373. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  374. package/dist/types/tools/function_tool.d.ts +42 -9
  375. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  376. package/dist/types/tools/google_search_tool.d.ts +4 -4
  377. package/dist/types/tools/long_running_tool.d.ts +1 -1
  378. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  379. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +115 -1
  380. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +31 -2
  381. package/dist/types/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.d.ts +35 -0
  382. package/dist/types/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.d.ts +54 -0
  383. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  384. package/dist/types/tools/openapi_tool/common/common.d.ts +60 -0
  385. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +7 -0
  386. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +56 -2
  387. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +73 -5
  388. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +11 -0
  389. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +42 -8
  390. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  391. package/dist/types/tools/resume_inputs.d.ts +25 -0
  392. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  393. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  394. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  395. package/dist/types/tools/tool_context.d.ts +19 -0
  396. package/dist/types/tools/url_context_tool.d.ts +4 -4
  397. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  398. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  399. package/dist/types/tools/webmcp/index.d.ts +12 -0
  400. package/dist/types/tools/webmcp/webmcp_tool.d.ts +47 -0
  401. package/dist/types/tools/webmcp/webmcp_toolset.d.ts +67 -0
  402. package/dist/types/tools/webmcp/webmcp_types.d.ts +69 -0
  403. package/dist/types/utils/case_utils.d.ts +36 -0
  404. package/dist/types/utils/client_labels.d.ts +33 -0
  405. package/dist/types/utils/crypto_shim.d.ts +16 -0
  406. package/dist/types/utils/gemini_schema_util.d.ts +18 -7
  407. package/dist/types/utils/hash_utils.d.ts +25 -0
  408. package/dist/types/utils/logger.d.ts +33 -3
  409. package/dist/types/utils/logger_browser.d.ts +28 -0
  410. package/dist/types/utils/logger_node.d.ts +20 -0
  411. package/dist/types/utils/model_name.d.ts +30 -2
  412. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  413. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  414. package/dist/types/utils/redact_uri.d.ts +12 -8
  415. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  416. package/dist/types/version.d.ts +1 -1
  417. package/dist/web/index_web.js +337 -3
  418. package/dist/web/index_web.js.map +7 -0
  419. package/package.json +24 -15
  420. package/dist/web/a2a/a2a_event.js +0 -290
  421. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  422. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  423. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  424. package/dist/web/a2a/agent_card.js +0 -373
  425. package/dist/web/a2a/agent_executor.js +0 -246
  426. package/dist/web/a2a/agent_to_a2a.js +0 -126
  427. package/dist/web/a2a/auth.js +0 -41
  428. package/dist/web/a2a/event_converter_utils.js +0 -242
  429. package/dist/web/a2a/event_processor_utils.js +0 -209
  430. package/dist/web/a2a/executor_context.js +0 -28
  431. package/dist/web/a2a/index.js +0 -20
  432. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  433. package/dist/web/a2a/part_converter_utils.js +0 -201
  434. package/dist/web/agents/active_streaming_tool.js +0 -25
  435. package/dist/web/agents/base_agent.js +0 -462
  436. package/dist/web/agents/context.js +0 -146
  437. package/dist/web/agents/framework_function_calls.js +0 -34
  438. package/dist/web/agents/functions.js +0 -462
  439. package/dist/web/agents/instructions.js +0 -188
  440. package/dist/web/agents/invocation_context.js +0 -126
  441. package/dist/web/agents/live_request_queue.js +0 -151
  442. package/dist/web/agents/llm_agent.js +0 -1514
  443. package/dist/web/agents/loop_agent.js +0 -131
  444. package/dist/web/agents/parallel_agent.js +0 -122
  445. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  446. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  447. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  448. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  449. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  450. package/dist/web/agents/processors/content_request_processor.js +0 -73
  451. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  452. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  453. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  454. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  455. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  456. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  457. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  458. package/dist/web/agents/readonly_context.js +0 -60
  459. package/dist/web/agents/routed_agent.js +0 -161
  460. package/dist/web/agents/run_config.js +0 -74
  461. package/dist/web/agents/sequential_agent.js +0 -141
  462. package/dist/web/agents/transcription_entry.js +0 -7
  463. package/dist/web/agents/user_input_request.js +0 -135
  464. package/dist/web/apps/app.js +0 -52
  465. package/dist/web/apps/resumability_config.js +0 -33
  466. package/dist/web/artifacts/base_artifact_service.js +0 -7
  467. package/dist/web/artifacts/file_artifact_service.js +0 -568
  468. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  469. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  470. package/dist/web/artifacts/registry.js +0 -36
  471. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  472. package/dist/web/auth/auth_credential.js +0 -18
  473. package/dist/web/auth/auth_handler.js +0 -151
  474. package/dist/web/auth/auth_preprocessor.js +0 -184
  475. package/dist/web/auth/auth_provider_registry.js +0 -37
  476. package/dist/web/auth/auth_schemes.js +0 -36
  477. package/dist/web/auth/auth_tool.js +0 -7
  478. package/dist/web/auth/credential_response_binding.js +0 -91
  479. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  480. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  481. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  482. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  483. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  484. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  485. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  486. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  487. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  488. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  489. package/dist/web/code_executors/base_code_executor.js +0 -68
  490. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  491. package/dist/web/code_executors/code_execution_utils.js +0 -131
  492. package/dist/web/code_executors/code_executor_context.js +0 -174
  493. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  494. package/dist/web/common.js +0 -452
  495. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  496. package/dist/web/context/anchored_context_compactor.js +0 -120
  497. package/dist/web/context/compaction_utils.js +0 -42
  498. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  499. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  500. package/dist/web/context/token_based_context_compactor.js +0 -118
  501. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  502. package/dist/web/context/truncating_context_compactor.js +0 -34
  503. package/dist/web/environment/base_environment.js +0 -71
  504. package/dist/web/environment/local_environment.js +0 -165
  505. package/dist/web/events/compacted_event.js +0 -51
  506. package/dist/web/events/event.js +0 -208
  507. package/dist/web/events/event_actions.js +0 -74
  508. package/dist/web/events/structured_events.js +0 -79
  509. package/dist/web/examples/base_example_provider.js +0 -32
  510. package/dist/web/examples/example.js +0 -7
  511. package/dist/web/examples/example_util.js +0 -83
  512. package/dist/web/features/feature_registry.js +0 -115
  513. package/dist/web/index.js +0 -57
  514. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  515. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  516. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  517. package/dist/web/integrations/agent_registry/types.js +0 -20
  518. package/dist/web/memory/base_memory_service.js +0 -7
  519. package/dist/web/memory/in_memory_memory_service.js +0 -89
  520. package/dist/web/memory/memory_entry.js +0 -7
  521. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  522. package/dist/web/models/apigee_llm.js +0 -227
  523. package/dist/web/models/base_llm.js +0 -78
  524. package/dist/web/models/base_llm_connection.js +0 -7
  525. package/dist/web/models/gemini_llm_connection.js +0 -183
  526. package/dist/web/models/google_llm.js +0 -396
  527. package/dist/web/models/interactions_utils.js +0 -745
  528. package/dist/web/models/llm_request.js +0 -57
  529. package/dist/web/models/llm_response.js +0 -48
  530. package/dist/web/models/registry.js +0 -100
  531. package/dist/web/models/routed_llm.js +0 -112
  532. package/dist/web/plugins/base_plugin.js +0 -305
  533. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  534. package/dist/web/plugins/logging_plugin.js +0 -241
  535. package/dist/web/plugins/plugin_manager.js +0 -318
  536. package/dist/web/plugins/security_plugin.js +0 -148
  537. package/dist/web/runner/in_memory_runner.js +0 -50
  538. package/dist/web/runner/runner.js +0 -747
  539. package/dist/web/sessions/base_session_service.js +0 -123
  540. package/dist/web/sessions/database_session_service.js +0 -440
  541. package/dist/web/sessions/db/operations.js +0 -124
  542. package/dist/web/sessions/db/schema.js +0 -216
  543. package/dist/web/sessions/in_memory_session_service.js +0 -251
  544. package/dist/web/sessions/registry.js +0 -38
  545. package/dist/web/sessions/session.js +0 -23
  546. package/dist/web/sessions/state.js +0 -159
  547. package/dist/web/sessions/state_write_order.js +0 -74
  548. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  549. package/dist/web/skills/gcp_skill_registry.js +0 -80
  550. package/dist/web/skills/loader.js +0 -372
  551. package/dist/web/skills/prompt.js +0 -34
  552. package/dist/web/skills/skill.js +0 -67
  553. package/dist/web/skills/skill_registry.js +0 -7
  554. package/dist/web/telemetry/google_cloud.js +0 -99
  555. package/dist/web/telemetry/setup.js +0 -89
  556. package/dist/web/telemetry/tracing.js +0 -304
  557. package/dist/web/tools/agent_tool.js +0 -150
  558. package/dist/web/tools/base_tool.js +0 -116
  559. package/dist/web/tools/base_toolset.js +0 -62
  560. package/dist/web/tools/consolidate_context_tool.js +0 -55
  561. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  562. package/dist/web/tools/example_tool.js +0 -46
  563. package/dist/web/tools/exit_loop_tool.js +0 -47
  564. package/dist/web/tools/finish_task_tool.js +0 -92
  565. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  566. package/dist/web/tools/function_tool.js +0 -151
  567. package/dist/web/tools/get_user_choice_tool.js +0 -27
  568. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  569. package/dist/web/tools/google_search_tool.js +0 -55
  570. package/dist/web/tools/load_artifacts_tool.js +0 -159
  571. package/dist/web/tools/load_memory_tool.js +0 -83
  572. package/dist/web/tools/long_running_tool.js +0 -58
  573. package/dist/web/tools/mcp/index.js +0 -11
  574. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  575. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  576. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  577. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  578. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  579. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  580. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  581. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  582. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  583. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  584. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  585. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  586. package/dist/web/tools/preload_memory_tool.js +0 -81
  587. package/dist/web/tools/request_input_tool.js +0 -29
  588. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  589. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  590. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  591. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  592. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  593. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  594. package/dist/web/tools/skill/skill_toolset.js +0 -185
  595. package/dist/web/tools/tool_confirmation.js +0 -43
  596. package/dist/web/tools/url_context_tool.js +0 -48
  597. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  598. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  599. package/dist/web/utils/async_hooks_shim.js +0 -28
  600. package/dist/web/utils/async_queue.js +0 -88
  601. package/dist/web/utils/branch_trie.js +0 -16
  602. package/dist/web/utils/case_utils.js +0 -28
  603. package/dist/web/utils/client_labels.js +0 -70
  604. package/dist/web/utils/deprecated.js +0 -40
  605. package/dist/web/utils/env_aware_utils.js +0 -115
  606. package/dist/web/utils/error_utils.js +0 -101
  607. package/dist/web/utils/experimental.js +0 -54
  608. package/dist/web/utils/failover_utils.js +0 -100
  609. package/dist/web/utils/file_extension_utils.js +0 -55
  610. package/dist/web/utils/file_utils.js +0 -108
  611. package/dist/web/utils/gemini_schema_util.js +0 -177
  612. package/dist/web/utils/genai_schema_to_json.js +0 -80
  613. package/dist/web/utils/live_connection_utils.js +0 -257
  614. package/dist/web/utils/logger.js +0 -140
  615. package/dist/web/utils/model_name.js +0 -75
  616. package/dist/web/utils/object_notation_utils.js +0 -54
  617. package/dist/web/utils/optional_peer.js +0 -38
  618. package/dist/web/utils/output_schema_utils.js +0 -18
  619. package/dist/web/utils/partial_copy.js +0 -26
  620. package/dist/web/utils/redact_uri.js +0 -39
  621. package/dist/web/utils/schema.js +0 -167
  622. package/dist/web/utils/simple_zod_to_json.js +0 -134
  623. package/dist/web/utils/streaming_utils.js +0 -438
  624. package/dist/web/utils/task.js +0 -38
  625. package/dist/web/utils/variant_utils.js +0 -23
  626. package/dist/web/utils/vertex_ai_utils.js +0 -27
  627. package/dist/web/workflow/base_node.js +0 -215
  628. package/dist/web/workflow/branch_path.js +0 -77
  629. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  630. package/dist/web/workflow/errors.js +0 -140
  631. package/dist/web/workflow/graph.js +0 -127
  632. package/dist/web/workflow/index.js +0 -80
  633. package/dist/web/workflow/node.js +0 -87
  634. package/dist/web/workflow/node_builders.js +0 -40
  635. package/dist/web/workflow/node_context.js +0 -236
  636. package/dist/web/workflow/node_error_event.js +0 -86
  637. package/dist/web/workflow/node_runner.js +0 -481
  638. package/dist/web/workflow/node_state.js +0 -43
  639. package/dist/web/workflow/node_status.js +0 -20
  640. package/dist/web/workflow/nodes/function_node.js +0 -221
  641. package/dist/web/workflow/nodes/join_node.js +0 -47
  642. package/dist/web/workflow/nodes/node_tool.js +0 -131
  643. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  644. package/dist/web/workflow/nodes/tool_node.js +0 -126
  645. package/dist/web/workflow/request_input.js +0 -36
  646. package/dist/web/workflow/retry_config.js +0 -43
  647. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  648. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  649. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  650. package/dist/web/workflow/trigger.js +0 -7
  651. package/dist/web/workflow/utils/graph_parser.js +0 -188
  652. package/dist/web/workflow/utils/graph_validation.js +0 -189
  653. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  654. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  655. package/dist/web/workflow/utils/retry_utils.js +0 -82
  656. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  657. package/dist/web/workflow/workflow.js +0 -529
  658. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Content } from '@google/genai';
7
+ import { BaseExampleProvider } from './base_example_provider.js';
7
8
  /**
8
9
  * A few-shot example.
9
10
  */
@@ -17,3 +18,77 @@ export interface Example {
17
18
  */
18
19
  output: Content[];
19
20
  }
21
+ /**
22
+ * Request payload for searching examples in Vertex AI Example Store.
23
+ */
24
+ export interface SearchExamplesRequest {
25
+ storedContentsExampleParameters: {
26
+ contentSearchKey: {
27
+ contents: Content[];
28
+ searchKeyGenerationMethod: {
29
+ lastEntry: Record<string, never>;
30
+ };
31
+ };
32
+ };
33
+ topK: number;
34
+ exampleStore: string;
35
+ }
36
+ /**
37
+ * A stored example returned inside a {@link SearchExamplesResult}.
38
+ */
39
+ export interface StoredContentsExample {
40
+ searchKey?: string;
41
+ contentsExample?: {
42
+ expectedContents?: Array<{
43
+ content?: Content;
44
+ }>;
45
+ };
46
+ }
47
+ /**
48
+ * Single result item returned by {@link ExampleStoreApiClient.searchExamples}.
49
+ */
50
+ export interface SearchExamplesResult {
51
+ similarityScore?: number;
52
+ example?: {
53
+ storedContentsExample?: StoredContentsExample;
54
+ };
55
+ }
56
+ /**
57
+ * Response returned by {@link ExampleStoreApiClient.searchExamples}.
58
+ */
59
+ export interface SearchExamplesResponse {
60
+ results?: SearchExamplesResult[];
61
+ }
62
+ /**
63
+ * API client interface for the Vertex AI Example Store.
64
+ *
65
+ * The Python SDK obtains this client from its bundled `vertexai` dependency.
66
+ * adk-js does not bundle that dependency, so the caller injects a client that
67
+ * reaches the Vertex AI Example Store API.
68
+ */
69
+ export interface ExampleStoreApiClient {
70
+ searchExamples(request: SearchExamplesRequest): Promise<SearchExamplesResponse>;
71
+ }
72
+ /**
73
+ * Provides examples from a Vertex AI Example Store.
74
+ */
75
+ export declare class VertexAiExampleStore extends BaseExampleProvider {
76
+ readonly examplesStoreName: string;
77
+ private readonly apiClient;
78
+ /**
79
+ * Initializes the VertexAiExampleStore.
80
+ *
81
+ * @param examplesStoreName The resource name of the vertex example store, in
82
+ * the format of
83
+ * `projects/{project}/locations/{location}/exampleStores/{example_store}`.
84
+ * @param apiClient A client that reaches the Vertex AI Example Store API.
85
+ * adk-js does not bundle the `vertexai` dependency the Python SDK relies
86
+ * on, so the caller supplies this client.
87
+ */
88
+ constructor(examplesStoreName: string, apiClient: ExampleStoreApiClient);
89
+ /**
90
+ * Retrieves relevant examples from the Vertex AI Example Store for the given
91
+ * query.
92
+ */
93
+ getExamples(query: string): Promise<Example[]>;
94
+ }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Session } from '../sessions/session.js';
6
7
  import { BaseExampleProvider } from './base_example_provider.js';
7
8
  import { Example } from './example.js';
8
9
  /**
@@ -20,6 +21,15 @@ import { Example } from './example.js';
20
21
  * suitable for inclusion in a system instruction.
21
22
  */
22
23
  export declare function convertExamplesToText(examples: Example[], model?: string): string;
24
+ /**
25
+ * Gets the latest message from the user.
26
+ *
27
+ * @param session - The session to inspect.
28
+ * @returns The latest message from the user. If not found, returns an empty
29
+ * string.
30
+ */
31
+ export declare function getLatestMessageFromUser(session: Session): string;
32
+ export declare const _getLatestMessageFromUser: typeof getLatestMessageFromUser;
23
33
  /**
24
34
  * Builds the few-shot portion of a system instruction from a list of examples
25
35
  * or a {@link BaseExampleProvider}.
@@ -31,8 +41,9 @@ export declare function convertExamplesToText(examples: Example[], model?: strin
31
41
  * when `examples` is a provider. Ignored when `examples` is an array.
32
42
  * @param model - Optional model name forwarded to
33
43
  * {@link convertExamplesToText} to select the function-call fence style.
34
- * @returns A formatted string ready to be appended to a system instruction.
44
+ * @returns A promise resolving to a formatted string ready to be appended to a
45
+ * system instruction.
35
46
  * @throws {Error} When `examples` is neither an array nor a
36
47
  * {@link BaseExampleProvider}.
37
48
  */
38
- export declare function buildExampleSi(examples: Example[] | BaseExampleProvider, query: string, model?: string): string;
49
+ export declare function buildExampleSi(examples: Example[] | BaseExampleProvider, query: string, model?: string): Promise<string>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Examples subsystem barrel export.
8
+ *
9
+ * Re-exports all `examples` modules (`Example`, `BaseExampleProvider`,
10
+ * `VertexAiExampleStore`, `example_util`) alongside compatibility references
11
+ * for `BaseCodeExecutor`, `BuiltInCodeExecutor`, `CodeExecutorContext`,
12
+ * `ContainerCodeExecutor`, `UnsafeLocalCodeExecutor`, `VertexAiCodeExecutor`,
13
+ * and `code_execution_utils`.
14
+ */
15
+ export * from './base_example_provider.js';
16
+ export * from './example.js';
17
+ export * from './example_util.js';
18
+ export * from './vertex_ai_example_store.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export { VertexAiExampleStore } from './example.js';
7
+ export type { ExampleStoreApiClient, SearchExamplesRequest, SearchExamplesResponse, SearchExamplesResult, StoredContentsExample, } from './example.js';
@@ -11,17 +11,47 @@ 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 { credentialToParam, dictToAuthScheme, INTERNAL_AUTH_PREFIX, openidDictToSchemeCredential, openidUrlToSchemeCredential, serviceAccountDictToSchemeCredential, serviceAccountSchemeCredential, tokenToSchemeCredential, } from './tools/openapi_tool/auth/auth_helpers.js';
33
+ export { AutoAuthCredentialExchanger } from './tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js';
34
+ export type { CustomCredentialExchangers } from './tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js';
35
+ export { AuthCredentialMissingError, BaseAuthCredentialExchanger, } from './tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js';
36
+ export { exchangeCredential, OAuth2BearerExchanger, } from './tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js';
37
+ export { ServiceAccountCredentialExchanger } from './tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js';
38
+ export { createApiParameter, generateParamDoc, generateReturnDoc, getTypeHint, } from './tools/openapi_tool/common/common.js';
39
+ export type { ApiParameterInit } from './tools/openapi_tool/common/common.js';
40
+ export { OpenApiSpecParser } from './tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js';
41
+ export type { OperationEndpoint, ParsedOperation, } from './tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js';
42
+ export { OperationParser } from './tools/openapi_tool/openapi_spec_parser/operation_parser.js';
43
+ export type { ApiParameter } from './tools/openapi_tool/openapi_spec_parser/operation_parser.js';
44
+ export { ToolAuthHandler, ToolContextCredentialStore, } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
45
+ export type { AuthPreparationResult, ToolAuthHandlerOptions, } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
46
+ export { OpenAPIToolset } from './tools/openapi_tool/openapi_toolset.js';
47
+ export { createRestApiTool, createRestApiToolFromJson, RestApiTool, } from './tools/openapi_tool/rest_api_tool.js';
48
+ export type { ParsedOperationInput } from './tools/openapi_tool/rest_api_tool.js';
49
+ export { FilesRetrieval } from './tools/retrieval/files_retrieval.js';
50
+ export type { FilesRetrievalConstructorParams, FilesRetrievalParams, } from './tools/retrieval/files_retrieval.js';
51
+ export { LoadSkillResourceTool } from './tools/skill/load_skill_resource_tool.js';
23
52
  export { RunSkillInlineScriptErrorCode, RunSkillInlineScriptTool, } from './tools/skill/run_skill_inline_script_tool.js';
24
53
  export { RunSkillScriptTool } from './tools/skill/run_skill_script_tool.js';
54
+ export { SkillToolset } from './tools/skill/skill_toolset.js';
25
55
  export * from './integrations/agent_registry/agent_registry.js';
26
56
  export * from './telemetry/google_cloud.js';
27
57
  export * from './telemetry/setup.js';
@@ -15,6 +15,21 @@ export interface MemoryEntry {
15
15
  * The content of the memory entry, as originally produced during a session.
16
16
  */
17
17
  content: Content;
18
+ /**
19
+ * The unique identifier of the memory.
20
+ *
21
+ * When set on an entry passed to `addMemory`, a service that supports
22
+ * caller-chosen identifiers uses it as the last component of the created
23
+ * memory's resource name instead of generating one.
24
+ */
25
+ id?: string;
26
+ /**
27
+ * Optional custom metadata associated with the memory.
28
+ *
29
+ * A service that also accepts request-level metadata merges this on top of
30
+ * it, so a key declared here wins over the same key on the request.
31
+ */
32
+ customMetadata?: Record<string, unknown>;
18
33
  /**
19
34
  * The author of the memory. Common values are `'user'` and `'model'`, but
20
35
  * this can also be the name of an agent when the content was produced by a
@@ -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[];
@@ -38,6 +38,15 @@ export declare class VertexAiMemoryBankService implements BaseMemoryService {
38
38
  }): Promise<void>;
39
39
  /**
40
40
  * Adds explicit memory items using Vertex Memory Bank.
41
+ *
42
+ * When a `MemoryEntry.id` is set, it is forwarded as the `memoryId` of the
43
+ * created memory, so the caller picks the last component of the memory
44
+ * resource name instead of letting the service generate one. An explicit
45
+ * `customMetadata['memoryId']` takes precedence over `MemoryEntry.id`.
46
+ *
47
+ * The id is forwarded unvalidated, so an id the API rejects fails the create
48
+ * call. Vertex accepts up to 63 characters from `[a-z0-9-]`, starting with a
49
+ * letter and ending with a letter or number.
41
50
  */
42
51
  addMemory(request: {
43
52
  appName: string;
@@ -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
+ }