@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
@@ -92,6 +92,13 @@ their corresponding top-level category object in your `settings.json` file.
92
92
  - **Default:** `[]`
93
93
  - **Requires restart:** Yes
94
94
 
95
+ #### `adminPolicyPaths`
96
+
97
+ - **`adminPolicyPaths`** (array):
98
+ - **Description:** Additional admin policy files or directories to load.
99
+ - **Default:** `[]`
100
+ - **Requires restart:** Yes
101
+
95
102
  #### `general`
96
103
 
97
104
  - **`general.preferredEditor`** (string):
@@ -105,7 +112,8 @@ their corresponding top-level category object in your `settings.json` file.
105
112
  - **`general.defaultApprovalMode`** (enum):
106
113
  - **Description:** The default approval mode for tool execution. 'default'
107
114
  prompts for approval, 'auto_edit' auto-approves edit tools, and 'plan' is
108
- read-only mode. 'yolo' is not supported yet.
115
+ read-only mode. YOLO mode (auto-approve all actions) can only be enabled via
116
+ command line (--yolo or --approval-mode=yolo).
109
117
  - **Default:** `"default"`
110
118
  - **Values:** `"default"`, `"auto_edit"`, `"plan"`
111
119
 
@@ -146,7 +154,7 @@ their corresponding top-level category object in your `settings.json` file.
146
154
  - **`general.retryFetchErrors`** (boolean):
147
155
  - **Description:** Retry on "exception TypeError: fetch failed sending
148
156
  request" errors.
149
- - **Default:** `false`
157
+ - **Default:** `true`
150
158
 
151
159
  - **`general.maxAttempts`** (number):
152
160
  - **Description:** Maximum number of attempts for requests to the main chat
@@ -237,6 +245,11 @@ their corresponding top-level category object in your `settings.json` file.
237
245
  - **Description:** Hide helpful tips in the UI
238
246
  - **Default:** `false`
239
247
 
248
+ - **`ui.escapePastedAtSymbols`** (boolean):
249
+ - **Description:** When enabled, @ symbols in pasted text are escaped to
250
+ prevent unintended @path expansion.
251
+ - **Default:** `false`
252
+
240
253
  - **`ui.showShortcutsHint`** (boolean):
241
254
  - **Description:** Show the "? for shortcuts" hint above the input.
242
255
  - **Default:** `true`
@@ -693,6 +706,10 @@ their corresponding top-level category object in your `settings.json` file.
693
706
  - **Default:** `undefined`
694
707
  - **Requires restart:** Yes
695
708
 
709
+ - **`agents.browser.disableUserInput`** (boolean):
710
+ - **Description:** Disable user input on browser window during automation.
711
+ - **Default:** `true`
712
+
696
713
  #### `context`
697
714
 
698
715
  - **`context.fileName`** (string | string[]):
@@ -755,7 +772,7 @@ their corresponding top-level category object in your `settings.json` file.
755
772
 
756
773
  #### `tools`
757
774
 
758
- - **`tools.sandbox`** (boolean | string):
775
+ - **`tools.sandbox`** (string):
759
776
  - **Description:** Sandbox execution environment. Set to a boolean to enable
760
777
  or disable the sandbox, provide a string path to a sandbox profile, or
761
778
  specify an explicit sandbox command (e.g., "docker", "podman", "lxc").
@@ -1376,6 +1393,13 @@ the `advanced.excludedEnvVars` setting in your `settings.json` file.
1376
1393
  - Useful for shared compute environments or keeping CLI state isolated.
1377
1394
  - Example: `export GEMINI_CLI_HOME="/path/to/user/config"` (Windows
1378
1395
  PowerShell: `$env:GEMINI_CLI_HOME="C:\path\to\user\config"`)
