@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,175 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Content } from '@google/genai';
7
+ import { BaseAgent } from '../agents/base_agent.js';
8
+ import { Context } from '../agents/context.js';
9
+ import { InvocationContext } from '../agents/invocation_context.js';
10
+ import { Event } from '../events/event.js';
11
+ import { LlmRequest } from '../models/llm_request.js';
12
+ import { LlmResponse } from '../models/llm_response.js';
13
+ import { BaseTool } from '../tools/base_tool.js';
14
+ import { BasePlugin, ContextCompactionTrigger } from './base_plugin.js';
15
+ /**
16
+ * Manages the registration and execution of plugins.
17
+ *
18
+ * The PluginManager is an internal class that orchestrates the invocation of
19
+ * plugin callbacks at key points in the SDK's execution lifecycle. It maintains
20
+ * a list of registered plugins and ensures they are called in the order they
21
+ * were registered.
22
+ *
23
+ * The core execution logic implements an "early exit" strategy: if any plugin
24
+ * callback returns a non-`undefined` value, the execution of subsequent plugins
25
+ * for that specific event is halted, and the returned value is propagated up
26
+ * the call stack. This allows plugins to short-circuit operations like agent
27
+ * runs, tool calls, or model requests.
28
+ */
29
+ export declare class PluginManager {
30
+ private readonly plugins;
31
+ /**
32
+ * Initializes the plugin service.
33
+ *
34
+ * @param plugins An optional list of plugins to register upon
35
+ * initialization.
36
+ */
37
+ constructor(plugins?: BasePlugin[]);
38
+ /**
39
+ * Registers a new plugin.
40
+ *
41
+ * @param plugin The plugin instance to register.
42
+ * @throws If the same exact plugin or a plugin with the same name is already
43
+ * registered.
44
+ */
45
+ registerPlugin(plugin: BasePlugin): void;
46
+ /**
47
+ * Retrieves a registered plugin by its name.
48
+ *
49
+ * @param pluginName The name of the plugin to retrieve.
50
+ * @returns The plugin instance if found, otherwise `undefined`.
51
+ */
52
+ getPlugin(pluginName: string): BasePlugin | undefined;
53
+ /**
54
+ * Runs the same callback for all plugins. This is a utility method to reduce
55
+ * duplication below.
56
+ *
57
+ * @param plugins The set of plugins to run
58
+ * @param callback A closure containing the callback method to run on each
59
+ * plugin
60
+ * @param callbackName The name of the function being called in the closure
61
+ * above. Used for logging purposes.
62
+ * @returns A promise containing the plugin method result. Must be casted to
63
+ * the proper type for the plugin method.
64
+ */
65
+ private runCallbacks;
66
+ /**
67
+ * Runs the `onUserMessageCallback` for all plugins.
68
+ */
69
+ runOnUserMessageCallback({ userMessage, invocationContext, }: {
70
+ userMessage: Content;
71
+ invocationContext: InvocationContext;
72
+ }): Promise<Content | undefined>;
73
+ /**
74
+ * Runs the `beforeRunCallback` for all plugins.
75
+ */
76
+ runBeforeRunCallback({ invocationContext, }: {
77
+ invocationContext: InvocationContext;
78
+ }): Promise<Content | undefined>;
79
+ /**
80
+ * Runs the `afterRunCallback` for all plugins.
81
+ */
82
+ runAfterRunCallback({ invocationContext, }: {
83
+ invocationContext: InvocationContext;
84
+ }): Promise<void>;
85
+ /**
86
+ * Runs the `onEventCallback` for all plugins.
87
+ */
88
+ runOnEventCallback({ invocationContext, event, }: {
89
+ invocationContext: InvocationContext;
90
+ event: Event;
91
+ }): Promise<Event | undefined>;
92
+ /**
93
+ * Runs the `beforeAgentCallback` for all plugins.
94
+ */
95
+ runBeforeAgentCallback({ agent, callbackContext, }: {
96
+ agent: BaseAgent;
97
+ callbackContext: Context;
98
+ }): Promise<Content | undefined>;
99
+ /**
100
+ * Runs the `afterAgentCallback` for all plugins.
101
+ */
102
+ runAfterAgentCallback({ agent, callbackContext, }: {
103
+ agent: BaseAgent;
104
+ callbackContext: Context;
105
+ }): Promise<Content | undefined>;
106
+ /**
107
+ * Runs the `beforeToolSelection` for all plugins.
108
+ */
109
+ runBeforeToolSelection({ callbackContext, tools, }: {
110
+ callbackContext: Context;
111
+ tools: Readonly<Record<string, BaseTool>>;
112
+ }): Promise<Readonly<Record<string, BaseTool>> | undefined>;
113
+ /**
114
+ * Runs the `beforeContextCompaction` for all plugins.
115
+ */
116
+ runBeforeContextCompaction({ invocationContext, trigger, }: {
117
+ invocationContext: InvocationContext;
118
+ trigger: ContextCompactionTrigger;
119
+ }): Promise<void>;
120
+ /**
121
+ * Runs the `afterContextCompaction` for all plugins.
122
+ */
123
+ runAfterContextCompaction({ invocationContext, trigger, }: {
124
+ invocationContext: InvocationContext;
125
+ trigger: ContextCompactionTrigger;
126
+ }): Promise<void>;
127
+ /**
128
+ * Runs the `beforeToolCallback` for all plugins.
129
+ */
130
+ runBeforeToolCallback({ tool, toolArgs, toolContext, }: {
131
+ tool: BaseTool;
132
+ toolArgs: Record<string, unknown>;
133
+ toolContext: Context;
134
+ }): Promise<Record<string, unknown> | undefined>;
135
+ /**
136
+ * Runs the `afterToolCallback` for all plugins.
137
+ */
138
+ runAfterToolCallback({ tool, toolArgs, toolContext, result, }: {
139
+ tool: BaseTool;
140
+ toolArgs: Record<string, unknown>;
141
+ toolContext: Context;
142
+ result: Record<string, unknown>;
143
+ }): Promise<Record<string, unknown> | undefined>;
144
+ /**
145
+ * Runs the `onModelErrorCallback` for all plugins.
146
+ */
147
+ runOnModelErrorCallback({ callbackContext, llmRequest, error, }: {
148
+ callbackContext: Context;
149
+ llmRequest: LlmRequest;
150
+ error: Error;
151
+ }): Promise<LlmResponse | undefined>;
152
+ /**
153
+ * Runs the `beforeModelCallback` for all plugins.
154
+ */
155
+ runBeforeModelCallback({ callbackContext, llmRequest, }: {
156
+ callbackContext: Context;
157
+ llmRequest: LlmRequest;
158
+ }): Promise<LlmResponse | undefined>;
159
+ /**
160
+ * Runs the `afterModelCallback` for all plugins.
161
+ */
162
+ runAfterModelCallback({ callbackContext, llmResponse, }: {
163
+ callbackContext: Context;
164
+ llmResponse: LlmResponse;
165
+ }): Promise<LlmResponse | undefined>;
166
+ /**
167
+ * Runs the `onToolErrorCallback` for all plugins.
168
+ */
169
+ runOnToolErrorCallback({ tool, toolArgs, toolContext, error, }: {
170
+ tool: BaseTool;
171
+ toolArgs: Record<string, unknown>;
172
+ toolContext: Context;
173
+ error: Error;
174
+ }): Promise<Record<string, unknown> | undefined>;
175
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { FunctionCall } from '@google/genai';
7
+ import { Context } from '../agents/context.js';
8
+ import { Event } from '../events/event.js';
9
+ import { BasePlugin } from '../plugins/base_plugin.js';
10
+ import { BaseTool } from '../tools/base_tool.js';
11
+ export declare const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
12
+ /**
13
+ * The outcome of a policy check.
14
+ */
15
+ export declare enum PolicyOutcome {
16
+ DENY = "DENY",
17
+ CONFIRM = "CONFIRM",
18
+ ALLOW = "ALLOW"
19
+ }
20
+ export interface PolicyCheckResult {
21
+ outcome: string;
22
+ reason?: string;
23
+ }
24
+ export interface ToolCallPolicyContext {
25
+ tool: BaseTool;
26
+ toolArgs: Record<string, unknown>;
27
+ }
28
+ export interface BasePolicyEngine {
29
+ evaluate(context: ToolCallPolicyContext): Promise<PolicyCheckResult>;
30
+ }
31
+ export declare class InMemoryPolicyEngine implements BasePolicyEngine {
32
+ evaluate(): Promise<PolicyCheckResult>;
33
+ }
34
+ /**
35
+ * Security Plugin for running Orcas agents.
36
+ */
37
+ export declare class SecurityPlugin extends BasePlugin {
38
+ private readonly policyEngine;
39
+ constructor(params?: {
40
+ policyEngine?: BasePolicyEngine;
41
+ });
42
+ beforeToolCallback({ tool, toolArgs, toolContext, }: {
43
+ tool: BaseTool;
44
+ toolArgs: {
45
+ [key: string]: unknown;
46
+ };
47
+ toolContext: Context;
48
+ }): Promise<{
49
+ [key: string]: unknown;
50
+ } | undefined>;
51
+ private getToolCallCheckState;
52
+ private setToolCallCheckState;
53
+ private checkToolCallPolicy;
54
+ }
55
+ /**
56
+ * Gets the ask user confirmation function calls from the event.
57
+ * @param event The event to get the function calls from.
58
+ * @returns The ask user confirmation function calls.
59
+ */
60
+ export declare function getAskUserConfirmationFunctionCalls(event: Event): FunctionCall[];
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseAgent } from '../agents/base_agent.js';
7
+ import { BasePlugin } from '../plugins/base_plugin.js';
8
+ import { Runner } from './runner.js';
9
+ export declare class InMemoryRunner extends Runner {
10
+ constructor({ agent, appName, plugins, }: {
11
+ agent: BaseAgent;
12
+ appName?: string;
13
+ plugins?: BasePlugin[];
14
+ });
15
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Content } from '@google/genai';
7
+ import { BaseAgent } from '../agents/base_agent.js';
8
+ import { RunConfig } from '../agents/run_config.js';
9
+ import { BaseArtifactService } from '../artifacts/base_artifact_service.js';
10
+ import { BaseCredentialService } from '../auth/credential_service/base_credential_service.js';
11
+ import { Event } from '../events/event.js';
12
+ import { BaseMemoryService } from '../memory/base_memory_service.js';
13
+ import { BasePlugin } from '../plugins/base_plugin.js';
14
+ import { PluginManager } from '../plugins/plugin_manager.js';
15
+ import { BaseSessionService } from '../sessions/base_session_service.js';
16
+ /**
17
+ * The configuration parameters for the Runner.
18
+ */
19
+ export interface RunnerConfig {
20
+ /**
21
+ * The application name.
22
+ */
23
+ appName: string;
24
+ /**
25
+ * The agent to run.
26
+ */
27
+ agent: BaseAgent;
28
+ plugins?: BasePlugin[];
29
+ artifactService?: BaseArtifactService;
30
+ sessionService: BaseSessionService;
31
+ memoryService?: BaseMemoryService;
32
+ credentialService?: BaseCredentialService;
33
+ }
34
+ /**
35
+ * A unique symbol to identify ADK agent classes.
36
+ * Defined once and shared by all Runner instances.
37
+ */
38
+ declare const RUNNER_SIGNATURE_SYMBOL: unique symbol;
39
+ /**
40
+ * Type guard to check if an object is an instance of Runner.
41
+ * @param obj The object to check.
42
+ * @returns True if the object is an instance of Runner, false otherwise.
43
+ */
44
+ export declare function isRunner(obj: unknown): obj is Runner;
45
+ export declare class Runner {
46
+ readonly [RUNNER_SIGNATURE_SYMBOL] = true;
47
+ readonly appName: string;
48
+ readonly agent: BaseAgent;
49
+ readonly pluginManager: PluginManager;
50
+ readonly artifactService?: BaseArtifactService;
51
+ readonly sessionService: BaseSessionService;
52
+ readonly memoryService?: BaseMemoryService;
53
+ readonly credentialService?: BaseCredentialService;
54
+ constructor(input: RunnerConfig);
55
+ /**
56
+ * Runs the agent with a new, ephemeral session.
57
+ *
58
+ * @param params.userId The user ID of the session.
59
+ * @param params.newMessage A new message to append to the session.
60
+ * @param params.stateDelta An optional state delta to apply to the session.
61
+ * @param params.runConfig The run config for the agent.
62
+ * @yields The Events generated by the agent.
63
+ */
64
+ runEphemeral(params: {
65
+ userId: string;
66
+ newMessage: Content;
67
+ stateDelta?: Record<string, unknown>;
68
+ runConfig?: RunConfig;
69
+ }): AsyncGenerator<Event, void, undefined>;
70
+ /**
71
+ * Runs the agent with the given message, and returns an async generator of
72
+ * events.
73
+ *
74
+ * @param params.userId The user ID of the session.
75
+ * @param params.sessionId The session ID of the session.
76
+ * @param params.newMessage A new message to append to the session.
77
+ * @param params.stateDelta An optional state delta to apply to the session.
78
+ * @param params.runConfig The run config for the agent.
79
+ * @yields The events generated by the agent.
80
+ */
81
+ runAsync(params: {
82
+ userId: string;
83
+ sessionId: string;
84
+ newMessage: Content;
85
+ stateDelta?: Record<string, unknown>;
86
+ runConfig?: RunConfig;
87
+ abortSignal?: AbortSignal;
88
+ }): AsyncGenerator<Event, void, undefined>;
89
+ /**
90
+ * Saves artifacts from the message parts and replaces the inline data with
91
+ * a file name placeholder.
92
+ *
93
+ * @param invocationId The current invocation ID.
94
+ * @param userId The user ID of the session.
95
+ * @param sessionId The session ID of the session.
96
+ * @param message The message containing parts to process.
97
+ */
98
+ private saveArtifacts;
99
+ /**
100
+ * Determines the next agent to run to continue the session. This is primarily
101
+ * used for session resumption.
102
+ */
103
+ private determineAgentForResumption;
104
+ /**
105
+ * Whether the agent to run can transfer to any other agent in the agent tree.
106
+ *
107
+ * An agent is transferable if:
108
+ * - It is an instance of `LlmAgent`.
109
+ * - All its ancestors are also transferable (i.e., they have
110
+ * `disallowTransferToParent` set to false).
111
+ *
112
+ * @param agentToRun The agent to check for transferability.
113
+ * @returns True if the agent can transfer, False otherwise.
114
+ */
115
+ private isRoutableLlmAgent;
116
+ }
117
+ export {};
@@ -0,0 +1,149 @@
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 { Session } from './session.js';
8
+ /**
9
+ * The configuration of getting a session.
10
+ */
11
+ export interface GetSessionConfig {
12
+ /** The number of recent events to retrieve. */
13
+ numRecentEvents?: number;
14
+ /** Retrieve events after this timestamp. */
15
+ afterTimestamp?: number;
16
+ }
17
+ /**
18
+ * The parameters for `createSession`.
19
+ */
20
+ export interface CreateSessionRequest {
21
+ /** The name of the application. */
22
+ appName: string;
23
+ /** The ID of the user. */
24
+ userId: string;
25
+ /** The initial state of the session. */
26
+ state?: Record<string, unknown>;
27
+ /** The ID of the session. A new ID will be generated if not provided. */
28
+ sessionId?: string;
29
+ }
30
+ /**
31
+ * The parameters for `getSession`.
32
+ */
33
+ export interface GetSessionRequest {
34
+ /** The name of the application. */
35
+ appName: string;
36
+ /** The ID of the user. */
37
+ userId: string;
38
+ /** The ID of the session. */
39
+ sessionId: string;
40
+ /** The configurations for getting the session. */
41
+ config?: GetSessionConfig;
42
+ }
43
+ /**
44
+ * The parameters for `listSessions`.
45
+ */
46
+ export interface ListSessionsRequest {
47
+ /** The name of the application. */
48
+ appName: string;
49
+ /** The ID of the user. */
50
+ userId: string;
51
+ }
52
+ /**
53
+ * The parameters for `deleteSession`.
54
+ */
55
+ export interface DeleteSessionRequest {
56
+ /** The name of the application. */
57
+ appName: string;
58
+ /** The ID of the user. */
59
+ userId: string;
60
+ /** The ID of the session. */
61
+ sessionId: string;
62
+ }
63
+ /**
64
+ * The parameters for `appendEvent`.
65
+ */
66
+ export interface AppendEventRequest {
67
+ /** The session to append the event to. */
68
+ session: Session;
69
+ /** The event to append. */
70
+ event: Event;
71
+ }
72
+ /**
73
+ * The response of listing sessions.
74
+ *
75
+ * The events and states are not set within each Session object.
76
+ */
77
+ export interface ListSessionsResponse {
78
+ /** A list of sessions. */
79
+ sessions: Session[];
80
+ }
81
+ /**
82
+ * Base class for session services.
83
+ *
84
+ * The service provides a set of methods for managing sessions and events.
85
+ */
86
+ export declare abstract class BaseSessionService {
87
+ /**
88
+ * Creates a new session.
89
+ *
90
+ * @param request The request to create a session.
91
+ * @return A promise that resolves to the newly created session instance.
92
+ */
93
+ abstract createSession(request: CreateSessionRequest): Promise<Session>;
94
+ /**
95
+ * Gets a session.
96
+ *
97
+ * @param request The request to get a session.
98
+ * @return A promise that resolves to the session instance or undefined if not
99
+ * found.
100
+ */
101
+ abstract getSession(request: GetSessionRequest): Promise<Session | undefined>;
102
+ /**
103
+ * Gets a session or creates one if it doesn't exist.
104
+ *
105
+ * @param request The request to get or create a session.
106
+ * @return A promise that resolves to the session instance.
107
+ */
108
+ getOrCreateSession(request: CreateSessionRequest): Promise<Session>;
109
+ /**
110
+ * Lists sessions for a user.
111
+ *
112
+ * @param request The request to list sessions.
113
+ * @return A promise that resolves to a list of sessions for the user.
114
+ */
115
+ abstract listSessions(request: ListSessionsRequest): Promise<ListSessionsResponse>;
116
+ /**
117
+ * Deletes a session.
118
+ *
119
+ * @param request The request to delete a session.
120
+ * @return A promise that resolves when the session is deleted.
121
+ */
122
+ abstract deleteSession(request: DeleteSessionRequest): Promise<void>;
123
+ /**
124
+ * Appends an event to a session.
125
+ *
126
+ * @param request The request to append an event.
127
+ * @return A promise that resolves to the event that was appended.
128
+ */
129
+ appendEvent({ session, event }: AppendEventRequest): Promise<Event>;
130
+ /**
131
+ * Updates the session state based on the event.
132
+ *
133
+ * @param request The request to update the session state.
134
+ */
135
+ private updateSessionState;
136
+ }
137
+ /**
138
+ * Removes temporary state delta keys from the event.
139
+ */
140
+ export declare function trimTempDeltaState(event: Event): Event;
141
+ /**
142
+ * Merges app state, user state, and session state.
143
+ *
144
+ * @param appState The application state.
145
+ * @param userState The user state.
146
+ * @param sessionState The session state.
147
+ * @return The merged state.
148
+ */
149
+ export declare function mergeStates(appState?: Record<string, unknown>, userState?: Record<string, unknown>, sessionState?: Record<string, unknown>): Record<string, unknown>;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Options as MikroDBOptions } from '@mikro-orm/core';
7
+ import { Event } from '../events/event.js';
8
+ import { AppendEventRequest, BaseSessionService, CreateSessionRequest, DeleteSessionRequest, GetSessionRequest, ListSessionsRequest, ListSessionsResponse } from './base_session_service.js';
9
+ import { Session } from './session.js';
10
+ /**
11
+ * Checks if a URI is a database connection URI.
12
+ *
13
+ * @param uri The URI to check.
14
+ * @returns True if the URI is a database connection URI, false otherwise.
15
+ */
16
+ export declare function isDatabaseConnectionString(uri?: string): boolean;
17
+ /**
18
+ * A session service that uses a SQL database for storage via MikroORM.
19
+ */
20
+ export declare class DatabaseSessionService extends BaseSessionService {
21
+ private orm?;
22
+ private initialized;
23
+ private options?;
24
+ private connectionString?;
25
+ constructor(connectionStringOrOptions: MikroDBOptions | string);
26
+ init(): Promise<void>;
27
+ createSession({ appName, userId, state, sessionId, }: CreateSessionRequest): Promise<Session>;
28
+ getSession({ appName, userId, sessionId, config, }: GetSessionRequest): Promise<Session | undefined>;
29
+ listSessions({ appName, userId, }: ListSessionsRequest): Promise<ListSessionsResponse>;
30
+ deleteSession({ appName, userId, sessionId, }: DeleteSessionRequest): Promise<void>;
31
+ appendEvent({ session, event, }: AppendEventRequest): Promise<Event>;
32
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { MikroORM, Options as MikroORMOptions } from '@mikro-orm/core';
7
+ /**
8
+ * Parses a database connection URI and returns MikroORM Options.
9
+ *
10
+ * @param uri The database connection URI (e.g., "postgres://user:password@host:port/database")
11
+ * @returns MikroORM Options configured for the database
12
+ * @throws Error if the URI is invalid or unsupported
13
+ */
14
+ export declare function getConnectionOptionsFromUri(uri: string): Promise<MikroORMOptions>;
15
+ /**
16
+ * Creates a database and tables if they don't exist.
17
+ *
18
+ * @param orm The MikroORM instance.
19
+ * @returns Promise<void>
20
+ */
21
+ export declare function ensureDatabaseCreated(orm: MikroORM): Promise<void>;
22
+ /**
23
+ * Validates the schema version.
24
+ *
25
+ * @param orm The MikroORM instance.
26
+ * @throws Error if the schema version is not compatible.
27
+ */
28
+ export declare function validateDatabaseSchemaVersion(orm: MikroORM): Promise<void>;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { PrimaryKey } from '@mikro-orm/core';
7
+ import { Event } from '../../events/event.js';
8
+ export declare const SCHEMA_VERSION_KEY = "schema_version";
9
+ export declare const SCHEMA_VERSION_1_JSON = "1";
10
+ export declare class StorageMetadata {
11
+ key: string;
12
+ value: string;
13
+ }
14
+ export declare class StorageAppState {
15
+ appName: string;
16
+ state: Record<string, unknown>;
17
+ updateTime: Date;
18
+ }
19
+ export declare class StorageUserState {
20
+ [PrimaryKey.name]?: [string, string] | undefined;
21
+ appName: string;
22
+ userId: string;
23
+ state: Record<string, unknown>;
24
+ updateTime: Date;
25
+ }
26
+ export declare class StorageSession {
27
+ [PrimaryKey.name]?: [string, string, string] | undefined;
28
+ id: string;
29
+ appName: string;
30
+ userId: string;
31
+ state: Record<string, unknown>;
32
+ createTime: Date;
33
+ updateTime: Date;
34
+ }
35
+ export declare class StorageEvent {
36
+ [PrimaryKey.name]?: [string, string, string, string] | undefined;
37
+ id: string;
38
+ appName: string;
39
+ userId: string;
40
+ sessionId: string;
41
+ invocationId: string;
42
+ timestamp: Date;
43
+ eventData: Event;
44
+ }
45
+ export declare const ENTITIES: (typeof StorageMetadata | typeof StorageAppState | typeof StorageEvent)[];
@@ -0,0 +1,30 @@
1
+ import { Event } from '../events/event.js';
2
+ import { AppendEventRequest, BaseSessionService, CreateSessionRequest, DeleteSessionRequest, GetSessionRequest, ListSessionsRequest, ListSessionsResponse } from './base_session_service.js';
3
+ import { Session } from './session.js';
4
+ /**
5
+ * Checks if the given URI is an in-memory memory service URI.
6
+ */
7
+ export declare function isInMemoryConnectionString(uri?: string): boolean;
8
+ /**
9
+ * An in-memory implementation of the session service.
10
+ */
11
+ export declare class InMemorySessionService extends BaseSessionService {
12
+ /**
13
+ * A map from app name to a map from user ID to a map from session ID to
14
+ * session.
15
+ */
16
+ private sessions;
17
+ /**
18
+ * A map from app name to a map from user ID to a map from key to the value.
19
+ */
20
+ private userState;
21
+ /**
22
+ * A map from app name to a map from key to the value.
23
+ */
24
+ private appState;
25
+ createSession({ appName, userId, state, sessionId, }: CreateSessionRequest): Promise<Session>;
26
+ getSession({ appName, userId, sessionId, config, }: GetSessionRequest): Promise<Session | undefined>;
27
+ listSessions({ appName, userId, }: ListSessionsRequest): Promise<ListSessionsResponse>;
28
+ deleteSession({ appName, userId, sessionId, }: DeleteSessionRequest): Promise<void>;
29
+ appendEvent({ session, event, }: AppendEventRequest): Promise<Event>;
30
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseSessionService } from './base_session_service.js';
7
+ export declare function getSessionServiceFromUri(uri: string): BaseSessionService;