@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,319 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { createUserContent } from "@google/genai";
9
+ import { cloneDeep } from "lodash-es";
10
+ import {
11
+ isCompactedEvent
12
+ } from "../../events/compacted_event.js";
13
+ import {
14
+ createEvent,
15
+ getFunctionCalls,
16
+ getFunctionResponses
17
+ } from "../../events/event.js";
18
+ import {
19
+ removeClientFunctionCallId,
20
+ REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
21
+ REQUEST_EUC_FUNCTION_CALL_NAME
22
+ } from "../functions.js";
23
+ function getContents(events, agentName, currentBranch) {
24
+ var _a, _b, _c;
25
+ const filteredEvents = [];
26
+ for (const event of events) {
27
+ if (isCompactedEvent(event)) {
28
+ filteredEvents.push(convertCompactedEvent(event));
29
+ continue;
30
+ }
31
+ if (!((_a = event.content) == null ? void 0 : _a.role) || ((_c = (_b = event.content.parts) == null ? void 0 : _b[0]) == null ? void 0 : _c.text) === "") {
32
+ continue;
33
+ }
34
+ if (currentBranch && event.branch && !currentBranch.startsWith(event.branch)) {
35
+ continue;
36
+ }
37
+ if (isAuthEvent(event)) {
38
+ continue;
39
+ }
40
+ if (isToolConfirmationEvent(event)) {
41
+ continue;
42
+ }
43
+ filteredEvents.push(
44
+ isEventFromAnotherAgent(agentName, event) ? convertForeignEvent(event) : event
45
+ );
46
+ }
47
+ let resultEvents = rearrangeEventsForLatestFunctionResponse(filteredEvents);
48
+ resultEvents = rearrangeEventsForAsyncFunctionResponsesInHistory(resultEvents);
49
+ const contents = [];
50
+ for (const event of resultEvents) {
51
+ const content = cloneDeep(event.content);
52
+ removeClientFunctionCallId(content);
53
+ contents.push(content);
54
+ }
55
+ return contents;
56
+ }
57
+ function getCurrentTurnContents(events, agentName, currentBranch) {
58
+ for (let i = events.length - 1; i >= 0; i--) {
59
+ const event = events[i];
60
+ if (event.author === "user" || isEventFromAnotherAgent(agentName, event)) {
61
+ return getContents(events.slice(i), agentName, currentBranch);
62
+ }
63
+ }
64
+ return [];
65
+ }
66
+ function isAuthEvent(event) {
67
+ var _a, _b, _c;
68
+ if (!((_a = event.content) == null ? void 0 : _a.parts)) {
69
+ return false;
70
+ }
71
+ for (const part of event.content.parts) {
72
+ if (((_b = part.functionCall) == null ? void 0 : _b.name) === REQUEST_EUC_FUNCTION_CALL_NAME || ((_c = part.functionResponse) == null ? void 0 : _c.name) === REQUEST_EUC_FUNCTION_CALL_NAME) {
73
+ return true;
74
+ }
75
+ }
76
+ return false;
77
+ }
78
+ function isToolConfirmationEvent(event) {
79
+ var _a, _b, _c;
80
+ if (!((_a = event.content) == null ? void 0 : _a.parts)) {
81
+ return false;
82
+ }
83
+ for (const part of event.content.parts) {
84
+ if (((_b = part.functionCall) == null ? void 0 : _b.name) === REQUEST_CONFIRMATION_FUNCTION_CALL_NAME || ((_c = part.functionResponse) == null ? void 0 : _c.name) === REQUEST_CONFIRMATION_FUNCTION_CALL_NAME) {
85
+ return true;
86
+ }
87
+ }
88
+ return false;
89
+ }
90
+ function isEventFromAnotherAgent(agentName, event) {
91
+ return !!agentName && event.author !== agentName && event.author !== "user";
92
+ }
93
+ function convertForeignEvent(event) {
94
+ var _a, _b, _c, _d, _e, _f;
95
+ if (!((_b = (_a = event.content) == null ? void 0 : _a.parts) == null ? void 0 : _b.length)) {
96
+ return event;
97
+ }
98
+ const content = {
99
+ role: "user",
100
+ parts: [
101
+ {
102
+ text: "For context:"
103
+ }
104
+ ]
105
+ };
106
+ for (const part of event.content.parts) {
107
+ if (part.text && !part.thought) {
108
+ (_c = content.parts) == null ? void 0 : _c.push({
109
+ text: `[${event.author}] said: ${part.text}`
110
+ });
111
+ } else if (part.functionCall) {
112
+ const argsText = safeStringify(part.functionCall.args);
113
+ (_d = content.parts) == null ? void 0 : _d.push({
114
+ text: `[${event.author}] called tool \`${part.functionCall.name}\` with parameters: ${argsText}`
115
+ });
116
+ } else if (part.functionResponse) {
117
+ const responseText = safeStringify(part.functionResponse.response);
118
+ (_e = content.parts) == null ? void 0 : _e.push({
119
+ text: `[${event.author}] tool \`${part.functionResponse.name}\` returned result: ${responseText}`
120
+ });
121
+ } else {
122
+ (_f = content.parts) == null ? void 0 : _f.push(part);
123
+ }
124
+ }
125
+ return createEvent({
126
+ invocationId: event.invocationId,
127
+ author: "user",
128
+ content,
129
+ branch: event.branch,
130
+ timestamp: event.timestamp
131
+ });
132
+ }
133
+ function mergeFunctionResponseEvents(events) {
134
+ var _a;
135
+ if (events.length === 0) {
136
+ throw new Error("Cannot merge an empty list of events.");
137
+ }
138
+ const mergedEvent = createEvent(events[0]);
139
+ const partsInMergedEvent = ((_a = mergedEvent.content) == null ? void 0 : _a.parts) || [];
140
+ if (partsInMergedEvent.length === 0) {
141
+ throw new Error("There should be at least one function_response part.");
142
+ }
143
+ const partIndicesInMergedEvent = {};
144
+ for (let i = 0; i < partsInMergedEvent.length; i++) {
145
+ const part = partsInMergedEvent[i];
146
+ if (part.functionResponse && part.functionResponse.id) {
147
+ partIndicesInMergedEvent[part.functionResponse.id] = i;
148
+ }
149
+ }
150
+ for (const event of events.slice(1)) {
151
+ if (!event.content || !event.content.parts) {
152
+ throw new Error("There should be at least one function_response part.");
153
+ }
154
+ for (const part of event.content.parts) {
155
+ if (part.functionResponse && part.functionResponse.id) {
156
+ const functionCallId = part.functionResponse.id;
157
+ if (functionCallId in partIndicesInMergedEvent) {
158
+ partsInMergedEvent[partIndicesInMergedEvent[functionCallId]] = part;
159
+ } else {
160
+ partsInMergedEvent.push(part);
161
+ partIndicesInMergedEvent[functionCallId] = partsInMergedEvent.length - 1;
162
+ }
163
+ } else {
164
+ partsInMergedEvent.push(part);
165
+ }
166
+ }
167
+ }
168
+ return mergedEvent;
169
+ }
170
+ function rearrangeEventsForLatestFunctionResponse(events) {
171
+ if (events.length === 0) {
172
+ return events;
173
+ }
174
+ const latestEvent = events[events.length - 1];
175
+ const functionResponses = getFunctionResponses(latestEvent);
176
+ if (!(functionResponses == null ? void 0 : functionResponses.length)) {
177
+ return events;
178
+ }
179
+ let functionResponsesIds = new Set(
180
+ functionResponses.filter((response) => !!response.id).map((response) => response.id)
181
+ );
182
+ const secondLatestEvent = events.at(-2);
183
+ if (secondLatestEvent) {
184
+ const functionCallsFromSecondLatest = getFunctionCalls(secondLatestEvent);
185
+ if (functionCallsFromSecondLatest) {
186
+ for (const functionCall of functionCallsFromSecondLatest) {
187
+ if (functionCall.id && functionResponsesIds.has(functionCall.id)) {
188
+ return events;
189
+ }
190
+ }
191
+ }
192
+ }
193
+ let functionCallEventIdx = -1;
194
+ for (let idx = events.length - 2; idx >= 0; idx--) {
195
+ const event = events[idx];
196
+ const functionCalls = getFunctionCalls(event);
197
+ if (!(functionCalls == null ? void 0 : functionCalls.length)) {
198
+ continue;
199
+ }
200
+ for (const functionCall of functionCalls) {
201
+ if (functionCall.id && functionResponsesIds.has(functionCall.id)) {
202
+ functionCallEventIdx = idx;
203
+ const functionCallIds = new Set(
204
+ functionCalls.map((fc) => fc.id).filter((id) => !!id)
205
+ );
206
+ const isSubset = Array.from(functionResponsesIds).every(
207
+ (id) => functionCallIds.has(id)
208
+ );
209
+ if (!isSubset) {
210
+ throw new Error(
211
+ `Last response event should only contain the responses for the function calls in the same function call event. Function call ids found : ${Array.from(functionCallIds).join(
212
+ ", "
213
+ )}, function response ids provided: ${Array.from(functionResponsesIds).join(", ")}`
214
+ );
215
+ }
216
+ functionResponsesIds = functionCallIds;
217
+ break;
218
+ }
219
+ }
220
+ }
221
+ if (functionCallEventIdx === -1) {
222
+ throw new Error(
223
+ `No function call event found for function responses ids: ${Array.from(
224
+ functionResponsesIds
225
+ ).join(", ")}`
226
+ );
227
+ }
228
+ const functionResponseEvents = [];
229
+ for (let idx = functionCallEventIdx + 1; idx < events.length - 1; idx++) {
230
+ const event = events[idx];
231
+ const responses = getFunctionResponses(event);
232
+ if (responses && responses.some(
233
+ (response) => response.id && functionResponsesIds.has(response.id)
234
+ )) {
235
+ functionResponseEvents.push(event);
236
+ }
237
+ }
238
+ functionResponseEvents.push(events[events.length - 1]);
239
+ const resultEvents = events.slice(0, functionCallEventIdx + 1);
240
+ resultEvents.push(mergeFunctionResponseEvents(functionResponseEvents));
241
+ return resultEvents;
242
+ }
243
+ function rearrangeEventsForAsyncFunctionResponsesInHistory(events) {
244
+ const functionCallIdToResponseEventIndex = /* @__PURE__ */ new Map();
245
+ for (let i = 0; i < events.length; i++) {
246
+ const event = events[i];
247
+ const functionResponses = getFunctionResponses(event);
248
+ if (functionResponses == null ? void 0 : functionResponses.length) {
249
+ for (const functionResponse of functionResponses) {
250
+ if (!functionResponse.id) {
251
+ continue;
252
+ }
253
+ functionCallIdToResponseEventIndex.set(functionResponse.id, i);
254
+ }
255
+ }
256
+ }
257
+ const resultEvents = [];
258
+ for (const event of events) {
259
+ if (getFunctionResponses(event).length > 0) {
260
+ continue;
261
+ }
262
+ const functionCalls = getFunctionCalls(event);
263
+ if (functionCalls == null ? void 0 : functionCalls.length) {
264
+ const functionResponseEventsIndices = /* @__PURE__ */ new Set();
265
+ for (const functionCall of functionCalls) {
266
+ const functionCallId = functionCall.id;
267
+ if (functionCallId && functionCallIdToResponseEventIndex.has(functionCallId)) {
268
+ functionResponseEventsIndices.add(
269
+ functionCallIdToResponseEventIndex.get(functionCallId)
270
+ );
271
+ }
272
+ }
273
+ resultEvents.push(event);
274
+ if (functionResponseEventsIndices.size === 0) {
275
+ continue;
276
+ }
277
+ if (functionResponseEventsIndices.size === 1) {
278
+ const [responseIndex] = [...functionResponseEventsIndices];
279
+ resultEvents.push(events[responseIndex]);
280
+ } else {
281
+ const indicesArray = Array.from(functionResponseEventsIndices).sort(
282
+ (a, b) => a - b
283
+ );
284
+ const eventsToMerge = indicesArray.map((index) => events[index]);
285
+ resultEvents.push(mergeFunctionResponseEvents(eventsToMerge));
286
+ }
287
+ } else {
288
+ resultEvents.push(event);
289
+ }
290
+ }
291
+ return resultEvents;
292
+ }
293
+ function safeStringify(obj) {
294
+ if (typeof obj === "string") {
295
+ return obj;
296
+ }
297
+ try {
298
+ return JSON.stringify(obj);
299
+ } catch (_e) {
300
+ return String(obj);
301
+ }
302
+ }
303
+ function convertCompactedEvent(event) {
304
+ const content = createUserContent(
305
+ `[Previous Context Summary]:
306
+ ${event.compactedContent}`
307
+ );
308
+ return createEvent({
309
+ invocationId: event.invocationId,
310
+ author: "user",
311
+ content,
312
+ branch: event.branch,
313
+ timestamp: event.timestamp
314
+ });
315
+ }
316
+ export {
317
+ getContents,
318
+ getCurrentTurnContents
319
+ };
@@ -0,0 +1,61 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { isCompactedEvent } from "../../events/compacted_event.js";
9
+ import { isLlmAgent } from "../llm_agent.js";
10
+ import {
11
+ getContents,
12
+ getCurrentTurnContents
13
+ } from "./content_processor_utils.js";
14
+ class ContentRequestProcessor {
15
+ // eslint-disable-next-line require-yield
16
+ async *runAsync(invocationContext, llmRequest) {
17
+ const agent = invocationContext.agent;
18
+ if (!agent || !isLlmAgent(agent)) {
19
+ return;
20
+ }
21
+ let events = invocationContext.session.events;
22
+ const compactedEvents = events.filter(isCompactedEvent);
23
+ const latestCompactedEvent = compactedEvents.length > 0 ? compactedEvents.reduce(
24
+ (latest, current) => current.endTime > latest.endTime ? current : latest
25
+ ) : void 0;
26
+ if (latestCompactedEvent) {
27
+ const remainingEvents = events.filter((event) => {
28
+ if (event === latestCompactedEvent) {
29
+ return false;
30
+ }
31
+ if (isCompactedEvent(event)) {
32
+ return false;
33
+ }
34
+ if (event.timestamp <= latestCompactedEvent.endTime) {
35
+ return false;
36
+ }
37
+ return true;
38
+ });
39
+ events = [latestCompactedEvent, ...remainingEvents];
40
+ }
41
+ if (agent.includeContents === "default") {
42
+ llmRequest.contents = getContents(
43
+ events,
44
+ agent.name,
45
+ invocationContext.branch
46
+ );
47
+ } else {
48
+ llmRequest.contents = getCurrentTurnContents(
49
+ events,
50
+ agent.name,
51
+ invocationContext.branch
52
+ );
53
+ }
54
+ return;
55
+ }
56
+ }
57
+ const CONTENT_REQUEST_PROCESSOR = new ContentRequestProcessor();
58
+ export {
59
+ CONTENT_REQUEST_PROCESSOR,
60
+ ContentRequestProcessor
61
+ };
@@ -0,0 +1,42 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { ContextCompactionTrigger } from "../../plugins/base_plugin.js";
9
+ class ContextCompactorRequestProcessor {
10
+ constructor(compactors) {
11
+ this.compactors = compactors;
12
+ }
13
+ async *runAsync(invocationContext, _llmRequest) {
14
+ for (const compactor of this.compactors) {
15
+ const shouldCompact = await Promise.resolve(
16
+ compactor.shouldCompact(invocationContext)
17
+ );
18
+ if (shouldCompact) {
19
+ await invocationContext.pluginManager.runBeforeContextCompaction({
20
+ invocationContext,
21
+ trigger: ContextCompactionTrigger.Auto
22
+ });
23
+ const oldEvents = new Set(invocationContext.session.events);
24
+ await Promise.resolve(compactor.compact(invocationContext));
25
+ await invocationContext.pluginManager.runAfterContextCompaction({
26
+ invocationContext,
27
+ trigger: ContextCompactionTrigger.Auto
28
+ });
29
+ const newEvents = invocationContext.session.events.filter(
30
+ (e) => !oldEvents.has(e)
31
+ );
32
+ for (const e of newEvents) {
33
+ yield e;
34
+ }
35
+ return;
36
+ }
37
+ }
38
+ }
39
+ }
40
+ export {
41
+ ContextCompactorRequestProcessor
42
+ };
@@ -0,0 +1,25 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { appendInstructions } from "../../models/llm_request.js";
9
+ import { BaseLlmRequestProcessor } from "./base_llm_processor.js";
10
+ class IdentityLlmRequestProcessor extends BaseLlmRequestProcessor {
11
+ // eslint-disable-next-line require-yield
12
+ async *runAsync(invocationContext, llmRequest) {
13
+ const agent = invocationContext.agent;
14
+ const si = [`You are an agent. Your internal name is "${agent.name}".`];
15
+ if (agent.description) {
16
+ si.push(`The description about you is "${agent.description}"`);
17
+ }
18
+ appendInstructions(llmRequest, si);
19
+ }
20
+ }
21
+ const IDENTITY_LLM_REQUEST_PROCESSOR = new IdentityLlmRequestProcessor();
22
+ export {
23
+ IDENTITY_LLM_REQUEST_PROCESSOR,
24
+ IdentityLlmRequestProcessor
25
+ };
@@ -0,0 +1,56 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { appendInstructions } from "../../models/llm_request.js";
9
+ import { injectSessionState } from "../instructions.js";
10
+ import { isLlmAgent } from "../llm_agent.js";
11
+ import { ReadonlyContext } from "../readonly_context.js";
12
+ import { BaseLlmRequestProcessor } from "./base_llm_processor.js";
13
+ class InstructionsLlmRequestProcessor extends BaseLlmRequestProcessor {
14
+ /**
15
+ * Handles instructions and global instructions for LLM flow.
16
+ */
17
+ // eslint-disable-next-line require-yield
18
+ async *runAsync(invocationContext, llmRequest) {
19
+ const agent = invocationContext.agent;
20
+ if (!isLlmAgent(agent)) {
21
+ return;
22
+ }
23
+ const rootAgent = agent.rootAgent;
24
+ if (isLlmAgent(rootAgent) && rootAgent.globalInstruction) {
25
+ const { instruction, requireStateInjection } = await rootAgent.canonicalGlobalInstruction(
26
+ new ReadonlyContext(invocationContext)
27
+ );
28
+ let instructionWithState = instruction;
29
+ if (requireStateInjection) {
30
+ instructionWithState = await injectSessionState(
31
+ instruction,
32
+ new ReadonlyContext(invocationContext)
33
+ );
34
+ }
35
+ appendInstructions(llmRequest, [instructionWithState]);
36
+ }
37
+ if (agent.instruction) {
38
+ const { instruction, requireStateInjection } = await agent.canonicalInstruction(
39
+ new ReadonlyContext(invocationContext)
40
+ );
41
+ let instructionWithState = instruction;
42
+ if (requireStateInjection) {
43
+ instructionWithState = await injectSessionState(
44
+ instruction,
45
+ new ReadonlyContext(invocationContext)
46
+ );
47
+ }
48
+ appendInstructions(llmRequest, [instructionWithState]);
49
+ }
50
+ }
51
+ }
52
+ const INSTRUCTIONS_LLM_REQUEST_PROCESSOR = new InstructionsLlmRequestProcessor();
53
+ export {
54
+ INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
55
+ InstructionsLlmRequestProcessor
56
+ };
@@ -0,0 +1,142 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import {
9
+ getFunctionCalls,
10
+ getFunctionResponses
11
+ } from "../../events/event.js";
12
+ import { ToolConfirmation } from "../../tools/tool_confirmation.js";
13
+ import {
14
+ REQUEST_CONFIRMATION_FUNCTION_CALL_NAME,
15
+ handleFunctionCallList
16
+ } from "../functions.js";
17
+ import { isLlmAgent } from "../llm_agent.js";
18
+ import { ReadonlyContext } from "../readonly_context.js";
19
+ import { BaseLlmRequestProcessor } from "./base_llm_processor.js";
20
+ class RequestConfirmationLlmRequestProcessor extends BaseLlmRequestProcessor {
21
+ /** Handles tool confirmation information to build the LLM request. */
22
+ async *runAsync(invocationContext) {
23
+ const agent = invocationContext.agent;
24
+ if (!isLlmAgent(agent)) {
25
+ return;
26
+ }
27
+ const events = invocationContext.session.events;
28
+ if (!events || events.length === 0) {
29
+ return;
30
+ }
31
+ const requestConfirmationFunctionResponses = {};
32
+ let confirmationEventIndex = -1;
33
+ for (let i = events.length - 1; i >= 0; i--) {
34
+ const event = events[i];
35
+ if (event.author !== "user") {
36
+ continue;
37
+ }
38
+ const responses = getFunctionResponses(event);
39
+ if (!responses) {
40
+ continue;
41
+ }
42
+ let foundConfirmation = false;
43
+ for (const functionResponse of responses) {
44
+ if (functionResponse.name !== REQUEST_CONFIRMATION_FUNCTION_CALL_NAME) {
45
+ continue;
46
+ }
47
+ foundConfirmation = true;
48
+ let toolConfirmation = null;
49
+ if (functionResponse.response && Object.keys(functionResponse.response).length === 1 && "response" in functionResponse.response) {
50
+ toolConfirmation = JSON.parse(
51
+ functionResponse.response["response"]
52
+ );
53
+ } else if (functionResponse.response) {
54
+ toolConfirmation = new ToolConfirmation({
55
+ hint: functionResponse.response["hint"],
56
+ payload: functionResponse.response["payload"],
57
+ confirmed: functionResponse.response["confirmed"]
58
+ });
59
+ }
60
+ if (functionResponse.id && toolConfirmation) {
61
+ requestConfirmationFunctionResponses[functionResponse.id] = toolConfirmation;
62
+ }
63
+ }
64
+ if (foundConfirmation) {
65
+ confirmationEventIndex = i;
66
+ break;
67
+ }
68
+ }
69
+ if (Object.keys(requestConfirmationFunctionResponses).length === 0) {
70
+ return;
71
+ }
72
+ for (let i = confirmationEventIndex - 1; i >= 0; i--) {
73
+ const event = events[i];
74
+ const functionCalls = getFunctionCalls(event);
75
+ if (!functionCalls) {
76
+ continue;
77
+ }
78
+ const toolsToResumeWithConfirmation = {};
79
+ const toolsToResumeWithArgs = {};
80
+ for (const functionCall of functionCalls) {
81
+ if (!functionCall.id || !(functionCall.id in requestConfirmationFunctionResponses)) {
82
+ continue;
83
+ }
84
+ const args = functionCall.args;
85
+ if (!args || !("originalFunctionCall" in args)) {
86
+ continue;
87
+ }
88
+ const originalFunctionCall = args["originalFunctionCall"];
89
+ if (originalFunctionCall.id) {
90
+ toolsToResumeWithConfirmation[originalFunctionCall.id] = requestConfirmationFunctionResponses[functionCall.id];
91
+ toolsToResumeWithArgs[originalFunctionCall.id] = originalFunctionCall;
92
+ }
93
+ }
94
+ if (Object.keys(toolsToResumeWithConfirmation).length === 0) {
95
+ continue;
96
+ }
97
+ for (let j = events.length - 1; j > confirmationEventIndex; j--) {
98
+ const eventToCheck = events[j];
99
+ const functionResponses = getFunctionResponses(eventToCheck);
100
+ if (!functionResponses) {
101
+ continue;
102
+ }
103
+ for (const fr of functionResponses) {
104
+ if (fr.id && fr.id in toolsToResumeWithConfirmation) {
105
+ delete toolsToResumeWithConfirmation[fr.id];
106
+ delete toolsToResumeWithArgs[fr.id];
107
+ }
108
+ }
109
+ if (Object.keys(toolsToResumeWithConfirmation).length === 0) {
110
+ break;
111
+ }
112
+ }
113
+ if (Object.keys(toolsToResumeWithConfirmation).length === 0) {
114
+ continue;
115
+ }
116
+ const toolsList = await agent.canonicalTools(
117
+ new ReadonlyContext(invocationContext)
118
+ );
119
+ const toolsDict = Object.fromEntries(
120
+ toolsList.map((tool) => [tool.name, tool])
121
+ );
122
+ const functionResponseEvent = await handleFunctionCallList({
123
+ invocationContext,
124
+ functionCalls: Object.values(toolsToResumeWithArgs),
125
+ toolsDict,
126
+ beforeToolCallbacks: agent.canonicalBeforeToolCallbacks,
127
+ afterToolCallbacks: agent.canonicalAfterToolCallbacks,
128
+ filters: new Set(Object.keys(toolsToResumeWithConfirmation)),
129
+ toolConfirmationDict: toolsToResumeWithConfirmation
130
+ });
131
+ if (functionResponseEvent) {
132
+ yield functionResponseEvent;
133
+ }
134
+ return;
135
+ }
136
+ }
137
+ }
138
+ const REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR = new RequestConfirmationLlmRequestProcessor();
139
+ export {
140
+ REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
141
+ RequestConfirmationLlmRequestProcessor
142
+ };
@@ -0,0 +1,44 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import { Context } from "../context.js";
9
+ import { isLlmAgent } from "../llm_agent.js";
10
+ import { ReadonlyContext } from "../readonly_context.js";
11
+ import { BaseLlmRequestProcessor } from "./base_llm_processor.js";
12
+ class ToolFilterRequestProcessor extends BaseLlmRequestProcessor {
13
+ /** Filters the set of tools on the request based on plugins. */
14
+ // eslint-disable-next-line require-yield
15
+ async *runAsync(invocationContext, llmRequest) {
16
+ const agent = invocationContext.agent;
17
+ if (!isLlmAgent(agent)) {
18
+ return;
19
+ }
20
+ const toolsList = await agent.canonicalTools(
21
+ new ReadonlyContext(invocationContext)
22
+ );
23
+ if (toolsList.length === 0) {
24
+ return;
25
+ }
26
+ const toolsDict = {};
27
+ for (const tool of toolsList) {
28
+ toolsDict[tool.name] = tool;
29
+ }
30
+ const callbackContext = new Context({ invocationContext });
31
+ const filteredTools = await invocationContext.pluginManager.runBeforeToolSelection({
32
+ callbackContext,
33
+ tools: toolsDict
34
+ });
35
+ if (filteredTools !== void 0) {
36
+ llmRequest.allowedTools = Object.keys(filteredTools);
37
+ }
38
+ }
39
+ }
40
+ const TOOL_FILTER_REQUEST_PROCESSOR = new ToolFilterRequestProcessor();
41
+ export {
42
+ TOOL_FILTER_REQUEST_PROCESSOR,
43
+ ToolFilterRequestProcessor
44
+ };