@google/gemini-cli-core 0.22.0 → 0.23.0-preview.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 (342) hide show
  1. package/dist/docs/CONTRIBUTING.md +546 -0
  2. package/dist/docs/architecture.md +80 -0
  3. package/dist/docs/assets/connected_devtools.png +0 -0
  4. package/dist/docs/assets/gemini-screenshot.png +0 -0
  5. package/dist/docs/assets/release_patch.png +0 -0
  6. package/dist/docs/assets/theme-ansi-light.png +0 -0
  7. package/dist/docs/assets/theme-ansi.png +0 -0
  8. package/dist/docs/assets/theme-atom-one.png +0 -0
  9. package/dist/docs/assets/theme-ayu-light.png +0 -0
  10. package/dist/docs/assets/theme-ayu.png +0 -0
  11. package/dist/docs/assets/theme-custom.png +0 -0
  12. package/dist/docs/assets/theme-default-light.png +0 -0
  13. package/dist/docs/assets/theme-default.png +0 -0
  14. package/dist/docs/assets/theme-dracula.png +0 -0
  15. package/dist/docs/assets/theme-github-light.png +0 -0
  16. package/dist/docs/assets/theme-github.png +0 -0
  17. package/dist/docs/assets/theme-google-light.png +0 -0
  18. package/dist/docs/assets/theme-xcode-light.png +0 -0
  19. package/dist/docs/changelogs/index.md +592 -0
  20. package/dist/docs/changelogs/latest.md +225 -0
  21. package/dist/docs/changelogs/preview.md +129 -0
  22. package/dist/docs/changelogs/releases.md +896 -0
  23. package/dist/docs/cli/authentication.md +3 -0
  24. package/dist/docs/cli/checkpointing.md +94 -0
  25. package/dist/docs/cli/commands.md +354 -0
  26. package/dist/docs/cli/configuration.md +780 -0
  27. package/dist/docs/cli/custom-commands.md +315 -0
  28. package/dist/docs/cli/enterprise.md +565 -0
  29. package/dist/docs/cli/gemini-ignore.md +71 -0
  30. package/dist/docs/cli/gemini-md.md +108 -0
  31. package/dist/docs/cli/generation-settings.md +210 -0
  32. package/dist/docs/cli/headless.md +388 -0
  33. package/dist/docs/cli/index.md +63 -0
  34. package/dist/docs/cli/keyboard-shortcuts.md +143 -0
  35. package/dist/docs/cli/model-routing.md +37 -0
  36. package/dist/docs/cli/model.md +62 -0
  37. package/dist/docs/cli/sandbox.md +171 -0
  38. package/dist/docs/cli/session-management.md +158 -0
  39. package/dist/docs/cli/settings.md +112 -0
  40. package/dist/docs/cli/system-prompt.md +93 -0
  41. package/dist/docs/cli/telemetry.md +791 -0
  42. package/dist/docs/cli/themes.md +237 -0
  43. package/dist/docs/cli/token-caching.md +20 -0
  44. package/dist/docs/cli/trusted-folders.md +95 -0
  45. package/dist/docs/cli/tutorials.md +83 -0
  46. package/dist/docs/cli/uninstall.md +47 -0
  47. package/dist/docs/core/index.md +101 -0
  48. package/dist/docs/core/memport.md +244 -0
  49. package/dist/docs/core/policy-engine.md +267 -0
  50. package/dist/docs/core/tools-api.md +131 -0
  51. package/dist/docs/examples/proxy-script.md +83 -0
  52. package/dist/docs/extensions/extension-releasing.md +183 -0
  53. package/dist/docs/extensions/getting-started-extensions.md +245 -0
  54. package/dist/docs/extensions/index.md +293 -0
  55. package/dist/docs/faq.md +154 -0
  56. package/dist/docs/get-started/authentication.md +321 -0
  57. package/dist/docs/get-started/configuration-v1.md +888 -0
  58. package/dist/docs/get-started/configuration.md +1444 -0
  59. package/dist/docs/get-started/deployment.md +143 -0
  60. package/dist/docs/get-started/examples.md +219 -0
  61. package/dist/docs/get-started/gemini-3.md +116 -0
  62. package/dist/docs/get-started/index.md +71 -0
  63. package/dist/docs/get-started/installation.md +141 -0
  64. package/dist/docs/hooks/best-practices.md +806 -0
  65. package/dist/docs/hooks/index.md +665 -0
  66. package/dist/docs/hooks/reference.md +168 -0
  67. package/dist/docs/hooks/writing-hooks.md +1026 -0
  68. package/dist/docs/ide-integration/ide-companion-spec.md +267 -0
  69. package/dist/docs/ide-integration/index.md +202 -0
  70. package/dist/docs/index.md +147 -0
  71. package/dist/docs/integration-tests.md +211 -0
  72. package/dist/docs/issue-and-pr-automation.md +134 -0
  73. package/dist/docs/local-development.md +128 -0
  74. package/dist/docs/mermaid/context.mmd +103 -0
  75. package/dist/docs/mermaid/render-path.mmd +64 -0
  76. package/dist/docs/npm.md +62 -0
  77. package/dist/docs/quota-and-pricing.md +158 -0
  78. package/dist/docs/release-confidence.md +164 -0
  79. package/dist/docs/releases.md +540 -0
  80. package/dist/docs/sidebar.json +297 -0
  81. package/dist/docs/tools/file-system.md +217 -0
  82. package/dist/docs/tools/index.md +95 -0
  83. package/dist/docs/tools/mcp-server.md +1044 -0
  84. package/dist/docs/tools/memory.md +54 -0
  85. package/dist/docs/tools/shell.md +260 -0
  86. package/dist/docs/tools/todos.md +57 -0
  87. package/dist/docs/tools/web-fetch.md +59 -0
  88. package/dist/docs/tools/web-search.md +42 -0
  89. package/dist/docs/tos-privacy.md +96 -0
  90. package/dist/docs/troubleshooting.md +158 -0
  91. package/dist/src/agents/codebase-investigator.d.ts +2 -2
  92. package/dist/src/agents/codebase-investigator.js +4 -3
  93. package/dist/src/agents/codebase-investigator.js.map +1 -1
  94. package/dist/src/agents/delegate-to-agent-tool.js +8 -4
  95. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  96. package/dist/src/agents/delegate-to-agent-tool.test.js +6 -4
  97. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  98. package/dist/src/agents/introspection-agent.d.ts +23 -0
  99. package/dist/src/agents/introspection-agent.js +72 -0
  100. package/dist/src/agents/introspection-agent.js.map +1 -0
  101. package/dist/src/agents/introspection-agent.test.js +47 -0
  102. package/dist/src/agents/introspection-agent.test.js.map +1 -0
  103. package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -11
  104. package/dist/src/agents/{executor.js → local-executor.js} +79 -53
  105. package/dist/src/agents/local-executor.js.map +1 -0
  106. package/dist/src/agents/{executor.test.js → local-executor.test.js} +64 -45
  107. package/dist/src/agents/local-executor.test.js.map +1 -0
  108. package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +5 -6
  109. package/dist/src/agents/{invocation.js → local-invocation.js} +8 -9
  110. package/dist/src/agents/local-invocation.js.map +1 -0
  111. package/dist/src/agents/local-invocation.test.d.ts +6 -0
  112. package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +18 -17
  113. package/dist/src/agents/local-invocation.test.js.map +1 -0
  114. package/dist/src/agents/registry.d.ts +1 -0
  115. package/dist/src/agents/registry.js +68 -20
  116. package/dist/src/agents/registry.js.map +1 -1
  117. package/dist/src/agents/registry.test.js +113 -1
  118. package/dist/src/agents/registry.test.js.map +1 -1
  119. package/dist/src/agents/remote-invocation.d.ts +21 -0
  120. package/dist/src/agents/remote-invocation.js +31 -0
  121. package/dist/src/agents/remote-invocation.js.map +1 -0
  122. package/dist/src/agents/remote-invocation.test.d.ts +6 -0
  123. package/dist/src/agents/remote-invocation.test.js +35 -0
  124. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  125. package/dist/src/agents/subagent-tool-wrapper.js +7 -3
  126. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  127. package/dist/src/agents/subagent-tool-wrapper.test.js +10 -9
  128. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  129. package/dist/src/agents/toml-loader.d.ts +65 -0
  130. package/dist/src/agents/toml-loader.js +176 -0
  131. package/dist/src/agents/toml-loader.js.map +1 -0
  132. package/dist/src/agents/toml-loader.test.d.ts +6 -0
  133. package/dist/src/agents/toml-loader.test.js +190 -0
  134. package/dist/src/agents/toml-loader.test.js.map +1 -0
  135. package/dist/src/agents/types.d.ts +12 -4
  136. package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
  137. package/dist/src/availability/policyHelpers.d.ts +4 -3
  138. package/dist/src/availability/policyHelpers.js +13 -20
  139. package/dist/src/availability/policyHelpers.js.map +1 -1
  140. package/dist/src/availability/policyHelpers.test.js +28 -18
  141. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  142. package/dist/src/code_assist/oauth2.js +1 -1
  143. package/dist/src/code_assist/oauth2.js.map +1 -1
  144. package/dist/src/code_assist/oauth2.test.js +6 -8
  145. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  146. package/dist/src/code_assist/server.d.ts +4 -1
  147. package/dist/src/code_assist/server.js +50 -7
  148. package/dist/src/code_assist/server.js.map +1 -1
  149. package/dist/src/code_assist/server.test.js +177 -27
  150. package/dist/src/code_assist/server.test.js.map +1 -1
  151. package/dist/src/code_assist/telemetry.d.ts +14 -0
  152. package/dist/src/code_assist/telemetry.js +156 -0
  153. package/dist/src/code_assist/telemetry.js.map +1 -0
  154. package/dist/src/code_assist/telemetry.test.d.ts +6 -0
  155. package/dist/src/code_assist/telemetry.test.js +300 -0
  156. package/dist/src/code_assist/telemetry.test.js.map +1 -0
  157. package/dist/src/code_assist/types.d.ts +52 -1
  158. package/dist/src/code_assist/types.js +21 -0
  159. package/dist/src/code_assist/types.js.map +1 -1
  160. package/dist/src/config/config.d.ts +10 -13
  161. package/dist/src/config/config.js +32 -32
  162. package/dist/src/config/config.js.map +1 -1
  163. package/dist/src/config/config.test.js +72 -19
  164. package/dist/src/config/config.test.js.map +1 -1
  165. package/dist/src/config/flashFallback.test.js +0 -37
  166. package/dist/src/config/flashFallback.test.js.map +1 -1
  167. package/dist/src/config/storage.d.ts +2 -0
  168. package/dist/src/config/storage.js +6 -0
  169. package/dist/src/config/storage.js.map +1 -1
  170. package/dist/src/config/storage.test.js +8 -0
  171. package/dist/src/config/storage.test.js.map +1 -1
  172. package/dist/src/core/baseLlmClient.js +44 -43
  173. package/dist/src/core/baseLlmClient.js.map +1 -1
  174. package/dist/src/core/baseLlmClient.test.js +12 -19
  175. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  176. package/dist/src/core/client.js +23 -35
  177. package/dist/src/core/client.js.map +1 -1
  178. package/dist/src/core/client.test.js +32 -65
  179. package/dist/src/core/client.test.js.map +1 -1
  180. package/dist/src/core/clientHookTriggers.js +2 -2
  181. package/dist/src/core/clientHookTriggers.js.map +1 -1
  182. package/dist/src/core/contentGenerator.test.js +0 -6
  183. package/dist/src/core/contentGenerator.test.js.map +1 -1
  184. package/dist/src/core/coreToolHookTriggers.js +3 -3
  185. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  186. package/dist/src/core/geminiChat.js +21 -71
  187. package/dist/src/core/geminiChat.js.map +1 -1
  188. package/dist/src/core/geminiChat.test.js +16 -92
  189. package/dist/src/core/geminiChat.test.js.map +1 -1
  190. package/dist/src/core/geminiChatHookTriggers.js +3 -3
  191. package/dist/src/core/geminiChatHookTriggers.js.map +1 -1
  192. package/dist/src/core/geminiChat_network_retry.test.js +4 -6
  193. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  194. package/dist/src/core/prompts.test.js +0 -2
  195. package/dist/src/core/prompts.test.js.map +1 -1
  196. package/dist/src/core/sessionHookTriggers.js +3 -3
  197. package/dist/src/core/sessionHookTriggers.js.map +1 -1
  198. package/dist/src/core/turn.d.ts +1 -0
  199. package/dist/src/core/turn.js +4 -12
  200. package/dist/src/core/turn.js.map +1 -1
  201. package/dist/src/core/turn.test.js +0 -5
  202. package/dist/src/core/turn.test.js.map +1 -1
  203. package/dist/src/fallback/handler.test.js +0 -21
  204. package/dist/src/fallback/handler.test.js.map +1 -1
  205. package/dist/src/generated/git-commit.d.ts +2 -2
  206. package/dist/src/generated/git-commit.js +2 -2
  207. package/dist/src/generated/git-commit.js.map +1 -1
  208. package/dist/src/hooks/hookEventHandler.js +10 -4
  209. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  210. package/dist/src/hooks/hookEventHandler.test.js +47 -0
  211. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  212. package/dist/src/hooks/hookPlanner.js +3 -1
  213. package/dist/src/hooks/hookPlanner.js.map +1 -1
  214. package/dist/src/hooks/hookPlanner.test.js +61 -0
  215. package/dist/src/hooks/hookPlanner.test.js.map +1 -1
  216. package/dist/src/hooks/hookRegistry.d.ts +1 -1
  217. package/dist/src/hooks/hookRegistry.js +2 -2
  218. package/dist/src/hooks/hookRegistry.js.map +1 -1
  219. package/dist/src/hooks/hookRegistry.test.js +73 -0
  220. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  221. package/dist/src/hooks/hookRunner.js +14 -10
  222. package/dist/src/hooks/hookRunner.js.map +1 -1
  223. package/dist/src/hooks/hookRunner.test.js +81 -33
  224. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  225. package/dist/src/hooks/types.d.ts +2 -0
  226. package/dist/src/hooks/types.js.map +1 -1
  227. package/dist/src/index.d.ts +2 -0
  228. package/dist/src/index.js +2 -0
  229. package/dist/src/index.js.map +1 -1
  230. package/dist/src/mcp/oauth-provider.js +6 -2
  231. package/dist/src/mcp/oauth-provider.js.map +1 -1
  232. package/dist/src/mcp/oauth-provider.test.js +4 -1
  233. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  234. package/dist/src/mcp/oauth-utils.d.ts +8 -1
  235. package/dist/src/mcp/oauth-utils.js +30 -1
  236. package/dist/src/mcp/oauth-utils.js.map +1 -1
  237. package/dist/src/mcp/oauth-utils.test.js +42 -0
  238. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  239. package/dist/src/routing/strategies/fallbackStrategy.js +0 -3
  240. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  241. package/dist/src/routing/strategies/fallbackStrategy.test.js +0 -6
  242. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  243. package/dist/src/services/contextManager.d.ts +5 -11
  244. package/dist/src/services/contextManager.js +20 -17
  245. package/dist/src/services/contextManager.js.map +1 -1
  246. package/dist/src/services/contextManager.test.js +40 -41
  247. package/dist/src/services/contextManager.test.js.map +1 -1
  248. package/dist/src/services/loopDetectionService.js +2 -1
  249. package/dist/src/services/loopDetectionService.js.map +1 -1
  250. package/dist/src/services/loopDetectionService.test.js +14 -8
  251. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  252. package/dist/src/services/modelConfig.integration.test.js +1 -1
  253. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  254. package/dist/src/services/shellExecutionService.js +18 -2
  255. package/dist/src/services/shellExecutionService.js.map +1 -1
  256. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -2
  257. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +25 -0
  258. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  259. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +32 -1
  260. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  261. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  262. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +12 -1
  263. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  264. package/dist/src/telemetry/loggers.js +1 -0
  265. package/dist/src/telemetry/loggers.js.map +1 -1
  266. package/dist/src/telemetry/loggers.test.js +37 -2
  267. package/dist/src/telemetry/loggers.test.js.map +1 -1
  268. package/dist/src/telemetry/sdk.js +2 -2
  269. package/dist/src/telemetry/sdk.js.map +1 -1
  270. package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
  271. package/dist/src/tools/confirmation-policy.test.js +152 -0
  272. package/dist/src/tools/confirmation-policy.test.js.map +1 -0
  273. package/dist/src/tools/edit.js +5 -1
  274. package/dist/src/tools/edit.js.map +1 -1
  275. package/dist/src/tools/get-internal-docs.d.ts +27 -0
  276. package/dist/src/tools/get-internal-docs.js +129 -0
  277. package/dist/src/tools/get-internal-docs.js.map +1 -0
  278. package/dist/src/tools/get-internal-docs.test.d.ts +6 -0
  279. package/dist/src/tools/get-internal-docs.test.js +56 -0
  280. package/dist/src/tools/get-internal-docs.test.js.map +1 -0
  281. package/dist/src/tools/ripGrep.d.ts +1 -0
  282. package/dist/src/tools/ripGrep.js +16 -4
  283. package/dist/src/tools/ripGrep.js.map +1 -1
  284. package/dist/src/tools/ripGrep.test.js +55 -0
  285. package/dist/src/tools/ripGrep.test.js.map +1 -1
  286. package/dist/src/tools/smart-edit.js +5 -1
  287. package/dist/src/tools/smart-edit.js.map +1 -1
  288. package/dist/src/tools/tool-names.d.ts +14 -0
  289. package/dist/src/tools/tool-names.js +55 -0
  290. package/dist/src/tools/tool-names.js.map +1 -1
  291. package/dist/src/tools/tool-names.test.d.ts +6 -0
  292. package/dist/src/tools/tool-names.test.js +43 -0
  293. package/dist/src/tools/tool-names.test.js.map +1 -0
  294. package/dist/src/tools/tool-registry.d.ts +0 -1
  295. package/dist/src/tools/tool-registry.js +1 -1
  296. package/dist/src/tools/tool-registry.js.map +1 -1
  297. package/dist/src/tools/tool-registry.test.js +2 -1
  298. package/dist/src/tools/tool-registry.test.js.map +1 -1
  299. package/dist/src/tools/web-fetch.js +5 -1
  300. package/dist/src/tools/web-fetch.js.map +1 -1
  301. package/dist/src/tools/write-file.js +5 -1
  302. package/dist/src/tools/write-file.js.map +1 -1
  303. package/dist/src/utils/checkpointUtils.js +1 -1
  304. package/dist/src/utils/checkpointUtils.js.map +1 -1
  305. package/dist/src/utils/checkpointUtils.test.js +1 -1
  306. package/dist/src/utils/checkpointUtils.test.js.map +1 -1
  307. package/dist/src/utils/editCorrector.js +1 -1
  308. package/dist/src/utils/editCorrector.js.map +1 -1
  309. package/dist/src/utils/editCorrector.test.js +2 -2
  310. package/dist/src/utils/editCorrector.test.js.map +1 -1
  311. package/dist/src/utils/environmentContext.d.ts +1 -0
  312. package/dist/src/utils/environmentContext.js +4 -0
  313. package/dist/src/utils/environmentContext.js.map +1 -1
  314. package/dist/src/utils/environmentContext.test.js +2 -0
  315. package/dist/src/utils/environmentContext.test.js.map +1 -1
  316. package/dist/src/utils/events.d.ts +3 -18
  317. package/dist/src/utils/events.js +0 -9
  318. package/dist/src/utils/events.js.map +1 -1
  319. package/dist/src/utils/geminiIgnoreParser.d.ts +11 -0
  320. package/dist/src/utils/geminiIgnoreParser.js +20 -0
  321. package/dist/src/utils/geminiIgnoreParser.js.map +1 -1
  322. package/dist/src/utils/geminiIgnoreParser.test.js +48 -0
  323. package/dist/src/utils/geminiIgnoreParser.test.js.map +1 -1
  324. package/dist/src/utils/generateContentResponseUtilities.d.ts +1 -0
  325. package/dist/src/utils/generateContentResponseUtilities.js +10 -0
  326. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
  327. package/dist/src/utils/generateContentResponseUtilities.test.js +59 -2
  328. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
  329. package/dist/src/utils/memoryDiscovery.js +1 -1
  330. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  331. package/dist/src/utils/memoryDiscovery.test.js +3 -1
  332. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  333. package/dist/src/utils/shell-utils.js +25 -4
  334. package/dist/src/utils/shell-utils.js.map +1 -1
  335. package/dist/tsconfig.tsbuildinfo +1 -1
  336. package/package.json +1 -6
  337. package/dist/src/agents/executor.js.map +0 -1
  338. package/dist/src/agents/executor.test.js.map +0 -1
  339. package/dist/src/agents/invocation.js.map +0 -1
  340. package/dist/src/agents/invocation.test.js.map +0 -1
  341. /package/dist/src/agents/{executor.test.d.ts → introspection-agent.test.d.ts} +0 -0
  342. /package/dist/src/agents/{invocation.test.d.ts → local-executor.test.d.ts} +0 -0
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
7
7
  import { debugLogger } from '../utils/debugLogger.js';
