@google/adk 0.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 (311) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +9 -0
  3. package/dist/cjs/agents/active_streaming_tool.js +44 -0
  4. package/dist/cjs/agents/base_agent.js +245 -0
  5. package/dist/cjs/agents/base_llm_processor.js +44 -0
  6. package/dist/cjs/agents/callback_context.js +98 -0
  7. package/dist/cjs/agents/content_processor_utils.js +299 -0
  8. package/dist/cjs/agents/functions.js +394 -0
  9. package/dist/cjs/agents/instructions.js +110 -0
  10. package/dist/cjs/agents/invocation_context.js +109 -0
  11. package/dist/cjs/agents/live_request_queue.js +136 -0
  12. package/dist/cjs/agents/llm_agent.js +859 -0
  13. package/dist/cjs/agents/loop_agent.js +68 -0
  14. package/dist/cjs/agents/parallel_agent.js +78 -0
  15. package/dist/cjs/agents/readonly_context.js +68 -0
  16. package/dist/cjs/agents/run_config.js +74 -0
  17. package/dist/cjs/agents/sequential_agent.js +84 -0
  18. package/dist/cjs/agents/transcription_entry.js +27 -0
  19. package/dist/cjs/artifacts/base_artifact_service.js +27 -0
  20. package/dist/cjs/artifacts/in_memory_artifact_service.js +119 -0
  21. package/dist/cjs/auth/auth_credential.js +46 -0
  22. package/dist/cjs/auth/auth_handler.js +92 -0
  23. package/dist/cjs/auth/auth_schemes.js +62 -0
  24. package/dist/cjs/auth/auth_tool.js +27 -0
  25. package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
  26. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
  27. package/dist/cjs/code_executors/base_code_executor.js +76 -0
  28. package/dist/cjs/code_executors/built_in_code_executor.js +58 -0
  29. package/dist/cjs/code_executors/code_execution_utils.js +142 -0
  30. package/dist/cjs/code_executors/code_executor_context.js +198 -0
  31. package/dist/cjs/common.js +161 -0
  32. package/dist/cjs/events/event.js +107 -0
  33. package/dist/cjs/events/event_actions.js +83 -0
  34. package/dist/cjs/examples/base_example_provider.js +40 -0
  35. package/dist/cjs/examples/example.js +27 -0
  36. package/dist/cjs/examples/example_util.js +107 -0
  37. package/dist/cjs/index.js +40 -0
  38. package/dist/cjs/index.js.map +7 -0
  39. package/dist/cjs/index_web.js +33 -0
  40. package/dist/cjs/memory/base_memory_service.js +27 -0
  41. package/dist/cjs/memory/in_memory_memory_service.js +97 -0
  42. package/dist/cjs/memory/memory_entry.js +27 -0
  43. package/dist/cjs/models/base_llm.js +77 -0
  44. package/dist/cjs/models/base_llm_connection.js +27 -0
  45. package/dist/cjs/models/gemini_llm_connection.js +132 -0
  46. package/dist/cjs/models/google_llm.js +321 -0
  47. package/dist/cjs/models/llm_request.js +82 -0
  48. package/dist/cjs/models/llm_response.js +71 -0
  49. package/dist/cjs/models/registry.js +121 -0
  50. package/dist/cjs/package.json +1 -0
  51. package/dist/cjs/plugins/base_plugin.js +236 -0
  52. package/dist/cjs/plugins/logging_plugin.js +222 -0
  53. package/dist/cjs/plugins/plugin_manager.js +239 -0
  54. package/dist/cjs/plugins/security_plugin.js +153 -0
  55. package/dist/cjs/runner/in_memory_runner.js +58 -0
  56. package/dist/cjs/runner/runner.js +276 -0
  57. package/dist/cjs/sessions/base_session_service.js +71 -0
  58. package/dist/cjs/sessions/in_memory_session_service.js +184 -0
  59. package/dist/cjs/sessions/session.js +48 -0
  60. package/dist/cjs/sessions/state.js +101 -0
  61. package/dist/cjs/tools/agent_tool.js +134 -0
  62. package/dist/cjs/tools/base_tool.js +107 -0
  63. package/dist/cjs/tools/base_toolset.js +76 -0
  64. package/dist/cjs/tools/forwarding_artifact_service.js +71 -0
  65. package/dist/cjs/tools/function_tool.js +101 -0
  66. package/dist/cjs/tools/google_search_tool.js +76 -0
  67. package/dist/cjs/tools/long_running_tool.js +63 -0
  68. package/dist/cjs/tools/mcp/mcp_session_manager.js +65 -0
  69. package/dist/cjs/tools/mcp/mcp_tool.js +65 -0
  70. package/dist/cjs/tools/mcp/mcp_toolset.js +61 -0
  71. package/dist/cjs/tools/tool_confirmation.js +49 -0
  72. package/dist/cjs/tools/tool_context.js +129 -0
  73. package/dist/cjs/utils/deep_clone.js +44 -0
  74. package/dist/cjs/utils/env_aware_utils.js +83 -0
  75. package/dist/cjs/utils/gemini_schema_util.js +88 -0
  76. package/dist/cjs/utils/logger.js +121 -0
  77. package/dist/cjs/utils/model_name.js +64 -0
  78. package/dist/cjs/utils/simple_zod_to_json.js +191 -0
  79. package/dist/cjs/utils/variant_utils.js +55 -0
  80. package/dist/cjs/version.js +39 -0
  81. package/dist/esm/agents/active_streaming_tool.js +14 -0
  82. package/dist/esm/agents/base_agent.js +214 -0
  83. package/dist/esm/agents/base_llm_processor.js +13 -0
  84. package/dist/esm/agents/callback_context.js +68 -0
  85. package/dist/esm/agents/content_processor_utils.js +268 -0
  86. package/dist/esm/agents/functions.js +353 -0
  87. package/dist/esm/agents/instructions.js +80 -0
  88. package/dist/esm/agents/invocation_context.js +78 -0
  89. package/dist/esm/agents/live_request_queue.js +106 -0
  90. package/dist/esm/agents/llm_agent.js +828 -0
  91. package/dist/esm/agents/loop_agent.js +38 -0
  92. package/dist/esm/agents/parallel_agent.js +48 -0
  93. package/dist/esm/agents/readonly_context.js +38 -0
  94. package/dist/esm/agents/run_config.js +43 -0
  95. package/dist/esm/agents/sequential_agent.js +54 -0
  96. package/dist/esm/agents/transcription_entry.js +5 -0
  97. package/dist/esm/artifacts/base_artifact_service.js +5 -0
  98. package/dist/esm/artifacts/in_memory_artifact_service.js +89 -0
  99. package/dist/esm/auth/auth_credential.js +16 -0
  100. package/dist/esm/auth/auth_handler.js +62 -0
  101. package/dist/esm/auth/auth_schemes.js +31 -0
  102. package/dist/esm/auth/auth_tool.js +5 -0
  103. package/dist/esm/auth/credential_service/base_credential_service.js +5 -0
  104. package/dist/esm/auth/credential_service/in_memory_credential_service.js +33 -0
  105. package/dist/esm/code_executors/base_code_executor.js +46 -0
  106. package/dist/esm/code_executors/built_in_code_executor.js +28 -0
  107. package/dist/esm/code_executors/code_execution_utils.js +108 -0
  108. package/dist/esm/code_executors/code_executor_context.js +168 -0
  109. package/dist/esm/common.js +85 -0
  110. package/dist/esm/events/event.js +72 -0
  111. package/dist/esm/events/event_actions.js +52 -0
  112. package/dist/esm/examples/base_example_provider.js +10 -0
  113. package/dist/esm/examples/example.js +5 -0
  114. package/dist/esm/examples/example_util.js +76 -0
  115. package/dist/esm/index.js +40 -0
  116. package/dist/esm/index.js.map +7 -0
  117. package/dist/esm/index_web.js +6 -0
  118. package/dist/esm/memory/base_memory_service.js +5 -0
  119. package/dist/esm/memory/in_memory_memory_service.js +67 -0
  120. package/dist/esm/memory/memory_entry.js +5 -0
  121. package/dist/esm/models/base_llm.js +47 -0
  122. package/dist/esm/models/base_llm_connection.js +5 -0
  123. package/dist/esm/models/gemini_llm_connection.js +102 -0
  124. package/dist/esm/models/google_llm.js +291 -0
  125. package/dist/esm/models/llm_request.js +50 -0
  126. package/dist/esm/models/llm_response.js +41 -0
  127. package/dist/esm/models/registry.js +91 -0
  128. package/dist/esm/plugins/base_plugin.js +206 -0
  129. package/dist/esm/plugins/logging_plugin.js +192 -0
  130. package/dist/esm/plugins/plugin_manager.js +209 -0
  131. package/dist/esm/plugins/security_plugin.js +119 -0
  132. package/dist/esm/runner/in_memory_runner.js +28 -0
  133. package/dist/esm/runner/runner.js +246 -0
  134. package/dist/esm/sessions/base_session_service.js +41 -0
  135. package/dist/esm/sessions/in_memory_session_service.js +154 -0
  136. package/dist/esm/sessions/session.js +18 -0
  137. package/dist/esm/sessions/state.js +71 -0
  138. package/dist/esm/tools/agent_tool.js +104 -0
  139. package/dist/esm/tools/base_tool.js +77 -0
  140. package/dist/esm/tools/base_toolset.js +46 -0
  141. package/dist/esm/tools/forwarding_artifact_service.js +41 -0
  142. package/dist/esm/tools/function_tool.js +71 -0
  143. package/dist/esm/tools/google_search_tool.js +46 -0
  144. package/dist/esm/tools/long_running_tool.js +33 -0
  145. package/dist/esm/tools/mcp/mcp_session_manager.js +35 -0
  146. package/dist/esm/tools/mcp/mcp_tool.js +35 -0
  147. package/dist/esm/tools/mcp/mcp_toolset.js +31 -0
  148. package/dist/esm/tools/tool_confirmation.js +19 -0
  149. package/dist/esm/tools/tool_context.js +99 -0
  150. package/dist/esm/utils/deep_clone.js +14 -0
  151. package/dist/esm/utils/env_aware_utils.js +49 -0
  152. package/dist/esm/utils/gemini_schema_util.js +58 -0
  153. package/dist/esm/utils/logger.js +89 -0
  154. package/dist/esm/utils/model_name.js +31 -0
  155. package/dist/esm/utils/simple_zod_to_json.js +160 -0
  156. package/dist/esm/utils/variant_utils.js +24 -0
  157. package/dist/esm/version.js +9 -0
  158. package/dist/types/agents/active_streaming_tool.d.ts +29 -0
  159. package/dist/types/agents/base_agent.d.ts +167 -0
  160. package/dist/types/agents/base_llm_processor.d.ts +27 -0
  161. package/dist/types/agents/callback_context.d.ts +42 -0
  162. package/dist/types/agents/content_processor_utils.d.ts +36 -0
  163. package/dist/types/agents/functions.d.ts +90 -0
  164. package/dist/types/agents/instructions.d.ts +32 -0
  165. package/dist/types/agents/invocation_context.d.ts +155 -0
  166. package/dist/types/agents/live_request_queue.d.ts +67 -0
  167. package/dist/types/agents/llm_agent.d.ts +333 -0
  168. package/dist/types/agents/loop_agent.d.ts +31 -0
  169. package/dist/types/agents/parallel_agent.d.ts +21 -0
  170. package/dist/types/agents/readonly_context.d.ts +31 -0
  171. package/dist/types/agents/run_config.d.ts +76 -0
  172. package/dist/types/agents/sequential_agent.d.ts +26 -0
  173. package/dist/types/agents/transcription_entry.d.ts +17 -0
  174. package/dist/types/artifacts/base_artifact_service.d.ts +127 -0
  175. package/dist/types/artifacts/in_memory_artifact_service.d.ts +18 -0
  176. package/dist/types/auth/auth_credential.d.ts +227 -0
  177. package/dist/types/auth/auth_handler.d.ts +27 -0
  178. package/dist/types/auth/auth_schemes.d.ts +36 -0
  179. package/dist/types/auth/auth_tool.d.ts +51 -0
  180. package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
  181. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
  182. package/dist/types/code_executors/base_code_executor.d.ts +60 -0
  183. package/dist/types/code_executors/built_in_code_executor.d.ts +13 -0
  184. package/dist/types/code_executors/code_execution_utils.d.ts +99 -0
  185. package/dist/types/code_executors/code_executor_context.d.ts +92 -0
  186. package/dist/types/common.d.ts +51 -0
  187. package/dist/types/events/event.d.ts +81 -0
  188. package/dist/types/events/event_actions.d.ts +74 -0
  189. package/dist/types/examples/base_example_provider.d.ts +20 -0
  190. package/dist/types/examples/example.d.ts +19 -0
  191. package/dist/types/examples/example_util.d.ts +13 -0
  192. package/dist/types/index.d.ts +9 -0
  193. package/dist/types/index_web.d.ts +6 -0
  194. package/dist/types/memory/base_memory_service.d.ts +47 -0
  195. package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
  196. package/dist/types/memory/memory_entry.d.ts +24 -0
  197. package/dist/types/models/base_llm.d.ts +46 -0
  198. package/dist/types/models/base_llm_connection.d.ts +51 -0
  199. package/dist/types/models/gemini_llm_connection.d.ts +54 -0
  200. package/dist/types/models/google_llm.d.ts +88 -0
  201. package/dist/types/models/llm_request.d.ts +49 -0
  202. package/dist/types/models/llm_response.d.ts +79 -0
  203. package/dist/types/models/registry.d.ts +45 -0
  204. package/dist/types/plugins/base_plugin.d.ts +310 -0
  205. package/dist/types/plugins/logging_plugin.d.ts +104 -0
  206. package/dist/types/plugins/plugin_manager.d.ts +155 -0
  207. package/dist/types/plugins/security_plugin.d.ts +60 -0
  208. package/dist/types/runner/in_memory_runner.d.ts +15 -0
  209. package/dist/types/runner/runner.d.ts +80 -0
  210. package/dist/types/sessions/base_session_service.d.ts +129 -0
  211. package/dist/types/sessions/in_memory_session_service.d.ts +32 -0
  212. package/dist/types/sessions/session.d.ts +46 -0
  213. package/dist/types/sessions/state.d.ts +57 -0
  214. package/dist/types/tools/agent_tool.d.ts +37 -0
  215. package/dist/types/tools/base_tool.d.ts +84 -0
  216. package/dist/types/tools/base_toolset.d.ts +64 -0
  217. package/dist/types/tools/forwarding_artifact_service.d.ts +21 -0
  218. package/dist/types/tools/function_tool.d.ts +48 -0
  219. package/dist/types/tools/google_search_tool.d.ts +18 -0
  220. package/dist/types/tools/long_running_tool.d.ts +18 -0
  221. package/dist/types/tools/mcp/mcp_session_manager.d.ts +57 -0
  222. package/dist/types/tools/mcp/mcp_tool.d.ts +30 -0
  223. package/dist/types/tools/mcp/mcp_toolset.d.ts +39 -0
  224. package/dist/types/tools/tool_confirmation.d.ts +25 -0
  225. package/dist/types/tools/tool_context.d.ts +63 -0
  226. package/dist/types/utils/deep_clone.d.ts +1 -0
  227. package/dist/types/utils/env_aware_utils.d.ts +31 -0
  228. package/dist/types/utils/gemini_schema_util.d.ts +23 -0
  229. package/dist/types/utils/logger.d.ts +41 -0
  230. package/dist/types/utils/model_name.d.ts +34 -0
  231. package/dist/types/utils/simple_zod_to_json.d.ts +12 -0
  232. package/dist/types/utils/variant_utils.d.ts +24 -0
  233. package/dist/types/version.d.ts +6 -0
  234. package/dist/web/agents/active_streaming_tool.js +14 -0
  235. package/dist/web/agents/base_agent.js +265 -0
  236. package/dist/web/agents/base_llm_processor.js +13 -0
  237. package/dist/web/agents/callback_context.js +68 -0
  238. package/dist/web/agents/content_processor_utils.js +268 -0
  239. package/dist/web/agents/functions.js +353 -0
  240. package/dist/web/agents/instructions.js +80 -0
  241. package/dist/web/agents/invocation_context.js +78 -0
  242. package/dist/web/agents/live_request_queue.js +124 -0
  243. package/dist/web/agents/llm_agent.js +973 -0
  244. package/dist/web/agents/loop_agent.js +71 -0
  245. package/dist/web/agents/parallel_agent.js +83 -0
  246. package/dist/web/agents/readonly_context.js +38 -0
  247. package/dist/web/agents/run_config.js +43 -0
  248. package/dist/web/agents/sequential_agent.js +99 -0
  249. package/dist/web/agents/transcription_entry.js +5 -0
  250. package/dist/web/artifacts/base_artifact_service.js +5 -0
  251. package/dist/web/artifacts/in_memory_artifact_service.js +89 -0
  252. package/dist/web/auth/auth_credential.js +16 -0
  253. package/dist/web/auth/auth_handler.js +62 -0
  254. package/dist/web/auth/auth_schemes.js +31 -0
  255. package/dist/web/auth/auth_tool.js +5 -0
  256. package/dist/web/auth/credential_service/base_credential_service.js +5 -0
  257. package/dist/web/auth/credential_service/in_memory_credential_service.js +33 -0
  258. package/dist/web/code_executors/base_code_executor.js +46 -0
  259. package/dist/web/code_executors/built_in_code_executor.js +28 -0
  260. package/dist/web/code_executors/code_execution_utils.js +105 -0
  261. package/dist/web/code_executors/code_executor_context.js +168 -0
  262. package/dist/web/common.js +85 -0
  263. package/dist/web/events/event.js +90 -0
  264. package/dist/web/events/event_actions.js +67 -0
  265. package/dist/web/examples/base_example_provider.js +10 -0
  266. package/dist/web/examples/example.js +5 -0
  267. package/dist/web/examples/example_util.js +75 -0
  268. package/dist/web/index.js +13 -0
  269. package/dist/web/index.js.map +7 -0
  270. package/dist/web/index_web.js +6 -0
  271. package/dist/web/memory/base_memory_service.js +5 -0
  272. package/dist/web/memory/in_memory_memory_service.js +67 -0
  273. package/dist/web/memory/memory_entry.js +5 -0
  274. package/dist/web/models/base_llm.js +47 -0
  275. package/dist/web/models/base_llm_connection.js +5 -0
  276. package/dist/web/models/gemini_llm_connection.js +120 -0
  277. package/dist/web/models/google_llm.js +332 -0
  278. package/dist/web/models/llm_request.js +50 -0
  279. package/dist/web/models/llm_response.js +41 -0
  280. package/dist/web/models/registry.js +91 -0
  281. package/dist/web/plugins/base_plugin.js +206 -0
  282. package/dist/web/plugins/logging_plugin.js +192 -0
  283. package/dist/web/plugins/plugin_manager.js +209 -0
  284. package/dist/web/plugins/security_plugin.js +119 -0
  285. package/dist/web/runner/in_memory_runner.js +28 -0
  286. package/dist/web/runner/runner.js +277 -0
  287. package/dist/web/sessions/base_session_service.js +41 -0
  288. package/dist/web/sessions/in_memory_session_service.js +154 -0
  289. package/dist/web/sessions/session.js +18 -0
  290. package/dist/web/sessions/state.js +87 -0
  291. package/dist/web/tools/agent_tool.js +118 -0
  292. package/dist/web/tools/base_tool.js +77 -0
  293. package/dist/web/tools/base_toolset.js +46 -0
  294. package/dist/web/tools/forwarding_artifact_service.js +41 -0
  295. package/dist/web/tools/function_tool.js +71 -0
  296. package/dist/web/tools/google_search_tool.js +46 -0
  297. package/dist/web/tools/long_running_tool.js +50 -0
  298. package/dist/web/tools/mcp/mcp_session_manager.js +35 -0
  299. package/dist/web/tools/mcp/mcp_tool.js +35 -0
  300. package/dist/web/tools/mcp/mcp_toolset.js +31 -0
  301. package/dist/web/tools/tool_confirmation.js +19 -0
  302. package/dist/web/tools/tool_context.js +99 -0
  303. package/dist/web/utils/deep_clone.js +14 -0
  304. package/dist/web/utils/env_aware_utils.js +49 -0
  305. package/dist/web/utils/gemini_schema_util.js +58 -0
  306. package/dist/web/utils/logger.js +89 -0
  307. package/dist/web/utils/model_name.js +31 -0
  308. package/dist/web/utils/simple_zod_to_json.js +174 -0
  309. package/dist/web/utils/variant_utils.js +24 -0
  310. package/dist/web/version.js +9 -0
  311. package/package.json +61 -0
