@google/gemini-cli-core 0.34.0-preview.3 → 0.35.0-nightly.20260314.3038fdce2

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 (355) hide show
  1. package/dist/docs/changelogs/index.md +19 -0
  2. package/dist/docs/changelogs/latest.md +217 -191
  3. package/dist/docs/changelogs/preview.md +447 -184
  4. package/dist/docs/cli/model-routing.md +18 -1
  5. package/dist/docs/cli/model-steering.md +79 -0
  6. package/dist/docs/cli/plan-mode.md +99 -14
  7. package/dist/docs/cli/settings.md +14 -12
  8. package/dist/docs/cli/telemetry.md +45 -0
  9. package/dist/docs/cli/tutorials/plan-mode-steering.md +89 -0
  10. package/dist/docs/core/index.md +2 -0
  11. package/dist/docs/core/local-model-routing.md +193 -0
  12. package/dist/docs/reference/configuration.md +27 -3
  13. package/dist/docs/reference/keyboard-shortcuts.md +168 -90
  14. package/dist/docs/reference/policy-engine.md +30 -6
  15. package/dist/docs/resources/troubleshooting.md +15 -0
  16. package/dist/docs/sidebar.json +10 -0
  17. package/dist/docs/tools/shell.md +8 -0
  18. package/dist/google-gemini-cli-core-0.35.0-nightly.20260311.657f19c1f.tgz +0 -0
  19. package/dist/src/agents/a2a-client-manager.d.ts +11 -4
  20. package/dist/src/agents/a2a-client-manager.js +61 -34
  21. package/dist/src/agents/a2a-client-manager.js.map +1 -1
  22. package/dist/src/agents/a2a-client-manager.test.js +178 -115
  23. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  24. package/dist/src/agents/a2aUtils.d.ts +4 -28
  25. package/dist/src/agents/a2aUtils.js +20 -181
  26. package/dist/src/agents/a2aUtils.js.map +1 -1
  27. package/dist/src/agents/a2aUtils.test.js +19 -106
  28. package/dist/src/agents/a2aUtils.test.js.map +1 -1
  29. package/dist/src/agents/agent-scheduler.d.ts +2 -0
  30. package/dist/src/agents/agent-scheduler.js +3 -2
  31. package/dist/src/agents/agent-scheduler.js.map +1 -1
  32. package/dist/src/agents/agent-scheduler.test.js +12 -3
  33. package/dist/src/agents/agent-scheduler.test.js.map +1 -1
  34. package/dist/src/agents/agentLoader.d.ts +2 -2
  35. package/dist/src/agents/agentLoader.js +15 -0
  36. package/dist/src/agents/agentLoader.js.map +1 -1
  37. package/dist/src/agents/auth-provider/factory.d.ts +2 -0
  38. package/dist/src/agents/auth-provider/factory.js +6 -3
  39. package/dist/src/agents/auth-provider/factory.js.map +1 -1
  40. package/dist/src/agents/auth-provider/google-credentials-provider.d.ts +26 -0
  41. package/dist/src/agents/auth-provider/google-credentials-provider.js +117 -0
  42. package/dist/src/agents/auth-provider/google-credentials-provider.js.map +1 -0
  43. package/dist/src/agents/auth-provider/google-credentials-provider.test.d.ts +6 -0
  44. package/dist/src/agents/auth-provider/google-credentials-provider.test.js +126 -0
  45. package/dist/src/agents/auth-provider/google-credentials-provider.test.js.map +1 -0
  46. package/dist/src/agents/browser/browserAgentFactory.js +11 -2
  47. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
  48. package/dist/src/agents/browser/browserAgentInvocation.d.ts +4 -3
  49. package/dist/src/agents/browser/browserAgentInvocation.js +10 -4
  50. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  51. package/dist/src/agents/browser/browserAgentInvocation.test.js +1 -0
  52. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
  53. package/dist/src/agents/browser/browserManager.d.ts +10 -0
  54. package/dist/src/agents/browser/browserManager.js +53 -8
  55. package/dist/src/agents/browser/browserManager.js.map +1 -1
  56. package/dist/src/agents/browser/inputBlocker.d.ts +51 -0
  57. package/dist/src/agents/browser/inputBlocker.js +234 -0
  58. package/dist/src/agents/browser/inputBlocker.js.map +1 -0
  59. package/dist/src/agents/browser/inputBlocker.test.d.ts +6 -0
  60. package/dist/src/agents/browser/inputBlocker.test.js +82 -0
  61. package/dist/src/agents/browser/inputBlocker.test.js.map +1 -0
  62. package/dist/src/agents/browser/mcpToolWrapper.d.ts +3 -2
  63. package/dist/src/agents/browser/mcpToolWrapper.js +49 -8
  64. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
  65. package/dist/src/agents/browser/mcpToolWrapper.test.js +51 -0
  66. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
  67. package/dist/src/agents/local-executor.d.ts +5 -4
  68. package/dist/src/agents/local-executor.js +30 -25
  69. package/dist/src/agents/local-executor.js.map +1 -1
  70. package/dist/src/agents/local-executor.test.js +269 -3
  71. package/dist/src/agents/local-executor.test.js.map +1 -1
  72. package/dist/src/agents/local-invocation.d.ts +4 -4
  73. package/dist/src/agents/local-invocation.js +12 -9
  74. package/dist/src/agents/local-invocation.js.map +1 -1
  75. package/dist/src/agents/local-invocation.test.js +19 -3
  76. package/dist/src/agents/local-invocation.test.js.map +1 -1
  77. package/dist/src/agents/registry.js +3 -2
  78. package/dist/src/agents/registry.js.map +1 -1
  79. package/dist/src/agents/registry.test.js +1 -0
  80. package/dist/src/agents/registry.test.js.map +1 -1
  81. package/dist/src/agents/remote-invocation.d.ts +0 -9
  82. package/dist/src/agents/remote-invocation.js +1 -28
  83. package/dist/src/agents/remote-invocation.js.map +1 -1
  84. package/dist/src/agents/remote-invocation.test.js +1 -0
  85. package/dist/src/agents/remote-invocation.test.js.map +1 -1
  86. package/dist/src/agents/subagent-tool-wrapper.d.ts +5 -4
  87. package/dist/src/agents/subagent-tool-wrapper.js +9 -5
  88. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  89. package/dist/src/agents/subagent-tool-wrapper.test.js +15 -1
  90. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  91. package/dist/src/agents/subagent-tool.d.ts +3 -3
  92. package/dist/src/agents/subagent-tool.js +16 -12
  93. package/dist/src/agents/subagent-tool.js.map +1 -1
  94. package/dist/src/agents/subagent-tool.test.js +13 -3
  95. package/dist/src/agents/subagent-tool.test.js.map +1 -1
  96. package/dist/src/code_assist/oauth2.js +0 -1
  97. package/dist/src/code_assist/oauth2.js.map +1 -1
  98. package/dist/src/code_assist/server.js +2 -2
  99. package/dist/src/code_assist/server.js.map +1 -1
  100. package/dist/src/code_assist/server.test.js +5 -1
  101. package/dist/src/code_assist/server.test.js.map +1 -1
  102. package/dist/src/code_assist/telemetry.d.ts +2 -2
  103. package/dist/src/code_assist/telemetry.js +5 -3
  104. package/dist/src/code_assist/telemetry.js.map +1 -1
  105. package/dist/src/code_assist/telemetry.test.js +14 -12
  106. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  107. package/dist/src/code_assist/types.d.ts +14 -12
  108. package/dist/src/code_assist/types.js.map +1 -1
  109. package/dist/src/config/agent-loop-context.d.ts +3 -0
  110. package/dist/src/config/config.d.ts +75 -2
  111. package/dist/src/config/config.js +78 -11
  112. package/dist/src/config/config.js.map +1 -1
  113. package/dist/src/config/config.test.js +170 -10
  114. package/dist/src/config/config.test.js.map +1 -1
  115. package/dist/src/config/models.d.ts +14 -0
  116. package/dist/src/config/models.js +37 -0
  117. package/dist/src/config/models.js.map +1 -1
  118. package/dist/src/config/models.test.js +51 -1
  119. package/dist/src/config/models.test.js.map +1 -1
  120. package/dist/src/config/storage.d.ts +1 -0
  121. package/dist/src/config/storage.js +3 -0
  122. package/dist/src/config/storage.js.map +1 -1
  123. package/dist/src/core/baseLlmClient.js +19 -3
  124. package/dist/src/core/baseLlmClient.js.map +1 -1
  125. package/dist/src/core/baseLlmClient.test.js +2 -0
  126. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  127. package/dist/src/core/client.d.ts +4 -3
  128. package/dist/src/core/client.js +42 -17
  129. package/dist/src/core/client.js.map +1 -1
  130. package/dist/src/core/client.test.js +8 -0
  131. package/dist/src/core/client.test.js.map +1 -1
  132. package/dist/src/core/contentGenerator.d.ts +1 -0
  133. package/dist/src/core/contentGenerator.js +35 -3
  134. package/dist/src/core/contentGenerator.js.map +1 -1
  135. package/dist/src/core/contentGenerator.test.js +137 -2
  136. package/dist/src/core/contentGenerator.test.js.map +1 -1
  137. package/dist/src/core/coreToolHookTriggers.d.ts +2 -3
  138. package/dist/src/core/coreToolHookTriggers.js +5 -11
  139. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  140. package/dist/src/core/coreToolHookTriggers.test.js +24 -0
  141. package/dist/src/core/coreToolHookTriggers.test.js.map +1 -1
  142. package/dist/src/core/coreToolScheduler.js +1 -1
  143. package/dist/src/core/coreToolScheduler.js.map +1 -1
  144. package/dist/src/core/geminiChat.js +31 -21
  145. package/dist/src/core/geminiChat.js.map +1 -1
  146. package/dist/src/core/geminiChat.test.js +6 -4
  147. package/dist/src/core/geminiChat.test.js.map +1 -1
  148. package/dist/src/core/geminiChat_network_retry.test.js +21 -11
  149. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  150. package/dist/src/fallback/handler.js +0 -4
  151. package/dist/src/fallback/handler.js.map +1 -1
  152. package/dist/src/fallback/handler.test.js +0 -6
  153. package/dist/src/fallback/handler.test.js.map +1 -1
  154. package/dist/src/generated/git-commit.d.ts +2 -2
  155. package/dist/src/generated/git-commit.js +2 -2
  156. package/dist/src/generated/git-commit.js.map +1 -1
  157. package/dist/src/ide/detect-ide.d.ts +8 -0
  158. package/dist/src/ide/detect-ide.js +12 -1
  159. package/dist/src/ide/detect-ide.js.map +1 -1
  160. package/dist/src/ide/detect-ide.test.js +12 -0
  161. package/dist/src/ide/detect-ide.test.js.map +1 -1
  162. package/dist/src/ide/ide-installer.js +20 -8
  163. package/dist/src/ide/ide-installer.js.map +1 -1
  164. package/dist/src/ide/ide-installer.test.js +60 -4
  165. package/dist/src/ide/ide-installer.test.js.map +1 -1
  166. package/dist/src/mcp/oauth-provider.js +0 -2
  167. package/dist/src/mcp/oauth-provider.js.map +1 -1
  168. package/dist/src/mcp/oauth-token-storage.test.js +6 -10
  169. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  170. package/dist/src/mcp/oauth-utils.js +0 -2
  171. package/dist/src/mcp/oauth-utils.js.map +1 -1
  172. package/dist/src/mcp/token-storage/file-token-storage.d.ts +24 -0
  173. package/dist/src/mcp/token-storage/file-token-storage.js +152 -0
  174. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -0
  175. package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +6 -0
  176. package/dist/src/mcp/token-storage/file-token-storage.test.js +276 -0
  177. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -0
  178. package/dist/src/mcp/token-storage/hybrid-token-storage.js +21 -9
  179. package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -1
  180. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +59 -10
  181. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -1
  182. package/dist/src/mcp/token-storage/index.d.ts +1 -1
  183. package/dist/src/mcp/token-storage/index.js +1 -1
  184. package/dist/src/mcp/token-storage/index.js.map +1 -1
  185. package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +0 -1
  186. package/dist/src/mcp/token-storage/keychain-token-storage.js +0 -3
  187. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  188. package/dist/src/policy/config.d.ts +14 -2
  189. package/dist/src/policy/config.js +94 -49
  190. package/dist/src/policy/config.js.map +1 -1
  191. package/dist/src/policy/config.test.js +208 -488
  192. package/dist/src/policy/config.test.js.map +1 -1
  193. package/dist/src/policy/policies/plan.toml +1 -1
  194. package/dist/src/policy/stable-stringify.js +15 -5
  195. package/dist/src/policy/stable-stringify.js.map +1 -1
  196. package/dist/src/policy/types.d.ts +1 -0
  197. package/dist/src/policy/types.js.map +1 -1
  198. package/dist/src/policy/utils.d.ts +17 -0
  199. package/dist/src/policy/utils.js +27 -7
  200. package/dist/src/policy/utils.js.map +1 -1
  201. package/dist/src/prompts/snippets.js +2 -1
  202. package/dist/src/prompts/snippets.js.map +1 -1
  203. package/dist/src/prompts/utils.test.d.ts +6 -0
  204. package/dist/src/prompts/utils.test.js +225 -0
  205. package/dist/src/prompts/utils.test.js.map +1 -0
  206. package/dist/src/routing/modelRouterService.js +2 -2
  207. package/dist/src/routing/modelRouterService.js.map +1 -1
  208. package/dist/src/routing/modelRouterService.test.js +4 -3
  209. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  210. package/dist/src/routing/strategies/numericalClassifierStrategy.js +6 -40
  211. package/dist/src/routing/strategies/numericalClassifierStrategy.js.map +1 -1
  212. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js +29 -64
  213. package/dist/src/routing/strategies/numericalClassifierStrategy.test.js.map +1 -1
  214. package/dist/src/scheduler/policy.d.ts +3 -7
  215. package/dist/src/scheduler/policy.js +4 -3
  216. package/dist/src/scheduler/policy.js.map +1 -1
  217. package/dist/src/scheduler/policy.test.js +51 -31
  218. package/dist/src/scheduler/policy.test.js.map +1 -1
  219. package/dist/src/scheduler/scheduler.d.ts +4 -2
  220. package/dist/src/scheduler/scheduler.js +19 -16
  221. package/dist/src/scheduler/scheduler.js.map +1 -1
  222. package/dist/src/scheduler/scheduler.test.js +33 -10
  223. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  224. package/dist/src/scheduler/scheduler_parallel.test.js +40 -2
  225. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
  226. package/dist/src/scheduler/scheduler_waiting_callback.test.js +1 -1
  227. package/dist/src/scheduler/scheduler_waiting_callback.test.js.map +1 -1
  228. package/dist/src/scheduler/tool-executor.d.ts +3 -3
  229. package/dist/src/scheduler/tool-executor.js +15 -21
  230. package/dist/src/scheduler/tool-executor.js.map +1 -1
  231. package/dist/src/scheduler/tool-executor.test.js +43 -8
  232. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  233. package/dist/src/services/chatRecordingService.js +2 -1
  234. package/dist/src/services/chatRecordingService.js.map +1 -1
  235. package/dist/src/services/chatRecordingService.test.js +21 -0
  236. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  237. package/dist/src/services/executionLifecycleService.d.ts +83 -0
  238. package/dist/src/services/executionLifecycleService.js +271 -0
  239. package/dist/src/services/executionLifecycleService.js.map +1 -0
  240. package/dist/src/services/executionLifecycleService.test.d.ts +6 -0
  241. package/dist/src/services/executionLifecycleService.test.js +227 -0
  242. package/dist/src/services/executionLifecycleService.test.js.map +1 -0
  243. package/dist/src/services/keychainService.d.ts +0 -5
  244. package/dist/src/services/keychainService.js +13 -30
  245. package/dist/src/services/keychainService.js.map +1 -1
  246. package/dist/src/services/keychainService.test.js +22 -52
  247. package/dist/src/services/keychainService.test.js.map +1 -1
  248. package/dist/src/services/sandboxManager.d.ts +54 -0
  249. package/dist/src/services/sandboxManager.js +30 -0
  250. package/dist/src/services/sandboxManager.js.map +1 -0
  251. package/dist/src/services/sandboxManager.test.d.ts +6 -0
  252. package/dist/src/services/sandboxManager.test.js +95 -0
  253. package/dist/src/services/sandboxManager.test.js.map +1 -0
  254. package/dist/src/services/shellExecutionService.d.ts +4 -52
  255. package/dist/src/services/shellExecutionService.js +437 -498
  256. package/dist/src/services/shellExecutionService.js.map +1 -1
  257. package/dist/src/services/shellExecutionService.test.js +10 -21
  258. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  259. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +13 -2
  260. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +91 -1
  261. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  262. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +77 -0
  263. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  264. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +10 -1
  265. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +25 -1
  266. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  267. package/dist/src/telemetry/index.d.ts +3 -3
  268. package/dist/src/telemetry/index.js +3 -3
  269. package/dist/src/telemetry/index.js.map +1 -1
  270. package/dist/src/telemetry/loggers.d.ts +2 -1
  271. package/dist/src/telemetry/loggers.js +32 -1
  272. package/dist/src/telemetry/loggers.js.map +1 -1
  273. package/dist/src/telemetry/loggers.test.js +37 -2
  274. package/dist/src/telemetry/loggers.test.js.map +1 -1
  275. package/dist/src/telemetry/metrics.d.ts +13 -0
  276. package/dist/src/telemetry/metrics.js +17 -0
  277. package/dist/src/telemetry/metrics.js.map +1 -1
  278. package/dist/src/telemetry/startupProfiler.js +4 -4
  279. package/dist/src/telemetry/startupProfiler.js.map +1 -1
  280. package/dist/src/telemetry/startupProfiler.test.js +19 -0
  281. package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
  282. package/dist/src/telemetry/telemetry-utils.test.js +3 -3
  283. package/dist/src/telemetry/types.d.ts +16 -2
  284. package/dist/src/telemetry/types.js +34 -0
  285. package/dist/src/telemetry/types.js.map +1 -1
  286. package/dist/src/telemetry/uiTelemetry.d.ts +7 -0
  287. package/dist/src/telemetry/uiTelemetry.js +78 -0
  288. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  289. package/dist/src/telemetry/uiTelemetry.test.js +101 -0
  290. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  291. package/dist/src/tools/exit-plan-mode.js +10 -2
  292. package/dist/src/tools/exit-plan-mode.js.map +1 -1
  293. package/dist/src/tools/exit-plan-mode.test.js +15 -0
  294. package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
  295. package/dist/src/tools/ls.js +2 -2
  296. package/dist/src/tools/ls.js.map +1 -1
  297. package/dist/src/tools/mcp-client.js +0 -1
  298. package/dist/src/tools/mcp-client.js.map +1 -1
  299. package/dist/src/tools/mcp-client.test.js +4 -0
  300. package/dist/src/tools/mcp-client.test.js.map +1 -1
  301. package/dist/src/tools/mcp-tool.test.js +10 -1
  302. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  303. package/dist/src/tools/read-many-files.js +2 -4
  304. package/dist/src/tools/read-many-files.js.map +1 -1
  305. package/dist/src/tools/shell.d.ts +1 -1
  306. package/dist/src/tools/shell.js +3 -3
  307. package/dist/src/tools/shell.js.map +1 -1
  308. package/dist/src/tools/tool-registry.test.js +4 -0
  309. package/dist/src/tools/tool-registry.test.js.map +1 -1
  310. package/dist/src/tools/tools.d.ts +34 -1
  311. package/dist/src/tools/tools.js +47 -1
  312. package/dist/src/tools/tools.js.map +1 -1
  313. package/dist/src/tools/web-fetch.d.ts +5 -0
  314. package/dist/src/tools/web-fetch.js +177 -100
  315. package/dist/src/tools/web-fetch.js.map +1 -1
  316. package/dist/src/tools/web-fetch.test.js +130 -26
  317. package/dist/src/tools/web-fetch.test.js.map +1 -1
  318. package/dist/src/tools/web-search.test.js +2 -0
  319. package/dist/src/tools/web-search.test.js.map +1 -1
  320. package/dist/src/utils/fetch.d.ts +0 -29
  321. package/dist/src/utils/fetch.js +10 -123
  322. package/dist/src/utils/fetch.js.map +1 -1
  323. package/dist/src/utils/fetch.test.js +1 -103
  324. package/dist/src/utils/fetch.test.js.map +1 -1
  325. package/dist/src/utils/language-detection.js +96 -89
  326. package/dist/src/utils/language-detection.js.map +1 -1
  327. package/dist/src/utils/language-detection.test.d.ts +6 -0
  328. package/dist/src/utils/language-detection.test.js +39 -0
  329. package/dist/src/utils/language-detection.test.js.map +1 -0
  330. package/dist/src/utils/oauth-flow.js +0 -2
  331. package/dist/src/utils/oauth-flow.js.map +1 -1
  332. package/dist/src/utils/paths.js +5 -2
  333. package/dist/src/utils/paths.js.map +1 -1
  334. package/dist/src/utils/paths.test.js +11 -0
  335. package/dist/src/utils/paths.test.js.map +1 -1
  336. package/dist/src/utils/process-utils.js +18 -4
  337. package/dist/src/utils/process-utils.js.map +1 -1
  338. package/dist/src/utils/process-utils.test.js +32 -10
  339. package/dist/src/utils/process-utils.test.js.map +1 -1
  340. package/dist/src/utils/retry.d.ts +7 -0
  341. package/dist/src/utils/retry.js +40 -3
  342. package/dist/src/utils/retry.js.map +1 -1
  343. package/dist/src/utils/retry.test.js +13 -0
  344. package/dist/src/utils/retry.test.js.map +1 -1
  345. package/dist/src/utils/summarizer.test.js +5 -0
  346. package/dist/src/utils/summarizer.test.js.map +1 -1
  347. package/dist/src/utils/surface.d.ts +18 -0
  348. package/dist/src/utils/surface.js +46 -0
  349. package/dist/src/utils/surface.js.map +1 -0
  350. package/dist/tsconfig.tsbuildinfo +1 -1
  351. package/package.json +1 -1
  352. package/dist/google-gemini-cli-core-0.34.0-preview.2.tgz +0 -0
  353. package/dist/src/services/fileKeychain.d.ts +0 -24
  354. package/dist/src/services/fileKeychain.js +0 -123
  355. package/dist/src/services/fileKeychain.js.map +0 -1