1396
+ - **`GEMINI_CLI_SURFACE`**:
1397
+ - Specifies a custom label to include in the `User-Agent` header for API
1398
+ traffic reporting.
1399
+ - This is useful for tracking specific internal tools or distribution
1400
+ channels.
1401
+ - Example: `export GEMINI_CLI_SURFACE="my-custom-tool"` (Windows PowerShell:
1402
+ `$env:GEMINI_CLI_SURFACE="my-custom-tool"`)
1379
1403
  - **`GOOGLE_API_KEY`**:
1380
1404
  - Your Google Cloud API key.
1381
1405
  - Required for using Vertex AI in express mode.
@@ -8,126 +8,201 @@ available combinations.
8
8
 
9
9
  #### Basic Controls
10
10
 
11
- | Action | Keys |
12
- | --------------------------------------------------------------- | ------------------- |
13
- | Confirm the current selection or choice. | `Enter` |
14
- | Dismiss dialogs or cancel the current focus. | `Esc`<br />`Ctrl+[` |
15
- | Cancel the current request or quit the CLI when input is empty. | `Ctrl+C` |
16
- | Exit the CLI when the input buffer is empty. | `Ctrl+D` |
11
+ | Command | Action | Keys |
12
+ | --------------- | --------------------------------------------------------------- | ------------------- |
13
+ | `basic.confirm` | Confirm the current selection or choice. | `Enter` |
14
+ | `basic.cancel` | Dismiss dialogs or cancel the current focus. | `Esc`<br />`Ctrl+[` |
15
+ | `basic.quit` | Cancel the current request or quit the CLI when input is empty. | `Ctrl+C` |
16
+ | `basic.exit` | Exit the CLI when the input buffer is empty. | `Ctrl+D` |
17
17
 
18
18
  #### Cursor Movement
19
19
 
20
- | Action | Keys |
21
- | ------------------------------------------- | ------------------------------------------ |
22
- | Move the cursor to the start of the line. | `Ctrl+A`<br />`Home` |
23
- | Move the cursor to the end of the line. | `Ctrl+E`<br />`End` |
24
- | Move the cursor up one line. | `Up` |
25
- | Move the cursor down one line. | `Down` |
26
- | Move the cursor one character to the left. | `Left` |
27
- | Move the cursor one character to the right. | `Right`<br />`Ctrl+F` |
28
- | Move the cursor one word to the left. | `Ctrl+Left`<br />`Alt+Left`<br />`Alt+B` |
29
- | Move the cursor one word to the right. | `Ctrl+Right`<br />`Alt+Right`<br />`Alt+F` |
20
+ | Command | Action | Keys |
21
+ | ------------------ | ------------------------------------------- | ------------------------------------------ |
22
+ | `cursor.home` | Move the cursor to the start of the line. | `Ctrl+A`<br />`Home` |
23
+ | `cursor.end` | Move the cursor to the end of the line. | `Ctrl+E`<br />`End` |
24
+ | `cursor.up` | Move the cursor up one line. | `Up` |
25
+ | `cursor.down` | Move the cursor down one line. | `Down` |
26
+ | `cursor.left` | Move the cursor one character to the left. | `Left` |
27
+ | `cursor.right` | Move the cursor one character to the right. | `Right`<br />`Ctrl+F` |
28
+ | `cursor.wordLeft` | Move the cursor one word to the left. | `Ctrl+Left`<br />`Alt+Left`<br />`Alt+B` |
29
+ | `cursor.wordRight` | Move the cursor one word to the right. | `Ctrl+Right`<br />`Alt+Right`<br />`Alt+F` |
30
30
 
31
31
  #### Editing
32
32
 
