@google/gemini-cli-core 0.30.0-preview.6 → 0.31.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 (687) hide show
  1. package/README.md +1 -1
  2. package/dist/docs/CONTRIBUTING.md +6 -7
  3. package/dist/docs/changelogs/index.md +22 -2
  4. package/dist/docs/changelogs/latest.md +359 -293
  5. package/dist/docs/changelogs/preview.md +300 -349
  6. package/dist/docs/cli/cli-reference.md +23 -23
  7. package/dist/docs/cli/enterprise.md +7 -7
  8. package/dist/docs/cli/gemini-md.md +1 -1
  9. package/dist/docs/cli/model.md +1 -1
  10. package/dist/docs/cli/plan-mode.md +180 -80
  11. package/dist/docs/cli/sandbox.md +3 -3
  12. package/dist/docs/cli/settings.md +59 -51
  13. package/dist/docs/cli/telemetry.md +4 -1
  14. package/dist/docs/cli/themes.md +3 -3
  15. package/dist/docs/cli/trusted-folders.md +31 -0
  16. package/dist/docs/cli/tutorials/memory-management.md +2 -2
  17. package/dist/docs/cli/tutorials/session-management.md +1 -1
  18. package/dist/docs/core/index.md +7 -7
  19. package/dist/docs/core/subagents.md +155 -39
  20. package/dist/docs/extensions/reference.md +38 -14
  21. package/dist/docs/get-started/authentication.md +4 -4
  22. package/dist/docs/get-started/examples.md +2 -2
  23. package/dist/docs/get-started/gemini-3.md +17 -3
  24. package/dist/docs/get-started/index.md +11 -2
  25. package/dist/docs/hooks/best-practices.md +1 -1
  26. package/dist/docs/hooks/reference.md +8 -0
  27. package/dist/docs/ide-integration/index.md +14 -0
  28. package/dist/docs/index.md +62 -67
  29. package/dist/docs/redirects.json +19 -0
  30. package/dist/docs/{cli → reference}/commands.md +67 -11
  31. package/dist/docs/{get-started → reference}/configuration.md +93 -24
  32. package/dist/docs/{cli → reference}/keyboard-shortcuts.md +3 -3
  33. package/dist/docs/{core → reference}/policy-engine.md +63 -27
  34. package/dist/docs/{faq.md → resources/faq.md} +1 -1
  35. package/dist/docs/{quota-and-pricing.md → resources/quota-and-pricing.md} +12 -5
  36. package/dist/docs/{tos-privacy.md → resources/tos-privacy.md} +2 -2
  37. package/dist/docs/{troubleshooting.md → resources/troubleshooting.md} +1 -1
  38. package/dist/docs/sidebar.json +203 -166
  39. package/dist/docs/tools/file-system.md +7 -4
  40. package/dist/docs/tools/index.md +5 -2
  41. package/dist/docs/tools/internal-docs.md +5 -5
  42. package/dist/docs/tools/mcp-server.md +62 -2
  43. package/dist/docs/tools/planning.md +2 -0
  44. package/dist/docs/tools/shell.md +3 -3
  45. package/dist/src/agents/a2a-client-manager.test.js +1 -2
  46. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  47. package/dist/src/agents/a2aUtils.d.ts +1 -5
  48. package/dist/src/agents/a2aUtils.js +1 -1
  49. package/dist/src/agents/a2aUtils.js.map +1 -1
  50. package/dist/src/agents/acknowledgedAgents.js +1 -0
  51. package/dist/src/agents/acknowledgedAgents.js.map +1 -1
  52. package/dist/src/agents/agent-scheduler.js +1 -0
  53. package/dist/src/agents/agent-scheduler.js.map +1 -1
  54. package/dist/src/agents/agentLoader.d.ts +0 -1
  55. package/dist/src/agents/agentLoader.js +22 -21
  56. package/dist/src/agents/agentLoader.js.map +1 -1
  57. package/dist/src/agents/agentLoader.test.js +1 -5
  58. package/dist/src/agents/agentLoader.test.js.map +1 -1
  59. package/dist/src/agents/auth-provider/api-key-provider.d.ts +30 -0
  60. package/dist/src/agents/auth-provider/api-key-provider.js +66 -0
  61. package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -0
  62. package/dist/src/agents/auth-provider/api-key-provider.test.d.ts +6 -0
  63. package/dist/src/agents/auth-provider/api-key-provider.test.js +130 -0
  64. package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -0
  65. package/dist/src/agents/auth-provider/base-provider.d.ts +2 -2
  66. package/dist/src/agents/auth-provider/base-provider.js.map +1 -1
  67. package/dist/src/agents/auth-provider/factory.js +6 -3
  68. package/dist/src/agents/auth-provider/factory.js.map +1 -1
  69. package/dist/src/agents/auth-provider/factory.test.js +12 -0
  70. package/dist/src/agents/auth-provider/factory.test.js.map +1 -1
  71. package/dist/src/agents/auth-provider/types.d.ts +2 -4
  72. package/dist/src/agents/browser/analyzeScreenshot.d.ts +35 -0
  73. package/dist/src/agents/browser/analyzeScreenshot.js +183 -0
  74. package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -0
  75. package/dist/src/agents/browser/analyzeScreenshot.test.d.ts +6 -0
  76. package/dist/src/agents/browser/analyzeScreenshot.test.js +161 -0
  77. package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -0
  78. package/dist/src/agents/browser/browserAgentDefinition.d.ts +50 -0
  79. package/dist/src/agents/browser/browserAgentDefinition.js +141 -0
  80. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -0
  81. package/dist/src/agents/browser/browserAgentFactory.d.ts +42 -0
  82. package/dist/src/agents/browser/browserAgentFactory.js +107 -0
  83. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -0
  84. package/dist/src/agents/browser/browserAgentFactory.test.d.ts +6 -0
  85. package/dist/src/agents/browser/browserAgentFactory.test.js +186 -0
  86. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -0
  87. package/dist/src/agents/browser/browserAgentInvocation.d.ts +44 -0
  88. package/dist/src/agents/browser/browserAgentInvocation.js +109 -0
  89. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -0
  90. package/dist/src/agents/browser/browserAgentInvocation.test.d.ts +6 -0
  91. package/dist/src/agents/browser/browserAgentInvocation.test.js +87 -0
  92. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -0
  93. package/dist/src/agents/browser/browserManager.d.ts +110 -0
  94. package/dist/src/agents/browser/browserManager.js +323 -0
  95. package/dist/src/agents/browser/browserManager.js.map +1 -0
  96. package/dist/src/agents/browser/browserManager.test.d.ts +6 -0
  97. package/dist/src/agents/browser/browserManager.test.js +314 -0
  98. package/dist/src/agents/browser/browserManager.test.js.map +1 -0
  99. package/dist/src/agents/browser/mcpToolWrapper.d.ts +45 -0
  100. package/dist/src/agents/browser/mcpToolWrapper.js +356 -0
  101. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -0
  102. package/dist/src/agents/browser/mcpToolWrapper.test.d.ts +6 -0
  103. package/dist/src/agents/browser/mcpToolWrapper.test.js +126 -0
  104. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -0
  105. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.d.ts +6 -0
  106. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +57 -0
  107. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js.map +1 -0
  108. package/dist/src/agents/browser/modelAvailability.d.ts +23 -0
  109. package/dist/src/agents/browser/modelAvailability.js +23 -0
  110. package/dist/src/agents/browser/modelAvailability.js.map +1 -0
  111. package/dist/src/agents/local-executor.js +73 -31
  112. package/dist/src/agents/local-executor.js.map +1 -1
  113. package/dist/src/agents/local-executor.test.js +157 -4
  114. package/dist/src/agents/local-executor.test.js.map +1 -1
  115. package/dist/src/agents/local-invocation.test.js.map +1 -1
  116. package/dist/src/agents/registry.js +8 -0
  117. package/dist/src/agents/registry.js.map +1 -1
  118. package/dist/src/agents/registry.test.js.map +1 -1
  119. package/dist/src/agents/remote-invocation.d.ts +2 -1
  120. package/dist/src/agents/remote-invocation.js +3 -3
  121. package/dist/src/agents/remote-invocation.js.map +1 -1
  122. package/dist/src/agents/subagent-tool-wrapper.js +6 -0
  123. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  124. package/dist/src/agents/subagent-tool.d.ts +3 -0
  125. package/dist/src/agents/subagent-tool.js +62 -3
  126. package/dist/src/agents/subagent-tool.js.map +1 -1
  127. package/dist/src/agents/subagent-tool.test.js +143 -0
  128. package/dist/src/agents/subagent-tool.test.js.map +1 -1
  129. package/dist/src/availability/fallbackIntegration.test.js +4 -1
  130. package/dist/src/availability/fallbackIntegration.test.js.map +1 -1
  131. package/dist/src/availability/policyHelpers.js +3 -1
  132. package/dist/src/availability/policyHelpers.js.map +1 -1
  133. package/dist/src/availability/policyHelpers.test.js +51 -5
  134. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  135. package/dist/src/code_assist/admin/admin_controls.js +1 -0
  136. package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
  137. package/dist/src/code_assist/converter.js +8 -2
  138. package/dist/src/code_assist/converter.js.map +1 -1
  139. package/dist/src/code_assist/converter.test.js.map +1 -1
  140. package/dist/src/code_assist/experiments/experiments.js +1 -1
  141. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  142. package/dist/src/code_assist/oauth-credential-storage.js +1 -1
  143. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  144. package/dist/src/code_assist/oauth-credential-storage.test.js +5 -0
  145. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
  146. package/dist/src/code_assist/oauth2.js +11 -8
  147. package/dist/src/code_assist/oauth2.js.map +1 -1
  148. package/dist/src/code_assist/oauth2.test.js +55 -0
  149. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  150. package/dist/src/code_assist/server.js +22 -13
  151. package/dist/src/code_assist/server.js.map +1 -1
  152. package/dist/src/code_assist/server.test.js +26 -0
  153. package/dist/src/code_assist/server.test.js.map +1 -1
  154. package/dist/src/code_assist/telemetry.js +16 -3
  155. package/dist/src/code_assist/telemetry.js.map +1 -1
  156. package/dist/src/code_assist/telemetry.test.js +10 -0
  157. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  158. package/dist/src/code_assist/types.d.ts +13 -12
  159. package/dist/src/code_assist/types.js.map +1 -1
  160. package/dist/src/config/config.d.ts +83 -8
  161. package/dist/src/config/config.js +127 -23
  162. package/dist/src/config/config.js.map +1 -1
  163. package/dist/src/config/config.test.js +285 -10
  164. package/dist/src/config/config.test.js.map +1 -1
  165. package/dist/src/config/projectRegistry.js +1 -0
  166. package/dist/src/config/projectRegistry.js.map +1 -1
  167. package/dist/src/config/storage.d.ts +17 -1
  168. package/dist/src/config/storage.js +82 -2
  169. package/dist/src/config/storage.js.map +1 -1
  170. package/dist/src/config/storage.test.js +149 -2
  171. package/dist/src/config/storage.test.js.map +1 -1
  172. package/dist/src/config/userHintService.d.ts +46 -0
  173. package/dist/src/config/userHintService.js +81 -0
  174. package/dist/src/config/userHintService.js.map +1 -0
  175. package/dist/src/config/userHintService.test.d.ts +6 -0
  176. package/dist/src/config/userHintService.test.js +62 -0
  177. package/dist/src/config/userHintService.test.js.map +1 -0
  178. package/dist/src/confirmation-bus/message-bus.js +15 -3
  179. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  180. package/dist/src/confirmation-bus/message-bus.test.js +15 -0
  181. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
  182. package/dist/src/confirmation-bus/types.d.ts +7 -0
  183. package/dist/src/confirmation-bus/types.js.map +1 -1
  184. package/dist/src/core/baseLlmClient.d.ts +2 -3
  185. package/dist/src/core/baseLlmClient.js +7 -5
  186. package/dist/src/core/baseLlmClient.js.map +1 -1
  187. package/dist/src/core/baseLlmClient.test.js +45 -20
  188. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  189. package/dist/src/core/client.js +18 -7
  190. package/dist/src/core/client.js.map +1 -1
  191. package/dist/src/core/coreToolHookTriggers.d.ts +2 -3
  192. package/dist/src/core/coreToolHookTriggers.js +8 -3
  193. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  194. package/dist/src/core/coreToolScheduler.js +2 -1
  195. package/dist/src/core/coreToolScheduler.js.map +1 -1
  196. package/dist/src/core/coreToolScheduler.test.js +10 -3
  197. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  198. package/dist/src/core/fakeContentGenerator.js +2 -0
  199. package/dist/src/core/fakeContentGenerator.js.map +1 -1
  200. package/dist/src/core/geminiChat.d.ts +1 -1
  201. package/dist/src/core/geminiChat.js +5 -5
  202. package/dist/src/core/geminiChat.js.map +1 -1
  203. package/dist/src/core/geminiChat.test.js +1 -0
  204. package/dist/src/core/geminiChat.test.js.map +1 -1
  205. package/dist/src/core/geminiChat_network_retry.test.js +1 -0
  206. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  207. package/dist/src/core/logger.js +2 -0
  208. package/dist/src/core/logger.js.map +1 -1
  209. package/dist/src/core/loggingContentGenerator.d.ts +14 -2
  210. package/dist/src/core/loggingContentGenerator.js +98 -4
  211. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  212. package/dist/src/core/loggingContentGenerator.test.js +275 -1
  213. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  214. package/dist/src/core/prompts.test.js +55 -27
  215. package/dist/src/core/prompts.test.js.map +1 -1
  216. package/dist/src/core/recordingContentGenerator.test.js +5 -0
  217. package/dist/src/core/recordingContentGenerator.test.js.map +1 -1
  218. package/dist/src/core/turn.d.ts +4 -2
  219. package/dist/src/core/turn.js +2 -0
  220. package/dist/src/core/turn.js.map +1 -1
  221. package/dist/src/core/turn.test.js +4 -1
  222. package/dist/src/core/turn.test.js.map +1 -1
  223. package/dist/src/generated/git-commit.d.ts +2 -2
  224. package/dist/src/generated/git-commit.js +2 -2
  225. package/dist/src/hooks/hookAggregator.d.ts +1 -2
  226. package/dist/src/hooks/hookAggregator.js +1 -2
  227. package/dist/src/hooks/hookAggregator.js.map +1 -1
  228. package/dist/src/hooks/hookEventHandler.d.ts +2 -2
  229. package/dist/src/hooks/hookEventHandler.js +13 -4
  230. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  231. package/dist/src/hooks/hookEventHandler.test.js +1 -2
  232. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  233. package/dist/src/hooks/hookPlanner.d.ts +1 -2
  234. package/dist/src/hooks/hookPlanner.js.map +1 -1
  235. package/dist/src/hooks/hookRegistry.d.ts +8 -0
  236. package/dist/src/hooks/hookRegistry.js +31 -3
  237. package/dist/src/hooks/hookRegistry.js.map +1 -1
  238. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  239. package/dist/src/hooks/hookRunner.d.ts +5 -2
  240. package/dist/src/hooks/hookRunner.js +52 -2
  241. package/dist/src/hooks/hookRunner.js.map +1 -1
  242. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  243. package/dist/src/hooks/hookSystem.d.ts +11 -3
  244. package/dist/src/hooks/hookSystem.js +10 -4
  245. package/dist/src/hooks/hookSystem.js.map +1 -1
  246. package/dist/src/hooks/hookSystem.test.js +1 -0
  247. package/dist/src/hooks/hookSystem.test.js.map +1 -1
  248. package/dist/src/hooks/runtimeHooks.test.d.ts +6 -0
  249. package/dist/src/hooks/runtimeHooks.test.js +100 -0
  250. package/dist/src/hooks/runtimeHooks.test.js.map +1 -0
  251. package/dist/src/hooks/trustedHooks.js +6 -1
  252. package/dist/src/hooks/trustedHooks.js.map +1 -1
  253. package/dist/src/hooks/trustedHooks.test.js +17 -9
  254. package/dist/src/hooks/trustedHooks.test.js.map +1 -1
  255. package/dist/src/hooks/types.d.ts +49 -8
  256. package/dist/src/hooks/types.js +20 -1
  257. package/dist/src/hooks/types.js.map +1 -1
  258. package/dist/src/ide/detect-ide.d.ts +0 -1
  259. package/dist/src/ide/detect-ide.js +1 -1
  260. package/dist/src/ide/detect-ide.js.map +1 -1
  261. package/dist/src/ide/ide-client.js +3 -2
  262. package/dist/src/ide/ide-client.js.map +1 -1
  263. package/dist/src/ide/ide-connection-utils.js +90 -14
  264. package/dist/src/ide/ide-connection-utils.js.map +1 -1
  265. package/dist/src/ide/ide-connection-utils.test.js +78 -0
  266. package/dist/src/ide/ide-connection-utils.test.js.map +1 -1
  267. package/dist/src/ide/ide-installer.test.js +1 -2
  268. package/dist/src/ide/ide-installer.test.js.map +1 -1
  269. package/dist/src/ide/process-utils.d.ts +7 -0
  270. package/dist/src/ide/process-utils.js +20 -0
  271. package/dist/src/ide/process-utils.js.map +1 -1
  272. package/dist/src/ide/process-utils.test.js +30 -0
  273. package/dist/src/ide/process-utils.test.js.map +1 -1
  274. package/dist/src/index.d.ts +6 -1
  275. package/dist/src/index.js +6 -1
  276. package/dist/src/index.js.map +1 -1
  277. package/dist/src/mcp/oauth-provider.d.ts +1 -1
  278. package/dist/src/mcp/oauth-provider.js +8 -7
  279. package/dist/src/mcp/oauth-provider.js.map +1 -1
  280. package/dist/src/mcp/oauth-provider.test.js +34 -2
  281. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  282. package/dist/src/mcp/oauth-utils.js +2 -0
  283. package/dist/src/mcp/oauth-utils.js.map +1 -1
  284. package/dist/src/mcp/oauth-utils.test.js +12 -0
  285. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  286. package/dist/src/mcp/token-storage/file-token-storage.js +4 -1
  287. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  288. package/dist/src/mcp/token-storage/file-token-storage.test.js +40 -2
  289. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -1
  290. package/dist/src/mcp/token-storage/keychain-token-storage.js +2 -0
  291. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  292. package/dist/src/policy/config.d.ts +18 -9
  293. package/dist/src/policy/config.js +75 -54
  294. package/dist/src/policy/config.js.map +1 -1
  295. package/dist/src/policy/config.test.js +26 -26
  296. package/dist/src/policy/integrity.d.ts +45 -0
  297. package/dist/src/policy/integrity.js +121 -0
  298. package/dist/src/policy/integrity.js.map +1 -0
  299. package/dist/src/policy/integrity.test.d.ts +6 -0
  300. package/dist/src/policy/integrity.test.js +132 -0
  301. package/dist/src/policy/integrity.test.js.map +1 -0
  302. package/dist/src/policy/persistence.test.js +29 -19
  303. package/dist/src/policy/persistence.test.js.map +1 -1
  304. package/dist/src/policy/policies/conseca.toml +6 -0
  305. package/dist/src/policy/policies/plan.toml +28 -12
  306. package/dist/src/policy/policies/read-only.toml +11 -10
  307. package/dist/src/policy/policies/write.toml +11 -10
  308. package/dist/src/policy/policies/yolo.toml +11 -10
  309. package/dist/src/policy/policy-engine.d.ts +16 -3
  310. package/dist/src/policy/policy-engine.js +154 -29
  311. package/dist/src/policy/policy-engine.js.map +1 -1
  312. package/dist/src/policy/policy-engine.test.js +480 -9
  313. package/dist/src/policy/policy-engine.test.js.map +1 -1
  314. package/dist/src/policy/policy-updater.test.js +11 -6
  315. package/dist/src/policy/policy-updater.test.js.map +1 -1
  316. package/dist/src/policy/toml-loader.d.ts +13 -2
  317. package/dist/src/policy/toml-loader.js +55 -34
  318. package/dist/src/policy/toml-loader.js.map +1 -1
  319. package/dist/src/policy/toml-loader.test.js +115 -7
  320. package/dist/src/policy/toml-loader.test.js.map +1 -1
  321. package/dist/src/policy/types.d.ts +18 -1
  322. package/dist/src/policy/types.js +1 -0
  323. package/dist/src/policy/types.js.map +1 -1
  324. package/dist/src/policy/workspace-policy.test.d.ts +6 -0
  325. package/dist/src/policy/workspace-policy.test.js +231 -0
  326. package/dist/src/policy/workspace-policy.test.js.map +1 -0
  327. package/dist/src/prompts/promptProvider.js +11 -13
  328. package/dist/src/prompts/promptProvider.js.map +1 -1
  329. package/dist/src/prompts/promptProvider.test.js +64 -3
  330. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  331. package/dist/src/prompts/snippets.js +41 -10
  332. package/dist/src/prompts/snippets.js.map +1 -1
  333. package/dist/src/prompts/snippets.legacy.js +1 -0
  334. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  335. package/dist/src/routing/modelRouterService.js +3 -1
  336. package/dist/src/routing/modelRouterService.js.map +1 -1
  337. package/dist/src/routing/modelRouterService.test.js +12 -6
  338. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  339. package/dist/src/routing/strategies/approvalModeStrategy.d.ts +18 -0
  340. package/dist/src/routing/strategies/approvalModeStrategy.js +58 -0
  341. package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -0
  342. package/dist/src/routing/strategies/approvalModeStrategy.test.d.ts +6 -0
  343. package/dist/src/routing/strategies/approvalModeStrategy.test.js +110 -0
  344. package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -0
  345. package/dist/src/safety/checker-runner.js +1 -0
  346. package/dist/src/safety/checker-runner.js.map +1 -1
  347. package/dist/src/safety/conseca/conseca.d.ts +31 -0
  348. package/dist/src/safety/conseca/conseca.js +105 -0
  349. package/dist/src/safety/conseca/conseca.js.map +1 -0
  350. package/dist/src/safety/conseca/conseca.test.d.ts +6 -0
  351. package/dist/src/safety/conseca/conseca.test.js +226 -0
  352. package/dist/src/safety/conseca/conseca.test.js.map +1 -0
  353. package/dist/src/safety/conseca/integration.test.d.ts +6 -0
  354. package/dist/src/safety/conseca/integration.test.js +19 -0
  355. package/dist/src/safety/conseca/integration.test.js.map +1 -0
  356. package/dist/src/safety/conseca/policy-enforcer.d.ts +13 -0
  357. package/dist/src/safety/conseca/policy-enforcer.js +135 -0
  358. package/dist/src/safety/conseca/policy-enforcer.js.map +1 -0
  359. package/dist/src/safety/conseca/policy-enforcer.test.d.ts +6 -0
  360. package/dist/src/safety/conseca/policy-enforcer.test.js +141 -0
  361. package/dist/src/safety/conseca/policy-enforcer.test.js.map +1 -0
  362. package/dist/src/safety/conseca/policy-generator.d.ts +15 -0
  363. package/dist/src/safety/conseca/policy-generator.js +144 -0
  364. package/dist/src/safety/conseca/policy-generator.js.map +1 -0
  365. package/dist/src/safety/conseca/policy-generator.test.d.ts +6 -0
  366. package/dist/src/safety/conseca/policy-generator.test.js +84 -0
  367. package/dist/src/safety/conseca/policy-generator.test.js.map +1 -0
  368. package/dist/src/safety/conseca/types.d.ts +15 -0
  369. package/dist/src/safety/conseca/types.js +7 -0
  370. package/dist/src/safety/conseca/types.js.map +1 -0
  371. package/dist/src/safety/context-builder.d.ts +3 -3
  372. package/dist/src/safety/context-builder.js +60 -4
  373. package/dist/src/safety/context-builder.js.map +1 -1
  374. package/dist/src/safety/context-builder.test.js +98 -18
  375. package/dist/src/safety/context-builder.test.js.map +1 -1
  376. package/dist/src/safety/protocol.d.ts +4 -0
  377. package/dist/src/safety/registry.d.ts +2 -1
  378. package/dist/src/safety/registry.js +14 -4
  379. package/dist/src/safety/registry.js.map +1 -1
  380. package/dist/src/safety/registry.test.js +5 -2
  381. package/dist/src/safety/registry.test.js.map +1 -1
  382. package/dist/src/scheduler/confirmation.d.ts +0 -13
  383. package/dist/src/scheduler/confirmation.js +1 -1
  384. package/dist/src/scheduler/confirmation.js.map +1 -1
  385. package/dist/src/scheduler/policy.js +6 -2
  386. package/dist/src/scheduler/policy.js.map +1 -1
  387. package/dist/src/scheduler/policy.test.js +4 -3
  388. package/dist/src/scheduler/policy.test.js.map +1 -1
  389. package/dist/src/scheduler/scheduler.d.ts +3 -1
  390. package/dist/src/scheduler/scheduler.js +148 -28
  391. package/dist/src/scheduler/scheduler.js.map +1 -1
  392. package/dist/src/scheduler/scheduler.test.js +341 -242
  393. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  394. package/dist/src/scheduler/scheduler_parallel.test.d.ts +6 -0
  395. package/dist/src/scheduler/scheduler_parallel.test.js +309 -0
  396. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -0
  397. package/dist/src/scheduler/state-manager.d.ts +8 -0
  398. package/dist/src/scheduler/state-manager.js +30 -2
  399. package/dist/src/scheduler/state-manager.js.map +1 -1
  400. package/dist/src/scheduler/state-manager.test.js +61 -0
  401. package/dist/src/scheduler/state-manager.test.js.map +1 -1
  402. package/dist/src/scheduler/tool-executor.js +15 -7
  403. package/dist/src/scheduler/tool-executor.js.map +1 -1
  404. package/dist/src/scheduler/tool-executor.test.js +1 -1
  405. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  406. package/dist/src/scheduler/types.d.ts +23 -0
  407. package/dist/src/services/FolderTrustDiscoveryService.d.ts +32 -0
  408. package/dist/src/services/FolderTrustDiscoveryService.js +167 -0
  409. package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -0
  410. package/dist/src/services/FolderTrustDiscoveryService.test.d.ts +6 -0
  411. package/dist/src/services/FolderTrustDiscoveryService.test.js +118 -0
  412. package/dist/src/services/FolderTrustDiscoveryService.test.js.map +1 -0
  413. package/dist/src/services/chatCompressionService.d.ts +0 -14
  414. package/dist/src/services/chatCompressionService.js +29 -7
  415. package/dist/src/services/chatCompressionService.js.map +1 -1
  416. package/dist/src/services/chatCompressionService.test.js +3 -1
  417. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  418. package/dist/src/services/chatRecordingService.d.ts +7 -1
  419. package/dist/src/services/chatRecordingService.js +12 -1
  420. package/dist/src/services/chatRecordingService.js.map +1 -1
  421. package/dist/src/services/chatRecordingService.test.js +34 -0
  422. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  423. package/dist/src/services/loopDetectionService.js +1 -2
  424. package/dist/src/services/loopDetectionService.js.map +1 -1
  425. package/dist/src/services/sessionSummaryUtils.js +3 -0
  426. package/dist/src/services/sessionSummaryUtils.js.map +1 -1
  427. package/dist/src/services/shellExecutionService.js +6 -0
  428. package/dist/src/services/shellExecutionService.js.map +1 -1
  429. package/dist/src/skills/skillLoader.js +2 -2
  430. package/dist/src/skills/skillLoader.js.map +1 -1
  431. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +3 -1
  432. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +35 -4
  433. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  434. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -1
  435. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +19 -5
  436. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  437. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +14 -1
  438. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +29 -1
  439. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  440. package/dist/src/telemetry/conseca-logger.d.ts +9 -0
  441. package/dist/src/telemetry/conseca-logger.js +91 -0
  442. package/dist/src/telemetry/conseca-logger.js.map +1 -0
  443. package/dist/src/telemetry/conseca-logger.test.d.ts +6 -0
  444. package/dist/src/telemetry/conseca-logger.test.js +89 -0
  445. package/dist/src/telemetry/conseca-logger.test.js.map +1 -0
  446. package/dist/src/telemetry/gcp-exporters.js +1 -2
  447. package/dist/src/telemetry/gcp-exporters.js.map +1 -1
  448. package/dist/src/telemetry/index.d.ts +2 -1
  449. package/dist/src/telemetry/index.js +2 -1
  450. package/dist/src/telemetry/index.js.map +1 -1
  451. package/dist/src/telemetry/integration.test.circular.js +3 -0
  452. package/dist/src/telemetry/integration.test.circular.js.map +1 -1
  453. package/dist/src/telemetry/loggers.d.ts +1 -2
  454. package/dist/src/telemetry/loggers.js +3 -13
  455. package/dist/src/telemetry/loggers.js.map +1 -1
  456. package/dist/src/telemetry/loggers.test.circular.js +3 -0
  457. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  458. package/dist/src/telemetry/loggers.test.js +6 -5
  459. package/dist/src/telemetry/loggers.test.js.map +1 -1
  460. package/dist/src/telemetry/metrics.d.ts +1 -3
  461. package/dist/src/telemetry/metrics.js +3 -2
  462. package/dist/src/telemetry/metrics.js.map +1 -1
  463. package/dist/src/telemetry/metrics.test.js +7 -3
  464. package/dist/src/telemetry/metrics.test.js.map +1 -1
  465. package/dist/src/telemetry/sanitize.test.js +19 -18
  466. package/dist/src/telemetry/sanitize.test.js.map +1 -1
  467. package/dist/src/telemetry/semantic.d.ts +7 -9
  468. package/dist/src/telemetry/semantic.js +8 -8
  469. package/dist/src/telemetry/semantic.js.map +1 -1
  470. package/dist/src/telemetry/types.d.ts +42 -4
  471. package/dist/src/telemetry/types.js +87 -2
  472. package/dist/src/telemetry/types.js.map +1 -1
  473. package/dist/src/telemetry/uiTelemetry.d.ts +1 -2
  474. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  475. package/dist/src/telemetry/uiTelemetry.test.js +1 -2
  476. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  477. package/dist/src/tools/ask-user.test.js +1 -19
  478. package/dist/src/tools/ask-user.test.js.map +1 -1
  479. package/dist/src/tools/confirmation-policy.test.js +14 -17
  480. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  481. package/dist/src/tools/definitions/dynamic-declaration-helpers.js +1 -1
  482. package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
  483. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +14 -16
  484. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  485. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +24 -59
  486. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  487. package/dist/src/tools/diff-utils.d.ts +9 -0
  488. package/dist/src/tools/diff-utils.js +66 -0
  489. package/dist/src/tools/diff-utils.js.map +1 -0
  490. package/dist/src/tools/diff-utils.test.d.ts +6 -0
  491. package/dist/src/tools/diff-utils.test.js +53 -0
  492. package/dist/src/tools/diff-utils.test.js.map +1 -0
  493. package/dist/src/tools/edit.d.ts +9 -4
  494. package/dist/src/tools/edit.js +203 -34
  495. package/dist/src/tools/edit.js.map +1 -1
  496. package/dist/src/tools/edit.test.js +225 -10
  497. package/dist/src/tools/edit.test.js.map +1 -1
  498. package/dist/src/tools/enter-plan-mode.js +1 -1
  499. package/dist/src/tools/enter-plan-mode.js.map +1 -1
  500. package/dist/src/tools/enter-plan-mode.test.js +1 -1
  501. package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
  502. package/dist/src/tools/exit-plan-mode.js +10 -24
  503. package/dist/src/tools/exit-plan-mode.js.map +1 -1
  504. package/dist/src/tools/exit-plan-mode.test.js +1 -1
  505. package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
  506. package/dist/src/tools/grep-utils.d.ts +49 -0
  507. package/dist/src/tools/grep-utils.js +139 -0
  508. package/dist/src/tools/grep-utils.js.map +1 -0
  509. package/dist/src/tools/grep.js +4 -44
  510. package/dist/src/tools/grep.js.map +1 -1
  511. package/dist/src/tools/grep.test.js +21 -2
  512. package/dist/src/tools/grep.test.js.map +1 -1
  513. package/dist/src/tools/ls.js +6 -1
  514. package/dist/src/tools/ls.js.map +1 -1
  515. package/dist/src/tools/ls.test.js +2 -2
  516. package/dist/src/tools/ls.test.js.map +1 -1
  517. package/dist/src/tools/mcp-client-manager.js +16 -18
  518. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  519. package/dist/src/tools/mcp-client-manager.test.js +51 -0
  520. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  521. package/dist/src/tools/mcp-client.d.ts +22 -1
  522. package/dist/src/tools/mcp-client.js +95 -36
  523. package/dist/src/tools/mcp-client.js.map +1 -1
  524. package/dist/src/tools/mcp-client.test.js +148 -20
  525. package/dist/src/tools/mcp-client.test.js.map +1 -1
  526. package/dist/src/tools/mcp-tool.d.ts +15 -5
  527. package/dist/src/tools/mcp-tool.js +36 -8
  528. package/dist/src/tools/mcp-tool.js.map +1 -1
  529. package/dist/src/tools/memoryTool.js +1 -1
  530. package/dist/src/tools/memoryTool.js.map +1 -1
  531. package/dist/src/tools/memoryTool.test.js +5 -0
  532. package/dist/src/tools/memoryTool.test.js.map +1 -1
  533. package/dist/src/tools/omissionPlaceholderDetector.d.ts +15 -0
  534. package/dist/src/tools/omissionPlaceholderDetector.js +90 -0
  535. package/dist/src/tools/omissionPlaceholderDetector.js.map +1 -0
  536. package/dist/src/tools/omissionPlaceholderDetector.test.d.ts +6 -0
  537. package/dist/src/tools/omissionPlaceholderDetector.test.js +49 -0
  538. package/dist/src/tools/omissionPlaceholderDetector.test.js.map +1 -0
  539. package/dist/src/tools/read-file.d.ts +4 -4
  540. package/dist/src/tools/read-file.js +17 -10
  541. package/dist/src/tools/read-file.js.map +1 -1
  542. package/dist/src/tools/read-file.test.js +20 -10
  543. package/dist/src/tools/read-file.test.js.map +1 -1
  544. package/dist/src/tools/ripGrep.js +49 -46
  545. package/dist/src/tools/ripGrep.js.map +1 -1
  546. package/dist/src/tools/ripGrep.test.js +52 -37
  547. package/dist/src/tools/ripGrep.test.js.map +1 -1
  548. package/dist/src/tools/shell.d.ts +2 -2
  549. package/dist/src/tools/shell.js +2 -2
  550. package/dist/src/tools/shell.js.map +1 -1
  551. package/dist/src/tools/shell.test.js +1 -2
  552. package/dist/src/tools/shell.test.js.map +1 -1
  553. package/dist/src/tools/tool-names.d.ts +0 -6
  554. package/dist/src/tools/tool-names.js +0 -15
  555. package/dist/src/tools/tool-names.js.map +1 -1
  556. package/dist/src/tools/tool-registry.d.ts +1 -0
  557. package/dist/src/tools/tool-registry.js +33 -6
  558. package/dist/src/tools/tool-registry.js.map +1 -1
  559. package/dist/src/tools/tool-registry.test.js +47 -0
  560. package/dist/src/tools/tool-registry.test.js.map +1 -1
  561. package/dist/src/tools/tools.d.ts +21 -1
  562. package/dist/src/tools/tools.js +19 -3
  563. package/dist/src/tools/tools.js.map +1 -1
  564. package/dist/src/tools/tools.test.js +24 -0
  565. package/dist/src/tools/tools.test.js.map +1 -1
  566. package/dist/src/tools/web-fetch.d.ts +9 -1
  567. package/dist/src/tools/web-fetch.js +273 -34
  568. package/dist/src/tools/web-fetch.js.map +1 -1
  569. package/dist/src/tools/web-fetch.test.js +303 -30
  570. package/dist/src/tools/web-fetch.test.js.map +1 -1
  571. package/dist/src/tools/write-file.js +14 -10
  572. package/dist/src/tools/write-file.js.map +1 -1
  573. package/dist/src/tools/write-file.test.js +75 -0
  574. package/dist/src/tools/write-file.test.js.map +1 -1
  575. package/dist/src/tools/write-todos.d.ts +2 -2
  576. package/dist/src/tools/write-todos.js +1 -1
  577. package/dist/src/tools/write-todos.js.map +1 -1
  578. package/dist/src/tools/xcode-mcp-fix-transport.js +4 -1
  579. package/dist/src/tools/xcode-mcp-fix-transport.js.map +1 -1
  580. package/dist/src/utils/approvalModeUtils.d.ts +14 -0
  581. package/dist/src/utils/approvalModeUtils.js +35 -0
  582. package/dist/src/utils/approvalModeUtils.js.map +1 -0
  583. package/dist/src/utils/approvalModeUtils.test.d.ts +6 -0
  584. package/dist/src/utils/approvalModeUtils.test.js +36 -0
  585. package/dist/src/utils/approvalModeUtils.test.js.map +1 -0
  586. package/dist/src/utils/authConsent.d.ts +1 -1
  587. package/dist/src/utils/authConsent.js +10 -8
  588. package/dist/src/utils/authConsent.js.map +1 -1
  589. package/dist/src/utils/authConsent.test.js +89 -44
  590. package/dist/src/utils/authConsent.test.js.map +1 -1
  591. package/dist/src/utils/compatibility.d.ts +41 -0
  592. package/dist/src/utils/compatibility.js +112 -0
  593. package/dist/src/utils/compatibility.js.map +1 -0
  594. package/dist/src/utils/compatibility.test.d.ts +6 -0
  595. package/dist/src/utils/compatibility.test.js +233 -0
  596. package/dist/src/utils/compatibility.test.js.map +1 -0
  597. package/dist/src/utils/editCorrector.js +22 -29
  598. package/dist/src/utils/editCorrector.js.map +1 -1
  599. package/dist/src/utils/editCorrector.test.js.map +1 -1
  600. package/dist/src/utils/envExpansion.d.ts +18 -0
  601. package/dist/src/utils/envExpansion.js +46 -0
  602. package/dist/src/utils/envExpansion.js.map +1 -0
  603. package/dist/src/utils/envExpansion.test.d.ts +6 -0
  604. package/dist/src/utils/envExpansion.test.js +110 -0
  605. package/dist/src/utils/envExpansion.test.js.map +1 -0
  606. package/dist/src/utils/errors.d.ts +1 -0
  607. package/dist/src/utils/errors.js +55 -10
  608. package/dist/src/utils/errors.js.map +1 -1
  609. package/dist/src/utils/errors.test.js +27 -1
  610. package/dist/src/utils/errors.test.js.map +1 -1
  611. package/dist/src/utils/events.d.ts +17 -0
  612. package/dist/src/utils/events.js +12 -0
  613. package/dist/src/utils/events.js.map +1 -1
  614. package/dist/src/utils/events.test.d.ts +1 -1
  615. package/dist/src/utils/events.test.js +50 -3
  616. package/dist/src/utils/events.test.js.map +1 -1
  617. package/dist/src/utils/fastAckHelper.js +2 -1
  618. package/dist/src/utils/fastAckHelper.js.map +1 -1
  619. package/dist/src/utils/fetch.d.ts +1 -1
  620. package/dist/src/utils/fetch.js +15 -2
  621. package/dist/src/utils/fetch.js.map +1 -1
  622. package/dist/src/utils/fileDiffUtils.d.ts +2 -2
  623. package/dist/src/utils/fileDiffUtils.js +1 -2
  624. package/dist/src/utils/fileDiffUtils.js.map +1 -1
  625. package/dist/src/utils/fileUtils.d.ts +5 -3
  626. package/dist/src/utils/fileUtils.js +25 -16
  627. package/dist/src/utils/fileUtils.js.map +1 -1
  628. package/dist/src/utils/fileUtils.test.js +14 -13
  629. package/dist/src/utils/fileUtils.test.js.map +1 -1
  630. package/dist/src/utils/filesearch/fileSearch.js +4 -1
  631. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  632. package/dist/src/utils/getFolderStructure.test.js +4 -5
  633. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  634. package/dist/src/utils/getPty.js +4 -0
  635. package/dist/src/utils/getPty.js.map +1 -1
  636. package/dist/src/utils/googleErrors.js +29 -5
  637. package/dist/src/utils/googleErrors.js.map +1 -1
  638. package/dist/src/utils/googleQuotaErrors.js +10 -0
  639. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  640. package/dist/src/utils/googleQuotaErrors.test.js +16 -1
  641. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  642. package/dist/src/utils/memoryDiscovery.js +2 -0
  643. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  644. package/dist/src/utils/memoryDiscovery.test.js +1 -2
  645. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  646. package/dist/src/utils/retry.d.ts +1 -1
  647. package/dist/src/utils/retry.js +9 -4
  648. package/dist/src/utils/retry.js.map +1 -1
  649. package/dist/src/utils/retry.test.js +15 -12
  650. package/dist/src/utils/retry.test.js.map +1 -1
  651. package/dist/src/utils/safeJsonStringify.js +3 -0
  652. package/dist/src/utils/safeJsonStringify.js.map +1 -1
  653. package/dist/src/utils/schemaValidator.js +5 -3
  654. package/dist/src/utils/schemaValidator.js.map +1 -1
  655. package/dist/src/utils/session.d.ts +1 -0
  656. package/dist/src/utils/session.js +3 -0
  657. package/dist/src/utils/session.js.map +1 -1
  658. package/dist/src/utils/sessionUtils.d.ts +14 -0
  659. package/dist/src/utils/sessionUtils.js +113 -0
  660. package/dist/src/utils/sessionUtils.js.map +1 -0
  661. package/dist/src/utils/sessionUtils.test.d.ts +1 -0
  662. package/dist/src/utils/sessionUtils.test.js +137 -0
  663. package/dist/src/utils/sessionUtils.test.js.map +1 -0
  664. package/dist/src/utils/shell-utils.js +1 -0
  665. package/dist/src/utils/shell-utils.js.map +1 -1
  666. package/dist/src/utils/stdio.js +6 -0
  667. package/dist/src/utils/stdio.js.map +1 -1
  668. package/dist/src/utils/textUtils.d.ts +9 -0
  669. package/dist/src/utils/textUtils.js +15 -0
  670. package/dist/src/utils/textUtils.js.map +1 -1
  671. package/dist/src/utils/textUtils.test.js +42 -1
  672. package/dist/src/utils/textUtils.test.js.map +1 -1
  673. package/dist/src/utils/toolCallContext.d.ts +0 -5
  674. package/dist/src/utils/toolCallContext.js +1 -1
  675. package/dist/src/utils/toolCallContext.js.map +1 -1
  676. package/dist/src/utils/userAccountManager.js +3 -0
  677. package/dist/src/utils/userAccountManager.js.map +1 -1
  678. package/dist/tsconfig.tsbuildinfo +1 -1
  679. package/package.json +6 -3
  680. package/dist/docs/architecture.md +0 -80
  681. package/dist/docs/cli/index.md +0 -123
  682. package/dist/docs/core/concepts.md +0 -137
  683. package/dist/docs/get-started/configuration-v1.md +0 -882
  684. package/dist/google-gemini-cli-core-0.30.0-preview.5.tgz +0 -0
  685. /package/dist/docs/{core → reference}/memport.md +0 -0
  686. /package/dist/docs/{core → reference}/tools-api.md +0 -0
  687. /package/dist/docs/{cli → resources}/uninstall.md +0 -0