@@ -0,0 +1,234 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { debugLogger } from '../../utils/debugLogger.js';
7
+ /**
8
+ * JavaScript function to inject the input blocker overlay.
9
+ * This blocks all user input events while allowing CDP commands to work normally.
10
+ *
11
+ * Must be a function declaration (NOT an IIFE) because evaluate_script
12
+ * evaluates it via Puppeteer's page.evaluate().
13
+ */
14
+ const INPUT_BLOCKER_FUNCTION = `() => {
15
+ // If the blocker already exists, just ensure it's active and return.
16
+ // This makes re-injection after potentially-navigating tools near-free
17
+ // when the page didn't actually navigate (most clicks don't navigate).
18
+ var existing = document.getElementById('__gemini_input_blocker');
19
+ if (existing) {
20
+ existing.style.pointerEvents = 'auto';
21
+ return;
22
+ }
23
+
24
+ const blocker = document.createElement('div');
25
+ blocker.id = '__gemini_input_blocker';
26
+ blocker.setAttribute('aria-hidden', 'true');
27
+ blocker.setAttribute('role', 'presentation');
28
+ blocker.style.cssText = [
29
+ 'position: fixed',
30
+ 'inset: 0',
31
+ 'z-index: 2147483646',
32
+ 'cursor: not-allowed',
33
+ 'background: transparent',
34
+ ].join('; ');
35
+
36
+ // Block all input events on the overlay itself
37
+ var blockEvent = function(e) {
38
+ e.preventDefault();
39
+ e.stopPropagation();
40
+ e.stopImmediatePropagation();
41
+ };
42
+
43
+ var events = [
44
+ 'click', 'mousedown', 'mouseup', 'keydown', 'keyup',
45
+ 'keypress', 'touchstart', 'touchend', 'touchmove', 'wheel',
46
+ 'contextmenu', 'dblclick', 'pointerdown', 'pointerup', 'pointermove',
47
+ ];
48
+ for (var i = 0; i < events.length; i++) {
49
+ blocker.addEventListener(events[i], blockEvent, { capture: true });
50
+ }
51
+
52
+ // Capsule-shaped floating pill at bottom center
53
+ var pill = document.createElement('div');
54
+ pill.style.cssText = [
55
+ 'position: fixed',
56
+ 'bottom: 20px',
57
+ 'left: 50%',
58
+ 'transform: translateX(-50%) translateY(20px)',
59
+ 'display: flex',
60
+ 'align-items: center',
61
+ 'gap: 10px',
62
+ 'padding: 10px 20px',
63
+ 'background: rgba(24, 24, 27, 0.88)',
64
+ 'color: #fff',
65
+ 'font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif',
66
+ 'font-size: 13px',
67
+ 'line-height: 1',
68
+ 'border-radius: 999px',
69
+ 'z-index: 2147483647',
70
+ 'backdrop-filter: blur(16px)',
71
+ '-webkit-backdrop-filter: blur(16px)',
72
+ 'border: 1px solid rgba(255, 255, 255, 0.08)',
73
+ 'box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.05)',
74
+ 'opacity: 0',
75
+ 'transition: opacity 0.4s ease, transform 0.4s ease',
76
+ 'white-space: nowrap',
77
+ 'user-select: none',
78
+ 'pointer-events: none',
79
+ ].join('; ');
80
+
81
+ // Pulsing red dot
82
+ var dot = document.createElement('span');
83
+ dot.style.cssText = [
84
+ 'width: 10px',
85
+ 'height: 10px',
86
+ 'border-radius: 50%',
87
+ 'background: #ef4444',
88
+ 'display: inline-block',
89
+ 'flex-shrink: 0',
90
+ 'box-shadow: 0 0 6px rgba(239, 68, 68, 0.6)',
91
+ 'animation: __gemini_pulse 2s ease-in-out infinite',
92
+ ].join('; ');
93
+
94
+ // Labels
95
+ var label = document.createElement('span');
96
+ label.style.cssText = 'font-weight: 600; letter-spacing: 0.01em;';
97
+ label.textContent = 'Gemini CLI is controlling this browser';
98
+
99
+ var sep = document.createElement('span');
100
+ sep.style.cssText = 'width: 1px; height: 14px; background: rgba(255,255,255,0.2); flex-shrink: 0;';
101
+
102
+ var sub = document.createElement('span');
103
+ sub.style.cssText = 'color: rgba(255,255,255,0.55); font-size: 12px;';
104
+ sub.textContent = 'Input disabled during automation';
105
+
106
+ pill.appendChild(dot);
107
+ pill.appendChild(label);
108
+ pill.appendChild(sep);
109
+ pill.appendChild(sub);
110
+
111
+ // Inject @keyframes for the pulse animation
112
+ var styleEl = document.createElement('style');
113
+ styleEl.id = '__gemini_input_blocker_style';
114
+ styleEl.textContent = '@keyframes __gemini_pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.85); } }';
115
+ document.head.appendChild(styleEl);
116
+
117
+ blocker.appendChild(pill);
118
+ var target = document.body || document.documentElement;
119
+ if (target) {
120
+ target.appendChild(blocker);
121
+ // Trigger entrance animation
122
+ requestAnimationFrame(function() {
123
+ pill.style.opacity = '1';
124
+ pill.style.transform = 'translateX(-50%) translateY(0)';
125
+ });
126
+ }
127
+ }`;
128
+ /**
129
+ * JavaScript function to remove the input blocker overlay entirely.
130
+ * Used only during final cleanup.
131
+ */
132
+ const REMOVE_BLOCKER_FUNCTION = `() => {
133
+ var blocker = document.getElementById('__gemini_input_blocker');
134
+ if (blocker) {
135
+ blocker.remove();
136
+ }
137
+ var style = document.getElementById('__gemini_input_blocker_style');
138
+ if (style) {
139
+ style.remove();
140
+ }
141
+ }`;
142
+ /**
143
+ * JavaScript to temporarily suspend the input blocker by setting
144
+ * pointer-events to 'none'. This makes the overlay invisible to
145
+ * hit-testing so chrome-devtools-mcp's interactability checks pass
146
+ * and CDP clicks fall through to page elements.
147
+ *
148
+ * The overlay DOM element stays in place — no visual change, no flickering.
149
+ */
150
+ const SUSPEND_BLOCKER_FUNCTION = `() => {
151
+ var blocker = document.getElementById('__gemini_input_blocker');
152
+ if (blocker) {
153
+ blocker.style.pointerEvents = 'none';
154
+ }
155
+ }`;
156
+ /**
157
+ * JavaScript to resume the input blocker by restoring pointer-events
158
+ * to 'auto'. User clicks are blocked again.
159
+ */
160
+ const RESUME_BLOCKER_FUNCTION = `() => {
161
+ var blocker = document.getElementById('__gemini_input_blocker');
162
+ if (blocker) {
163
+ blocker.style.pointerEvents = 'auto';
164
+ }
165
+ }`;
166
+ /**
167
+ * Injects the input blocker overlay into the current page.
168
+ *
169
+ * @param browserManager The browser manager to use for script execution
170
+ * @returns Promise that resolves when the blocker is injected
171
+ */
172
+ export async function injectInputBlocker(browserManager) {
173
+ try {
174
+ await browserManager.callTool('evaluate_script', {
175
+ function: INPUT_BLOCKER_FUNCTION,
176
+ });
177
+ debugLogger.log('Input blocker injected successfully');
178
+ }
179
+ catch (error) {
180
+ // Log but don't throw - input blocker is a UX enhancement, not critical functionality
181
+ debugLogger.warn('Failed to inject input blocker: ' +
182
+ (error instanceof Error ? error.message : String(error)));
183
+ }
184
+ }
185
+ /**
186
+ * Removes the input blocker overlay from the current page entirely.
187
+ * Used only during final cleanup.
188
+ *
189
+ * @param browserManager The browser manager to use for script execution
190
+ * @returns Promise that resolves when the blocker is removed
191
+ */
192
+ export async function removeInputBlocker(browserManager) {
193
+ try {
194
+ await browserManager.callTool('evaluate_script', {
195
+ function: REMOVE_BLOCKER_FUNCTION,
196
+ });
197
+ debugLogger.log('Input blocker removed successfully');
198
+ }
199
+ catch (error) {
200
+ // Log but don't throw - removal failure is not critical
201
+ debugLogger.warn('Failed to remove input blocker: ' +
202
+ (error instanceof Error ? error.message : String(error)));
203
+ }
204
+ }
205
+ /**
206
+ * Temporarily suspends the input blocker so CDP tool calls can
207
+ * interact with page elements. The overlay stays in the DOM
208
+ * (no visual change) — only pointer-events is toggled.
209
+ */
210
+ export async function suspendInputBlocker(browserManager) {
211
+ try {
212
+ await browserManager.callTool('evaluate_script', {
213
+ function: SUSPEND_BLOCKER_FUNCTION,
214
+ });
215
+ }
216
+ catch {
217
+ // Non-critical — tool call will still attempt to proceed
218
+ }
219
+ }
220
+ /**
221
+ * Resumes the input blocker after a tool call completes.
222
+ * Restores pointer-events so user clicks are blocked again.
223
+ */
224
+ export async function resumeInputBlocker(browserManager) {
225
+ try {
226
+ await browserManager.callTool('evaluate_script', {
227
+ function: RESUME_BLOCKER_FUNCTION,
228
+ });
229
+ }
230
+ catch {
231
+ // Non-critical
232
+ }
233
+ }
234
+ //# sourceMappingURL=inputBlocker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputBlocker.js","sourceRoot":"","sources":["../../../../src/agents/browser/inputBlocker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiH7B,CAAC;AAEH;;;GAGG;AACH,MAAM,uBAAuB,GAAG;;;;;;;;;EAS9B,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG;;;;;EAK/B,CAAC;AAEH;;;GAGG;AACH,MAAM,uBAAuB,GAAG;;;;;EAK9B,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAC/C,QAAQ,EAAE,sBAAsB;SACjC,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,sFAAsF;QACtF,WAAW,CAAC,IAAI,CACd,kCAAkC;YAChC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAC/C,QAAQ,EAAE,uBAAuB;SAClC,CAAC,CAAC;QACH,WAAW,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wDAAwD;QACxD,WAAW,CAAC,IAAI,CACd,kCAAkC;YAChC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,cAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAC/C,QAAQ,EAAE,wBAAwB;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,yDAAyD;IAC3D,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,cAA8B;IAE9B,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,QAAQ,CAAC,iBAAiB,EAAE;YAC/C,QAAQ,EAAE,uBAAuB;SAClC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
7
+ import { injectInputBlocker, removeInputBlocker } from './inputBlocker.js';
8
+ describe('inputBlocker', () => {
9
+ let mockBrowserManager;
10
+ beforeEach(() => {
11
+ mockBrowserManager = {
12
+ callTool: vi.fn().mockResolvedValue({
13
+ content: [{ type: 'text', text: 'Script ran on page and returned:' }],
14
+ }),
15
+ };
16
+ });
17
+ describe('injectInputBlocker', () => {
18
+ it('should call evaluate_script with correct function parameter', async () => {
19
+ await injectInputBlocker(mockBrowserManager);
20
+ expect(mockBrowserManager.callTool).toHaveBeenCalledWith('evaluate_script', {
21
+ function: expect.stringContaining('__gemini_input_blocker'),
22
+ });
23
+ });
24
+ it('should pass a function declaration, not an IIFE', async () => {
25
+ await injectInputBlocker(mockBrowserManager);
26
+ const call = vi.mocked(mockBrowserManager.callTool).mock.calls[0];
27
+ const args = call[1];
28
+ // Must start with "() =>" — chrome-devtools-mcp requires a function declaration
29
+ expect(args.function.trimStart()).toMatch(/^\(\)\s*=>/);
30
+ // Must NOT contain an IIFE invocation at the end
31
+ expect(args.function.trimEnd()).not.toMatch(/\}\)\(\)\s*;?\s*$/);
32
+ });
33
+ it('should use "function" parameter name, not "code"', async () => {
34
+ await injectInputBlocker(mockBrowserManager);
35
+ const call = vi.mocked(mockBrowserManager.callTool).mock.calls[0];
36
+ const args = call[1];
37
+ expect(args).toHaveProperty('function');
38
+ expect(args).not.toHaveProperty('code');
39
+ expect(args).not.toHaveProperty('expression');
40
+ });
41
+ it('should include the informational banner text', async () => {
42
+ await injectInputBlocker(mockBrowserManager);
43
+ const call = vi.mocked(mockBrowserManager.callTool).mock.calls[0];
44
+ const args = call[1];
45
+ expect(args.function).toContain('Gemini CLI is controlling this browser');
46
+ });
47
+ it('should set aria-hidden to prevent accessibility tree pollution', async () => {
48
+ await injectInputBlocker(mockBrowserManager);
49
+ const call = vi.mocked(mockBrowserManager.callTool).mock.calls[0];
50
+ const args = call[1];
51
+ expect(args.function).toContain('aria-hidden');
52
+ });
53
+ it('should not throw if script execution fails', async () => {
54
+ mockBrowserManager.callTool = vi
55
+ .fn()
56
+ .mockRejectedValue(new Error('Script failed'));
57
+ await expect(injectInputBlocker(mockBrowserManager)).resolves.toBeUndefined();
58
+ });
59
+ });
60
+ describe('removeInputBlocker', () => {
61
+ it('should call evaluate_script with function to remove blocker', async () => {
62
+ await removeInputBlocker(mockBrowserManager);
63
+ expect(mockBrowserManager.callTool).toHaveBeenCalledWith('evaluate_script', {
64
+ function: expect.stringContaining('__gemini_input_blocker'),
65
+ });
66
+ });
67
+ it('should use "function" parameter name for removal too', async () => {
68
+ await removeInputBlocker(mockBrowserManager);
69
+ const call = vi.mocked(mockBrowserManager.callTool).mock.calls[0];
70
+ const args = call[1];
71
+ expect(args).toHaveProperty('function');
72
+ expect(args).not.toHaveProperty('code');
73
+ });
74
+ it('should not throw if removal fails', async () => {
75
+ mockBrowserManager.callTool = vi
76
+ .fn()
77
+ .mockRejectedValue(new Error('Removal failed'));
78
+ await expect(removeInputBlocker(mockBrowserManager)).resolves.toBeUndefined();
79
+ });
80
+ });
81
+ });
82
+ //# sourceMappingURL=inputBlocker.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputBlocker.test.js","sourceRoot":"","sources":["../../../../src/agents/browser/inputBlocker.test.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,8 @@ import type { BrowserManager } from './browserManager.js';
11
11
  */