33
- | Action | Keys |
34
- | ------------------------------------------------ | -------------------------------------------------------- |
35
- | Delete from the cursor to the end of the line. | `Ctrl+K` |
36
- | Delete from the cursor to the start of the line. | `Ctrl+U` |
37
- | Clear all text in the input field. | `Ctrl+C` |
38
- | Delete the previous word. | `Ctrl+Backspace`<br />`Alt+Backspace`<br />`Ctrl+W` |
39
- | Delete the next word. | `Ctrl+Delete`<br />`Alt+Delete`<br />`Alt+D` |
40
- | Delete the character to the left. | `Backspace`<br />`Ctrl+H` |
41
- | Delete the character to the right. | `Delete`<br />`Ctrl+D` |
42
- | Undo the most recent text edit. | `Cmd/Win+Z`<br />`Alt+Z` |
43
- | Redo the most recent undone text edit. | `Ctrl+Shift+Z`<br />`Shift+Cmd/Win+Z`<br />`Alt+Shift+Z` |
33
+ | Command | Action | Keys |
34
+ | ---------------------- | ------------------------------------------------ | -------------------------------------------------------- |
35
+ | `edit.deleteRightAll` | Delete from the cursor to the end of the line. | `Ctrl+K` |
36
+ | `edit.deleteLeftAll` | Delete from the cursor to the start of the line. | `Ctrl+U` |
37
+ | `edit.clear` | Clear all text in the input field. | `Ctrl+C` |
38
+ | `edit.deleteWordLeft` | Delete the previous word. | `Ctrl+Backspace`<br />`Alt+Backspace`<br />`Ctrl+W` |
39
+ | `edit.deleteWordRight` | Delete the next word. | `Ctrl+Delete`<br />`Alt+Delete`<br />`Alt+D` |
40
+ | `edit.deleteLeft` | Delete the character to the left. | `Backspace`<br />`Ctrl+H` |
41
+ | `edit.deleteRight` | Delete the character to the right. | `Delete`<br />`Ctrl+D` |
42
+ | `edit.undo` | Undo the most recent text edit. | `Cmd/Win+Z`<br />`Alt+Z` |
43
+ | `edit.redo` | Redo the most recent undone text edit. | `Ctrl+Shift+Z`<br />`Shift+Cmd/Win+Z`<br />`Alt+Shift+Z` |
44
44
 
45
45
  #### Scrolling
46
46
 
47
- | Action | Keys |
48
- | ------------------------ | ----------------------------- |
49
- | Scroll content up. | `Shift+Up` |
50
- | Scroll content down. | `Shift+Down` |
51
- | Scroll to the top. | `Ctrl+Home`<br />`Shift+Home` |
52
- | Scroll to the bottom. | `Ctrl+End`<br />`Shift+End` |
53
- | Scroll up by one page. | `Page Up` |
54
- | Scroll down by one page. | `Page Down` |
47
+ | Command | Action | Keys |
48
+ | ----------------- | ------------------------ | ----------------------------- |
49
+ | `scroll.up` | Scroll content up. | `Shift+Up` |
50
+ | `scroll.down` | Scroll content down. | `Shift+Down` |
51
+ | `scroll.home` | Scroll to the top. | `Ctrl+Home`<br />`Shift+Home` |
52
+ | `scroll.end` | Scroll to the bottom. | `Ctrl+End`<br />`Shift+End` |
53
+ | `scroll.pageUp` | Scroll up by one page. | `Page Up` |
54
+ | `scroll.pageDown` | Scroll down by one page. | `Page Down` |
55
55
 
56
56
  #### History & Search
57
57
 
58
- | Action | Keys |
59
- | -------------------------------------------- | -------- |
60
- | Show the previous entry in history. | `Ctrl+P` |
61
- | Show the next entry in history. | `Ctrl+N` |
62
- | Start reverse search through history. | `Ctrl+R` |
63
- | Submit the selected reverse-search match. | `Enter` |
64
- | Accept a suggestion while reverse searching. | `Tab` |
58
+ | Command | Action | Keys |
59
+ | ----------------------- | -------------------------------------------- | -------- |
60
+ | `history.previous` | Show the previous entry in history. | `Ctrl+P` |
61
+ | `history.next` | Show the next entry in history. | `Ctrl+N` |
62
+ | `history.search.start` | Start reverse search through history. | `Ctrl+R` |
63
+ | `history.search.submit` | Submit the selected reverse-search match. | `Enter` |
64
+ | `history.search.accept` | Accept a suggestion while reverse searching. | `Tab` |
65
65
 
66
66
  #### Navigation