@@ -22,15 +22,18 @@ they appear in the UI.
22
22
 
23
23
  ### General
24
24
 
25
- | UI Label | Setting | Description | Default |
26
- | ------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- |
27
- | Vim Mode | `general.vimMode` | Enable Vim keybindings | `false` |
28
- | Default Approval Mode | `general.defaultApprovalMode` | The default approval mode for tool execution. 'default' prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is read-only mode. 'yolo' is not supported yet. | `"default"` |
29
- | Enable Auto Update | `general.enableAutoUpdate` | Enable automatic updates. | `true` |
30
- | Enable Prompt Completion | `general.enablePromptCompletion` | Enable AI-powered prompt completion suggestions while typing. | `false` |
31
- | Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` |
32
- | Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `false` |
33
- | Keep chat history | `general.sessionRetention.maxAge` | Automatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w") | `undefined` |
25
+ | UI Label | Setting | Description | Default |
26
+ | ----------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------- |
27
+ | Vim Mode | `general.vimMode` | Enable Vim keybindings | `false` |
28
+ | Default Approval Mode | `general.defaultApprovalMode` | The default approval mode for tool execution. 'default' prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is read-only mode. 'yolo' is not supported yet. | `"default"` |
29
+ | Enable Auto Update | `general.enableAutoUpdate` | Enable automatic updates. | `true` |
30
+ | Enable Notifications | `general.enableNotifications` | Enable run-event notifications for action-required prompts and session completion. Currently macOS only. | `false` |
31
+ | Plan Directory | `general.plan.directory` | The directory where planning artifacts are stored. If not specified, defaults to the system temporary directory. | `undefined` |
32
+ | Plan Model Routing | `general.plan.modelRouting` | Automatically switch between Pro and Flash models based on Plan Mode status. Uses Pro for the planning phase and Flash for the implementation phase. | `true` |
33
+ | Max Chat Model Attempts | `general.maxAttempts` | Maximum number of attempts for requests to the main chat model. Cannot exceed 10. | `10` |
34
+ | Debug Keystroke Logging | `general.debugKeystrokeLogging` | Enable debug logging of keystrokes to the console. | `false` |
35
+ | Enable Session Cleanup | `general.sessionRetention.enabled` | Enable automatic session cleanup | `false` |
36
+ | Keep chat history | `general.sessionRetention.maxAge` | Automatically delete chats older than this time period (e.g., "30d", "7d", "24h", "1w") | `undefined` |
34
37
 
35
38
  ### Output
36
39
 
@@ -40,35 +43,36 @@ they appear in the UI.
40
43
 
41
44
  ### UI
42
45
 
43
- | UI Label | Setting | Description | Default |
44
- | ------------------------------------ | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
45
- | Auto Theme Switching | `ui.autoThemeSwitching` | Automatically switch between default light and dark themes based on terminal background color. | `true` |
46
- | Terminal Background Polling Interval | `ui.terminalBackgroundPollingInterval` | Interval in seconds to poll the terminal background color. | `60` |
47
- | Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false` |
48
- | Inline Thinking | `ui.inlineThinkingMode` | Display model thinking inline: off or full. | `"off"` |
49
- | Show Thoughts in Title | `ui.showStatusInTitle` | Show Gemini CLI model thoughts in the terminal window title during the working phase | `false` |
50
- | Dynamic Window Title | `ui.dynamicWindowTitle` | Update the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦) | `true` |
51
- | Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true` |
52
- | Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
53
- | Show Shortcuts Hint | `ui.showShortcutsHint` | Show the "? for shortcuts" hint above the input. | `true` |
54
- | Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
55
- | Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
56
- | Hide CWD | `ui.footer.hideCWD` | Hide the current working directory path in the footer. | `false` |
57
- | Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
58
- | Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
59
- | Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window remaining percentage. | `true` |
60
- | Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false` |
61
- | Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false` |
62
- | Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true` |
63
- | Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
64
- | Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
65
- | Show User Identity | `ui.showUserIdentity` | Show the logged-in user's identity (e.g. email) in the UI. | `true` |
66
- | Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
67
- | Use Background Color | `ui.useBackgroundColor` | Whether to use background colors in the UI. | `true` |
68
- | Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
69
- | Show Spinner | `ui.showSpinner` | Show the spinner during operations. | `true` |
70
- | Enable Loading Phrases | `ui.accessibility.enableLoadingPhrases` | Enable loading phrases during operations. | `true` |
71
- | Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false` |
46
+ | UI Label | Setting | Description | Default |
47
+ | ------------------------------------ | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
48
+ | Auto Theme Switching | `ui.autoThemeSwitching` | Automatically switch between default light and dark themes based on terminal background color. | `true` |
49
+ | Terminal Background Polling Interval | `ui.terminalBackgroundPollingInterval` | Interval in seconds to poll the terminal background color. | `60` |
50
+ | Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false` |
51
+ | Inline Thinking | `ui.inlineThinkingMode` | Display model thinking inline: off or full. | `"off"` |
52
+ | Show Thoughts in Title | `ui.showStatusInTitle` | Show Gemini CLI model thoughts in the terminal window title during the working phase | `false` |
53
+ | Dynamic Window Title | `ui.dynamicWindowTitle` | Update the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦) | `true` |
54
+ | Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true` |
55
+ | Show Compatibility Warnings | `ui.showCompatibilityWarnings` | Show warnings about terminal or OS compatibility issues. | `true` |
56
+ | Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
57
+ | Show Shortcuts Hint | `ui.showShortcutsHint` | Show the "? for shortcuts" hint above the input. | `true` |
58
+ | Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
59
+ | Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
60
+ | Hide CWD | `ui.footer.hideCWD` | Hide the current working directory path in the footer. | `false` |
61
+ | Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
62
+ | Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
63
+ | Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window remaining percentage. | `true` |
64
+ | Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false` |
65
+ | Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false` |
66
+ | Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true` |
67
+ | Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
68
+ | Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
69
+ | Show User Identity | `ui.showUserIdentity` | Show the logged-in user's identity (e.g. email) in the UI. | `true` |
70
+ | Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
71
+ | Use Background Color | `ui.useBackgroundColor` | Whether to use background colors in the UI. | `true` |
72
+ | Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
73
+ | Show Spinner | `ui.showSpinner` | Show the spinner during operations. | `true` |
74
+ | Loading Phrases | `ui.loadingPhrases` | What to show while the model is working: tips, witty comments, both, or nothing. | `"tips"` |
75
+ | Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false` |
72
76
 
73
77
  ### IDE
74
78
 
@@ -109,14 +113,15 @@ they appear in the UI.
109
113
 
110
114
  ### Security
111
115
 
112
- | UI Label | Setting | Description | Default |
113
- | ------------------------------------- | ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
114
- | Disable YOLO Mode | `security.disableYoloMode` | Disable YOLO mode, even if enabled by a flag. | `false` |
115
- | Allow Permanent Tool Approval | `security.enablePermanentToolApproval` | Enable the "Allow for all future sessions" option in tool confirmation dialogs. | `false` |
116
- | Blocks extensions from Git | `security.blockGitExtensions` | Blocks installing and loading extensions from Git. | `false` |
117
- | Extension Source Regex Allowlist | `security.allowedExtensions` | List of Regex patterns for allowed extensions. If nonempty, only extensions that match the patterns in this list are allowed. Overrides the blockGitExtensions setting. | `[]` |
118
- | Folder Trust | `security.folderTrust.enabled` | Setting to track whether Folder trust is enabled. | `true` |
119
- | Enable Environment Variable Redaction | `security.environmentVariableRedaction.enabled` | Enable redaction of environment variables that may contain secrets. | `false` |
116
+ | UI Label | Setting | Description | Default |
117
+ | ------------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
118
+ | Disable YOLO Mode | `security.disableYoloMode` | Disable YOLO mode, even if enabled by a flag. | `false` |
119
+ | Allow Permanent Tool Approval | `security.enablePermanentToolApproval` | Enable the "Allow for all future sessions" option in tool confirmation dialogs. | `false` |
120
+ | Blocks extensions from Git | `security.blockGitExtensions` | Blocks installing and loading extensions from Git. | `false` |
121
+ | Extension Source Regex Allowlist | `security.allowedExtensions` | List of Regex patterns for allowed extensions. If nonempty, only extensions that match the patterns in this list are allowed. Overrides the blockGitExtensions setting. | `[]` |
122
+ | Folder Trust | `security.folderTrust.enabled` | Setting to track whether Folder trust is enabled. | `true` |
123
+ | Enable Environment Variable Redaction | `security.environmentVariableRedaction.enabled` | Enable redaction of environment variables that may contain secrets. | `false` |
124
+ | Enable Context-Aware Security | `security.enableConseca` | Enable the context-aware security checker. This feature uses an LLM to dynamically generate and enforce security policies for tool use based on your prompt, providing an additional layer of protection against unintended actions. | `false` |
120
125
 
121
126
  ### Advanced
122
127
 
@@ -126,11 +131,14 @@ they appear in the UI.
126
131
 
127
132
  ### Experimental
128
133
 
129
- | UI Label | Setting | Description | Default |
130
- | -------------------------- | ---------------------------------------- | ----------------------------------------------------------------------------------- | ------- |
131
- | Enable Tool Output Masking | `experimental.toolOutputMasking.enabled` | Enables tool output masking to save tokens. | `true` |
132
- | Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 sequence for pasting instead of clipboardy (useful for remote sessions). | `false` |
133
- | Plan | `experimental.plan` | Enable planning features (Plan Mode and tools). | `false` |
134
+ | UI Label | Setting | Description | Default |
135
+ | -------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
136
+ | Enable Tool Output Masking | `experimental.toolOutputMasking.enabled` | Enables tool output masking to save tokens. | `true` |
137
+ | Use OSC 52 Paste | `experimental.useOSC52Paste` | Use OSC 52 for pasting. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
138
+ | Use OSC 52 Copy | `experimental.useOSC52Copy` | Use OSC 52 for copying. This may be more robust than the default system when using remote terminal sessions (if your terminal is configured to allow it). | `false` |
139
+ | Plan | `experimental.plan` | Enable planning features (Plan Mode and tools). | `false` |
140
+ | Model Steering | `experimental.modelSteering` | Enable model steering (user hints) to guide the model during tool execution. | `false` |
141
+ | Direct Web Fetch | `experimental.directWebFetch` | Enable web fetch behavior that bypasses LLM summarization. | `false` |
134
142
 
135
143
  ### Skills
136
144
 
@@ -93,7 +93,7 @@ Environment variables can be used to override the settings in the file.
93
93
  `true` or `1` will enable the feature. Any other value will disable it.
94
94
 
95
95
  For detailed information about all configuration options, see the
96
- [Configuration guide](../get-started/configuration.md).
96
+ [Configuration guide](../reference/configuration.md).
97
97
 
98
98
  ## Google Cloud telemetry
99
99
 
@@ -487,6 +487,7 @@ Captures Gemini API requests, responses, and errors.
487
487
  - `reasoning` (string, optional)
488
488
  - `failed` (boolean)
489
489
  - `error_message` (string, optional)
490
+ - `approval_mode` (string)
490
491
 
491
492
  #### Chat and streaming
492
493
 
@@ -711,12 +712,14 @@ Routing latency/failures and slash-command selections.
711
712
  - **Attributes**:
712
713
  - `routing.decision_model` (string)
713
714
  - `routing.decision_source` (string)
715
+ - `routing.approval_mode` (string)
714
716
 
715
717
  - `gemini_cli.model_routing.failure.count` (Counter, Int): Counts model routing
716
718
  failures.
717
719
  - **Attributes**:
718
720
  - `routing.decision_source` (string)
719
721
  - `routing.error_message` (string)
722
+ - `routing.approval_mode` (string)
720
723
 
721
724
  ##### Agent runs
722
725
 
@@ -41,8 +41,8 @@ can change the theme using the `/theme` command.
41
41
  ### Theme persistence
42
42
 
43
43
  Selected themes are saved in Gemini CLI's
44
- [configuration](../get-started/configuration.md) so your preference is
45
- remembered across sessions.
44
+ [configuration](../reference/configuration.md) so your preference is remembered
45
+ across sessions.
46
46
 
47
47
  ---
48
48
 
@@ -194,7 +194,7 @@ untrusted sources.
194
194
  - Or, set it as the default by adding `"theme": "MyCustomTheme"` to the `ui`
195
195
  object in your `settings.json`.
196
196
  - Custom themes can be set at the user, project, or system level, and follow the
197
- same [configuration precedence](../get-started/configuration.md) as other
197
+ same [configuration precedence](../reference/configuration.md) as other
198
198
  settings.
199
199
 
200
200
  ### Themes from extensions
@@ -38,6 +38,37 @@ folder, a dialog will automatically appear, prompting you to make a choice:
38
38
  Your choice is saved in a central file (`~/.gemini/trustedFolders.json`), so you
39
39
  will only be asked once per folder.
40
40
 
41
+ ## Understanding folder contents: The discovery phase
42
+
43
+ Before you make a choice, the Gemini CLI performs a **discovery phase** to scan
44
+ the folder for potential configurations. This information is displayed in the
45
+ trust dialog to help you make an informed decision.
46
+
47
+ The discovery UI lists the following categories of items found in the project:
48
+
49
+ - **Commands**: Custom `.toml` command definitions that add new functionality.
50
+ - **MCP Servers**: Configured Model Context Protocol servers that the CLI will
51
+ attempt to connect to.
52
+ - **Hooks**: System or custom hooks that can intercept and modify CLI behavior.
53
+ - **Skills**: Local agent skills that provide specialized capabilities.
54
+ - **Setting overrides**: Any project-specific configurations that override your
55
+ global user settings.
56
+
57
+ ### Security warnings and errors
58
+
59
+ The trust dialog also highlights critical information that requires your
60
+ attention:
61
+
62
+ - **Security Warnings**: The CLI will explicitly flag potentially dangerous
63
+ settings, such as auto-approving certain tools or disabling the security
64
+ sandbox.
65
+ - **Discovery Errors**: If the CLI encounters issues while scanning the folder
66
+ (e.g., a malformed `settings.json` file), these errors will be displayed
67
+ prominently.
68
+
69
+ By reviewing these details, you can ensure that you only grant trust to projects
70
+ that you know are safe.
71
+
41
72
  ## Why trust matters: The impact of an untrusted workspace
42
73
 
43
74
  When a folder is **untrusted**, the Gemini CLI runs in a restricted "safe mode"
@@ -121,6 +121,6 @@ immediately. Force a reload with:
121
121
 
122
122
  - Learn about [Session management](session-management.md) to see how short-term
123
123
  history works.
124
- - Explore the [Command reference](../../cli/commands.md) for more `/memory`
125
- options.
124
+ - Explore the [Command reference](../../reference/commands.md) for more
125
+ `/memory` options.
126
126
  - Read the technical spec for [Project context](../../cli/gemini-md.md).
@@ -101,5 +101,5 @@ This creates a new branch of history without losing your original work.
101
101
  - Learn about [Checkpointing](../../cli/checkpointing.md) to understand the
102
102
  underlying safety mechanism.
103
103
  - Explore [Task planning](task-planning.md) to keep complex sessions organized.
104
- - See the [Command reference](../../cli/commands.md) for all `/chat` and
104
+ - See the [Command reference](../../reference/commands.md) for all `/chat` and
105
105
  `/resume` options.
@@ -9,11 +9,11 @@ requests sent from `packages/cli`. For a general overview of Gemini CLI, see the
9
9
 
10
10
  - **[Sub-agents (experimental)](./subagents.md):** Learn how to create and use
11
11
  specialized sub-agents for complex tasks.
12
- - **[Core tools API](./tools-api.md):** Information on how tools are defined,
13
- registered, and used by the core.
14
- - **[Memory Import Processor](./memport.md):** Documentation for the modular
15
- GEMINI.md import feature using @file.md syntax.
16
- - **[Policy Engine](./policy-engine.md):** Use the Policy Engine for
12
+ - **[Core tools API](../reference/tools-api.md):** Information on how tools are
13
+ defined, registered, and used by the core.
14
+ - **[Memory Import Processor](../reference/memport.md):** Documentation for the
15
+ modular GEMINI.md import feature using @file.md syntax.
16
+ - **[Policy Engine](../reference/policy-engine.md):** Use the Policy Engine for
17
17
  fine-grained control over tool execution.
18
18
 
19
19
  ## Role of the core
@@ -92,8 +92,8 @@ This allows you to have global, project-level, and component-level context
92
92
  files, which are all combined to provide the model with the most relevant
93
93
  information.
94
94
 
95
- You can use the [`/memory` command](../cli/commands.md) to `show`, `add`, and
96
- `refresh` the content of loaded `GEMINI.md` files.
95
+ You can use the [`/memory` command](../reference/commands.md) to `show`, `add`,
96
+ and `refresh` the content of loaded `GEMINI.md` files.
97
97
 
98
98
  ## Citations
99
99
 
@@ -1,13 +1,13 @@
1
- # Sub-agents (experimental)
1
+ # Subagents (experimental)
2
2
 
3
- Sub-agents are specialized agents that operate within your main Gemini CLI
3
+ Subagents are specialized agents that operate within your main Gemini CLI
4
4
  session. They are designed to handle specific, complex tasks—like deep codebase
5
5
  analysis, documentation lookup, or domain-specific reasoning—without cluttering
6
6
  the main agent's context or toolset.
7
7
 
8
- > **Note: Sub-agents are currently an experimental feature.**
8
+ > **Note: Subagents are currently an experimental feature.**
9
9
  >
10
- > To use custom sub-agents, you must explicitly enable them in your
10
+ > To use custom subagents, you must explicitly enable them in your
11
11
  > `settings.json`:
12
12
  >
13
13
  > ```json