12
12
  declare class McpDeclarativeTool extends DeclarativeTool<Record<string, unknown>, ToolResult> {
13
13
  protected readonly browserManager: BrowserManager;
14
- constructor(browserManager: BrowserManager, name: string, description: string, parameterSchema: unknown, messageBus: MessageBus);
14
+ private readonly shouldDisableInput;
15
+ constructor(browserManager: BrowserManager, name: string, description: string, parameterSchema: unknown, messageBus: MessageBus, shouldDisableInput: boolean);
15
16
  build(params: Record<string, unknown>): ToolInvocation<Record<string, unknown>, ToolResult>;
16
17
  }
17
18
  /**
@@ -35,7 +36,7 @@ declare class TypeTextDeclarativeTool extends DeclarativeTool<Record<string, unk
35
36
  * @param messageBus Message bus for tool invocations
36
37
  * @returns Array of DeclarativeTools that dispatch to the isolated MCP client
37
38
  */
38
- export declare function createMcpDeclarativeTools(browserManager: BrowserManager, messageBus: MessageBus): Promise<Array<McpDeclarativeTool | TypeTextDeclarativeTool>>;
39
+ export declare function createMcpDeclarativeTools(browserManager: BrowserManager, messageBus: MessageBus, shouldDisableInput?: boolean): Promise<Array<McpDeclarativeTool | TypeTextDeclarativeTool>>;
39
40
  /**
40
41
  * Post-processes tool results to add contextual hints for common error patterns.
41
42
  * This helps the agent recover from overlay blocking, element not found, etc.
@@ -5,16 +5,34 @@
5
5
  */