67
67
 
68
- | Action | Keys |
69
- | -------------------------------------------------- | --------------- |
70
- | Move selection up in lists. | `Up` |
71
- | Move selection down in lists. | `Down` |
72
- | Move up within dialog options. | `Up`<br />`K` |
73
- | Move down within dialog options. | `Down`<br />`J` |
74
- | Move to the next item or question in a dialog. | `Tab` |
75
- | Move to the previous item or question in a dialog. | `Shift+Tab` |
68
+ | Command | Action | Keys |
69
+ | --------------------- | -------------------------------------------------- | --------------- |
70
+ | `nav.up` | Move selection up in lists. | `Up` |
71
+ | `nav.down` | Move selection down in lists. | `Down` |
72
+ | `nav.dialog.up` | Move up within dialog options. | `Up`<br />`K` |
73
+ | `nav.dialog.down` | Move down within dialog options. | `Down`<br />`J` |
74
+ | `nav.dialog.next` | Move to the next item or question in a dialog. | `Tab` |
75
+ | `nav.dialog.previous` | Move to the previous item or question in a dialog. | `Shift+Tab` |
76
76
 
77
77
  #### Suggestions & Completions
78
78
 
79
- | Action | Keys |
80
- | --------------------------------------- | -------------------- |
81
- | Accept the inline suggestion. | `Tab`<br />`Enter` |
82
- | Move to the previous completion option. | `Up`<br />`Ctrl+P` |
83
- | Move to the next completion option. | `Down`<br />`Ctrl+N` |
84
- | Expand an inline suggestion. | `Right` |
85
- | Collapse an inline suggestion. | `Left` |
79
+ | Command | Action | Keys |
80
+ | ----------------------- | --------------------------------------- | -------------------- |
81
+ | `suggest.accept` | Accept the inline suggestion. | `Tab`<br />`Enter` |
82
+ | `suggest.focusPrevious` | Move to the previous completion option. | `Up`<br />`Ctrl+P` |
83
+ | `suggest.focusNext` | Move to the next completion option. | `Down`<br />`Ctrl+N` |
84
+ | `suggest.expand` | Expand an inline suggestion. | `Right` |
85
+ | `suggest.collapse` | Collapse an inline suggestion. | `Left` |
86
86
 
87
87
  #### Text Input
88
88
 
89
- | Action | Keys |
90
- | ---------------------------------------------------------- | ----------------------------------------------------------------------------------- |
91
- | Submit the current prompt. | `Enter` |
92
- | Insert a newline without submitting. | `Ctrl+Enter`<br />`Cmd/Win+Enter`<br />`Alt+Enter`<br />`Shift+Enter`<br />`Ctrl+J` |
93
- | Open the current prompt or the plan in an external editor. | `Ctrl+X` |
94
- | Paste from the clipboard. | `Ctrl+V`<br />`Cmd/Win+V`<br />`Alt+V` |
89
+ | Command | Action | Keys |
90
+ | -------------------------- | ---------------------------------------------------------- | ----------------------------------------------------------------------------------- |
91
+ | `input.submit` | Submit the current prompt. | `Enter` |
92
+ | `input.newline` | Insert a newline without submitting. | `Ctrl+Enter`<br />`Cmd/Win+Enter`<br />`Alt+Enter`<br />`Shift+Enter`<br />`Ctrl+J` |
93
+ | `input.openExternalEditor` | Open the current prompt or the plan in an external editor. | `Ctrl+X` |
94
+ | `input.paste` | Paste from the clipboard. | `Ctrl+V`<br />`Cmd/Win+V`<br />`Alt+V` |
95
95
 
96
96
  #### App Controls
97
97
 