@@ -16,31 +16,31 @@ the main agent's context or toolset.
16
16
  > }
17
17
  > ```
18
18
  >
19
- > **Warning:** Sub-agents currently operate in
20
- > ["YOLO mode"](../get-started/configuration.md#command-line-arguments), meaning
19
+ > **Warning:** Subagents currently operate in
20
+ > ["YOLO mode"](../reference/configuration.md#command-line-arguments), meaning
21
21
  > they may execute tools without individual user confirmation for each step.
22
22
  > Proceed with caution when defining agents with powerful tools like
23
23
  > `run_shell_command` or `write_file`.
24
24
 
25
- ## What are sub-agents?
25
+ ## What are subagents?
26
26
 
27
- Sub-agents are "specialists" that the main Gemini agent can hire for a specific
27
+ Subagents are "specialists" that the main Gemini agent can hire for a specific
28
28
  job.
29
29
 
30
- - **Focused context:** Each sub-agent has its own system prompt and persona.
31
- - **Specialized tools:** Sub-agents can have a restricted or specialized set of
30
+ - **Focused context:** Each subagent has its own system prompt and persona.
31
+ - **Specialized tools:** Subagents can have a restricted or specialized set of
32
32
  tools.
33
- - **Independent context window:** Interactions with a sub-agent happen in a
33
+ - **Independent context window:** Interactions with a subagent happen in a
34
34
  separate context loop, which saves tokens in your main conversation history.
35
35
 
36
- Sub-agents are exposed to the main agent as a tool of the same name. When the
37
- main agent calls the tool, it delegates the task to the sub-agent. Once the
38
- sub-agent completes its task, it reports back to the main agent with its
36
+ Subagents are exposed to the main agent as a tool of the same name. When the
37
+ main agent calls the tool, it delegates the task to the subagent. Once the
38
+ subagent completes its task, it reports back to the main agent with its
39
39
  findings.
40
40
 
41
- ## Built-in sub-agents
41
+ ## Built-in subagents
42
42
 
43
- Gemini CLI comes with the following built-in sub-agents:
43
+ Gemini CLI comes with the following built-in subagents:
44
44
 
45
45
  ### Codebase Investigator
46
46
 
@@ -75,15 +75,131 @@ Gemini CLI comes with the following built-in sub-agents:
75
75
  ### Generalist Agent
76
76
 
77
77
  - **Name:** `generalist_agent`
78
- - **Purpose:** Route tasks to the appropriate specialized sub-agent.
78
+ - **Purpose:** Route tasks to the appropriate specialized subagent.
79
79
  - **When to use:** Implicitly used by the main agent for routing. Not directly
80
80
  invoked by the user.
81
81
  - **Configuration:** Enabled by default. No specific configuration options.
82
82
 
83
- ## Creating custom sub-agents
83
+ ### Browser Agent (experimental)
84
84
 
85
- You can create your own sub-agents to automate specific workflows or enforce
86
- specific personas. To use custom sub-agents, you must enable them in your
85
+ - **Name:** `browser_agent`
86
+ - **Purpose:** Automate web browser tasks navigating websites, filling forms,
87
+ clicking buttons, and extracting information from web pages — using the
88
+ accessibility tree.
89
+ - **When to use:** "Go to example.com and fill out the contact form," "Extract
90
+ the pricing table from this page," "Click the login button and enter my
91
+ credentials."
92
+
93
+ > **Note:** This is a preview feature currently under active development.
94
+
95
+ #### Prerequisites
96
+
97
+ The browser agent requires:
98
+
99
+ - **Chrome** version 144 or later (any recent stable release will work).
100
+ - **Node.js** with `npx` available (used to launch the
101
+ [`chrome-devtools-mcp`](https://www.npmjs.com/package/chrome-devtools-mcp)
102
+ server).
103
+
104
+ #### Enabling the browser agent
105
+
106
+ The browser agent is disabled by default. Enable it in your `settings.json`:
107
+
108
+ ```json
109
+ {
110
+ "agents": {
111
+ "overrides": {
112
+ "browser_agent": {
113
+ "enabled": true
114
+ }
115
+ }
116
+ }
117
+ }
118
+ ```
119
+
120
+ #### Session modes
121
+
122
+ The `sessionMode` setting controls how Chrome is launched and managed. Set it
123
+ under `agents.browser`:
124
+
125
+ ```json
126
+ {
127
+ "agents": {
128
+ "overrides": {
129
+ "browser_agent": {
130
+ "enabled": true
131
+ }
132
+ },
133
+ "browser": {
134
+ "sessionMode": "persistent"
135
+ }
136
+ }
137
+ }
138
+ ```
139
+
140
+ The available modes are:
141
+
142
+ | Mode | Description |
143
+ | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
144
+ | `persistent` | **(Default)** Launches Chrome with a persistent profile stored at `~/.gemini/cli-browser-profile/`. Cookies, history, and settings are preserved between sessions. |
145
+ | `isolated` | Launches Chrome with a temporary profile that is deleted after each session. Use this for clean-state automation. |
146
+ | `existing` | Attaches to an already-running Chrome instance. You must enable remote debugging first by navigating to `chrome://inspect/#remote-debugging` in Chrome. No new browser process is launched. |
147
+
148
+ #### Configuration reference
149
+
150
+ All browser-specific settings go under `agents.browser` in your `settings.json`.
151
+
152
+ | Setting | Type | Default | Description |
153
+ | :------------ | :-------- | :------------- | :---------------------------------------------------------------------------------------------- |
154
+ | `sessionMode` | `string` | `"persistent"` | How Chrome is managed: `"persistent"`, `"isolated"`, or `"existing"`. |
155
+ | `headless` | `boolean` | `false` | Run Chrome in headless mode (no visible window). |
156
+ | `profilePath` | `string` | — | Custom path to a browser profile directory. |
157
+ | `visualModel` | `string` | — | Model override for the visual agent (for example, `"gemini-2.5-computer-use-preview-10-2025"`). |
158
+
159
+ #### Security
160
+
161
+ The browser agent enforces the following security restrictions:
162
+
163
+ - **Blocked URL patterns:** `file://`, `javascript:`, `data:text/html`,
164
+ `chrome://extensions`, and `chrome://settings/passwords` are always blocked.
165
+ - **Sensitive action confirmation:** Actions like form filling, file uploads,
166
+ and form submissions require user confirmation through the standard policy
167
+ engine.
168
+
169
+ #### Visual agent
170
+
171
+ By default, the browser agent interacts with pages through the accessibility
172
+ tree using element `uid` values. For tasks that require visual identification
173
+ (for example, "click the yellow button" or "find the red error message"), you
174
+ can enable the visual agent by setting a `visualModel`:
175
+
176
+ ```json
177
+ {
178
+ "agents": {
179
+ "overrides": {
180
+ "browser_agent": {
181
+ "enabled": true
182
+ }
183
+ },
184
+ "browser": {
185
+ "visualModel": "gemini-2.5-computer-use-preview-10-2025"
186
+ }
187
+ }
188
+ }
189
+ ```
190
+
191
+ When enabled, the agent gains access to the `analyze_screenshot` tool, which
192
+ captures a screenshot and sends it to the vision model for analysis. The model
193
+ returns coordinates and element descriptions that the browser agent uses with
194
+ the `click_at` tool for precise, coordinate-based interactions.
195
+
196
+ > **Note:** The visual agent requires API key or Vertex AI authentication. It is
197
+ > not available when using Google Login.
198
+
199
+ ## Creating custom subagents
200
+
201
+ You can create your own subagents to automate specific workflows or enforce
202
+ specific personas. To use custom subagents, you must enable them in your
87
203
  `settings.json`:
88
204
 
89
205
  ```json
@@ -138,20 +254,20 @@ it yourself; just report it.
138
254
 
139
255
  ### Configuration schema
140
256
 
141
- | Field | Type | Required | Description |
142
- | :------------- | :----- | :------- | :------------------------------------------------------------------------------------------------------------------------- |
143
- | `name` | string | Yes | Unique identifier (slug) used as the tool name for the agent. Only lowercase letters, numbers, hyphens, and underscores. |
144
- | `description` | string | Yes | Short description of what the agent does. This is visible to the main agent to help it decide when to call this sub-agent. |
145
- | `kind` | string | No | `local` (default) or `remote`. |
146
- | `tools` | array | No | List of tool names this agent can use. If omitted, it may have access to a default set. |
147
- | `model` | string | No | Specific model to use (e.g., `gemini-2.5-pro`). Defaults to `inherit` (uses the main session model). |
148
- | `temperature` | number | No | Model temperature (0.0 - 2.0). |
149
- | `max_turns` | number | No | Maximum number of conversation turns allowed for this agent before it must return. Defaults to `15`. |
150
- | `timeout_mins` | number | No | Maximum execution time in minutes. Defaults to `5`. |
257
+ | Field | Type | Required | Description |
258
+ | :------------- | :----- | :------- | :------------------------------------------------------------------------------------------------------------------------ |
259
+ | `name` | string | Yes | Unique identifier (slug) used as the tool name for the agent. Only lowercase letters, numbers, hyphens, and underscores. |
260
+ | `description` | string | Yes | Short description of what the agent does. This is visible to the main agent to help it decide when to call this subagent. |
261
+ | `kind` | string | No | `local` (default) or `remote`. |
262
+ | `tools` | array | No | List of tool names this agent can use. If omitted, it may have access to a default set. |
263
+ | `model` | string | No | Specific model to use (e.g., `gemini-2.5-pro`). Defaults to `inherit` (uses the main session model). |
264
+ | `temperature` | number | No | Model temperature (0.0 - 2.0). |
265
+ | `max_turns` | number | No | Maximum number of conversation turns allowed for this agent before it must return. Defaults to `15`. |
266
+ | `timeout_mins` | number | No | Maximum execution time in minutes. Defaults to `5`. |
151
267
 
152
- ### Optimizing your sub-agent
268
+ ### Optimizing your subagent
153
269
 
154
- The main agent's system prompt encourages it to use an expert sub-agent when one
270
+ The main agent's system prompt encourages it to use an expert subagent when one
155
271
  is available. It decides whether an agent is a relevant expert based on the
156
272
  agent's description. You can improve the reliability with which an agent is used
157
273
  by updating the description to more clearly indicate:
@@ -160,7 +276,7 @@ by updating the description to more clearly indicate:
160
276
  - When it should be used.
161
277
  - Some example scenarios.
162
278
 
163
- For example, the following sub-agent description should be called fairly
279
+ For example, the following subagent description should be called fairly
164
280
  consistently for Git operations.
165
281
 
166
282
  > Git expert agent which should be used for all local and remote git operations.
@@ -170,13 +286,13 @@ consistently for Git operations.
170
286
  > - Searching for regressions with bisect
171
287
  > - Interacting with source control and issues providers such as GitHub.
172
288
 
173
- If you need to further tune your sub-agent, you can do so by selecting the model
289
+ If you need to further tune your subagent, you can do so by selecting the model
174
290
  to optimize for with `/model` and then asking the model why it does not think
175
- that your sub-agent was called with a specific prompt and the given description.
291
+ that your subagent was called with a specific prompt and the given description.
176
292
 
177
293
  ## Remote subagents (Agent2Agent) (experimental)
178
294
 
179
- Gemini CLI can also delegate tasks to remote sub-agents using the Agent-to-Agent
295
+ Gemini CLI can also delegate tasks to remote subagents using the Agent-to-Agent
180
296
  (A2A) protocol.
181
297
 
182
298
  > **Note: Remote subagents are currently an experimental feature.**
@@ -184,8 +300,8 @@ Gemini CLI can also delegate tasks to remote sub-agents using the Agent-to-Agent
184
300
  See the [Remote Subagents documentation](/docs/core/remote-agents) for detailed
185
301
  configuration and usage instructions.
186
302
 
187
- ## Extension sub-agents
303
+ ## Extension subagents
188
304
 
189
- Extensions can bundle and distribute sub-agents. See the
190
- [Extensions documentation](../extensions/index.md#sub-agents) for details on how
305
+ Extensions can bundle and distribute subagents. See the
306
+ [Extensions documentation](../extensions/index.md#subagents) for details on how
191
307
  to package agents within an extension.