6
6
  import { DeclarativeTool, BaseToolInvocation, Kind, } from '../../tools/tools.js';
7
7
  import { debugLogger } from '../../utils/debugLogger.js';
8
+ import { suspendInputBlocker, resumeInputBlocker } from './inputBlocker.js';
9
+ /**
10
+ * Tools that interact with page elements and require the input blocker
11
+ * overlay to be temporarily SUSPENDED (pointer-events: none) so
12
+ * chrome-devtools-mcp's interactability checks pass. The overlay
13
+ * stays in the DOM — only the CSS property toggles, zero flickering.
14
+ */
15
+ const INTERACTIVE_TOOLS = new Set([
16
+ 'click',
17
+ 'click_at',
18
+ 'fill',
19
+ 'fill_form',
20
+ 'hover',
21
+ 'drag',
22
+ 'upload_file',
23
+ ]);
8
24
  /**
9
25
  * Tool invocation that dispatches to BrowserManager's isolated MCP client.
10
26
  */
11
27
  class McpToolInvocation extends BaseToolInvocation {
12
28
  browserManager;
13
29
  toolName;
14
- constructor(browserManager, toolName, params, messageBus) {
30
+ shouldDisableInput;
31
+ constructor(browserManager, toolName, params, messageBus, shouldDisableInput) {
15
32
  super(params, messageBus, toolName, toolName);
16
33
  this.browserManager = browserManager;
17
34
  this.toolName = toolName;
35
+ this.shouldDisableInput = shouldDisableInput;
18
36
  }
19
37
  getDescription() {
20
38
  return `Calling MCP tool: ${this.toolName}`;
@@ -39,10 +57,22 @@ class McpToolInvocation extends BaseToolInvocation {
39
57
  mcpName: 'browser-agent',
40
58
  };
41
59
  }
60
+ /**
61
+ * Whether this specific tool needs the input blocker suspended
62
+ * (pointer-events toggled to 'none') before execution.
63
+ */
64
+ get needsBlockerSuspend() {
65
+ return this.shouldDisableInput && INTERACTIVE_TOOLS.has(this.toolName);
66
+ }
42
67
  async execute(signal) {
43
68
  try {
44
- const callToolPromise = this.browserManager.callTool(this.toolName, this.params, signal);
45
- const result = await callToolPromise;
69
+ // Suspend the input blocker for interactive tools so
70
+ // chrome-devtools-mcp's interactability checks pass.
71
+ // Only toggles pointer-events CSS — no DOM change, no flicker.
72
+ if (this.needsBlockerSuspend) {
73
+ await suspendInputBlocker(this.browserManager);
74
+ }
75
+ const result = await this.browserManager.callTool(this.toolName, this.params, signal);
46
76
  // Extract text content from MCP response
47
77
  let textContent = '';
48
78
  if (result.content && Array.isArray(result.content)) {
@@ -53,6 +83,10 @@ class McpToolInvocation extends BaseToolInvocation {
53
83
  }
54
84
  // Post-process to add contextual hints for common error patterns
55
85
  const processedContent = postProcessToolResult(this.toolName, textContent);
86
+ // Resume input blocker after interactive tool completes.
87
+ if (this.needsBlockerSuspend) {
88
+ await resumeInputBlocker(this.browserManager);
89
+ }
56
90
  if (result.isError) {
57
91
  return {
58
92
  llmContent: `Error: ${processedContent}`,
@@ -72,6 +106,10 @@ class McpToolInvocation extends BaseToolInvocation {
72
106
  if (errorMsg.includes('Could not connect to Chrome')) {
73
107
  throw error;
74
108
  }
109
+ // Resume on error path too so the blocker is always restored
110
+ if (this.needsBlockerSuspend) {
111
+ await resumeInputBlocker(this.browserManager).catch(() => { });
112
+ }
75
113
  debugLogger.error(`MCP tool ${this.toolName} failed: ${errorMsg}`);
76
114
  return {
77
115
  llmContent: `Error: ${errorMsg}`,
@@ -188,14 +226,16 @@ class TypeTextInvocation extends BaseToolInvocation {
188
226
  */
189
227
  class McpDeclarativeTool extends DeclarativeTool {
190
228
  browserManager;
191
- constructor(browserManager, name, description, parameterSchema, messageBus) {
229
+ shouldDisableInput;
230
+ constructor(browserManager, name, description, parameterSchema, messageBus, shouldDisableInput) {
192
231
  super(name, name, description, Kind.Other, parameterSchema, messageBus,
193
232
  /* isOutputMarkdown */ true,
194
233
  /* canUpdateOutput */ false);
195
234
  this.browserManager = browserManager;
235
+ this.shouldDisableInput = shouldDisableInput;
196
236
  }
197
237
  build(params) {
198
- return new McpToolInvocation(this.browserManager, this.name, params, this.messageBus);
238
+ return new McpToolInvocation(this.browserManager, this.name, params, this.messageBus, this.shouldDisableInput);
199
239
  }
200
240
  }
201
241
  /**
@@ -249,15 +289,16 @@ class TypeTextDeclarativeTool extends DeclarativeTool {
249
289
  * @param messageBus Message bus for tool invocations
250
290
  * @returns Array of DeclarativeTools that dispatch to the isolated MCP client
251
291
  */
252
- export async function createMcpDeclarativeTools(browserManager, messageBus) {
292
+ export async function createMcpDeclarativeTools(browserManager, messageBus, shouldDisableInput = false) {
253
293
  // Get dynamically discovered tools from the MCP server
254
294
  const mcpTools = await browserManager.getDiscoveredTools();
255
- debugLogger.log(`Creating ${mcpTools.length} declarative tools for browser agent`);
295
+ debugLogger.log(`Creating ${mcpTools.length} declarative tools for browser agent` +
296
+ (shouldDisableInput ? ' (input blocker enabled)' : ''));
256
297
  const tools = mcpTools.map((mcpTool) => {
257
298
  const schema = convertMcpToolToFunctionDeclaration(mcpTool);
258
299
  // Augment description with uid-context hints
259
300
  const augmentedDescription = augmentToolDescription(mcpTool.name, mcpTool.description ?? '');
260
- return new McpDeclarativeTool(browserManager, mcpTool.name, augmentedDescription, schema.parametersJsonSchema, messageBus);
301
+ return new McpDeclarativeTool(browserManager, mcpTool.name, augmentedDescription, schema.parametersJsonSchema, messageBus, shouldDisableInput);
261
302
  });
262
303
  // Add custom composite tools
263
304
  tools.push(new TypeTextDeclarativeTool(browserManager, messageBus));
@@ -1 +1 @@
1
- {"version":3,"file":"mcpToolWrapper.js","sourceRoot":"","sources":["../../../../src/agents/browser/mcpToolWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpToolWrapper.js","sourceRoot":"","sources":["../../../../src/agents/browser/mcpToolWrapper.ts"],"names":[],"mappings":"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"}
@@ -122,5 +122,56 @@ describe('mcpToolWrapper', () => {
122
122
  expect(result.error?.message).toBe('Connection lost');
123
123
  });
124
124
  });
125
+ describe('Input blocker suspend/resume', () => {
126
+ it('should suspend and resume input blocker around click (interactive tool)', async () => {
127
+ const tools = await createMcpDeclarativeTools(mockBrowserManager, mockMessageBus, true);
128
+ const clickTool = tools.find((t) => t.name === 'click');
129
+ const invocation = clickTool.build({ uid: 'elem-42' });
130
+ await invocation.execute(new AbortController().signal);
131
+ // callTool: suspend blocker + click + resume blocker
132
+ expect(mockBrowserManager.callTool).toHaveBeenCalledTimes(3);
133
+ // First call: suspend blocker (pointer-events: none)
134
+ expect(mockBrowserManager.callTool).toHaveBeenNthCalledWith(1, 'evaluate_script', expect.objectContaining({
135
+ function: expect.stringContaining('__gemini_input_blocker'),
136
+ }));
137
+ // Second call: click
138
+ expect(mockBrowserManager.callTool).toHaveBeenNthCalledWith(2, 'click', { uid: 'elem-42' }, expect.any(AbortSignal));
139
+ // Third call: resume blocker (pointer-events: auto)
140
+ expect(mockBrowserManager.callTool).toHaveBeenNthCalledWith(3, 'evaluate_script', expect.objectContaining({
141
+ function: expect.stringContaining('__gemini_input_blocker'),
142
+ }));
143
+ });
144
+ it('should NOT suspend/resume for take_snapshot (read-only tool)', async () => {
145
+ const tools = await createMcpDeclarativeTools(mockBrowserManager, mockMessageBus, true);
146
+ const snapshotTool = tools.find((t) => t.name === 'take_snapshot');
147
+ const invocation = snapshotTool.build({});
148
+ await invocation.execute(new AbortController().signal);
149
+ // callTool should only be called once for take_snapshot — no suspend/resume
150
+ expect(mockBrowserManager.callTool).toHaveBeenCalledTimes(1);
151
+ expect(mockBrowserManager.callTool).toHaveBeenCalledWith('take_snapshot', {}, expect.any(AbortSignal));
152
+ });
153
+ it('should NOT suspend/resume when shouldDisableInput is false', async () => {
154
+ const tools = await createMcpDeclarativeTools(mockBrowserManager, mockMessageBus, false);
155
+ const clickTool = tools.find((t) => t.name === 'click');
156
+ const invocation = clickTool.build({ uid: 'elem-42' });
157
+ await invocation.execute(new AbortController().signal);
158
+ // callTool should only be called once for click — no suspend/resume
159
+ expect(mockBrowserManager.callTool).toHaveBeenCalledTimes(1);
160
+ });
161
+ it('should resume blocker even when interactive tool fails', async () => {
162
+ vi.mocked(mockBrowserManager.callTool)
163
+ .mockResolvedValueOnce({ content: [] }) // suspend blocker succeeds
164
+ .mockRejectedValueOnce(new Error('Click failed')) // tool fails
165
+ .mockResolvedValueOnce({ content: [] }); // resume succeeds
166
+ const tools = await createMcpDeclarativeTools(mockBrowserManager, mockMessageBus, true);
167
+ const clickTool = tools.find((t) => t.name === 'click');
168
+ const invocation = clickTool.build({ uid: 'bad-elem' });
169
+ const result = await invocation.execute(new AbortController().signal);
170
+ // Should return error, not throw
171
+ expect(result.error).toBeDefined();
172
+ // Should still try to resume
173
+ expect(mockBrowserManager.callTool).toHaveBeenCalledTimes(3);
174
+ });
175
+ });
125
176
  });
126
177
  //# sourceMappingURL=mcpToolWrapper.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcpToolWrapper.test.js","sourceRoot":"","sources":["../../../../src/agents/browser/mcpToolWrapper.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpToolWrapper.test.js","sourceRoot":"","sources":["../../../../src/agents/browser/mcpToolWrapper.test.ts"],"names":[],"mappings":"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"}