@softactivate/adk 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/a2a/a2a_event.js +317 -0
  4. package/dist/cjs/a2a/a2a_remote_agent.js +179 -0
  5. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +205 -0
  6. package/dist/cjs/a2a/a2a_remote_agent_utils.js +165 -0
  7. package/dist/cjs/a2a/agent_card.js +380 -0
  8. package/dist/cjs/a2a/agent_executor.js +221 -0
  9. package/dist/cjs/a2a/agent_to_a2a.js +115 -0
  10. package/dist/cjs/a2a/event_converter_utils.js +201 -0
  11. package/dist/cjs/a2a/event_processor_utils.js +180 -0
  12. package/dist/cjs/a2a/executor_context.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +126 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +223 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +44 -0
  16. package/dist/cjs/agents/base_agent.js +294 -0
  17. package/dist/cjs/agents/context.js +180 -0
  18. package/dist/cjs/agents/functions.js +525 -0
  19. package/dist/cjs/agents/instructions.js +110 -0
  20. package/dist/cjs/agents/invocation_context.js +110 -0
  21. package/dist/cjs/agents/live_request_queue.js +136 -0
  22. package/dist/cjs/agents/llm_agent.js +722 -0
  23. package/dist/cjs/agents/loop_agent.js +84 -0
  24. package/dist/cjs/agents/parallel_agent.js +95 -0
  25. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +132 -0
  26. package/dist/cjs/agents/processors/base_llm_processor.js +44 -0
  27. package/dist/cjs/agents/processors/basic_llm_request_processor.js +68 -0
  28. package/dist/cjs/agents/processors/code_execution_request_processor.js +391 -0
  29. package/dist/cjs/agents/processors/content_processor_utils.js +338 -0
  30. package/dist/cjs/agents/processors/content_request_processor.js +87 -0
  31. package/dist/cjs/agents/processors/context_compactor_request_processor.js +70 -0
  32. package/dist/cjs/agents/processors/identity_llm_request_processor.js +54 -0
  33. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +85 -0
  34. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +165 -0
  35. package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
  36. package/dist/cjs/agents/readonly_context.js +83 -0
  37. package/dist/cjs/agents/routed_agent.js +97 -0
  38. package/dist/cjs/agents/run_config.js +71 -0
  39. package/dist/cjs/agents/sequential_agent.js +106 -0
  40. package/dist/cjs/agents/transcription_entry.js +27 -0
  41. package/dist/cjs/artifacts/base_artifact_service.js +27 -0
  42. package/dist/cjs/artifacts/file_artifact_service.js +522 -0
  43. package/dist/cjs/artifacts/gcs_artifact_service.js +227 -0
  44. package/dist/cjs/artifacts/in_memory_artifact_service.js +181 -0
  45. package/dist/cjs/artifacts/registry.js +55 -0
  46. package/dist/cjs/auth/auth_credential.js +46 -0
  47. package/dist/cjs/auth/auth_handler.js +159 -0
  48. package/dist/cjs/auth/auth_preprocessor.js +178 -0
  49. package/dist/cjs/auth/auth_provider_registry.js +61 -0
  50. package/dist/cjs/auth/auth_schemes.js +62 -0
  51. package/dist/cjs/auth/auth_tool.js +27 -0
  52. package/dist/cjs/auth/base_auth_provider.js +27 -0
  53. package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
  54. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
  55. package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
  56. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +40 -0
  57. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -0
  58. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
  59. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
  60. package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
  61. package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
  62. package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
  63. package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
  64. package/dist/cjs/code_executors/base_code_executor.js +92 -0
  65. package/dist/cjs/code_executors/built_in_code_executor.js +74 -0
  66. package/dist/cjs/code_executors/code_execution_utils.js +161 -0
  67. package/dist/cjs/code_executors/code_executor_context.js +198 -0
  68. package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
  69. package/dist/cjs/common.js +362 -0
  70. package/dist/cjs/context/base_context_compactor.js +27 -0
  71. package/dist/cjs/context/summarizers/base_summarizer.js +27 -0
  72. package/dist/cjs/context/summarizers/llm_summarizer.js +93 -0
  73. package/dist/cjs/context/token_based_context_compactor.js +135 -0
  74. package/dist/cjs/context/truncating_context_compactor.js +58 -0
  75. package/dist/cjs/events/compacted_event.js +53 -0
  76. package/dist/cjs/events/event.js +146 -0
  77. package/dist/cjs/events/event_actions.js +83 -0
  78. package/dist/cjs/events/structured_events.js +105 -0
  79. package/dist/cjs/examples/base_example_provider.js +56 -0
  80. package/dist/cjs/examples/example.js +27 -0
  81. package/dist/cjs/examples/example_util.js +107 -0
  82. package/dist/cjs/features/feature_registry.js +141 -0
  83. package/dist/cjs/index.js +94 -0
  84. package/dist/cjs/index_web.js +33 -0
  85. package/dist/cjs/memory/base_memory_service.js +27 -0
  86. package/dist/cjs/memory/in_memory_memory_service.js +99 -0
  87. package/dist/cjs/memory/memory_entry.js +27 -0
  88. package/dist/cjs/models/apigee_llm.js +182 -0
  89. package/dist/cjs/models/base_llm.js +102 -0
  90. package/dist/cjs/models/base_llm_connection.js +27 -0
  91. package/dist/cjs/models/gemini_llm_connection.js +133 -0
  92. package/dist/cjs/models/google_llm.js +291 -0
  93. package/dist/cjs/models/llm_request.js +82 -0
  94. package/dist/cjs/models/llm_response.js +73 -0
  95. package/dist/cjs/models/registry.js +123 -0
  96. package/dist/cjs/models/routed_llm.js +99 -0
  97. package/dist/cjs/package.json +1 -0
  98. package/dist/cjs/plugins/base_plugin.js +295 -0
  99. package/dist/cjs/plugins/logging_plugin.js +259 -0
  100. package/dist/cjs/plugins/plugin_manager.js +310 -0
  101. package/dist/cjs/plugins/security_plugin.js +156 -0
  102. package/dist/cjs/runner/in_memory_runner.js +58 -0
  103. package/dist/cjs/runner/runner.js +380 -0
  104. package/dist/cjs/sessions/base_session_service.js +121 -0
  105. package/dist/cjs/sessions/database_session_service.js +367 -0
  106. package/dist/cjs/sessions/db/operations.js +109 -0
  107. package/dist/cjs/sessions/db/schema.js +204 -0
  108. package/dist/cjs/sessions/in_memory_session_service.js +210 -0
  109. package/dist/cjs/sessions/registry.js +49 -0
  110. package/dist/cjs/sessions/session.js +48 -0
  111. package/dist/cjs/sessions/state.js +101 -0
  112. package/dist/cjs/skills/loader.js +283 -0
  113. package/dist/cjs/skills/prompt.js +58 -0
  114. package/dist/cjs/skills/skill.js +78 -0
  115. package/dist/cjs/telemetry/google_cloud.js +83 -0
  116. package/dist/cjs/telemetry/setup.js +105 -0
  117. package/dist/cjs/telemetry/tracing.js +253 -0
  118. package/dist/cjs/tools/agent_tool.js +219 -0
  119. package/dist/cjs/tools/base_tool.js +122 -0
  120. package/dist/cjs/tools/base_toolset.js +86 -0
  121. package/dist/cjs/tools/exit_loop_tool.js +63 -0
  122. package/dist/cjs/tools/forwarding_artifact_service.js +87 -0
  123. package/dist/cjs/tools/function_tool.js +109 -0
  124. package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
  125. package/dist/cjs/tools/google_search_tool.js +80 -0
  126. package/dist/cjs/tools/load_artifacts_tool.js +188 -0
  127. package/dist/cjs/tools/load_memory_tool.js +107 -0
  128. package/dist/cjs/tools/long_running_tool.js +63 -0
  129. package/dist/cjs/tools/mcp/mcp_session_manager.js +77 -0
  130. package/dist/cjs/tools/mcp/mcp_tool.js +68 -0
  131. package/dist/cjs/tools/mcp/mcp_toolset.js +80 -0
  132. package/dist/cjs/tools/preload_memory_tool.js +109 -0
  133. package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
  134. package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
  135. package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
  136. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
  137. package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
  138. package/dist/cjs/tools/skill/skill_toolset.js +163 -0
  139. package/dist/cjs/tools/tool_confirmation.js +49 -0
  140. package/dist/cjs/tools/url_context_tool.js +73 -0
  141. package/dist/cjs/tools/vertex_ai_search_tool.js +127 -0
  142. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
  143. package/dist/cjs/utils/client_labels.js +56 -0
  144. package/dist/cjs/utils/env_aware_utils.js +92 -0
  145. package/dist/cjs/utils/experimental.js +74 -0
  146. package/dist/cjs/utils/failover_utils.js +93 -0
  147. package/dist/cjs/utils/file_extension_utils.js +77 -0
  148. package/dist/cjs/utils/file_utils.js +94 -0
  149. package/dist/cjs/utils/gemini_schema_util.js +152 -0
  150. package/dist/cjs/utils/logger.js +173 -0
  151. package/dist/cjs/utils/model_name.js +90 -0
  152. package/dist/cjs/utils/object_notation_utils.js +78 -0
  153. package/dist/cjs/utils/simple_zod_to_json.js +150 -0
  154. package/dist/cjs/utils/streaming_utils.js +330 -0
  155. package/dist/cjs/utils/variant_utils.js +49 -0
  156. package/dist/cjs/version.js +39 -0
  157. package/dist/esm/a2a/a2a_event.js +271 -0
  158. package/dist/esm/a2a/a2a_remote_agent.js +155 -0
  159. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +184 -0
  160. package/dist/esm/a2a/a2a_remote_agent_utils.js +133 -0
  161. package/dist/esm/a2a/agent_card.js +342 -0
  162. package/dist/esm/a2a/agent_executor.js +204 -0
  163. package/dist/esm/a2a/agent_to_a2a.js +82 -0
  164. package/dist/esm/a2a/event_converter_utils.js +189 -0
  165. package/dist/esm/a2a/event_processor_utils.js +161 -0
  166. package/dist/esm/a2a/executor_context.js +25 -0
  167. package/dist/esm/a2a/metadata_converter_utils.js +93 -0
  168. package/dist/esm/a2a/part_converter_utils.js +188 -0
  169. package/dist/esm/agents/active_streaming_tool.js +16 -0
  170. package/dist/esm/agents/base_agent.js +268 -0
  171. package/dist/esm/agents/context.js +152 -0
  172. package/dist/esm/agents/functions.js +489 -0
  173. package/dist/esm/agents/instructions.js +82 -0
  174. package/dist/esm/agents/invocation_context.js +81 -0
  175. package/dist/esm/agents/live_request_queue.js +108 -0
  176. package/dist/esm/agents/llm_agent.js +708 -0
  177. package/dist/esm/agents/loop_agent.js +55 -0
  178. package/dist/esm/agents/parallel_agent.js +66 -0
  179. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +103 -0
  180. package/dist/esm/agents/processors/base_llm_processor.js +15 -0
  181. package/dist/esm/agents/processors/basic_llm_request_processor.js +39 -0
  182. package/dist/esm/agents/processors/code_execution_request_processor.js +368 -0
  183. package/dist/esm/agents/processors/content_processor_utils.js +319 -0
  184. package/dist/esm/agents/processors/content_request_processor.js +61 -0
  185. package/dist/esm/agents/processors/context_compactor_request_processor.js +42 -0
  186. package/dist/esm/agents/processors/identity_llm_request_processor.js +25 -0
  187. package/dist/esm/agents/processors/instructions_llm_request_processor.js +56 -0
  188. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +142 -0
  189. package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
  190. package/dist/esm/agents/readonly_context.js +55 -0
  191. package/dist/esm/agents/routed_agent.js +70 -0
  192. package/dist/esm/agents/run_config.js +42 -0
  193. package/dist/esm/agents/sequential_agent.js +77 -0
  194. package/dist/esm/agents/transcription_entry.js +7 -0
  195. package/dist/esm/artifacts/base_artifact_service.js +7 -0
  196. package/dist/esm/artifacts/file_artifact_service.js +480 -0
  197. package/dist/esm/artifacts/gcs_artifact_service.js +199 -0
  198. package/dist/esm/artifacts/in_memory_artifact_service.js +152 -0
  199. package/dist/esm/artifacts/registry.js +30 -0
  200. package/dist/esm/auth/auth_credential.js +18 -0
  201. package/dist/esm/auth/auth_handler.js +131 -0
  202. package/dist/esm/auth/auth_preprocessor.js +155 -0
  203. package/dist/esm/auth/auth_provider_registry.js +33 -0
  204. package/dist/esm/auth/auth_schemes.js +33 -0
  205. package/dist/esm/auth/auth_tool.js +7 -0
  206. package/dist/esm/auth/base_auth_provider.js +7 -0
  207. package/dist/esm/auth/credential_service/base_credential_service.js +7 -0
  208. package/dist/esm/auth/credential_service/in_memory_credential_service.js +35 -0
  209. package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
  210. package/dist/esm/auth/exchanger/base_credential_exchanger.js +12 -0
  211. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +31 -0
  212. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
  213. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
  214. package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
  215. package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
  216. package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
  217. package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
  218. package/dist/esm/code_executors/base_code_executor.js +63 -0
  219. package/dist/esm/code_executors/built_in_code_executor.js +45 -0
  220. package/dist/esm/code_executors/code_execution_utils.js +127 -0
  221. package/dist/esm/code_executors/code_executor_context.js +170 -0
  222. package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
  223. package/dist/esm/common.js +245 -0
  224. package/dist/esm/context/base_context_compactor.js +7 -0
  225. package/dist/esm/context/summarizers/base_summarizer.js +7 -0
  226. package/dist/esm/context/summarizers/llm_summarizer.js +67 -0
  227. package/dist/esm/context/token_based_context_compactor.js +107 -0
  228. package/dist/esm/context/truncating_context_compactor.js +30 -0
  229. package/dist/esm/events/compacted_event.js +24 -0
  230. package/dist/esm/events/event.js +110 -0
  231. package/dist/esm/events/event_actions.js +54 -0
  232. package/dist/esm/events/structured_events.js +76 -0
  233. package/dist/esm/examples/base_example_provider.js +27 -0
  234. package/dist/esm/examples/example.js +7 -0
  235. package/dist/esm/examples/example_util.js +80 -0
  236. package/dist/esm/features/feature_registry.js +107 -0
  237. package/dist/esm/index.js +50 -0
  238. package/dist/esm/index_web.js +8 -0
  239. package/dist/esm/memory/base_memory_service.js +7 -0
  240. package/dist/esm/memory/in_memory_memory_service.js +71 -0
  241. package/dist/esm/memory/memory_entry.js +7 -0
  242. package/dist/esm/models/apigee_llm.js +154 -0
  243. package/dist/esm/models/base_llm.js +73 -0
  244. package/dist/esm/models/base_llm_connection.js +7 -0
  245. package/dist/esm/models/gemini_llm_connection.js +105 -0
  246. package/dist/esm/models/google_llm.js +265 -0
  247. package/dist/esm/models/llm_request.js +52 -0
  248. package/dist/esm/models/llm_response.js +45 -0
  249. package/dist/esm/models/registry.js +95 -0
  250. package/dist/esm/models/routed_llm.js +73 -0
  251. package/dist/esm/plugins/base_plugin.js +268 -0
  252. package/dist/esm/plugins/logging_plugin.js +235 -0
  253. package/dist/esm/plugins/plugin_manager.js +282 -0
  254. package/dist/esm/plugins/security_plugin.js +124 -0
  255. package/dist/esm/runner/in_memory_runner.js +30 -0
  256. package/dist/esm/runner/runner.js +360 -0
  257. package/dist/esm/sessions/base_session_service.js +91 -0
  258. package/dist/esm/sessions/database_session_service.js +355 -0
  259. package/dist/esm/sessions/db/operations.js +96 -0
  260. package/dist/esm/sessions/db/schema.js +174 -0
  261. package/dist/esm/sessions/in_memory_session_service.js +184 -0
  262. package/dist/esm/sessions/registry.js +27 -0
  263. package/dist/esm/sessions/session.js +20 -0
  264. package/dist/esm/sessions/state.js +73 -0
  265. package/dist/esm/skills/loader.js +244 -0
  266. package/dist/esm/skills/prompt.js +30 -0
  267. package/dist/esm/skills/skill.js +49 -0
  268. package/dist/esm/telemetry/google_cloud.js +54 -0
  269. package/dist/esm/telemetry/setup.js +83 -0
  270. package/dist/esm/telemetry/tracing.js +219 -0
  271. package/dist/esm/tools/agent_tool.js +190 -0
  272. package/dist/esm/tools/base_tool.js +93 -0
  273. package/dist/esm/tools/base_toolset.js +57 -0
  274. package/dist/esm/tools/exit_loop_tool.js +34 -0
  275. package/dist/esm/tools/forwarding_artifact_service.js +59 -0
  276. package/dist/esm/tools/function_tool.js +80 -0
  277. package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
  278. package/dist/esm/tools/google_search_tool.js +51 -0
  279. package/dist/esm/tools/load_artifacts_tool.js +161 -0
  280. package/dist/esm/tools/load_memory_tool.js +80 -0
  281. package/dist/esm/tools/long_running_tool.js +37 -0
  282. package/dist/esm/tools/mcp/mcp_session_manager.js +53 -0
  283. package/dist/esm/tools/mcp/mcp_tool.js +40 -0
  284. package/dist/esm/tools/mcp/mcp_toolset.js +52 -0
  285. package/dist/esm/tools/preload_memory_tool.js +82 -0
  286. package/dist/esm/tools/skill/list_skills_tool.js +50 -0
  287. package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
  288. package/dist/esm/tools/skill/load_skill_tool.js +82 -0
  289. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
  290. package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
  291. package/dist/esm/tools/skill/skill_toolset.js +137 -0
  292. package/dist/esm/tools/tool_confirmation.js +21 -0
  293. package/dist/esm/tools/url_context_tool.js +44 -0
  294. package/dist/esm/tools/vertex_ai_search_tool.js +103 -0
  295. package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
  296. package/dist/esm/utils/client_labels.js +28 -0
  297. package/dist/esm/utils/env_aware_utils.js +59 -0
  298. package/dist/esm/utils/experimental.js +46 -0
  299. package/dist/esm/utils/failover_utils.js +65 -0
  300. package/dist/esm/utils/file_extension_utils.js +51 -0
  301. package/dist/esm/utils/file_utils.js +56 -0
  302. package/dist/esm/utils/gemini_schema_util.js +124 -0
  303. package/dist/esm/utils/logger.js +130 -0
  304. package/dist/esm/utils/model_name.js +58 -0
  305. package/dist/esm/utils/object_notation_utils.js +49 -0
  306. package/dist/esm/utils/simple_zod_to_json.js +123 -0
  307. package/dist/esm/utils/streaming_utils.js +304 -0
  308. package/dist/esm/utils/variant_utils.js +20 -0
  309. package/dist/esm/version.js +11 -0
  310. package/dist/types/a2a/a2a_event.d.ts +139 -0
  311. package/dist/types/a2a/a2a_remote_agent.d.ts +67 -0
  312. package/dist/types/a2a/a2a_remote_agent_run_processor.d.ts +31 -0
  313. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +38 -0
  314. package/dist/types/a2a/agent_card.d.ts +23 -0
  315. package/dist/types/a2a/agent_executor.d.ts +52 -0
  316. package/dist/types/a2a/agent_to_a2a.d.ts +45 -0
  317. package/dist/types/a2a/event_converter_utils.d.ts +20 -0
  318. package/dist/types/a2a/event_processor_utils.d.ts +24 -0
  319. package/dist/types/a2a/executor_context.d.ts +33 -0
  320. package/dist/types/a2a/metadata_converter_utils.d.ts +63 -0
  321. package/dist/types/a2a/part_converter_utils.d.ts +48 -0
  322. package/dist/types/agents/active_streaming_tool.d.ts +29 -0
  323. package/dist/types/agents/base_agent.d.ts +194 -0
  324. package/dist/types/agents/context.d.ts +99 -0
  325. package/dist/types/agents/functions.d.ts +112 -0
  326. package/dist/types/agents/instructions.d.ts +32 -0
  327. package/dist/types/agents/invocation_context.d.ts +162 -0
  328. package/dist/types/agents/live_request_queue.d.ts +67 -0
  329. package/dist/types/agents/llm_agent.d.ts +351 -0
  330. package/dist/types/agents/loop_agent.d.ts +47 -0
  331. package/dist/types/agents/parallel_agent.d.ts +37 -0
  332. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +18 -0
  333. package/dist/types/agents/processors/base_llm_processor.d.ts +27 -0
  334. package/dist/types/agents/processors/basic_llm_request_processor.d.ts +13 -0
  335. package/dist/types/agents/processors/code_execution_request_processor.d.ts +34 -0
  336. package/dist/types/agents/processors/content_processor_utils.d.ts +36 -0
  337. package/dist/types/agents/processors/content_request_processor.d.ts +13 -0
  338. package/dist/types/agents/processors/context_compactor_request_processor.d.ts +22 -0
  339. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +13 -0
  340. package/dist/types/agents/processors/instructions_llm_request_processor.d.ts +16 -0
  341. package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +13 -0
  342. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
  343. package/dist/types/agents/readonly_context.d.ts +39 -0
  344. package/dist/types/agents/routed_agent.d.ts +59 -0
  345. package/dist/types/agents/run_config.d.ts +94 -0
  346. package/dist/types/agents/sequential_agent.d.ts +42 -0
  347. package/dist/types/agents/transcription_entry.d.ts +17 -0
  348. package/dist/types/artifacts/base_artifact_service.d.ts +158 -0
  349. package/dist/types/artifacts/file_artifact_service.d.ts +47 -0
  350. package/dist/types/artifacts/gcs_artifact_service.d.ts +18 -0
  351. package/dist/types/artifacts/in_memory_artifact_service.d.ts +21 -0
  352. package/dist/types/artifacts/registry.d.ts +7 -0
  353. package/dist/types/auth/auth_credential.d.ts +244 -0
  354. package/dist/types/auth/auth_handler.d.ts +28 -0
  355. package/dist/types/auth/auth_preprocessor.d.ts +12 -0
  356. package/dist/types/auth/auth_provider_registry.d.ts +27 -0
  357. package/dist/types/auth/auth_schemes.d.ts +39 -0
  358. package/dist/types/auth/auth_tool.d.ts +51 -0
  359. package/dist/types/auth/base_auth_provider.d.ts +20 -0
  360. package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
  361. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
  362. package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
  363. package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +39 -0
  364. package/dist/types/auth/exchanger/credential_exchanger_registry.d.ts +28 -0
  365. package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
  366. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
  367. package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
  368. package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
  369. package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
  370. package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
  371. package/dist/types/code_executors/base_code_executor.d.ts +74 -0
  372. package/dist/types/code_executors/built_in_code_executor.d.ts +32 -0
  373. package/dist/types/code_executors/code_execution_utils.d.ts +127 -0
  374. package/dist/types/code_executors/code_executor_context.d.ts +85 -0
  375. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
  376. package/dist/types/common.d.ts +137 -0
  377. package/dist/types/context/base_context_compactor.d.ts +24 -0
  378. package/dist/types/context/summarizers/base_summarizer.d.ts +19 -0
  379. package/dist/types/context/summarizers/llm_summarizer.d.ts +23 -0
  380. package/dist/types/context/token_based_context_compactor.d.ts +33 -0
  381. package/dist/types/context/truncating_context_compactor.d.ts +24 -0
  382. package/dist/types/events/compacted_event.d.ts +33 -0
  383. package/dist/types/events/event.d.ts +102 -0
  384. package/dist/types/events/event_actions.d.ts +74 -0
  385. package/dist/types/events/structured_events.d.ts +106 -0
  386. package/dist/types/examples/base_example_provider.d.ts +36 -0
  387. package/dist/types/examples/example.d.ts +19 -0
  388. package/dist/types/examples/example_util.d.ts +13 -0
  389. package/dist/types/features/feature_registry.d.ts +66 -0
  390. package/dist/types/index.d.ts +28 -0
  391. package/dist/types/index_web.d.ts +6 -0
  392. package/dist/types/memory/base_memory_service.d.ts +53 -0
  393. package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
  394. package/dist/types/memory/memory_entry.d.ts +30 -0
  395. package/dist/types/models/apigee_llm.d.ts +59 -0
  396. package/dist/types/models/base_llm.d.ts +66 -0
  397. package/dist/types/models/base_llm_connection.d.ts +51 -0
  398. package/dist/types/models/gemini_llm_connection.d.ts +54 -0
  399. package/dist/types/models/google_llm.d.ts +90 -0
  400. package/dist/types/models/llm_request.d.ts +53 -0
  401. package/dist/types/models/llm_response.d.ts +83 -0
  402. package/dist/types/models/registry.d.ts +49 -0
  403. package/dist/types/models/routed_llm.d.ts +38 -0
  404. package/dist/types/plugins/base_plugin.d.ts +368 -0
  405. package/dist/types/plugins/logging_plugin.d.ts +103 -0
  406. package/dist/types/plugins/plugin_manager.d.ts +175 -0
  407. package/dist/types/plugins/security_plugin.d.ts +60 -0
  408. package/dist/types/runner/in_memory_runner.d.ts +15 -0
  409. package/dist/types/runner/runner.d.ts +117 -0
  410. package/dist/types/sessions/base_session_service.d.ts +149 -0
  411. package/dist/types/sessions/database_session_service.d.ts +32 -0
  412. package/dist/types/sessions/db/operations.d.ts +28 -0
  413. package/dist/types/sessions/db/schema.d.ts +45 -0
  414. package/dist/types/sessions/in_memory_session_service.d.ts +30 -0
  415. package/dist/types/sessions/registry.d.ts +7 -0
  416. package/dist/types/sessions/session.d.ts +46 -0
  417. package/dist/types/sessions/state.d.ts +57 -0
  418. package/dist/types/skills/loader.d.ts +38 -0
  419. package/dist/types/skills/prompt.d.ts +13 -0
  420. package/dist/types/skills/skill.d.ts +48 -0
  421. package/dist/types/telemetry/google_cloud.d.ts +9 -0
  422. package/dist/types/telemetry/setup.d.ts +48 -0
  423. package/dist/types/telemetry/tracing.d.ts +112 -0
  424. package/dist/types/tools/agent_tool.d.ts +73 -0
  425. package/dist/types/tools/base_tool.d.ts +98 -0
  426. package/dist/types/tools/base_toolset.d.ts +74 -0
  427. package/dist/types/tools/exit_loop_tool.d.ts +24 -0
  428. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -0
  429. package/dist/types/tools/function_tool.d.ts +62 -0
  430. package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
  431. package/dist/types/tools/google_search_tool.d.ts +17 -0
  432. package/dist/types/tools/load_artifacts_tool.d.ts +21 -0
  433. package/dist/types/tools/load_memory_tool.d.ts +22 -0
  434. package/dist/types/tools/long_running_tool.d.ts +18 -0
  435. package/dist/types/tools/mcp/mcp_session_manager.d.ts +64 -0
  436. package/dist/types/tools/mcp/mcp_tool.d.ts +36 -0
  437. package/dist/types/tools/mcp/mcp_toolset.d.ts +44 -0
  438. package/dist/types/tools/preload_memory_tool.d.ts +23 -0
  439. package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
  440. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
  441. package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
  442. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
  443. package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
  444. package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
  445. package/dist/types/tools/tool_confirmation.d.ts +25 -0
  446. package/dist/types/tools/url_context_tool.d.ts +17 -0
  447. package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -0
  448. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
  449. package/dist/types/utils/client_labels.d.ts +9 -0
  450. package/dist/types/utils/env_aware_utils.d.ts +38 -0
  451. package/dist/types/utils/experimental.d.ts +11 -0
  452. package/dist/types/utils/failover_utils.d.ts +17 -0
  453. package/dist/types/utils/file_extension_utils.d.ts +21 -0
  454. package/dist/types/utils/file_utils.d.ts +11 -0
  455. package/dist/types/utils/gemini_schema_util.d.ts +15 -0
  456. package/dist/types/utils/logger.d.ts +38 -0
  457. package/dist/types/utils/model_name.d.ts +38 -0
  458. package/dist/types/utils/object_notation_utils.d.ts +21 -0
  459. package/dist/types/utils/simple_zod_to_json.d.ts +13 -0
  460. package/dist/types/utils/streaming_utils.d.ts +40 -0
  461. package/dist/types/utils/variant_utils.d.ts +24 -0
  462. package/dist/types/version.d.ts +6 -0
  463. package/dist/web/a2a/a2a_event.js +271 -0
  464. package/dist/web/a2a/a2a_remote_agent.js +186 -0
  465. package/dist/web/a2a/a2a_remote_agent_run_processor.js +184 -0
  466. package/dist/web/a2a/a2a_remote_agent_utils.js +133 -0
  467. package/dist/web/a2a/agent_card.js +342 -0
  468. package/dist/web/a2a/agent_executor.js +218 -0
  469. package/dist/web/a2a/agent_to_a2a.js +82 -0
  470. package/dist/web/a2a/event_converter_utils.js +203 -0
  471. package/dist/web/a2a/event_processor_utils.js +170 -0
  472. package/dist/web/a2a/executor_context.js +25 -0
  473. package/dist/web/a2a/metadata_converter_utils.js +110 -0
  474. package/dist/web/a2a/part_converter_utils.js +188 -0
  475. package/dist/web/agents/active_streaming_tool.js +16 -0
  476. package/dist/web/agents/base_agent.js +354 -0
  477. package/dist/web/agents/context.js +152 -0
  478. package/dist/web/agents/functions.js +520 -0
  479. package/dist/web/agents/instructions.js +82 -0
  480. package/dist/web/agents/invocation_context.js +81 -0
  481. package/dist/web/agents/live_request_queue.js +126 -0
  482. package/dist/web/agents/llm_agent.js +907 -0
  483. package/dist/web/agents/loop_agent.js +88 -0
  484. package/dist/web/agents/parallel_agent.js +101 -0
  485. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +102 -0
  486. package/dist/web/agents/processors/base_llm_processor.js +15 -0
  487. package/dist/web/agents/processors/basic_llm_request_processor.js +73 -0
  488. package/dist/web/agents/processors/code_execution_request_processor.js +370 -0
  489. package/dist/web/agents/processors/content_processor_utils.js +318 -0
  490. package/dist/web/agents/processors/content_request_processor.js +79 -0
  491. package/dist/web/agents/processors/context_compactor_request_processor.js +60 -0
  492. package/dist/web/agents/processors/identity_llm_request_processor.js +43 -0
  493. package/dist/web/agents/processors/instructions_llm_request_processor.js +74 -0
  494. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +160 -0
  495. package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
  496. package/dist/web/agents/readonly_context.js +55 -0
  497. package/dist/web/agents/routed_agent.js +138 -0
  498. package/dist/web/agents/run_config.js +57 -0
  499. package/dist/web/agents/sequential_agent.js +122 -0
  500. package/dist/web/agents/transcription_entry.js +7 -0
  501. package/dist/web/artifacts/base_artifact_service.js +7 -0
  502. package/dist/web/artifacts/file_artifact_service.js +535 -0
  503. package/dist/web/artifacts/gcs_artifact_service.js +213 -0
  504. package/dist/web/artifacts/in_memory_artifact_service.js +152 -0
  505. package/dist/web/artifacts/registry.js +30 -0
  506. package/dist/web/auth/auth_credential.js +18 -0
  507. package/dist/web/auth/auth_handler.js +148 -0
  508. package/dist/web/auth/auth_preprocessor.js +173 -0
  509. package/dist/web/auth/auth_provider_registry.js +33 -0
  510. package/dist/web/auth/auth_schemes.js +33 -0
  511. package/dist/web/auth/auth_tool.js +7 -0
  512. package/dist/web/auth/base_auth_provider.js +7 -0
  513. package/dist/web/auth/credential_service/base_credential_service.js +7 -0
  514. package/dist/web/auth/credential_service/in_memory_credential_service.js +35 -0
  515. package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
  516. package/dist/web/auth/exchanger/base_credential_exchanger.js +12 -0
  517. package/dist/web/auth/exchanger/credential_exchanger_registry.js +31 -0
  518. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
  519. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
  520. package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
  521. package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
  522. package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
  523. package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
  524. package/dist/web/code_executors/base_code_executor.js +63 -0
  525. package/dist/web/code_executors/built_in_code_executor.js +45 -0
  526. package/dist/web/code_executors/code_execution_utils.js +124 -0
  527. package/dist/web/code_executors/code_executor_context.js +170 -0
  528. package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
  529. package/dist/web/common.js +245 -0
  530. package/dist/web/context/base_context_compactor.js +7 -0
  531. package/dist/web/context/summarizers/base_summarizer.js +7 -0
  532. package/dist/web/context/summarizers/llm_summarizer.js +76 -0
  533. package/dist/web/context/token_based_context_compactor.js +107 -0
  534. package/dist/web/context/truncating_context_compactor.js +30 -0
  535. package/dist/web/events/compacted_event.js +42 -0
  536. package/dist/web/events/event.js +128 -0
  537. package/dist/web/events/event_actions.js +69 -0
  538. package/dist/web/events/structured_events.js +76 -0
  539. package/dist/web/examples/base_example_provider.js +27 -0
  540. package/dist/web/examples/example.js +7 -0
  541. package/dist/web/examples/example_util.js +79 -0
  542. package/dist/web/features/feature_registry.js +107 -0
  543. package/dist/web/index.js +50 -0
  544. package/dist/web/index_web.js +8 -0
  545. package/dist/web/memory/base_memory_service.js +7 -0
  546. package/dist/web/memory/in_memory_memory_service.js +71 -0
  547. package/dist/web/memory/memory_entry.js +7 -0
  548. package/dist/web/models/apigee_llm.js +221 -0
  549. package/dist/web/models/base_llm.js +73 -0
  550. package/dist/web/models/base_llm_connection.js +7 -0
  551. package/dist/web/models/gemini_llm_connection.js +123 -0
  552. package/dist/web/models/google_llm.js +321 -0
  553. package/dist/web/models/llm_request.js +52 -0
  554. package/dist/web/models/llm_response.js +45 -0
  555. package/dist/web/models/registry.js +95 -0
  556. package/dist/web/models/routed_llm.js +122 -0
  557. package/dist/web/plugins/base_plugin.js +268 -0
  558. package/dist/web/plugins/logging_plugin.js +235 -0
  559. package/dist/web/plugins/plugin_manager.js +282 -0
  560. package/dist/web/plugins/security_plugin.js +124 -0
  561. package/dist/web/runner/in_memory_runner.js +30 -0
  562. package/dist/web/runner/runner.js +426 -0
  563. package/dist/web/sessions/base_session_service.js +91 -0
  564. package/dist/web/sessions/database_session_service.js +373 -0
  565. package/dist/web/sessions/db/operations.js +96 -0
  566. package/dist/web/sessions/db/schema.js +174 -0
  567. package/dist/web/sessions/in_memory_session_service.js +184 -0
  568. package/dist/web/sessions/registry.js +27 -0
  569. package/dist/web/sessions/session.js +20 -0
  570. package/dist/web/sessions/state.js +89 -0
  571. package/dist/web/skills/loader.js +262 -0
  572. package/dist/web/skills/prompt.js +30 -0
  573. package/dist/web/skills/skill.js +67 -0
  574. package/dist/web/telemetry/google_cloud.js +54 -0
  575. package/dist/web/telemetry/setup.js +83 -0
  576. package/dist/web/telemetry/tracing.js +234 -0
  577. package/dist/web/tools/agent_tool.js +233 -0
  578. package/dist/web/tools/base_tool.js +93 -0
  579. package/dist/web/tools/base_toolset.js +57 -0
  580. package/dist/web/tools/exit_loop_tool.js +34 -0
  581. package/dist/web/tools/forwarding_artifact_service.js +59 -0
  582. package/dist/web/tools/function_tool.js +80 -0
  583. package/dist/web/tools/google_maps_grounding_tool.js +54 -0
  584. package/dist/web/tools/google_search_tool.js +51 -0
  585. package/dist/web/tools/load_artifacts_tool.js +152 -0
  586. package/dist/web/tools/load_memory_tool.js +79 -0
  587. package/dist/web/tools/long_running_tool.js +54 -0
  588. package/dist/web/tools/mcp/mcp_session_manager.js +53 -0
  589. package/dist/web/tools/mcp/mcp_tool.js +40 -0
  590. package/dist/web/tools/mcp/mcp_toolset.js +70 -0
  591. package/dist/web/tools/preload_memory_tool.js +77 -0
  592. package/dist/web/tools/skill/list_skills_tool.js +50 -0
  593. package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
  594. package/dist/web/tools/skill/load_skill_tool.js +82 -0
  595. package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
  596. package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
  597. package/dist/web/tools/skill/skill_toolset.js +123 -0
  598. package/dist/web/tools/tool_confirmation.js +21 -0
  599. package/dist/web/tools/url_context_tool.js +44 -0
  600. package/dist/web/tools/vertex_ai_search_tool.js +103 -0
  601. package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
  602. package/dist/web/utils/client_labels.js +28 -0
  603. package/dist/web/utils/env_aware_utils.js +59 -0
  604. package/dist/web/utils/experimental.js +46 -0
  605. package/dist/web/utils/failover_utils.js +96 -0
  606. package/dist/web/utils/file_extension_utils.js +51 -0
  607. package/dist/web/utils/file_utils.js +74 -0
  608. package/dist/web/utils/gemini_schema_util.js +155 -0
  609. package/dist/web/utils/logger.js +130 -0
  610. package/dist/web/utils/model_name.js +58 -0
  611. package/dist/web/utils/object_notation_utils.js +49 -0
  612. package/dist/web/utils/simple_zod_to_json.js +123 -0
  613. package/dist/web/utils/streaming_utils.js +322 -0
  614. package/dist/web/utils/variant_utils.js +20 -0
  615. package/dist/web/version.js +11 -0
  616. package/package.json +84 -0
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ReadonlyContext } from './readonly_context.js';
7
+ /**
8
+ * Populates values in the instruction template, e.g. state, artifact, etc.
9
+ *
10
+ * ```
11
+ * async function buildInstruction(
12
+ * readonlyContext: ReadonlyContext,
13
+ * ): Promise<string> {
14
+ * return await injectSessionState(
15
+ * 'You can inject a state variable like {var_name} or an artifact ' +
16
+ * '{artifact.file_name} into the instruction template.',
17
+ * readonlyContext,
18
+ * );
19
+ * }
20
+ *
21
+ * const agent = new LlmAgent({
22
+ * model: 'gemini-1.5-flash',
23
+ * name: 'agent',
24
+ * instruction: buildInstruction,
25
+ * });
26
+ * ```
27
+ *
28
+ * @param template The instruction template.
29
+ * @param readonlyContext The read-only context
30
+ * @returns The instruction template with values populated.
31
+ */
32
+ export declare function injectSessionState(template: string, readonlyContext: ReadonlyContext): Promise<string>;
@@ -0,0 +1,162 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Content } from '@google/genai';
7
+ import { BaseArtifactService } from '../artifacts/base_artifact_service.js';
8
+ import { BaseCredentialService } from '../auth/credential_service/base_credential_service.js';
9
+ import { BaseMemoryService } from '../memory/base_memory_service.js';
10
+ import { PluginManager } from '../plugins/plugin_manager.js';
11
+ import { BaseSessionService } from '../sessions/base_session_service.js';
12
+ import { Session } from '../sessions/session.js';
13
+ import { ActiveStreamingTool } from './active_streaming_tool.js';
14
+ import { BaseAgent } from './base_agent.js';
15
+ import { LiveRequestQueue } from './live_request_queue.js';
16
+ import { RunConfig } from './run_config.js';
17
+ import { TranscriptionEntry } from './transcription_entry.js';
18
+ /**
19
+ * The parameters for creating an invocation context.
20
+ */
21
+ export interface InvocationContextParams {
22
+ artifactService?: BaseArtifactService;
23
+ sessionService?: BaseSessionService;
24
+ memoryService?: BaseMemoryService;
25
+ credentialService?: BaseCredentialService;
26
+ invocationId: string;
27
+ branch?: string;
28
+ agent: BaseAgent;
29
+ userContent?: Content;
30
+ session: Session;
31
+ endInvocation?: boolean;
32
+ transcriptionCache?: TranscriptionEntry[];
33
+ runConfig?: RunConfig;
34
+ liveRequestQueue?: LiveRequestQueue;
35
+ activeStreamingTools?: Record<string, ActiveStreamingTool>;
36
+ pluginManager: PluginManager;
37
+ abortSignal?: AbortSignal;
38
+ }
39
+ /**
40
+ * An invocation context represents the data of a single invocation of an agent.
41
+ *
42
+ * An invocation:
43
+ * 1. Starts with a user message and ends with a final response.
44
+ * 2. Can contain one or multiple agent calls.
45
+ * 3. Is handled by runner.runAsync().
46
+ *
47
+ * An invocation runs an agent until it does not request to transfer to
48
+ * another agent.
49
+ *
50
+ * An agent call:
51
+ * 1. Is handled by agent.runAsync().
52
+ * 2. Ends when agent.runAsync() ends.
53
+ *
54
+ * An LLM agent call is an agent with a BaseLLMFlow.
55
+ * An LLM agent call can contain one or multiple steps.
56
+ *
57
+ * An LLM agent runs steps in a loop until:
58
+ * 1. A final response is generated.
59
+ * 2. The agent transfers to another agent.
60
+ * 3. The end_invocation is set to true by any callbacks or tools.
61
+ *
62
+ * A step:
63
+ * 1. Calls the LLM only once and yields its response.
64
+ * 2. Calls the tools and yields their responses if requested.
65
+ *
66
+ * The summarization of the function response is considered another step, since
67
+ * it is another llm call.
68
+ * A step ends when it's done calling llm and tools, or if the end_invocation
69
+ * is set to true at any time.
70
+ *
71
+ * ```
72
+ * ┌─────────────────────── invocation ──────────────────────────┐
73
+ * ┌──────────── llm_agent_call_1 ────────────┐ ┌─ agent_call_2 ─┐
74
+ * ┌──── step_1 ────────┐ ┌───── step_2 ──────┐
75
+ * [call_llm] [call_tool] [call_llm] [transfer]
76
+ * ```
77
+ */
78
+ export declare class InvocationContext {
79
+ readonly artifactService?: BaseArtifactService;
80
+ readonly sessionService?: BaseSessionService;
81
+ readonly memoryService?: BaseMemoryService;
82
+ readonly credentialService?: BaseCredentialService;
83
+ /**
84
+ * The id of this invocation context.
85
+ */
86
+ readonly invocationId: string;
87
+ /**
88
+ * The branch of the invocation context.
89
+ *
90
+ * The format is like agent_1.agent_2.agent_3, where agent_1 is the parent of
91
+ * agent_2, and agent_2 is the parent of agent_3.
92
+ *
93
+ * Branch is used when multiple sub-agents shouldn't see their peer agents'
94
+ * conversation history.
95
+ */
96
+ branch?: string;
97
+ /**
98
+ * The current agent of this invocation context.
99
+ */
100
+ agent: BaseAgent;
101
+ /**
102
+ * The user content that started this invocation.
103
+ */
104
+ readonly userContent?: Content;
105
+ /**
106
+ * The current session of this invocation context.
107
+ */
108
+ readonly session: Session;
109
+ /**
110
+ * Whether to end this invocation.
111
+ * Set to True in callbacks or tools to terminate this invocation.
112
+ */
113
+ endInvocation: boolean;
114
+ /**
115
+ * Caches necessary, data audio or contents, that are needed by transcription.
116
+ */
117
+ transcriptionCache?: TranscriptionEntry[];
118
+ /**
119
+ * Configurations for live agents under this invocation.
120
+ */
121
+ runConfig?: RunConfig;
122
+ /**
123
+ * A container to keep track of different kinds of costs incurred as a part of
124
+ * this invocation.
125
+ */
126
+ private readonly invocationCostManager;
127
+ /**
128
+ * The queue to receive live requests.
129
+ */
130
+ liveRequestQueue?: LiveRequestQueue;
131
+ /**
132
+ * The running streaming tools of this invocation.
133
+ */
134
+ activeStreamingTools?: Record<string, ActiveStreamingTool>;
135
+ /**
136
+ * The manager for keeping track of plugins in this invocation.
137
+ */
138
+ pluginManager: PluginManager;
139
+ /**
140
+ * The abort signal for the invocation.
141
+ */
142
+ readonly abortSignal?: AbortSignal;
143
+ /**
144
+ * @param params The parameters for creating an invocation context.
145
+ */
146
+ constructor(params: InvocationContextParams);
147
+ /**
148
+ * The app name of the current session.
149
+ */
150
+ get appName(): string;
151
+ /**
152
+ * The user ID of the current session.
153
+ */
154
+ get userId(): string;
155
+ /**
156
+ * Tracks number of llm calls made.
157
+ *
158
+ * @throws If number of llm calls made exceed the set threshold.
159
+ */
160
+ incrementLlmCallCount(): void;
161
+ }
162
+ export declare function newInvocationContextId(): string;
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ActivityEnd, ActivityStart, Blob, Content } from '@google/genai';
7
+ /**
8
+ * Request sent to live agents.
9
+ */
10
+ export interface LiveRequest {
11
+ /** If set, send the content to the model in turn-by-turn mode. */
12
+ content?: Content;
13
+ /** If set, send the blob to the model in realtime mode. */
14
+ blob?: Blob;
15
+ /** If set, signal the start of user activity to the model. */
16
+ activityStart?: ActivityStart;
17
+ /** If set, signal the end of user activity to the model. */
18
+ activityEnd?: ActivityEnd;
19
+ /** If set, close the queue. */
20
+ close?: boolean;
21
+ }
22
+ /**
23
+ * Queue used to send LiveRequest in a live (bidirectional streaming) way.
24
+ */
25
+ export declare class LiveRequestQueue {
26
+ private readonly queue;
27
+ private readonly resolveFnFifoQueue;
28
+ private isClosed;
29
+ /**
30
+ * Adds a request to the queue. If there is a pending `get()` call, it
31
+ * will be resolved with the given request.
32
+ * @param req The request to send.
33
+ */
34
+ send(req: LiveRequest): void;
35
+ /**
36
+ * Retrieves a request from the queue. If the queue is empty, it will
37
+ * wait until a request is available.
38
+ * @returns A promise that resolves with the next available request.
39
+ */
40
+ get(): Promise<LiveRequest>;
41
+ /**
42
+ * Sends a close signal to the queue.
43
+ */
44
+ close(): void;
45
+ /**
46
+ * Sends a content object to the queue.
47
+ * @param content The content to send.
48
+ */
49
+ sendContent(content: Content): void;
50
+ /**
51
+ * Sends a blob to the model in realtime mode.
52
+ * @param blob The blob to send.
53
+ */
54
+ sendRealtime(blob: Blob): void;
55
+ /**
56
+ * Sends an activity start signal to mark the beginning of user input.
57
+ */
58
+ sendActivityStart(): void;
59
+ /**
60
+ * Sends an activity end signal to mark the end of user input.
61
+ */
62
+ sendActivityEnd(): void;
63
+ /**
64
+ * Implements the async iterator protocol.
65
+ */
66
+ [Symbol.asyncIterator](): AsyncGenerator<LiveRequest, void, undefined>;
67
+ }
@@ -0,0 +1,351 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { GenerateContentConfig, Schema } from '@google/genai';
7
+ import { z as z3 } from 'zod/v3';
8
+ import { z as z4 } from 'zod/v4';
9
+ import { BaseCodeExecutor } from '../code_executors/base_code_executor.js';
10
+ import { Event } from '../events/event.js';
11
+ import { BaseExampleProvider } from '../examples/base_example_provider.js';
12
+ import { Example } from '../examples/example.js';
13
+ import { BaseLlm } from '../models/base_llm.js';
14
+ import { LlmRequest } from '../models/llm_request.js';
15
+ import { LlmResponse } from '../models/llm_response.js';
16
+ import { BaseTool } from '../tools/base_tool.js';
17
+ import { BaseToolset } from '../tools/base_toolset.js';
18
+ import { Context } from './context.js';
19
+ import { BaseAgent, BaseAgentConfig } from './base_agent.js';
20
+ import { BaseLlmRequestProcessor, BaseLlmResponseProcessor } from './processors/base_llm_processor.js';
21
+ import { BaseContextCompactor } from '../context/base_context_compactor.js';
22
+ import { InvocationContext } from './invocation_context.js';
23
+ import { ReadonlyContext } from './readonly_context.js';
24
+ /**
25
+ * Input/output schema type for agent.
26
+ */
27
+ export type LlmAgentSchema = z3.ZodObject<z3.ZodRawShape> | z4.ZodObject<z4.ZodRawShape> | Schema;
28
+ /** An object that can provide an instruction string. */
29
+ export type InstructionProvider = (context: ReadonlyContext) => string | Promise<string>;
30
+ /**
31
+ * A callback that runs before a request is sent to the model.
32
+ *
33
+ * @param params.context The current callback context.
34
+ * @param params.request The raw model request. Callback can mutate the request.
35
+ * @returns The content to return to the user. When present, the model call
36
+ * will be skipped and the provided content will be returned to user.
37
+ */
38
+ export type SingleBeforeModelCallback = (params: {
39
+ context: Context;
40
+ request: LlmRequest;
41
+ }) => LlmResponse | undefined | Promise<LlmResponse | undefined>;
42
+ /**
43
+ * A single callback or a list of callbacks.
44
+ *
45
+ * When a list of callbacks is provided, the callbacks will be called in the
46
+ * order they are listed until a callback does not return None.
47
+ */
48
+ export type BeforeModelCallback = SingleBeforeModelCallback | SingleBeforeModelCallback[];
49
+ /**
50
+ * A callback that runs after a response is received from the model.
51
+ *
52
+ * @param params.context The current callback context.
53
+ * @param params.response The actual model response.
54
+ * @returns The content to return to the user. When present, the actual model
55
+ * response will be ignored and the provided content will be returned to
56
+ * user.
57
+ */
58
+ export type SingleAfterModelCallback = (params: {
59
+ context: Context;
60
+ response: LlmResponse;
61
+ }) => LlmResponse | undefined | Promise<LlmResponse | undefined>;
62
+ /**
63
+ * A single callback or a list of callbacks.
64
+ *
65
+ * When a list of callbacks is provided, the callbacks will be called in the
66
+ order they are listed until a callback does not return None.
67
+ */
68
+ export type AfterModelCallback = SingleAfterModelCallback | SingleAfterModelCallback[];
69
+ /**
70
+ * A callback that runs before a tool is called.
71
+ *
72
+ * @param params.tool The tool to be called.
73
+ * @param params.args The arguments to the tool.
74
+ * @param params.context Context for the tool call.
75
+ * @returns The tool response. When present, the returned tool response will
76
+ * be used and the framework will skip calling the actual tool.
77
+ */
78
+ export type SingleBeforeToolCallback = (params: {
79
+ tool: BaseTool;
80
+ args: Record<string, unknown>;
81
+ context: Context;
82
+ }) => Record<string, unknown> | undefined | Promise<Record<string, unknown> | undefined>;
83
+ /**
84
+ * A single callback or a list of callbacks.
85
+ *
86
+ * When a list of callbacks is provided, the callbacks will be called in the
87
+ * order they are listed until a callback does not return None.
88
+ */
89
+ export type BeforeToolCallback = SingleBeforeToolCallback | SingleBeforeToolCallback[];
90
+ /**
91
+ * A callback that runs after a tool is called.
92
+ *
93
+ * @param params.tool The tool to be called.
94
+ * @param params.args The arguments to the tool.
95
+ * @param params.context Context for the tool call.
96
+ * @param params.response The response from the tool.
97
+ * @returns When present, the returned record will be used as tool result.
98
+ */
99
+ export type SingleAfterToolCallback = (params: {
100
+ tool: BaseTool;
101
+ args: Record<string, unknown>;
102
+ context: Context;
103
+ response: Record<string, unknown>;
104
+ }) => Record<string, unknown> | undefined | Promise<Record<string, unknown> | undefined>;
105
+ /**
106
+ * A single callback or a list of callbacks.
107
+ *
108
+ * When a list of callbacks is provided, the callbacks will be called in the
109
+ * order they are listed until acallback does not return None.
110
+ */
111
+ export type AfterToolCallback = SingleAfterToolCallback | SingleAfterToolCallback[];
112
+ /** A list of examples or an example provider. */
113
+ export type ExamplesUnion = Example[] | BaseExampleProvider;
114
+ /** A union of tool types that can be provided to an agent. */
115
+ export type ToolUnion = BaseTool | BaseToolset;
116
+ /**
117
+ * The configuration options for creating an LLM-based agent.
118
+ */
119
+ export interface LlmAgentConfig extends BaseAgentConfig {
120
+ /**
121
+ * The model to use for the agent.
122
+ */
123
+ model?: string | BaseLlm;
124
+ /** Instructions for the LLM model, guiding the agent's behavior. */
125
+ instruction?: string | InstructionProvider;
126
+ /**
127
+ * Instructions for all the agents in the entire agent tree.
128
+ *
129
+ * ONLY the globalInstruction in root agent will take effect.
130
+ *
131
+ * For example: use globalInstruction to make all agents have a stable
132
+ * identity or personality.
133
+ */
134
+ globalInstruction?: string | InstructionProvider;
135
+ /** Tools available to this agent. */
136
+ tools?: ToolUnion[];
137
+ /**
138
+ * The additional content generation configurations.
139
+ *
140
+ * NOTE: not all fields are usable, e.g. tools must be configured via
141
+ * `tools`, thinking_config must be configured via `planner` in LlmAgent.
142
+ *
143
+ * For example: use this config to adjust model temperature, configure safety
144
+ * settings, etc.
145
+ */
146
+ generateContentConfig?: GenerateContentConfig;
147
+ /**
148
+ * Disallows LLM-controlled transferring to the parent agent.
149
+ *
150
+ * NOTE: Setting this as True also prevents this agent to continue reply to
151
+ * the end-user. This behavior prevents one-way transfer, in which end-user
152
+ * may be stuck with one agent that cannot transfer to other agents in the
153
+ * agent tree.
154
+ */
155
+ disallowTransferToParent?: boolean;
156
+ /** Disallows LLM-controlled transferring to the peer agents. */
157
+ disallowTransferToPeers?: boolean;
158
+ /**
159
+ * Controls content inclusion in model requests.
160
+ *
161
+ * Options:
162
+ * default: Model receives relevant conversation history
163
+ * none: Model receives no prior history, operates solely on current
164
+ * instruction and input
165
+ */
166
+ includeContents?: 'default' | 'none';
167
+ /** The input schema when agent is used as a tool. */
168
+ inputSchema?: LlmAgentSchema;
169
+ /** The output schema when agent replies. */
170
+ outputSchema?: LlmAgentSchema;
171
+ /**
172
+ * The key in session state to store the output of the agent.
173
+ *
174
+ * Typically use cases:
175
+ * - Extracts agent reply for later use, such as in tools, callbacks, etc.
176
+ * - Connects agents to coordinate with each other.
177
+ */
178
+ outputKey?: string;
179
+ /**
180
+ * Callbacks to be called before calling the LLM.
181
+ */
182
+ beforeModelCallback?: BeforeModelCallback;
183
+ /**
184
+ * Callbacks to be called after calling the LLM.
185
+ */
186
+ afterModelCallback?: AfterModelCallback;
187
+ /**
188
+ * Callbacks to be called before calling the tool.
189
+ */
190
+ beforeToolCallback?: BeforeToolCallback;
191
+ /**
192
+ * Callbacks to be called after calling the tool.
193
+ */
194
+ afterToolCallback?: AfterToolCallback;
195
+ /**
196
+ * Processors to run before the LLM request is sent.
197
+ */
198
+ requestProcessors?: BaseLlmRequestProcessor[];
199
+ /**
200
+ * Processors to run after the LLM response is received.
201
+ */
202
+ responseProcessors?: BaseLlmResponseProcessor[];
203
+ /**
204
+ * A list of context compactors to evaluate in priority order.
205
+ * Modifies the session history to keep context overhead within limits.
206
+ */
207
+ contextCompactors?: BaseContextCompactor[];
208
+ /**
209
+ * Instructs the agent to make a plan and execute it step by step.
210
+ */
211
+ codeExecutor?: BaseCodeExecutor;
212
+ }
213
+ /**
214
+ * A unique symbol to identify ADK agent classes.
215
+ * Defined once and shared by all LlmAgent instances.
216
+ */
217
+ declare const LLM_AGENT_SIGNATURE_SYMBOL: unique symbol;
218
+ /**
219
+ * Type guard to check if an object is an instance of LlmAgent.
220
+ * @param obj The object to check.
221
+ * @returns True if the object is an instance of LlmAgent, false otherwise.
222
+ */
223
+ export declare function isLlmAgent(obj: unknown): obj is LlmAgent;
224
+ /**
225
+ * An agent that uses a large language model to generate responses.
226
+ */
227
+ export declare class LlmAgent extends BaseAgent {
228
+ /** A unique symbol to identify ADK LLM agent class. */
229
+ readonly [LLM_AGENT_SIGNATURE_SYMBOL] = true;
230
+ model?: string | BaseLlm;
231
+ instruction: string | InstructionProvider;
232
+ globalInstruction: string | InstructionProvider;
233
+ tools: ToolUnion[];
234
+ generateContentConfig?: GenerateContentConfig;
235
+ disallowTransferToParent: boolean;
236
+ disallowTransferToPeers: boolean;
237
+ includeContents: 'default' | 'none';
238
+ inputSchema?: Schema;
239
+ outputSchema?: Schema;
240
+ outputKey?: string;
241
+ beforeModelCallback?: BeforeModelCallback;
242
+ afterModelCallback?: AfterModelCallback;
243
+ beforeToolCallback?: BeforeToolCallback;
244
+ afterToolCallback?: AfterToolCallback;
245
+ requestProcessors: BaseLlmRequestProcessor[];
246
+ responseProcessors: BaseLlmResponseProcessor[];
247
+ codeExecutor?: BaseCodeExecutor;
248
+ constructor(config: LlmAgentConfig);
249
+ /**
250
+ * The resolved BaseLlm instance.
251
+ *
252
+ * When not set, the agent will inherit the model from its ancestor.
253
+ */
254
+ get canonicalModel(): BaseLlm;
255
+ /**
256
+ * The resolved instruction field to construct instruction for this
257
+ * agent.
258
+ *
259
+ * This method is only for use by Agent Development Kit.
260
+ * @param context The context to retrieve the session state.
261
+ * @returns The resolved instruction field.
262
+ */
263
+ canonicalInstruction(context: ReadonlyContext): Promise<{
264
+ instruction: string;
265
+ requireStateInjection: boolean;
266
+ }>;
267
+ /**
268
+ * The resolved globalInstruction field to construct global instruction.
269
+ *
270
+ * This method is only for use by Agent Development Kit.
271
+ * @param context The context to retrieve the session state.
272
+ * @returns The resolved globalInstruction field.
273
+ */
274
+ canonicalGlobalInstruction(context: ReadonlyContext): Promise<{
275
+ instruction: string;
276
+ requireStateInjection: boolean;
277
+ }>;
278
+ /**
279
+ * The resolved tools field as a list of BaseTool based on the context.
280
+ *
281
+ * This method is only for use by Agent Development Kit.
282
+ */
283
+ canonicalTools(context?: ReadonlyContext): Promise<BaseTool[]>;
284
+ /**
285
+ * Normalizes a callback or an array of callbacks into an array of callbacks.
286
+ *
287
+ * @param callback The callback or an array of callbacks.
288
+ * @returns An array of callbacks.
289
+ */
290
+ private static normalizeCallbackArray;
291
+ /**
292
+ * The resolved beforeModelCallback field as a list of
293
+ * SingleBeforeModelCallback.
294
+ *
295
+ * This method is only for use by Agent Development Kit.
296
+ */
297
+ get canonicalBeforeModelCallbacks(): SingleBeforeModelCallback[];
298
+ /**
299
+ * The resolved afterModelCallback field as a list of
300
+ * SingleAfterModelCallback.
301
+ *
302
+ * This method is only for use by Agent Development Kit.
303
+ */
304
+ get canonicalAfterModelCallbacks(): SingleAfterModelCallback[];
305
+ /**
306
+ * The resolved beforeToolCallback field as a list of
307
+ * BeforeToolCallback.
308
+ *
309
+ * This method is only for use by Agent Development Kit.
310
+ */
311
+ get canonicalBeforeToolCallbacks(): SingleBeforeToolCallback[];
312
+ /**
313
+ * The resolved afterToolCallback field as a list of AfterToolCallback.
314
+ *
315
+ * This method is only for use by Agent Development Kit.
316
+ */
317
+ get canonicalAfterToolCallbacks(): SingleAfterToolCallback[];
318
+ /**
319
+ * Saves the agent's final response to the session state if configured.
320
+ *
321
+ * It extracts the text content from the final response event, optionally
322
+ * parses it as JSON based on the output schema, and stores the result in the
323
+ * session state using the specified output key.
324
+ *
325
+ * @param event The event to process.
326
+ */
327
+ private maybeSaveOutputToState;
328
+ protected runAsyncImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
329
+ protected runLiveImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
330
+ private runLiveFlow;
331
+ private runOneStepAsync;
332
+ private postprocess;
333
+ /**
334
+ * Retrieves an agent from the agent tree by its name.
335
+ *
336
+ * Performing a depth-first search to locate the agent with the given name.
337
+ * - Starts searching from the root agent of the current invocation context.
338
+ * - Traverses down the agent tree to find the specified agent.
339
+ *
340
+ * @param invocationContext The current invocation context.
341
+ * @param agentName The name of the agent to retrieve.
342
+ * @returns The agent with the given name.
343
+ * @throws Error if the agent is not found.
344
+ */
345
+ private getAgentByName;
346
+ protected callLlmAsync(invocationContext: InvocationContext, llmRequest: LlmRequest, modelResponseEvent: Event): AsyncGenerator<LlmResponse, void, void>;
347
+ private handleBeforeModelCallback;
348
+ private handleAfterModelCallback;
349
+ protected runAndHandleError<T extends LlmResponse | Event>(responseGenerator: AsyncGenerator<T, void, void>, invocationContext: InvocationContext, llmRequest: LlmRequest, modelResponseEvent: Event): AsyncGenerator<T, void, void>;
350
+ }
351
+ export {};
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Event } from '../events/event.js';
7
+ import { BaseAgent, BaseAgentConfig } from './base_agent.js';
8
+ import { InvocationContext } from './invocation_context.js';
9
+ /**
10
+ * The configuration options for creating a loop agent.
11
+ */
12
+ export interface LoopAgentConfig extends BaseAgentConfig {
13
+ /**
14
+ * The maximum number of iterations the loop agent will run.
15
+ *
16
+ * If not provided, the loop agent will run indefinitely.
17
+ */
18
+ maxIterations?: number;
19
+ }
20
+ /**
21
+ * A unique symbol to identify ADK agent classes.
22
+ * Defined once and shared by all LoopAgent instances.
23
+ */
24
+ declare const LOOP_AGENT_SIGNATURE_SYMBOL: unique symbol;
25
+ /**
26
+ * Type guard to check if an object is an instance of LoopAgent.
27
+ * @param obj The object to check.
28
+ * @returns True if the object is an instance of LoopAgent, false otherwise.
29
+ */
30
+ export declare function isLoopAgent(obj: unknown): obj is LoopAgent;
31
+ /**
32
+ * A shell agent that run its sub-agents in a loop.
33
+ *
34
+ * When sub-agent generates an event with escalate or max_iterations are
35
+ * reached, the loop agent will stop.
36
+ */
37
+ export declare class LoopAgent extends BaseAgent {
38
+ /**
39
+ * A unique symbol to identify ADK loop agent class.
40
+ */
41
+ readonly [LOOP_AGENT_SIGNATURE_SYMBOL] = true;
42
+ readonly maxIterations: number;
43
+ constructor(config: LoopAgentConfig);
44
+ protected runAsyncImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
45
+ protected runLiveImpl(_context: InvocationContext): AsyncGenerator<Event, void, void>;
46
+ }
47
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Event } from '../events/event.js';
7
+ import { BaseAgent } from './base_agent.js';
8
+ import { InvocationContext } from './invocation_context.js';
9
+ /**
10
+ * A unique symbol to identify ADK agent classes.
11
+ * Defined once and shared by all ParallelAgent instances.
12
+ */
13
+ declare const PARALLEL_AGENT_SIGNATURE_SYMBOL: unique symbol;
14
+ /**
15
+ * Type guard to check if an object is an instance of ParallelAgent.
16
+ * @param obj The object to check.
17
+ * @returns True if the object is an instance of ParallelAgent, false otherwise.
18
+ */
19
+ export declare function isParallelAgent(obj: unknown): obj is ParallelAgent;
20
+ /**
21
+ * A shell agent that run its sub-agents in parallel in isolated manner.
22
+ *
23
+ * This approach is beneficial for scenarios requiring multiple perspectives or
24
+ * attempts on a single task, such as:
25
+ *
26
+ * - Running different algorithms simultaneously.
27
+ * - Generating multiple responses for review by a subsequent evaluation agent.
28
+ */
29
+ export declare class ParallelAgent extends BaseAgent {
30
+ /**
31
+ * A unique symbol to identify ADK parallel agent class.
32
+ */
33
+ readonly [PARALLEL_AGENT_SIGNATURE_SYMBOL] = true;
34
+ protected runAsyncImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
35
+ protected runLiveImpl(_context: InvocationContext): AsyncGenerator<Event, void, void>;
36
+ }
37
+ export {};