8
- import { AgentExecutor } from './executor.js';
8
+ import { LocalAgentExecutor } from './local-executor.js';
9
9
  import { makeFakeConfig } from '../test-utils/config.js';
10
10
  import { ToolRegistry } from '../tools/tool-registry.js';
11
11
  import { LSTool } from '../tools/ls.js';
@@ -52,6 +52,9 @@ vi.mock('../core/geminiChat.js', async (importOriginal) => {
52
52
  vi.mock('../core/nonInteractiveToolExecutor.js', () => ({
53
53
  executeToolCall: mockExecuteToolCall,
54
54
  }));
55
+ vi.mock('../utils/version.js', () => ({
56
+ getVersion: vi.fn().mockResolvedValue('1.2.3'),
57
+ }));
55
58
  vi.mock('../utils/environmentContext.js');
56
59
  vi.mock('../telemetry/loggers.js', () => ({
57
60
  logAgentStart: vi.fn(),
@@ -134,6 +137,7 @@ const createTestDefinition = (tools = [LS_TOOL_NAME], runConfigOverrides = {}, o
134
137
  };
135
138
  }
136
139
  return {
140
+ kind: 'local',
137
141
  name: 'TestAgent',
138
142
  description: 'An agent for testing.',
139
143
  inputConfig: {
@@ -146,7 +150,7 @@ const createTestDefinition = (tools = [LS_TOOL_NAME], runConfigOverrides = {}, o
146
150
  outputConfig,
147
151
  };
148
152
  };
149
- describe('AgentExecutor', () => {
153
+ describe('LocalAgentExecutor', () => {
150
154
  let activities;
151
155
  let onActivity;
152
156
  let abortController;
@@ -182,7 +186,7 @@ describe('AgentExecutor', () => {
182
186
  parentToolRegistry.registerTool(new LSTool(mockConfig));
183
187
  parentToolRegistry.registerTool(new MockTool({ name: READ_FILE_TOOL_NAME }));
184
188
  parentToolRegistry.registerTool(MOCK_TOOL_NOT_ALLOWED);
185
- vi.spyOn(mockConfig, 'getToolRegistry').mockResolvedValue(parentToolRegistry);
189
+ vi.spyOn(mockConfig, 'getToolRegistry').mockReturnValue(parentToolRegistry);
186
190
  mockedGetDirectoryContextString.mockResolvedValue('Mocked Environment Context');
187
191
  activities = [];
188
192
  onActivity = (activity) => activities.push(activity);
@@ -195,19 +199,20 @@ describe('AgentExecutor', () => {
195
199
  describe('create (Initialization and Validation)', () => {
196
200
  it('should create successfully with allowed tools', async () => {
197
201
  const definition = createTestDefinition([LS_TOOL_NAME]);
198
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
199
- expect(executor).toBeInstanceOf(AgentExecutor);
202
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
203
+ expect(executor).toBeInstanceOf(LocalAgentExecutor);
200
204
  });
201
- it('SECURITY: should throw if a tool is not on the non-interactive allowlist', async () => {
205
+ it('should allow any tool for experimentation (formerly SECURITY check)', async () => {
202
206
  const definition = createTestDefinition([MOCK_TOOL_NOT_ALLOWED.name]);
203
- await expect(AgentExecutor.create(definition, mockConfig, onActivity)).rejects.toThrow(/not on the allow-list for non-interactive execution/);
207
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
208
+ expect(executor).toBeInstanceOf(LocalAgentExecutor);
204
209
  });
205
210
  it('should create an isolated ToolRegistry for the agent', async () => {
206
211
  const definition = createTestDefinition([
207
212
  LS_TOOL_NAME,
208
213
  READ_FILE_TOOL_NAME,
209
214
  ]);
210
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
215
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
211
216
  const agentRegistry = executor['toolRegistry'];
212
217
  expect(agentRegistry).not.toBe(parentToolRegistry);
213
218
  expect(agentRegistry.getAllToolNames()).toEqual(expect.arrayContaining([LS_TOOL_NAME, READ_FILE_TOOL_NAME]));
@@ -218,7 +223,7 @@ describe('AgentExecutor', () => {
218
223
  const parentId = 'parent-id';
219
224
  mockedPromptIdContext.getStore.mockReturnValue(parentId);
220
225
  const definition = createTestDefinition();
221
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
226
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
222
227
  expect(executor['agentId']).toMatch(new RegExp(`^${parentId}-${definition.name}-`));
223
228
  });
224
229
  it('should correctly apply templates to initialMessages', async () => {
@@ -239,7 +244,7 @@ describe('AgentExecutor', () => {
239
244
  id: 'call1',
240
245
  },
241
246
  ]);
242
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
247
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
243
248
  await executor.run(inputs, signal);
244
249
  const chatConstructorArgs = MockedGeminiChat.mock.calls[0];
245
250
  const startHistory = chatConstructorArgs[3]; // history is the 4th arg
@@ -259,7 +264,7 @@ describe('AgentExecutor', () => {
259
264
  definition.inputConfig.inputs = {
260
265
  goal: { type: 'string', required: true, description: 'goal' },
261
266
  };
262
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
267
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
263
268
  // Run without inputs to trigger validation error
264
269
  await expect(executor.run({}, signal)).rejects.toThrow(/Missing required input parameters/);
265
270
  expect(mockedLogAgentStart).toHaveBeenCalledTimes(1);
@@ -270,7 +275,7 @@ describe('AgentExecutor', () => {
270
275
  });
271
276
  it('should execute successfully when model calls complete_task with output (Happy Path with Output)', async () => {
272
277
  const definition = createTestDefinition();
273
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
278
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
274
279
  const inputs = { goal: 'Find files' };
275
280
  // Turn 1: Model calls ls
276
281
  mockModelResponse([{ name: LS_TOOL_NAME, args: { path: '.' }, id: 'call1' }], 'T1: Listing');
@@ -371,7 +376,7 @@ describe('AgentExecutor', () => {
371
376
  });
372
377
  it('should execute successfully when model calls complete_task without output (Happy Path No Output)', async () => {
373
378
  const definition = createTestDefinition([LS_TOOL_NAME], {}, 'none');
374
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
379
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
375
380
  mockModelResponse([
376
381
  { name: LS_TOOL_NAME, args: { path: '.' }, id: 'call1' },
377
382
  ]);
@@ -403,7 +408,13 @@ describe('AgentExecutor', () => {
403
408
  contentLength: undefined,
404
409
  },
405
410
  });
406
- mockModelResponse([{ name: TASK_COMPLETE_TOOL_NAME, args: {}, id: 'call2' }], 'Task finished.');
411
+ mockModelResponse([
412
+ {
413
+ name: TASK_COMPLETE_TOOL_NAME,
414
+ args: { result: 'All work done' },
415
+ id: 'call2',
416
+ },
417
+ ], 'Task finished.');
407
418
  const output = await executor.run({ goal: 'Do work' }, signal);
408
419
  const { modelConfigKey } = getMockMessageParams(0);
409
420
  expect(modelConfigKey.model).toBe(getModelConfigAlias(definition));
@@ -412,14 +423,14 @@ describe('AgentExecutor', () => {
412
423
  const sentTools = passedToolsArg[0].functionDeclarations;
413
424
  expect(sentTools).toBeDefined();
414
425
  const completeToolDef = sentTools.find((t) => t.name === TASK_COMPLETE_TOOL_NAME);
415
- expect(completeToolDef?.parameters?.required).toEqual([]);
416
- expect(completeToolDef?.description).toContain('signal that you have completed');
417
- expect(output.result).toBe('Task completed successfully.');
426
+ expect(completeToolDef?.parameters?.required).toEqual(['result']);
427
+ expect(completeToolDef?.description).toContain('submit your final findings');
428
+ expect(output.result).toBe('All work done');
418
429
  expect(output.terminate_reason).toBe(AgentTerminateMode.GOAL);
419
430
  });
420
431
  it('should error immediately if the model stops tools without calling complete_task (Protocol Violation)', async () => {
421
432
  const definition = createTestDefinition();
422
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
433
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
423
434
  mockModelResponse([
424
435
  { name: LS_TOOL_NAME, args: { path: '.' }, id: 'call1' },
425
436
  ]);
@@ -474,7 +485,7 @@ describe('AgentExecutor', () => {
474
485
  });
475
486
  it('should report an error if complete_task is called with missing required arguments', async () => {
476
487
  const definition = createTestDefinition();
477
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
488
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
478
489
  // Turn 1: Missing arg
479
490
  mockModelResponse([
480
491
  {
@@ -518,11 +529,19 @@ describe('AgentExecutor', () => {
518
529
  });
519
530
  it('should handle multiple calls to complete_task in the same turn (accept first, block rest)', async () => {
520
531
  const definition = createTestDefinition([], {}, 'none');
521
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
532
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
522
533
  // Turn 1: Duplicate calls
523
534
  mockModelResponse([
524
- { name: TASK_COMPLETE_TOOL_NAME, args: {}, id: 'call1' },
525
- { name: TASK_COMPLETE_TOOL_NAME, args: {}, id: 'call2' },
535
+ {
536
+ name: TASK_COMPLETE_TOOL_NAME,
537
+ args: { result: 'done' },
538
+ id: 'call1',
539
+ },
540
+ {
541
+ name: TASK_COMPLETE_TOOL_NAME,
542
+ args: { result: 'ignored' },
543
+ id: 'call2',
544
+ },
526
545
  ]);
527
546
  const output = await executor.run({ goal: 'Dup test' }, signal);
528
547
  expect(mockSendMessageStream).toHaveBeenCalledTimes(1);
@@ -536,7 +555,7 @@ describe('AgentExecutor', () => {
536
555
  });
537
556
  it('should execute parallel tool calls and then complete', async () => {
538
557
  const definition = createTestDefinition([LS_TOOL_NAME]);
539
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
558
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
540
559
  const call1 = {
541
560
  name: LS_TOOL_NAME,
542
561
  args: { path: '/a' },
@@ -615,7 +634,7 @@ describe('AgentExecutor', () => {
615
634
  });
616
635
  it('SECURITY: should block unauthorized tools and provide explicit failure to model', async () => {
617
636
  const definition = createTestDefinition([LS_TOOL_NAME]);
618
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
637
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
619
638
  // Turn 1: Model tries to use a tool not in its config
620
639
  const badCallId = 'bad_call_1';
621
640
  mockModelResponse([
@@ -640,7 +659,7 @@ describe('AgentExecutor', () => {
640
659
  // Verify external executor was not called (Security held)
641
660
  expect(mockExecuteToolCall).not.toHaveBeenCalled();
642
661
  // 2. Verify console warning
643
- expect(consoleWarnSpy).toHaveBeenCalledWith(expect.stringContaining(`[AgentExecutor] Blocked call:`));
662
+ expect(consoleWarnSpy).toHaveBeenCalledWith(expect.stringContaining(`[LocalAgentExecutor] Blocked call:`));
644
663
  consoleWarnSpy.mockRestore();
645
664
  // Verify specific error was sent back to model
646
665
  const turn2Params = getMockMessageParams(1);
@@ -668,7 +687,7 @@ describe('AgentExecutor', () => {
668
687
  describe('Edge Cases and Error Handling', () => {
669
688
  it('should report an error if complete_task output fails schema validation', async () => {
670
689
  const definition = createTestDefinition([], {}, 'default', z.string().min(10));
671
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
690
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
672
691
  // Turn 1: Invalid arg (too short)
673
692
  mockModelResponse([
674
693
  {
@@ -720,7 +739,7 @@ describe('AgentExecutor', () => {
720
739
  throw initError;
721
740
  });
722
741
  // We expect the error to be thrown during the run, not creation
723
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
742
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
724
743
  await expect(executor.run({ goal: 'test' }, signal)).rejects.toThrow(`Failed to create chat object: ${initError}`);
725
744
  // Ensure the error was reported via the activity callback
726
745
  expect(activities).toContainEqual(expect.objectContaining({
@@ -736,7 +755,7 @@ describe('AgentExecutor', () => {
736
755
  });
737
756
  it('should handle a failed tool call and feed the error to the model', async () => {
738
757
  const definition = createTestDefinition([LS_TOOL_NAME]);
739
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
758
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
740
759
  const toolErrorMessage = 'Tool failed spectacularly';
741
760
  // Turn 1: Model calls a tool that will fail
742
761
  mockModelResponse([
@@ -842,7 +861,7 @@ describe('AgentExecutor', () => {
842
861
  const definition = createTestDefinition([LS_TOOL_NAME], {
843
862
  max_turns: MAX,
844
863
  });
845
- const executor = await AgentExecutor.create(definition, mockConfig);
864
+ const executor = await LocalAgentExecutor.create(definition, mockConfig);
846
865
  mockWorkResponse('t1');
847
866
  mockWorkResponse('t2');
848
867
  // Recovery turn
@@ -855,7 +874,7 @@ describe('AgentExecutor', () => {
855
874
  const definition = createTestDefinition([LS_TOOL_NAME], {
856
875
  max_time_minutes: 0.5, // 30 seconds
857
876
  });
858
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
877
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
859
878
  // Mock a model call that is interruptible by an abort signal.
860
879
  mockSendMessageStream.mockImplementationOnce(async (_key, _message, _promptId, signal) =>
861
880
  // eslint-disable-next-line require-yield
@@ -893,7 +912,7 @@ describe('AgentExecutor', () => {
893
912
  const definition = createTestDefinition([LS_TOOL_NAME], {
894
913
  max_time_minutes: 1,
895
914
  });
896
- const executor = await AgentExecutor.create(definition, mockConfig);
915
+ const executor = await LocalAgentExecutor.create(definition, mockConfig);
897
916
  mockModelResponse([
898
917
  { name: LS_TOOL_NAME, args: { path: '.' }, id: 't1' },
899
918
  ]);
@@ -923,7 +942,7 @@ describe('AgentExecutor', () => {
923
942
  });
924
943
  it('should terminate when AbortSignal is triggered', async () => {
925
944
  const definition = createTestDefinition();
926
- const executor = await AgentExecutor.create(definition, mockConfig);
945
+ const executor = await LocalAgentExecutor.create(definition, mockConfig);
927
946
  mockSendMessageStream.mockImplementationOnce(async () => (async function* () {
928
947
  yield {
929
948
  type: StreamEventType.CHUNK,
@@ -968,7 +987,7 @@ describe('AgentExecutor', () => {
968
987
  const definition = createTestDefinition([LS_TOOL_NAME], {
969
988
  max_turns: MAX,
970
989
  });
971
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
990
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
972
991
  // Turn 1 (hits max_turns)
973
992
  mockWorkResponse('t1');
974
993
  // Recovery Turn (succeeds)
@@ -999,7 +1018,7 @@ describe('AgentExecutor', () => {
999
1018
  const definition = createTestDefinition([LS_TOOL_NAME], {
1000
1019
  max_turns: MAX,
1001
1020
  });
1002
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1021
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1003
1022
  // Turn 1 (hits max_turns)
1004
1023
  mockWorkResponse('t1');
1005
1024
  // Recovery Turn (fails by calling no tools)
@@ -1018,7 +1037,7 @@ describe('AgentExecutor', () => {
1018
1037
  });
1019
1038
  it('should recover successfully from a protocol violation (no complete_task)', async () => {
1020
1039
  const definition = createTestDefinition();
1021
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1040
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1022
1041
  // Turn 1: Normal work
1023
1042
  mockWorkResponse('t1');
1024
1043
  // Turn 2: Protocol violation (no tool calls)
@@ -1044,7 +1063,7 @@ describe('AgentExecutor', () => {
1044
1063
  });
1045
1064
  it('should fail recovery from a protocol violation if it violates again', async () => {
1046
1065
  const definition = createTestDefinition();
1047
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1066
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1048
1067
  // Turn 1: Normal work
1049
1068
  mockWorkResponse('t1');
1050
1069
  // Turn 2: Protocol violation (no tool calls)
@@ -1067,7 +1086,7 @@ describe('AgentExecutor', () => {
1067
1086
  const definition = createTestDefinition([LS_TOOL_NAME], {
1068
1087
  max_time_minutes: 0.5, // 30 seconds
1069
1088
  });
1070
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1089
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1071
1090
  // Mock a model call that gets interrupted by the timeout.
1072
1091
  mockSendMessageStream.mockImplementationOnce(async (_key, _message, _promptId, signal) =>
1073
1092
  // eslint-disable-next-line require-yield
@@ -1103,7 +1122,7 @@ describe('AgentExecutor', () => {
1103
1122
  const definition = createTestDefinition([LS_TOOL_NAME], {
1104
1123
  max_time_minutes: 0.5, // 30 seconds
1105
1124
  });
1106
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1125
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1107
1126
  mockSendMessageStream.mockImplementationOnce(async (_key, _message, _promptId, signal) =>
1108
1127
  // eslint-disable-next-line require-yield
1109
1128
  (async function* () {
@@ -1169,7 +1188,7 @@ describe('AgentExecutor', () => {
1169
1188
  const definition = createTestDefinition([LS_TOOL_NAME], {
1170
1189
  max_turns: MAX,
1171
1190
  });
1172
- const executor = await AgentExecutor.create(definition, mockConfig);
1191
+ const executor = await LocalAgentExecutor.create(definition, mockConfig);
1173
1192
  // Turn 1 (hits max_turns)
1174
1193
  mockWorkResponse('t1');
1175
1194
  // Recovery Turn (fails by calling no tools)
@@ -1189,7 +1208,7 @@ describe('AgentExecutor', () => {
1189
1208
  const definition = createTestDefinition([LS_TOOL_NAME], {
1190
1209
  max_turns: MAX,
1191
1210
  });
1192
- const executor = await AgentExecutor.create(definition, mockConfig);
1211
+ const executor = await LocalAgentExecutor.create(definition, mockConfig);
1193
1212
  // Turn 1 (hits max_turns)
1194
1213
  mockWorkResponse('t1');
1195
1214
  // Recovery Turn (succeeds)
@@ -1236,7 +1255,7 @@ describe('AgentExecutor', () => {
1236
1255
  };
1237
1256
  it('should attempt to compress chat history on each turn', async () => {
1238
1257
  const definition = createTestDefinition();
1239
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1258
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1240
1259
  // Mock compression to do nothing
1241
1260
  mockCompress.mockResolvedValue({
1242
1261
  newHistory: null,
@@ -1257,7 +1276,7 @@ describe('AgentExecutor', () => {
1257
1276
  });
1258
1277
  it('should update chat history when compression is successful', async () => {
1259
1278
  const definition = createTestDefinition();
1260
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1279
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1261
1280
  const compressedHistory = [
1262
1281
  { role: 'user', parts: [{ text: 'compressed' }] },
1263
1282
  ];
@@ -1280,7 +1299,7 @@ describe('AgentExecutor', () => {
1280
1299
  });
1281
1300
  it('should pass hasFailedCompressionAttempt=true to compression after a failure', async () => {
1282
1301
  const definition = createTestDefinition();
1283
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1302
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1284
1303
  // First call fails
1285
1304
  mockCompress.mockResolvedValueOnce({
1286
1305
  newHistory: null,
@@ -1312,7 +1331,7 @@ describe('AgentExecutor', () => {
1312
1331
  });
1313
1332
  it('should reset hasFailedCompressionAttempt flag after a successful compression', async () => {
1314
1333
  const definition = createTestDefinition();
1315
- const executor = await AgentExecutor.create(definition, mockConfig, onActivity);
1334
+ const executor = await LocalAgentExecutor.create(definition, mockConfig, onActivity);
1316
1335
  const compressedHistory = [
1317
1336
  { role: 'user', parts: [{ text: 'compressed' }] },
1318
1337
  ];
@@ -1358,4 +1377,4 @@ describe('AgentExecutor', () => {
1358
1377
  });
1359
1378
  });
1360
1379
  });
1361
- //# sourceMappingURL=executor.test.js.map
1380
+ //# sourceMappingURL=local-executor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-executor.test.js","sourceRoot":"","sources":["../../../src/agents/local-executor.test.ts"],"names":[],"mappings":"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"}
@@ -6,29 +6,28 @@
6
6
  import type { Config } from '../config/config.js';
7
7
  import type { AnsiOutput } from '../utils/terminalSerializer.js';
8
8
  import { BaseToolInvocation, type ToolResult } from '../tools/tools.js';
9
- import type { AgentDefinition, AgentInputs } from './types.js';
9
+ import type { LocalAgentDefinition, AgentInputs } from './types.js';
10
10
  import type { MessageBus } from '../confirmation-bus/message-bus.js';
11
- import { type z } from 'zod';
12
11
  /**
13
12
  * Represents a validated, executable instance of a subagent tool.
14
13
  *
15
14
  * This class orchestrates the execution of a defined agent by:
16
- * 1. Initializing the {@link AgentExecutor}.
15
+ * 1. Initializing the {@link LocalAgentExecutor}.
17
16
  * 2. Running the agent's execution loop.
18
17
  * 3. Bridging the agent's streaming activity (e.g., thoughts) to the tool's
19
18
  * live output stream.
20
19
  * 4. Formatting the final result into a {@link ToolResult}.
21
20
  */
22
- export declare class SubagentInvocation<TOutput extends z.ZodTypeAny> extends BaseToolInvocation<AgentInputs, ToolResult> {
21
+ export declare class LocalSubagentInvocation extends BaseToolInvocation<AgentInputs, ToolResult> {
23
22
  private readonly definition;
24
23
  private readonly config;
25
24
  /**
26
- * @param params The validated input parameters for the agent.
27
25
  * @param definition The definition object that configures the agent.
28
26
  * @param config The global runtime configuration.
27
+ * @param params The validated input parameters for the agent.
29
28
  * @param messageBus Optional message bus for policy enforcement.
30
29
  */
31
- constructor(params: AgentInputs, definition: AgentDefinition<TOutput>, config: Config, messageBus?: MessageBus);
30
+ constructor(definition: LocalAgentDefinition, config: Config, params: AgentInputs, messageBus?: MessageBus);
32
31
  /**
33
32
  * Returns a concise, human-readable description of the invocation.
34
33
  * Used for logging and display purposes.
@@ -3,33 +3,32 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AgentExecutor } from './executor.js';
6
+ import { LocalAgentExecutor } from './local-executor.js';
7
7
  import { BaseToolInvocation } from '../tools/tools.js';
8
8
  import { ToolErrorType } from '../tools/tool-error.js';
9
- import {} from 'zod';
10
9
  const INPUT_PREVIEW_MAX_LENGTH = 50;
11
10
  const DESCRIPTION_MAX_LENGTH = 200;
12
11
  /**
13
12
  * Represents a validated, executable instance of a subagent tool.
14
13
  *
15
14
  * This class orchestrates the execution of a defined agent by:
16
- * 1. Initializing the {@link AgentExecutor}.
15
+ * 1. Initializing the {@link LocalAgentExecutor}.
17
16
  * 2. Running the agent's execution loop.
18
17
  * 3. Bridging the agent's streaming activity (e.g., thoughts) to the tool's
19
18
  * live output stream.
20
19
  * 4. Formatting the final result into a {@link ToolResult}.
21
20
  */
22
- export class SubagentInvocation extends BaseToolInvocation {
21
+ export class LocalSubagentInvocation extends BaseToolInvocation {
23
22
  definition;
24
23
  config;
25
24
  /**
26
- * @param params The validated input parameters for the agent.
27
25
  * @param definition The definition object that configures the agent.
28
26
  * @param config The global runtime configuration.
27
+ * @param params The validated input parameters for the agent.
29
28
  * @param messageBus Optional message bus for policy enforcement.
30
29
  */
31
- constructor(params, definition, config, messageBus) {
32
- super(params, messageBus);
30
+ constructor(definition, config, params, messageBus) {
31
+ super(params, messageBus, definition.name, definition.displayName);
33
32
  this.definition = definition;
34
33
  this.config = config;
35
34
  }
@@ -67,7 +66,7 @@ export class SubagentInvocation extends BaseToolInvocation {
67
66
  updateOutput(`🤖💭 ${activity.data['text']}`);
68
67
  }
69
68
  };
70
- const executor = await AgentExecutor.create(this.definition, this.config, onActivity);
69
+ const executor = await LocalAgentExecutor.create(this.definition, this.config, onActivity);
71
70
  const output = await executor.run(this.params, signal);
72
71
  const resultContent = `Subagent '${this.definition.name}' finished.
73
72
  Termination Reason: ${output.terminate_reason}
@@ -99,4 +98,4 @@ ${output.result}
99
98
  }
100
99
  }
101
100
  }
102
- //# sourceMappingURL=invocation.js.map
101
+ //# sourceMappingURL=local-invocation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-invocation.js","sourceRoot":"","sources":["../../../src/agents/local-invocation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};