98
- | Action | Keys |
99
- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
100
- | Toggle detailed error information. | `F12` |
101
- | Toggle the full TODO list. | `Ctrl+T` |
102
- | Show IDE context details. | `Ctrl+G` |
103
- | Toggle Markdown rendering. | `Alt+M` |
104
- | Toggle copy mode when in alternate buffer mode. | `Ctrl+S` |
105
- | Toggle YOLO (auto-approval) mode for tool calls. | `Ctrl+Y` |
106
- | Cycle through approval modes: default (prompt), auto_edit (auto-approve edits), and plan (read-only). Plan mode is skipped when the agent is busy. | `Shift+Tab` |
107
- | Expand and collapse blocks of content when not in alternate buffer mode. | `Ctrl+O` |
108
- | Expand or collapse a paste placeholder when cursor is over placeholder. | `Ctrl+O` |
109
- | Move focus from Gemini to the active shell. | `Tab` |
110
- | Move focus from the shell back to Gemini. | `Shift+Tab` |
111
- | Clear the terminal screen and redraw the UI. | `Ctrl+L` |
112
- | Restart the application. | `R`<br />`Shift+R` |
113
- | Suspend the CLI and move it to the background. | `Ctrl+Z` |
114
- | Show warning when trying to move focus away from shell input. | `Tab` |
98
+ | Command | Action | Keys |
99
+ | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
100
+ | `app.showErrorDetails` | Toggle detailed error information. | `F12` |
101
+ | `app.showFullTodos` | Toggle the full TODO list. | `Ctrl+T` |
102
+ | `app.showIdeContextDetail` | Show IDE context details. | `Ctrl+G` |
103
+ | `app.toggleMarkdown` | Toggle Markdown rendering. | `Alt+M` |
104
+ | `app.toggleCopyMode` | Toggle copy mode when in alternate buffer mode. | `Ctrl+S` |
105
+ | `app.toggleYolo` | Toggle YOLO (auto-approval) mode for tool calls. | `Ctrl+Y` |
106
+ | `app.cycleApprovalMode` | Cycle through approval modes: default (prompt), auto_edit (auto-approve edits), and plan (read-only). Plan mode is skipped when the agent is busy. | `Shift+Tab` |
107
+ | `app.showMoreLines` | Expand and collapse blocks of content when not in alternate buffer mode. | `Ctrl+O` |
108
+ | `app.expandPaste` | Expand or collapse a paste placeholder when cursor is over placeholder. | `Ctrl+O` |
109
+ | `app.focusShellInput` | Move focus from Gemini to the active shell. | `Tab` |
110
+ | `app.unfocusShellInput` | Move focus from the shell back to Gemini. | `Shift+Tab` |
111
+ | `app.clearScreen` | Clear the terminal screen and redraw the UI. | `Ctrl+L` |
112
+ | `app.restart` | Restart the application. | `R`<br />`Shift+R` |
113
+ | `app.suspend` | Suspend the CLI and move it to the background. | `Ctrl+Z` |
114
+ | `app.showShellUnfocusWarning` | Show warning when trying to move focus away from shell input. | `Tab` |
115
115
 
116
116
  #### Background Shell Controls
117
117
 
118
- | Action | Keys |
119
- | ------------------------------------------------------------------ | ----------- |
120
- | Dismiss background shell list. | `Esc` |
121
- | Confirm selection in background shell list. | `Enter` |
122
- | Toggle current background shell visibility. | `Ctrl+B` |
123
- | Toggle background shell list. | `Ctrl+L` |
124
- | Kill the active background shell. | `Ctrl+K` |
125
- | Move focus from background shell to Gemini. | `Shift+Tab` |
126
- | Move focus from background shell list to Gemini. | `Tab` |
127
- | Show warning when trying to move focus away from background shell. | `Tab` |
118
+ | Command | Action | Keys |
119
+ | --------------------------- | ------------------------------------------------------------------ | ----------- |
120
+ | `background.escape` | Dismiss background shell list. | `Esc` |
121
+ | `background.select` | Confirm selection in background shell list. | `Enter` |
122
+ | `background.toggle` | Toggle current background shell visibility. | `Ctrl+B` |
123
+ | `background.toggleList` | Toggle background shell list. | `Ctrl+L` |
124
+ | `background.kill` | Kill the active background shell. | `Ctrl+K` |
125
+ | `background.unfocus` | Move focus from background shell to Gemini. | `Shift+Tab` |
126
+ | `background.unfocusList` | Move focus from background shell list to Gemini. | `Tab` |
127
+ | `background.unfocusWarning` | Show warning when trying to move focus away from background shell. | `Tab` |
128
128
 