@@ -0,0 +1,236 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var base_plugin_exports = {};
26
+ __export(base_plugin_exports, {
27
+ BasePlugin: () => BasePlugin
28
+ });
29
+ module.exports = __toCommonJS(base_plugin_exports);
30
+ /**
31
+ * @license
32
+ * Copyright 2025 Google LLC
33
+ * SPDX-License-Identifier: Apache-2.0
34
+ */
35
+ class BasePlugin {
36
+ /**
37
+ * Initializes the plugin.
38
+ *
39
+ * @param name A unique identifier for this plugin instance.
40
+ */
41
+ constructor(name) {
42
+ this.name = name;
43
+ }
44
+ /**
45
+ * Callback executed when a user message is received before an invocation
46
+ * starts.
47
+ *
48
+ * This callback helps logging and modifying the user message before the
49
+ * runner starts the invocation.
50
+ *
51
+ * @param invocationContext The context for the entire invocation.
52
+ * @param userMessage The message content input by user.
53
+ * @returns An optional `Content` to be returned to the ADK. Returning a
54
+ * value to replace the user message. Returning `undefined` to proceed
55
+ * normally.
56
+ */
57
+ async onUserMessageCallback({ invocationContext, userMessage }) {
58
+ return;
59
+ }
60
+ /**
61
+ * Callback executed before the ADK runner runs.
62
+ *
63
+ * This is the first callback to be called in the lifecycle, ideal for global
64
+ * setup or initialization tasks.
65
+ *
66
+ * @param invocationContext The context for the entire invocation, containing
67
+ * session information, the root agent, etc.
68
+ * @returns An optional `Event` to be returned to the ADK. Returning a value
69
+ * to halt execution of the runner and ends the runner with that event.
70
+ * Return `undefined` to proceed normally.
71
+ */
72
+ async beforeRunCallback({ invocationContext }) {
73
+ return;
74
+ }
75
+ /**
76
+ * Callback executed after an event is yielded from runner.
77
+ *
78
+ * This is the ideal place to make modification to the event before the event
79
+ * is handled by the underlying agent app.
80
+ *
81
+ * @param invocationContext The context for the entire invocation.
82
+ * @param event The event raised by the runner.
83
+ * @returns An optional value. A non-`undefined` return may be used by the
84
+ * framework to modify or replace the response. Returning `undefined`
85
+ * allows the original response to be used.
86
+ */
87
+ async onEventCallback({ invocationContext, event }) {
88
+ return;
89
+ }
90
+ /**
91
+ * Callback executed after an ADK runner run has completed.
92
+ *
93
+ * This is the final callback in the ADK lifecycle, suitable for cleanup,
94
+ * final logging, or reporting tasks.
95
+ *
96
+ * @param invocationContext The context for the entire invocation.
97
+ * @returns undefined
98
+ */
99
+ async afterRunCallback({ invocationContext }) {
100
+ return;
101
+ }
102
+ /**
103
+ * Callback executed before an agent's primary logic is invoked.
104
+ *
105
+ * This callback can be used for logging, setup, or to short-circuit the
106
+ * agent's execution by returning a value.
107
+ *
108
+ * @param agent The agent that is about to run.
109
+ * @param callbackContext The context for the agent invocation.
110
+ * @returns An optional `Content` object. If a value is returned, it will
111
+ * bypass the agent's callbacks and its execution, and return this value
112
+ * directly. Returning `undefined` allows the agent to proceed normally.
113
+ */
114
+ async beforeAgentCallback({ agent, callbackContext }) {
115
+ return;
116
+ }
117
+ /**
118
+ * Callback executed after an agent's primary logic has completed.
119
+ *
120
+ * This callback can be used to inspect, log, or modify the agent's final
121
+ * result before it is returned.
122
+ *
123
+ * @param agent The agent that has just run.
124
+ * @param callbackContext The context for the agent invocation.
125
+ * @returns An optional `Content` object. If a value is returned, it will
126
+ * replace the agent's original result. Returning `undefined` uses the
127
+ * original, unmodified result.
128
+ */
129
+ async afterAgentCallback({ agent, callbackContext }) {
130
+ return;
131
+ }
132
+ /**
133
+ * Callback executed before a request is sent to the model.
134
+ *
135
+ * This provides an opportunity to inspect, log, or modify the `LlmRequest`
136
+ * object. It can also be used to implement caching by returning a cached
137
+ * `LlmResponse`, which would skip the actual model call.
138
+ *
139
+ * @param callbackContext The context for the current agent call.
140
+ * @param llmRequest The prepared request object to be sent to the model.
141
+ * @returns An optional value. The interpretation of a non-`undefined`
142
+ * trigger an early exit and returns the response immediately. Returning
143
+ * `undefined` allows the LLM request to proceed normally.
144
+ */
145
+ async beforeModelCallback({ callbackContext, llmRequest }) {
146
+ return;
147
+ }
148
+ /**
149
+ * Callback executed after a response is received from the model.
150
+ *
151
+ * This is the ideal place to log model responses, collect metrics on token
152
+ * usage, or perform post-processing on the raw `LlmResponse`.
153
+ *
154
+ * @param callbackContext The context for the current agent call.
155
+ * @param llmResponse The response object received from the model.
156
+ * @returns An optional value. A non-`undefined` return may be used by the
157
+ * framework to modify or replace the response. Returning `undefined`
158
+ * allows the original response to be used.
159
+ */
160
+ async afterModelCallback({ callbackContext, llmResponse }) {
161
+ return;
162
+ }
163
+ /**
164
+ * Callback executed when a model call encounters an error.
165
+ *
166
+ * This callback provides an opportunity to handle model errors gracefully,
167
+ * potentially providing alternative responses or recovery mechanisms.
168
+ *
169
+ * @param callbackContext The context for the current agent call.
170
+ * @param llmRequest The request that was sent to the model when the error
171
+ * occurred.
172
+ * @param error The exception that was raised during model execution.
173
+ * @returns An optional LlmResponse. If an LlmResponse is returned, it will be
174
+ * used instead of propagating the error. Returning `undefined` allows
175
+ * the original error to be raised.
176
+ */
177
+ async onModelErrorCallback({ callbackContext, llmRequest, error }) {
178
+ return;
179
+ }
180
+ /**
181
+ * Callback executed before a tool is called.
182
+ *
183
+ * This callback is useful for logging tool usage, input validation, or
184
+ * modifying the arguments before they are passed to the tool.
185
+ *
186
+ * @param tool The tool instance that is about to be executed.
187
+ * @param toolArgs The dictionary of arguments to be used for invoking the
188
+ * tool.
189
+ * @param toolContext The context specific to the tool execution.
190
+ * @returns An optional dictionary. If a dictionary is returned, it will stop
191
+ * the tool execution and return this response immediately. Returning
192
+ * `undefined` uses the original, unmodified arguments.
193
+ */
194
+ async beforeToolCallback({ tool, toolArgs, toolContext }) {
195
+ return;
196
+ }
197
+ /**
198
+ * Callback executed after a tool has been called.
199
+ *
200
+ * This callback allows for inspecting, logging, or modifying the result
201
+ * returned by a tool.
202
+ *
203
+ * @param tool The tool instance that has just been executed.
204
+ * @param toolArgs The original arguments that were passed to the tool.
205
+ * @param toolContext The context specific to the tool execution.
206
+ * @param result The dictionary returned by the tool invocation.
207
+ * @returns An optional dictionary. If a dictionary is returned, it will
208
+ * **replace** the original result from the tool. This allows for
209
+ * post-processing or altering tool outputs. Returning `undefined` uses
210
+ * the original, unmodified result.
211
+ */
212
+ async afterToolCallback({ tool, toolArgs, toolContext, result }) {
213
+ return;
214
+ }
215
+ /**
216
+ * Callback executed when a tool call encounters an error.
217
+ *
218
+ * This callback provides an opportunity to handle tool errors gracefully,
219
+ * potentially providing alternative responses or recovery mechanisms.
220
+ *
221
+ * @param tool The tool instance that encountered an error.
222
+ * @param toolArgs The arguments that were passed to the tool.
223
+ * @param toolContext The context specific to the tool execution.
224
+ * @param error The exception that was raised during tool execution.
225
+ * @returns An optional dictionary. If a dictionary is returned, it will be
226
+ * used as the tool response instead of propagating the error. Returning
227
+ * `undefined` allows the original error to be raised.
228
+ */
229
+ async onToolErrorCallback({ tool, toolArgs, toolContext, error }) {
230
+ return;
231
+ }
232
+ }
233
+ // Annotate the CommonJS export names for ESM import in node:
234
+ 0 && (module.exports = {
235
+ BasePlugin
236
+ });
@@ -0,0 +1,222 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var logging_plugin_exports = {};
26
+ __export(logging_plugin_exports, {
27
+ LoggingPlugin: () => LoggingPlugin
28
+ });
29
+ module.exports = __toCommonJS(logging_plugin_exports);
30
+ var import_event = require("../events/event.js");
31
+ var import_logger = require("../utils/logger.js");
32
+ var import_base_plugin = require("./base_plugin.js");
33
+ /**
34
+ * @license
35
+ * Copyright 2025 Google LLC
36
+ * SPDX-License-Identifier: Apache-2.0
37
+ */
38
+ class LoggingPlugin extends import_base_plugin.BasePlugin {
39
+ /**
40
+ * Initialize the logging plugin.
41
+ *
42
+ * @param name The name of the plugin instance.
43
+ */
44
+ constructor(name = "logging_plugin") {
45
+ super(name);
46
+ }
47
+ async onUserMessageCallback({ invocationContext, userMessage }) {
48
+ var _a;
49
+ this.log("\u{1F680} USER MESSAGE RECEIVED");
50
+ this.log(` Invocation ID: ${invocationContext.invocationId}`);
51
+ this.log(` Session ID: ${invocationContext.session.id}`);
52
+ this.log(` User ID: ${invocationContext.userId}`);
53
+ this.log(` App Name: ${invocationContext.appName}`);
54
+ this.log(` Root Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
55
+ this.log(` User Content: ${this.formatContent(userMessage)}`);
56
+ if (invocationContext.branch) {
57
+ this.log(` Branch: ${invocationContext.branch}`);
58
+ }
59
+ return void 0;
60
+ }
61
+ async beforeRunCallback({ invocationContext }) {
62
+ var _a;
63
+ this.log("\u{1F3C3} INVOCATION STARTING");
64
+ this.log(` Invocation ID: ${invocationContext.invocationId}`);
65
+ this.log(` Starting Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
66
+ return void 0;
67
+ }
68
+ async onEventCallback({ invocationContext, event }) {
69
+ this.log("\u{1F4E2} EVENT YIELDED");
70
+ this.log(` Event ID: ${event.id}`);
71
+ this.log(` Author: ${event.author}`);
72
+ this.log(` Content: ${this.formatContent(event.content)}`);
73
+ this.log(` Final Response: ${(0, import_event.isFinalResponse)(event)}`);
74
+ const functionCalls = (0, import_event.getFunctionCalls)(event);
75
+ if (functionCalls.length > 0) {
76
+ const funcCalls = functionCalls.map((fc) => fc.name);
77
+ this.log(` Function Calls: ${funcCalls}`);
78
+ }
79
+ const functionResponses = (0, import_event.getFunctionResponses)(event);
80
+ if (functionResponses.length > 0) {
81
+ const funcResponses = functionResponses.map((fr) => fr.name);
82
+ this.log(` Function Responses: ${funcResponses}`);
83
+ }
84
+ if (event.longRunningToolIds && event.longRunningToolIds.length > 0) {
85
+ this.log(` Long Running Tools: ${[...event.longRunningToolIds]}`);
86
+ }
87
+ return void 0;
88
+ }
89
+ async afterRunCallback({ invocationContext }) {
90
+ var _a;
91
+ this.log("\u2705 INVOCATION COMPLETED");
92
+ this.log(` Invocation ID: ${invocationContext.invocationId}`);
93
+ this.log(` Final Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
94
+ return void 0;
95
+ }
96
+ async beforeAgentCallback({ agent, callbackContext }) {
97
+ this.log("\u{1F916} AGENT STARTING");
98
+ this.log(` Agent Name: ${callbackContext.agentName}`);
99
+ this.log(` Invocation ID: ${callbackContext.invocationId}`);
100
+ if (callbackContext.invocationContext.branch) {
101
+ this.log(` Branch: ${callbackContext.invocationContext.branch}`);
102
+ }
103
+ return void 0;
104
+ }
105
+ async afterAgentCallback({ agent, callbackContext }) {
106
+ this.log("\u{1F916} AGENT COMPLETED");
107
+ this.log(` Agent Name: ${callbackContext.agentName}`);
108
+ this.log(` Invocation ID: ${callbackContext.invocationId}`);
109
+ return void 0;
110
+ }
111
+ async beforeModelCallback({ callbackContext, llmRequest }) {
112
+ var _a;
113
+ this.log("\u{1F9E0} LLM REQUEST");
114
+ this.log(` Model: ${(_a = llmRequest.model) != null ? _a : "default"}`);
115
+ this.log(` Agent: ${callbackContext.agentName}`);
116
+ if (llmRequest.config && llmRequest.config.systemInstruction) {
117
+ let sysInstruction = llmRequest.config.systemInstruction;
118
+ if (sysInstruction.length > 200) {
119
+ sysInstruction = sysInstruction.substring(0, 200) + "...";
120
+ }
121
+ this.log(` System Instruction: '${sysInstruction}'`);
122
+ }
123
+ if (llmRequest.toolsDict) {
124
+ const toolNames = Object.keys(llmRequest.toolsDict);
125
+ this.log(` Available Tools: ${toolNames}`);
126
+ }
127
+ return void 0;
128
+ }
129
+ async afterModelCallback({ callbackContext, llmResponse }) {
130
+ this.log("\u{1F9E0} LLM RESPONSE");
131
+ this.log(` Agent: ${callbackContext.agentName}`);
132
+ if (llmResponse.errorCode) {
133
+ this.log(` \u274C ERROR - Code: ${llmResponse.errorCode}`);
134
+ this.log(` Error Message: ${llmResponse.errorMessage}`);
135
+ } else {
136
+ this.log(` Content: ${this.formatContent(llmResponse.content)}`);
137
+ if (llmResponse.partial) {
138
+ this.log(` Partial: ${llmResponse.partial}`);
139
+ }
140
+ if (llmResponse.turnComplete !== void 0) {
141
+ this.log(` Turn Complete: ${llmResponse.turnComplete}`);
142
+ }
143
+ }
144
+ if (llmResponse.usageMetadata) {
145
+ this.log(` Token Usage - Input: ${llmResponse.usageMetadata.promptTokenCount}, Output: ${llmResponse.usageMetadata.candidatesTokenCount}`);
146
+ }
147
+ return void 0;
148
+ }
149
+ async beforeToolCallback({ tool, toolArgs, toolContext }) {
150
+ this.log("\u{1F527} TOOL STARTING");
151
+ this.log(` Tool Name: ${tool.name}`);
152
+ this.log(` Agent: ${toolContext.agentName}`);
153
+ this.log(` Function Call ID: ${toolContext.functionCallId}`);
154
+ this.log(` Arguments: ${this.formatArgs(toolArgs)}`);
155
+ return void 0;
156
+ }
157
+ async afterToolCallback({ tool, toolArgs, toolContext, result }) {
158
+ this.log("\u{1F527} TOOL COMPLETED");
159
+ this.log(` Tool Name: ${tool.name}`);
160
+ this.log(` Agent: ${toolContext.agentName}`);
161
+ this.log(` Function Call ID: ${toolContext.functionCallId}`);
162
+ this.log(` Result: ${this.formatArgs(result)}`);
163
+ return void 0;
164
+ }
165
+ async onModelErrorCallback({ callbackContext, llmRequest, error }) {
166
+ this.log("\u{1F9E0} LLM ERROR");
167
+ this.log(` Agent: ${callbackContext.agentName}`);
168
+ this.log(` Error: ${error}`);
169
+ return void 0;
170
+ }
171
+ async onToolErrorCallback({ tool, toolArgs, toolContext, error }) {
172
+ this.log("\u{1F527} TOOL ERROR");
173
+ this.log(` Tool Name: ${tool.name}`);
174
+ this.log(` Agent: ${toolContext.agentName}`);
175
+ this.log(` Function Call ID: ${toolContext.functionCallId}`);
176
+ this.log(` Arguments: ${this.formatArgs(toolArgs)}`);
177
+ this.log(` Error: ${error}`);
178
+ return void 0;
179
+ }
180
+ log(message) {
181
+ const formattedMessage = `\x1B[90m[${this.name}] ${message}\x1B[0m`;
182
+ import_logger.logger.info(formattedMessage);
183
+ }
184
+ formatContent(content, maxLength = 200) {
185
+ if (!content || !content.parts) {
186
+ return "None";
187
+ }
188
+ const parts = [];
189
+ for (const part of content.parts) {
190
+ if (part.text) {
191
+ let text = part.text.trim();
192
+ if (text.length > maxLength) {
193
+ text = text.substring(0, maxLength) + "...";
194
+ }
195
+ parts.push(`text: '${text}'`);
196
+ } else if (part.functionCall) {
197
+ parts.push(`function_call: ${part.functionCall.name}`);
198
+ } else if (part.functionResponse) {
199
+ parts.push(`function_response: ${part.functionResponse.name}`);
200
+ } else if (part.codeExecutionResult) {
201
+ parts.push("code_execution_result");
202
+ } else {
203
+ parts.push("other_part");
204
+ }
205
+ }
206
+ return parts.join(" | ");
207
+ }
208
+ formatArgs(args, maxLength = 300) {
209
+ if (!args) {
210
+ return "{}";
211
+ }
212
+ let formatted = JSON.stringify(args);
213
+ if (formatted.length > maxLength) {
214
+ formatted = formatted.substring(0, maxLength) + "...}";
215
+ }
216
+ return formatted;
217
+ }
218
+ }
219
+ // Annotate the CommonJS export names for ESM import in node:
220
+ 0 && (module.exports = {
221
+ LoggingPlugin
222
+ });
@@ -0,0 +1,239 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var plugin_manager_exports = {};
26
+ __export(plugin_manager_exports, {
27
+ PluginManager: () => PluginManager
28
+ });
29
+ module.exports = __toCommonJS(plugin_manager_exports);
30
+ var import_logger = require("../utils/logger.js");
31
+ /**
32
+ * @license
33
+ * Copyright 2025 Google LLC
34
+ * SPDX-License-Identifier: Apache-2.0
35
+ */
36
+ class PluginManager {
37
+ /**
38
+ * Initializes the plugin service.
39
+ *
40
+ * @param plugins An optional list of plugins to register upon
41
+ * initialization.
42
+ */
43
+ constructor(plugins) {
44
+ this.plugins = /* @__PURE__ */ new Set();
45
+ if (plugins) {
46
+ for (const plugin of plugins) {
47
+ this.registerPlugin(plugin);
48
+ }
49
+ }
50
+ }
51
+ /**
52
+ * Registers a new plugin.
53
+ *
54
+ * @param plugin The plugin instance to register.
55
+ * @throws If the same exact plugin or a plugin with the same name is already
56
+ * registered.
57
+ */
58
+ registerPlugin(plugin) {
59
+ if (this.plugins.has(plugin)) {
60
+ throw new Error(`Plugin '${plugin.name}' already registered.`);
61
+ }
62
+ if (Array.from(this.plugins).some((p) => p.name === plugin.name)) {
63
+ throw new Error(`Plugin with name '${plugin.name}' already registered.`);
64
+ }
65
+ this.plugins.add(plugin);
66
+ import_logger.logger.info(`Plugin '${plugin.name}' registered.`);
67
+ }
68
+ /**
69
+ * Retrieves a registered plugin by its name.
70
+ *
71
+ * @param pluginName The name of the plugin to retrieve.
72
+ * @returns The plugin instance if found, otherwise `undefined`.
73
+ */
74
+ getPlugin(pluginName) {
75
+ return Array.from(this.plugins).find((p) => p.name === pluginName);
76
+ }
77
+ /**
78
+ * Runs the same callback for all plugins. This is a utility method to reduce
79
+ * duplication below.
80
+ *
81
+ * @param plugins The set of plugins to run
82
+ * @param callback A closure containing the callback method to run on each
83
+ * plugin
84
+ * @param callbackName The name of the function being called in the closure
85
+ * above. Used for logging purposes.
86
+ * @returns A promise containing the plugin method result. Must be casted to
87
+ * the proper type for the plugin method.
88
+ */
89
+ async runCallbacks(plugins, callback, callbackName) {
90
+ for (const plugin of plugins) {
91
+ try {
92
+ const result = await callback(plugin);
93
+ if (result !== void 0) {
94
+ import_logger.logger.debug(
95
+ `Plugin '${plugin.name}' returned a value for callback '${callbackName}', exiting early.`
96
+ );
97
+ return result;
98
+ }
99
+ } catch (e) {
100
+ const errorMessage = `Error in plugin '${plugin.name}' during '${callbackName}' callback: ${e}`;
101
+ import_logger.logger.error(errorMessage);
102
+ throw new Error(errorMessage);
103
+ }
104
+ }
105
+ return void 0;
106
+ }
107
+ /**
108
+ * Runs the `onUserMessageCallback` for all plugins.
109
+ */
110
+ async runOnUserMessageCallback({ userMessage, invocationContext }) {
111
+ return await this.runCallbacks(
112
+ this.plugins,
113
+ (plugin) => plugin.onUserMessageCallback(
114
+ { userMessage, invocationContext }
115
+ ),
116
+ "onUserMessageCallback"
117
+ );
118
+ }
119
+ /**
120
+ * Runs the `beforeRunCallback` for all plugins.
121
+ */
122
+ async runBeforeRunCallback({ invocationContext }) {
123
+ return await this.runCallbacks(
124
+ this.plugins,
125
+ (plugin) => plugin.beforeRunCallback({ invocationContext }),
126
+ "beforeRunCallback"
127
+ );
128
+ }
129
+ /**
130
+ * Runs the `afterRunCallback` for all plugins.
131
+ */
132
+ async runAfterRunCallback({ invocationContext }) {
133
+ await this.runCallbacks(
134
+ this.plugins,
135
+ (plugin) => plugin.afterRunCallback({ invocationContext }),
136
+ "afterRunCallback"
137
+ );
138
+ }
139
+ /**
140
+ * Runs the `onEventCallback` for all plugins.
141
+ */
142
+ async runOnEventCallback({ invocationContext, event }) {
143
+ return await this.runCallbacks(
144
+ this.plugins,
145
+ (plugin) => plugin.onEventCallback({ invocationContext, event }),
146
+ "onEventCallback"
147
+ );
148
+ }
149
+ /**
150
+ * Runs the `beforeAgentCallback` for all plugins.
151
+ */
152
+ async runBeforeAgentCallback({ agent, callbackContext }) {
153
+ return await this.runCallbacks(
154
+ this.plugins,
155
+ (plugin) => plugin.beforeAgentCallback({ agent, callbackContext }),
156
+ "beforeAgentCallback"
157
+ );
158
+ }
159
+ /**
160
+ * Runs the `afterAgentCallback` for all plugins.
161
+ */
162
+ async runAfterAgentCallback({ agent, callbackContext }) {
163
+ return await this.runCallbacks(
164
+ this.plugins,
165
+ (plugin) => plugin.afterAgentCallback({ agent, callbackContext }),
166
+ "afterAgentCallback"
167
+ );
168
+ }
169
+ /**
170
+ * Runs the `beforeToolCallback` for all plugins.
171
+ */
172
+ async runBeforeToolCallback({ tool, toolArgs, toolContext }) {
173
+ return await this.runCallbacks(
174
+ this.plugins,
175
+ (plugin) => plugin.beforeToolCallback({ tool, toolArgs, toolContext }),
176
+ "beforeToolCallback"
177
+ );
178
+ }
179
+ /**
180
+ * Runs the `afterToolCallback` for all plugins.
181
+ */
182
+ async runAfterToolCallback({ tool, toolArgs, toolContext, result }) {
183
+ return await this.runCallbacks(
184
+ this.plugins,
185
+ (plugin) => plugin.afterToolCallback(
186
+ { tool, toolArgs, toolContext, result }
187
+ ),
188
+ "afterToolCallback"
189
+ );
190
+ }
191
+ /**
192
+ * Runs the `onModelErrorCallback` for all plugins.
193
+ */
194
+ async runOnModelErrorCallback({ callbackContext, llmRequest, error }) {
195
+ return await this.runCallbacks(
196
+ this.plugins,
197
+ (plugin) => plugin.onModelErrorCallback(
198
+ { callbackContext, llmRequest, error }
199
+ ),
200
+ "onModelErrorCallback"
201
+ );
202
+ }
203
+ /**
204
+ * Runs the `beforeModelCallback` for all plugins.
205
+ */
206
+ async runBeforeModelCallback({ callbackContext, llmRequest }) {
207
+ return await this.runCallbacks(
208
+ this.plugins,
209
+ (plugin) => plugin.beforeModelCallback({ callbackContext, llmRequest }),
210
+ "beforeModelCallback"
211
+ );
212
+ }
213
+ /**
214
+ * Runs the `afterModelCallback` for all plugins.
215
+ */
216
+ async runAfterModelCallback({ callbackContext, llmResponse }) {
217
+ return await this.runCallbacks(
218
+ this.plugins,
219
+ (plugin) => plugin.afterModelCallback({ callbackContext, llmResponse }),
220
+ "afterModelCallback"
221
+ );
222
+ }
223
+ /**
224
+ * Runs the `onToolErrorCallback` for all plugins.
225
+ */
226
+ async runOnToolErrorCallback({ tool, toolArgs, toolContext, error }) {
227
+ return await this.runCallbacks(
228
+ this.plugins,
229
+ (plugin) => plugin.onToolErrorCallback(
230
+ { tool, toolArgs, toolContext, error }
231
+ ),
232
+ "onToolErrorCallback"
233
+ );
234
+ }
235
+ }
236
+ // Annotate the CommonJS export names for ESM import in node:
237
+ 0 && (module.exports = {
238
+ PluginManager
239
+ });