129
129
  <!-- KEYBINDINGS-AUTOGEN:END -->
130
130
 
131
+ ## Customizing Keybindings
132
+
133
+ You can add alternative keybindings or remove default keybindings by creating a
134
+ `keybindings.json` file in your home gemini directory (typically
135
+ `~/.gemini/keybindings.json`).
136
+
137
+ ### Configuration Format
138
+
139
+ The configuration uses a JSON array of objects, similar to VS Code's keybinding
140
+ schema. Each object must specify a `command` from the reference tables above and
141
+ a `key` combination.
142
+
143
+ ```json
144
+ [
145
+ {
146
+ "command": "edit.clear",
147
+ "key": "cmd+l"
148
+ },
149
+ {
150
+ // prefix "-" to unbind a key
151
+ "command": "-app.toggleYolo",
152
+ "key": "ctrl+y"
153
+ },
154
+ {
155
+ "command": "input.submit",
156
+ "key": "ctrl+y"
157
+ },
158
+ {
159
+ // multiple modifiers
160
+ "command": "cursor.right",
161
+ "key": "shift+alt+a"
162
+ },
163
+ {
164
+ // Some mac keyboards send "Å" instead of "shift+option+a"
165
+ "command": "cursor.right",
166
+ "key": "Å"
167
+ },
168
+ {
169
+ // some base keys have special multi-char names
170
+ "command": "cursor.right",
171
+ "key": "shift+pageup"
172
+ }
173
+ ]
174
+ ```
175
+
176
+ - **Unbinding** To remove an existing or default keybinding, prefix a minus sign
177
+ (`-`) to the `command` name.
178
+ - **No Auto-unbinding** The same key can be bound to multiple commands in
179
+ different contexts at the same time. Therefore, creating a binding does not
180
+ automatically unbind the key from other commands.
181
+ - **Explicit Modifiers**: Key matching is explicit. For example, a binding for
182
+ `ctrl+f` will only trigger on exactly `ctrl+f`, not `ctrl+shift+f` or
183
+ `alt+ctrl+f`.
184
+ - **Literal Characters**: Terminals often translate complex key combinations
185
+ (especially on macOS with the `Option` key) into special characters, losing
186
+ modifier and keystroke information along the way. For example,`shift+5` might
187
+ be sent as `%`. In these cases, you must bind to the literal character `%` as
188
+ bindings to `shift+5` will never fire. To see precisely what is being sent,
189
+ enable `Debug Keystroke Logging` and hit f12 to open the debug log console.
190
+ - **Key Modifiers**: The supported key modifiers are:
191
+ - `ctrl`
192
+ - `shift`,
193
+ - `alt` (synonyms: `opt`, `option`)
194
+ - `cmd` (synonym: `meta`)
195
+ - **Base Key**: The base key can be any single unicode code point or any of the
196
+ following special keys:
197
+ - **Navigation**: `up`, `down`, `left`, `right`, `home`, `end`, `pageup`,
198
+ `pagedown`
199
+ - **Actions**: `enter`, `escape`, `tab`, `space`, `backspace`, `delete`,
200
+ `clear`, `insert`, `printscreen`
201
+ - **Toggles**: `capslock`, `numlock`, `scrolllock`, `pausebreak`
202
+ - **Function Keys**: `f1` through `f35`
203
+ - **Numpad**: `numpad0` through `numpad9`, `numpad_add`, `numpad_subtract`,
204
+ `numpad_multiply`, `numpad_divide`, `numpad_decimal`, `numpad_separator`
205
+
131
206
  ## Additional context-specific shortcuts
132
207
 
133
208
  - `Option+B/F/M` (macOS only): Are interpreted as `Cmd+B/F/M` even if your
@@ -154,6 +229,9 @@ available combinations.
154
229
  the numbered radio option and confirm when the full number is entered.
155
230
  - `Ctrl + O`: Expand or collapse paste placeholders (`[Pasted Text: X lines]`)
156
231
  inline when the cursor is over the placeholder.
232
+ - `Ctrl + X` (while a plan is presented): Open the plan in an external editor to
233
+ [collaboratively edit or comment](../cli/plan-mode.md#collaborative-plan-editing)
234
+ on the implementation strategy.
157
235
  - `Double-click` on a paste placeholder (alternate buffer mode only): Expand to
158
236
  view full content inline. Double-click again to collapse.
159
237
 
@@ -191,9 +191,13 @@ User, and (if configured) Admin directories.
191
191
 
192
192
  #### System-wide policies (Admin)
193
193
 
194
- Administrators can enforce system-wide policies (Tier 3) that override all user
195
- and default settings. These policies must be placed in specific, secure
196
- directories:
194
+ Administrators can enforce system-wide policies (Tier 4) that override all user
195
+ and default settings. These policies can be loaded from standard system
196
+ locations or supplemental paths.
197
+
198
+ ##### Standard Locations
199
+
200
+ These are the default paths the CLI searches for admin policies:
197
201
 
198
202
  | OS | Policy Directory Path |
199
203
  | :---------- | :------------------------------------------------ |
@@ -201,10 +205,25 @@ directories:
201
205
  | **macOS** | `/Library/Application Support/GeminiCli/policies` |
202
206
  | **Windows** | `C:\ProgramData\gemini-cli\policies` |
203
207
 
204
- **Security Requirements:**
208
+ ##### Supplemental Admin Policies
209
+
210
+ Administrators can also specify supplemental policy paths using:
211
+
212
+ - The `--admin-policy` command-line flag.
213
+ - The `adminPolicyPaths` setting in a system settings file.
205
214
 
206
- To prevent privilege escalation, the CLI enforces strict security checks on
207
- admin directories. If checks fail, system policies are **ignored**.
215
+ These supplemental policies are assigned the same **Admin** tier (Base 4) as
216
+ policies in standard locations.
217
+
218
+ **Security Guard**: Supplemental admin policies are **ignored** if any `.toml`
219
+ policy files are found in the standard system location. This prevents flag-based
220
+ overrides when a central system policy has already been established.
221
+
222
+ #### Security Requirements
223
+
224
+ To prevent privilege escalation, the CLI enforces strict security checks on the
225
+ **standard system policy directory**. If checks fail, the policies in that
226
+ directory are **ignored**.
208
227
 
209
228
  - **Linux / macOS:** Must be owned by `root` (UID 0) and NOT writable by group
210
229
  or others (e.g., `chmod 755`).
@@ -214,6 +233,11 @@ admin directories. If checks fail, system policies are **ignored**.
214
233
  for non-admin groups. You may need to "Disable inheritance" in Advanced
215
234
  Security Settings._
216
235
 
236
+ **Note:** Supplemental admin policies (provided via `--admin-policy` or
237
+ `adminPolicyPaths` settings) are **NOT** subject to these strict ownership
238
+ checks, as they are explicitly provided by the user or administrator in their
239
+ current execution context.
240
+
217
241
  ### TOML rule schema
218
242
 
219
243
  Here is a breakdown of the fields available in a TOML policy rule:
@@ -124,6 +124,21 @@ topics on:
124
124
  `advanced.excludedEnvVars` setting in your `settings.json` to exclude fewer
125
125
  variables.
126
126
 
127
+ - **Warning: `npm WARN deprecated node-domexception@1.0.0` or
128
+ `npm WARN deprecated glob` during install/update**
129
+ - **Issue:** When installing or updating the Gemini CLI globally via
130
+ `npm install -g @google/gemini-cli` or `npm update -g @google/gemini-cli`,
131
+ you might see deprecation warnings regarding `node-domexception` or old
132
+ versions of `glob`.
133
+ - **Cause:** These warnings occur because some dependencies (or their
134
+ sub-dependencies, like `google-auth-library`) rely on older package
135
+ versions. Since Gemini CLI requires Node.js 20 or higher, the platform's
136
+ native features (like the native `DOMException`) are used, making these
137
+ warnings purely informational.
138
+ - **Solution:** These warnings are harmless and can be safely ignored. Your
139
+ installation or update will complete successfully and function properly
140
+ without any action required.
141
+
127
142
  ## Exit codes
128
143
 
129
144
  The Gemini CLI uses specific exit codes to indicate the reason for termination.
@@ -47,6 +47,11 @@
47
47
  "label": "Plan tasks with todos",
48
48
  "slug": "docs/cli/tutorials/task-planning"
49
49
  },
50
+ {
51
+ "label": "Use Plan Mode with model steering",
52
+ "badge": "🔬",
53
+ "slug": "docs/cli/tutorials/plan-mode-steering"
54
+ },
50
55
  {
51
56
  "label": "Web search and fetch",
52
57
  "slug": "docs/cli/tutorials/web-tools"
@@ -106,6 +111,11 @@
106
111
  { "label": "MCP servers", "slug": "docs/tools/mcp-server" },
107
112
  { "label": "Model routing", "slug": "docs/cli/model-routing" },
108
113
  { "label": "Model selection", "slug": "docs/cli/model" },
114
+ {
115
+ "label": "Model steering",
116
+ "badge": "🔬",
117
+ "slug": "docs/cli/model-steering"
118
+ },
109
119
  {
110
120
  "label": "Notifications",
111
121
  "badge": "🔬",
@@ -120,6 +120,14 @@ tools to detect if they are being run from within the Gemini CLI.
120
120
 
121
121
  ## Command restrictions
122
122
 
123
+ <!-- prettier-ignore -->
124
+ > [!WARNING]
125
+ > The `tools.core` setting is an **allowlist for _all_ built-in
126
+ > tools**, not just shell commands. When you set `tools.core` to any value,
127
+ > _only_ the tools explicitly listed will be enabled. This includes all built-in
128
+ > tools like `read_file`, `write_file`, `glob`, `grep_search`, `list_directory`,
129
+ > `replace`, etc.
130
+
123
131
  You can restrict the commands that can be executed by the `run_shell_command`
124
132
  tool by using the `tools.core` and `tools.exclude` settings in your
125
133
  configuration file.
@@ -4,21 +4,28 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import type { AgentCard, Message, Task, TaskStatusUpdateEvent, TaskArtifactUpdateEvent } from '@a2a-js/sdk';
7
- import { type Client, type AuthenticationHandler } from '@a2a-js/sdk/client';
7
+ import type { AuthenticationHandler, Client } from '@a2a-js/sdk/client';
8
+ import type { Config } from '../config/config.js';
9
+ /**
10
+ * Result of sending a message, which can be a full message, a task,
11
+ * or an incremental status/artifact update.
12
+ */
8
13
  export type SendMessageResult = Message | Task | TaskStatusUpdateEvent | TaskArtifactUpdateEvent;
9
14
  /**
10
- * Manages A2A clients and caches loaded agent information.
11
- * Follows a singleton pattern to ensure a single client instance.
15
+ * Orchestrates communication with remote A2A agents.
16
+ * Manages protocol negotiation, authentication, and transport selection.
12
17
  */
13
18
  export declare class A2AClientManager {
14
19
  private static instance;
15
20
  private clients;
16
21
  private agentCards;
22
+ private a2aDispatcher;
23
+ private a2aFetch;
17
24
  private constructor();
18
25
  /**
19
26
  * Gets the singleton instance of the A2AClientManager.
20
27
  */
21
- static getInstance(): A2AClientManager;
28
+ static getInstance(config?: Config): A2AClientManager;
22
29
  /**
23
30
  * Resets the singleton instance. Only for testing purposes.
24
31
  * @internal