@google/gemini-cli-core 0.36.0-preview.8 → 0.37.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 (472) hide show
  1. package/dist/docs/CONTRIBUTING.md +10 -7
  2. package/dist/docs/assets/theme-tokyonight-dark.png +0 -0
  3. package/dist/docs/changelogs/index.md +24 -0
  4. package/dist/docs/changelogs/latest.md +366 -459
  5. package/dist/docs/changelogs/preview.md +362 -356
  6. package/dist/docs/cli/acp-mode.md +126 -0
  7. package/dist/docs/cli/cli-reference.md +1 -1
  8. package/dist/docs/cli/notifications.md +5 -5
  9. package/dist/docs/cli/plan-mode.md +12 -8
  10. package/dist/docs/cli/sandbox.md +1 -1
  11. package/dist/docs/cli/settings.md +14 -13
  12. package/dist/docs/cli/themes.md +5 -0
  13. package/dist/docs/core/index.md +2 -2
  14. package/dist/docs/core/subagents.md +134 -23
  15. package/dist/docs/get-started/gemini-3.md +1 -1
  16. package/dist/docs/get-started/index.md +127 -1
  17. package/dist/docs/ide-integration/index.md +99 -24
  18. package/dist/docs/index.md +0 -2
  19. package/dist/docs/redirects.json +1 -0
  20. package/dist/docs/reference/commands.md +1 -3
  21. package/dist/docs/reference/configuration.md +182 -91
  22. package/dist/docs/reference/keyboard-shortcuts.md +14 -6
  23. package/dist/docs/reference/policy-engine.md +16 -30
  24. package/dist/docs/reference/tools.md +56 -23
  25. package/dist/docs/resources/quota-and-pricing.md +23 -9
  26. package/dist/docs/sidebar.json +11 -4
  27. package/dist/docs/tools/planning.md +6 -4
  28. package/dist/src/agents/agentLoader.d.ts +12 -12
  29. package/dist/src/agents/agentLoader.js +1 -0
  30. package/dist/src/agents/agentLoader.js.map +1 -1
  31. package/dist/src/agents/browser/automationOverlay.js +2 -10
  32. package/dist/src/agents/browser/automationOverlay.js.map +1 -1
  33. package/dist/src/agents/browser/browserAgentDefinition.js +10 -3
  34. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -1
  35. package/dist/src/agents/browser/browserAgentFactory.d.ts +4 -4
  36. package/dist/src/agents/browser/browserAgentFactory.js +15 -29
  37. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
  38. package/dist/src/agents/browser/browserAgentFactory.test.js +41 -24
  39. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -1
  40. package/dist/src/agents/browser/browserAgentInvocation.d.ts +1 -0
  41. package/dist/src/agents/browser/browserAgentInvocation.js +60 -27
  42. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  43. package/dist/src/agents/browser/browserAgentInvocation.test.js +59 -5
  44. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
  45. package/dist/src/agents/browser/browserManager.d.ts +51 -8
  46. package/dist/src/agents/browser/browserManager.js +242 -70
  47. package/dist/src/agents/browser/browserManager.js.map +1 -1
  48. package/dist/src/agents/browser/browserManager.test.js +384 -17
  49. package/dist/src/agents/browser/browserManager.test.js.map +1 -1
  50. package/dist/src/agents/browser/inputBlocker.d.ts +4 -4
  51. package/dist/src/agents/browser/inputBlocker.js +8 -18
  52. package/dist/src/agents/browser/inputBlocker.js.map +1 -1
  53. package/dist/src/agents/browser/inputBlocker.test.js +31 -3
  54. package/dist/src/agents/browser/inputBlocker.test.js.map +1 -1
  55. package/dist/src/agents/browser/mcpToolWrapper.d.ts +1 -1
  56. package/dist/src/agents/browser/mcpToolWrapper.js +9 -6
  57. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
  58. package/dist/src/agents/browser/mcpToolWrapper.test.js +2 -2
  59. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
  60. package/dist/src/agents/browser/snapshotSuperseder.d.ts +31 -0
  61. package/dist/src/agents/browser/snapshotSuperseder.js +101 -0
  62. package/dist/src/agents/browser/snapshotSuperseder.js.map +1 -0
  63. package/dist/src/agents/browser/snapshotSuperseder.test.js +158 -0
  64. package/dist/src/agents/browser/snapshotSuperseder.test.js.map +1 -0
  65. package/dist/src/agents/local-executor.d.ts +4 -0
  66. package/dist/src/agents/local-executor.js +46 -19
  67. package/dist/src/agents/local-executor.js.map +1 -1
  68. package/dist/src/agents/local-executor.test.js +118 -18
  69. package/dist/src/agents/local-executor.test.js.map +1 -1
  70. package/dist/src/agents/local-invocation.d.ts +1 -0
  71. package/dist/src/agents/local-invocation.js +19 -9
  72. package/dist/src/agents/local-invocation.js.map +1 -1
  73. package/dist/src/agents/local-invocation.test.js +24 -0
  74. package/dist/src/agents/local-invocation.test.js.map +1 -1
  75. package/dist/src/agents/registry.js +16 -1
  76. package/dist/src/agents/registry.js.map +1 -1
  77. package/dist/src/agents/registry.test.js +67 -0
  78. package/dist/src/agents/registry.test.js.map +1 -1
  79. package/dist/src/agents/types.d.ts +9 -0
  80. package/dist/src/agents/types.js.map +1 -1
  81. package/dist/src/code_assist/oauth2.js +8 -3
  82. package/dist/src/code_assist/oauth2.js.map +1 -1
  83. package/dist/src/code_assist/oauth2.test.js +57 -0
  84. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  85. package/dist/src/code_assist/setup.js +5 -2
  86. package/dist/src/code_assist/setup.js.map +1 -1
  87. package/dist/src/code_assist/setup.test.js +27 -1
  88. package/dist/src/code_assist/setup.test.js.map +1 -1
  89. package/dist/src/code_assist/types.d.ts +80 -80
  90. package/dist/src/config/agent-loop-context.d.ts +2 -0
  91. package/dist/src/config/config.d.ts +81 -16
  92. package/dist/src/config/config.js +146 -50
  93. package/dist/src/config/config.js.map +1 -1
  94. package/dist/src/config/config.test.js +89 -2
  95. package/dist/src/config/config.test.js.map +1 -1
  96. package/dist/src/config/defaultModelConfigs.js +9 -0
  97. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  98. package/dist/src/config/memory.d.ts +1 -0
  99. package/dist/src/config/memory.js +6 -0
  100. package/dist/src/config/memory.js.map +1 -1
  101. package/dist/src/config/storage.d.ts +1 -0
  102. package/dist/src/config/storage.js +4 -0
  103. package/dist/src/config/storage.js.map +1 -1
  104. package/dist/src/config/storage.test.js +5 -0
  105. package/dist/src/config/storage.test.js.map +1 -1
  106. package/dist/src/config/topicState.d.ts +21 -0
  107. package/dist/src/config/topicState.js +41 -0
  108. package/dist/src/config/topicState.js.map +1 -0
  109. package/dist/src/confirmation-bus/types.d.ts +9 -2
  110. package/dist/src/confirmation-bus/types.js +1 -0
  111. package/dist/src/confirmation-bus/types.js.map +1 -1
  112. package/dist/src/context/agentHistoryProvider.d.ts +45 -0
  113. package/dist/src/context/agentHistoryProvider.js +298 -0
  114. package/dist/src/context/agentHistoryProvider.js.map +1 -0
  115. package/dist/src/context/agentHistoryProvider.test.d.ts +6 -0
  116. package/dist/src/context/agentHistoryProvider.test.js +394 -0
  117. package/dist/src/context/agentHistoryProvider.test.js.map +1 -0
  118. package/dist/src/context/chatCompressionService.js.map +1 -0
  119. package/dist/src/context/chatCompressionService.test.js.map +1 -0
  120. package/dist/src/{services → context}/contextManager.d.ts +2 -0
  121. package/dist/src/{services → context}/contextManager.js +18 -9
  122. package/dist/src/context/contextManager.js.map +1 -0
  123. package/dist/src/{services → context}/contextManager.test.js +21 -6
  124. package/dist/src/context/contextManager.test.js.map +1 -0
  125. package/dist/src/context/toolDistillationService.d.ts +38 -0
  126. package/dist/src/context/toolDistillationService.js +170 -0
  127. package/dist/src/context/toolDistillationService.js.map +1 -0
  128. package/dist/src/context/toolDistillationService.test.d.ts +6 -0
  129. package/dist/src/context/toolDistillationService.test.js +83 -0
  130. package/dist/src/context/toolDistillationService.test.js.map +1 -0
  131. package/dist/src/{services → context}/toolOutputMaskingService.d.ts +2 -2
  132. package/dist/src/{services → context}/toolOutputMaskingService.js +7 -7
  133. package/dist/src/context/toolOutputMaskingService.js.map +1 -0
  134. package/dist/src/context/toolOutputMaskingService.test.d.ts +6 -0
  135. package/dist/src/{services → context}/toolOutputMaskingService.test.js +4 -5
  136. package/dist/src/context/toolOutputMaskingService.test.js.map +1 -0
  137. package/dist/src/context/truncation.d.ts +26 -0
  138. package/dist/src/context/truncation.js +102 -0
  139. package/dist/src/context/truncation.js.map +1 -0
  140. package/dist/src/core/client.d.ts +3 -1
  141. package/dist/src/core/client.js +23 -13
  142. package/dist/src/core/client.js.map +1 -1
  143. package/dist/src/core/client.test.js +29 -34
  144. package/dist/src/core/client.test.js.map +1 -1
  145. package/dist/src/core/contentGenerator.d.ts +0 -1
  146. package/dist/src/core/contentGenerator.js +2 -28
  147. package/dist/src/core/contentGenerator.js.map +1 -1
  148. package/dist/src/core/contentGenerator.test.js +1 -101
  149. package/dist/src/core/contentGenerator.test.js.map +1 -1
  150. package/dist/src/core/geminiChat.js +4 -5
  151. package/dist/src/core/geminiChat.js.map +1 -1
  152. package/dist/src/core/geminiChat.test.js +71 -18
  153. package/dist/src/core/geminiChat.test.js.map +1 -1
  154. package/dist/src/core/prompts-substitution.test.js +5 -0
  155. package/dist/src/core/prompts-substitution.test.js.map +1 -1
  156. package/dist/src/core/prompts.test.js +3 -0
  157. package/dist/src/core/prompts.test.js.map +1 -1
  158. package/dist/src/generated/git-commit.d.ts +2 -2
  159. package/dist/src/generated/git-commit.js +2 -2
  160. package/dist/src/index.d.ts +7 -3
  161. package/dist/src/index.js +9 -5
  162. package/dist/src/index.js.map +1 -1
  163. package/dist/src/policy/config.d.ts +1 -1
  164. package/dist/src/policy/config.js +5 -2
  165. package/dist/src/policy/config.js.map +1 -1
  166. package/dist/src/policy/policies/discovered.toml +7 -0
  167. package/dist/src/policy/policies/non-interactive.toml +7 -0
  168. package/dist/src/policy/policies/plan.toml +25 -0
  169. package/dist/src/policy/policies/read-only.toml +6 -0
  170. package/dist/src/policy/policies/sandbox-default.toml +3 -2
  171. package/dist/src/policy/policies/write.toml +21 -0
  172. package/dist/src/policy/policies/yolo.toml +1 -1
  173. package/dist/src/policy/policy-engine.d.ts +2 -4
  174. package/dist/src/policy/policy-engine.js +24 -37
  175. package/dist/src/policy/policy-engine.js.map +1 -1
  176. package/dist/src/policy/policy-engine.test.js +107 -29
  177. package/dist/src/policy/policy-engine.test.js.map +1 -1
  178. package/dist/src/policy/topic-policy.test.d.ts +6 -0
  179. package/dist/src/policy/topic-policy.test.js +48 -0
  180. package/dist/src/policy/topic-policy.test.js.map +1 -0
  181. package/dist/src/policy/types.d.ts +3 -6
  182. package/dist/src/policy/types.js.map +1 -1
  183. package/dist/src/prompts/promptProvider.js +20 -4
  184. package/dist/src/prompts/promptProvider.js.map +1 -1
  185. package/dist/src/prompts/promptProvider.test.js +84 -1
  186. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  187. package/dist/src/prompts/snippets-memory-manager.test.js +1 -1
  188. package/dist/src/prompts/snippets-memory-manager.test.js.map +1 -1
  189. package/dist/src/prompts/snippets.d.ts +3 -4
  190. package/dist/src/prompts/snippets.js +33 -51
  191. package/dist/src/prompts/snippets.js.map +1 -1
  192. package/dist/src/prompts/snippets.legacy.d.ts +6 -4
  193. package/dist/src/prompts/snippets.legacy.js +32 -7
  194. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  195. package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +11 -1
  196. package/dist/src/sandbox/linux/LinuxSandboxManager.js +261 -27
  197. package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
  198. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +430 -125
  199. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
  200. package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +7 -22
  201. package/dist/src/sandbox/macos/MacOsSandboxManager.js +58 -57
  202. package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
  203. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +148 -103
  204. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -1
  205. package/dist/src/sandbox/macos/baseProfile.d.ts +1 -1
  206. package/dist/src/sandbox/macos/baseProfile.js +0 -6
  207. package/dist/src/sandbox/macos/baseProfile.js.map +1 -1
  208. package/dist/src/sandbox/macos/seatbeltArgsBuilder.d.ts +10 -10
  209. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +80 -92
  210. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
  211. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +135 -99
  212. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
  213. package/dist/src/sandbox/{macos → utils}/commandSafety.d.ts +11 -0
  214. package/dist/src/sandbox/{macos → utils}/commandSafety.js +47 -14
  215. package/dist/src/sandbox/utils/commandSafety.js.map +1 -0
  216. package/dist/src/sandbox/utils/commandUtils.d.ts +9 -0
  217. package/dist/src/sandbox/utils/commandUtils.js +57 -0
  218. package/dist/src/sandbox/utils/commandUtils.js.map +1 -0
  219. package/dist/src/sandbox/utils/fsUtils.d.ts +11 -0
  220. package/dist/src/sandbox/utils/fsUtils.js +82 -0
  221. package/dist/src/sandbox/utils/fsUtils.js.map +1 -0
  222. package/dist/src/sandbox/utils/sandboxDenialUtils.d.ts +12 -0
  223. package/dist/src/sandbox/utils/sandboxDenialUtils.js +68 -0
  224. package/dist/src/sandbox/utils/sandboxDenialUtils.js.map +1 -0
  225. package/dist/src/sandbox/utils/sandboxDenialUtils.test.d.ts +6 -0
  226. package/dist/src/sandbox/utils/sandboxDenialUtils.test.js +37 -0
  227. package/dist/src/sandbox/utils/sandboxDenialUtils.test.js.map +1 -0
  228. package/dist/src/sandbox/utils/sandboxReadWriteUtils.d.ts +5 -0
  229. package/dist/src/sandbox/utils/sandboxReadWriteUtils.js +60 -0
  230. package/dist/src/sandbox/utils/sandboxReadWriteUtils.js.map +1 -0
  231. package/dist/src/sandbox/windows/GeminiSandbox.cs +257 -216
  232. package/dist/src/sandbox/windows/WindowsSandboxManager.d.ts +12 -2
  233. package/dist/src/sandbox/windows/WindowsSandboxManager.js +250 -38
  234. package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
  235. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +326 -9
  236. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -1
  237. package/dist/src/sandbox/windows/commandSafety.d.ts +19 -0
  238. package/dist/src/sandbox/windows/commandSafety.js +128 -0
  239. package/dist/src/sandbox/windows/commandSafety.js.map +1 -0
  240. package/dist/src/sandbox/windows/commandSafety.test.d.ts +6 -0
  241. package/dist/src/sandbox/windows/commandSafety.test.js +42 -0
  242. package/dist/src/sandbox/windows/commandSafety.test.js.map +1 -0
  243. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.d.ts +12 -0
  244. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js +68 -0
  245. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js.map +1 -0
  246. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.d.ts +6 -0
  247. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js +68 -0
  248. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js.map +1 -0
  249. package/dist/src/scheduler/scheduler.js +12 -2
  250. package/dist/src/scheduler/scheduler.js.map +1 -1
  251. package/dist/src/scheduler/scheduler.test.js +52 -0
  252. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  253. package/dist/src/scheduler/scheduler_hooks.test.js +1 -0
  254. package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
  255. package/dist/src/scheduler/state-manager.js +1 -1
  256. package/dist/src/scheduler/state-manager.js.map +1 -1
  257. package/dist/src/scheduler/state-manager.test.js +10 -0
  258. package/dist/src/scheduler/state-manager.test.js.map +1 -1
  259. package/dist/src/scheduler/tool-executor.js +7 -2
  260. package/dist/src/scheduler/tool-executor.js.map +1 -1
  261. package/dist/src/scheduler/tool-executor.test.js +38 -0
  262. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  263. package/dist/src/scheduler/types.d.ts +4 -2
  264. package/dist/src/services/chatRecordingService.d.ts +1 -13
  265. package/dist/src/services/chatRecordingService.js +45 -46
  266. package/dist/src/services/chatRecordingService.js.map +1 -1
  267. package/dist/src/services/chatRecordingService.test.js +79 -10
  268. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  269. package/dist/src/services/executionLifecycleService.d.ts +43 -6
  270. package/dist/src/services/executionLifecycleService.js +49 -12
  271. package/dist/src/services/executionLifecycleService.js.map +1 -1
  272. package/dist/src/services/executionLifecycleService.test.js +157 -3
  273. package/dist/src/services/executionLifecycleService.test.js.map +1 -1
  274. package/dist/src/services/fileDiscoveryService.d.ts +17 -2
  275. package/dist/src/services/fileDiscoveryService.js +84 -20
  276. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  277. package/dist/src/services/fileDiscoveryService.test.js +67 -1
  278. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  279. package/dist/src/services/modelConfigService.d.ts +11 -0
  280. package/dist/src/services/modelConfigService.js +67 -0
  281. package/dist/src/services/modelConfigService.js.map +1 -1
  282. package/dist/src/services/modelConfigService.test.js +30 -0
  283. package/dist/src/services/modelConfigService.test.js.map +1 -1
  284. package/dist/src/services/sandboxManager.d.ts +90 -8
  285. package/dist/src/services/sandboxManager.integration.test.js +438 -0
  286. package/dist/src/services/sandboxManager.integration.test.js.map +1 -0
  287. package/dist/src/services/sandboxManager.js +156 -13
  288. package/dist/src/services/sandboxManager.js.map +1 -1
  289. package/dist/src/services/sandboxManager.test.js +373 -117
  290. package/dist/src/services/sandboxManager.test.js.map +1 -1
  291. package/dist/src/services/sandboxManagerFactory.d.ts +2 -3
  292. package/dist/src/services/sandboxManagerFactory.js +10 -17
  293. package/dist/src/services/sandboxManagerFactory.js.map +1 -1
  294. package/dist/src/services/sandboxedFileSystemService.d.ts +1 -0
  295. package/dist/src/services/sandboxedFileSystemService.js +32 -3
  296. package/dist/src/services/sandboxedFileSystemService.js.map +1 -1
  297. package/dist/src/services/sandboxedFileSystemService.test.js +83 -12
  298. package/dist/src/services/sandboxedFileSystemService.test.js.map +1 -1
  299. package/dist/src/services/shellExecutionService.d.ts +2 -0
  300. package/dist/src/services/shellExecutionService.js +45 -16
  301. package/dist/src/services/shellExecutionService.js.map +1 -1
  302. package/dist/src/services/shellExecutionService.test.js +5 -4
  303. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  304. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +4 -0
  305. package/dist/src/services/test-data/resolved-aliases.golden.json +4 -0
  306. package/dist/src/services/types.d.ts +14 -0
  307. package/dist/src/services/types.js +7 -0
  308. package/dist/src/services/types.js.map +1 -0
  309. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +6 -0
  310. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  311. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +5 -1
  312. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  313. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -1
  314. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +3 -1
  315. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  316. package/dist/src/telemetry/loggers.js +1 -1
  317. package/dist/src/telemetry/loggers.js.map +1 -1
  318. package/dist/src/telemetry/loggers.test.js +8 -3
  319. package/dist/src/telemetry/loggers.test.js.map +1 -1
  320. package/dist/src/telemetry/metrics.d.ts +10 -1
  321. package/dist/src/telemetry/metrics.js +19 -4
  322. package/dist/src/telemetry/metrics.js.map +1 -1
  323. package/dist/src/telemetry/metrics.test.js +44 -0
  324. package/dist/src/telemetry/metrics.test.js.map +1 -1
  325. package/dist/src/telemetry/types.d.ts +3 -3
  326. package/dist/src/telemetry/types.js +9 -4
  327. package/dist/src/telemetry/types.js.map +1 -1
  328. package/dist/src/test-utils/mock-message-bus.d.ts +1 -1
  329. package/dist/src/test-utils/mock-message-bus.js +1 -1
  330. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  331. package/dist/src/tools/definitions/base-declarations.d.ts +6 -0
  332. package/dist/src/tools/definitions/base-declarations.js +7 -0
  333. package/dist/src/tools/definitions/base-declarations.js.map +1 -1
  334. package/dist/src/tools/definitions/coreTools.d.ts +2 -1
  335. package/dist/src/tools/definitions/coreTools.js +9 -3
  336. package/dist/src/tools/definitions/coreTools.js.map +1 -1
  337. package/dist/src/tools/definitions/dynamic-declaration-helpers.d.ts +4 -0
  338. package/dist/src/tools/definitions/dynamic-declaration-helpers.js +29 -2
  339. package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
  340. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +11 -6
  341. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  342. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +10 -4
  343. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  344. package/dist/src/tools/definitions/trackerTools.js +3 -3
  345. package/dist/src/tools/definitions/trackerTools.js.map +1 -1
  346. package/dist/src/tools/definitions/types.d.ts +1 -0
  347. package/dist/src/tools/enter-plan-mode.js +15 -0
  348. package/dist/src/tools/enter-plan-mode.js.map +1 -1
  349. package/dist/src/tools/enter-plan-mode.test.js +25 -0
  350. package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
  351. package/dist/src/tools/grep-utils.d.ts +2 -1
  352. package/dist/src/tools/grep-utils.js +22 -3
  353. package/dist/src/tools/grep-utils.js.map +1 -1
  354. package/dist/src/tools/grep.js +16 -3
  355. package/dist/src/tools/grep.js.map +1 -1
  356. package/dist/src/tools/grep.test.js +34 -6
  357. package/dist/src/tools/grep.test.js.map +1 -1
  358. package/dist/src/tools/ls.js +6 -4
  359. package/dist/src/tools/ls.js.map +1 -1
  360. package/dist/src/tools/ls.test.js +22 -7
  361. package/dist/src/tools/ls.test.js.map +1 -1
  362. package/dist/src/tools/mcp-client-manager.js +6 -3
  363. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  364. package/dist/src/tools/mcp-client-manager.test.js +35 -0
  365. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  366. package/dist/src/tools/memoryTool.d.ts +9 -2
  367. package/dist/src/tools/memoryTool.js +39 -15
  368. package/dist/src/tools/memoryTool.js.map +1 -1
  369. package/dist/src/tools/memoryTool.test.js +61 -2
  370. package/dist/src/tools/memoryTool.test.js.map +1 -1
  371. package/dist/src/tools/read-many-files.js +12 -4
  372. package/dist/src/tools/read-many-files.js.map +1 -1
  373. package/dist/src/tools/read-many-files.test.js +17 -17
  374. package/dist/src/tools/read-many-files.test.js.map +1 -1
  375. package/dist/src/tools/ripGrep.js +14 -1
  376. package/dist/src/tools/ripGrep.js.map +1 -1
  377. package/dist/src/tools/ripGrep.test.js +9 -9
  378. package/dist/src/tools/ripGrep.test.js.map +1 -1
  379. package/dist/src/tools/shell.d.ts +10 -0
  380. package/dist/src/tools/shell.js +97 -124
  381. package/dist/src/tools/shell.js.map +1 -1
  382. package/dist/src/tools/shell.test.js +22 -3
  383. package/dist/src/tools/shell.test.js.map +1 -1
  384. package/dist/src/tools/tool-names.d.ts +4 -4
  385. package/dist/src/tools/tool-names.js +5 -3
  386. package/dist/src/tools/tool-names.js.map +1 -1
  387. package/dist/src/tools/tool-registry.js +11 -1
  388. package/dist/src/tools/tool-registry.js.map +1 -1
  389. package/dist/src/tools/tool-registry.test.js +43 -1
  390. package/dist/src/tools/tool-registry.test.js.map +1 -1
  391. package/dist/src/tools/tools.d.ts +12 -1
  392. package/dist/src/tools/tools.js +15 -0
  393. package/dist/src/tools/tools.js.map +1 -1
  394. package/dist/src/tools/tools.test.js +42 -1
  395. package/dist/src/tools/tools.test.js.map +1 -1
  396. package/dist/src/tools/topicTool.d.ts +29 -0
  397. package/dist/src/tools/topicTool.js +72 -0
  398. package/dist/src/tools/topicTool.js.map +1 -0
  399. package/dist/src/tools/topicTool.test.d.ts +6 -0
  400. package/dist/src/tools/topicTool.test.js +105 -0
  401. package/dist/src/tools/topicTool.test.js.map +1 -0
  402. package/dist/src/tools/web-fetch.js +38 -20
  403. package/dist/src/tools/web-fetch.js.map +1 -1
  404. package/dist/src/tools/web-fetch.test.js +28 -0
  405. package/dist/src/tools/web-fetch.test.js.map +1 -1
  406. package/dist/src/utils/checkpointUtils.d.ts +4 -4
  407. package/dist/src/utils/errors.d.ts +3 -0
  408. package/dist/src/utils/errors.js +28 -6
  409. package/dist/src/utils/errors.js.map +1 -1
  410. package/dist/src/utils/errors.test.js +23 -0
  411. package/dist/src/utils/errors.test.js.map +1 -1
  412. package/dist/src/utils/getFolderStructure.js +1 -1
  413. package/dist/src/utils/getFolderStructure.js.map +1 -1
  414. package/dist/src/utils/gitIgnoreParser.d.ts +2 -2
  415. package/dist/src/utils/gitIgnoreParser.js +28 -50
  416. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  417. package/dist/src/utils/gitIgnoreParser.test.js +51 -185
  418. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  419. package/dist/src/utils/ignoreFileParser.d.ts +2 -2
  420. package/dist/src/utils/ignoreFileParser.js +6 -17
  421. package/dist/src/utils/ignoreFileParser.js.map +1 -1
  422. package/dist/src/utils/ignoreFileParser.test.js +40 -132
  423. package/dist/src/utils/ignoreFileParser.test.js.map +1 -1
  424. package/dist/src/utils/ignorePathUtils.d.ts +11 -0
  425. package/dist/src/utils/ignorePathUtils.js +39 -0
  426. package/dist/src/utils/ignorePathUtils.js.map +1 -0
  427. package/dist/src/utils/ignorePathUtils.test.d.ts +6 -0
  428. package/dist/src/utils/ignorePathUtils.test.js +70 -0
  429. package/dist/src/utils/ignorePathUtils.test.js.map +1 -0
  430. package/dist/src/utils/memoryDiscovery.d.ts +6 -4
  431. package/dist/src/utils/memoryDiscovery.js +66 -41
  432. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  433. package/dist/src/utils/memoryDiscovery.test.js +40 -0
  434. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  435. package/dist/src/utils/memoryImportProcessor.d.ts +1 -1
  436. package/dist/src/utils/memoryImportProcessor.js +24 -15
  437. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  438. package/dist/src/utils/sessionOperations.d.ts +19 -0
  439. package/dist/src/utils/sessionOperations.js +101 -0
  440. package/dist/src/utils/sessionOperations.js.map +1 -0
  441. package/dist/src/utils/sessionOperations.test.d.ts +6 -0
  442. package/dist/src/utils/sessionOperations.test.js +92 -0
  443. package/dist/src/utils/sessionOperations.test.js.map +1 -0
  444. package/dist/src/utils/shell-utils.d.ts +15 -0
  445. package/dist/src/utils/shell-utils.js +43 -2
  446. package/dist/src/utils/shell-utils.js.map +1 -1
  447. package/dist/src/utils/textUtils.d.ts +8 -0
  448. package/dist/src/utils/textUtils.js +16 -0
  449. package/dist/src/utils/textUtils.js.map +1 -1
  450. package/dist/src/utils/tokenCalculation.d.ts +2 -0
  451. package/dist/src/utils/tokenCalculation.js +2 -2
  452. package/dist/src/utils/tokenCalculation.js.map +1 -1
  453. package/dist/tsconfig.tsbuildinfo +1 -1
  454. package/package.json +1 -1
  455. package/dist/docs/get-started/examples.md +0 -141
  456. package/dist/google-gemini-cli-core-0.36.0-preview.7.tgz +0 -0
  457. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js +0 -164
  458. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js.map +0 -1
  459. package/dist/src/sandbox/macos/commandSafety.js.map +0 -1
  460. package/dist/src/services/chatCompressionService.js.map +0 -1
  461. package/dist/src/services/chatCompressionService.test.js.map +0 -1
  462. package/dist/src/services/contextManager.js.map +0 -1
  463. package/dist/src/services/contextManager.test.js.map +0 -1
  464. package/dist/src/services/toolOutputMaskingService.js.map +0 -1
  465. package/dist/src/services/toolOutputMaskingService.test.js.map +0 -1
  466. /package/dist/src/{services/toolOutputMaskingService.test.d.ts → agents/browser/snapshotSuperseder.test.d.ts} +0 -0
  467. /package/dist/src/{services → context}/chatCompressionService.d.ts +0 -0
  468. /package/dist/src/{services → context}/chatCompressionService.js +0 -0
  469. /package/dist/src/{services → context}/chatCompressionService.test.d.ts +0 -0
  470. /package/dist/src/{services → context}/chatCompressionService.test.js +0 -0
  471. /package/dist/src/{services → context}/contextManager.test.d.ts +0 -0
  472. /package/dist/src/{sandbox/macos/MacOsSandboxManager.integration.test.d.ts → services/sandboxManager.integration.test.d.ts} +0 -0
@@ -1,15 +1,29 @@
1
- # IDE integration
1
+ # IDE Integration
2
2
 
3
3
  Gemini CLI can integrate with your IDE to provide a more seamless and
4
4
  context-aware experience. This integration allows the CLI to understand your
5
5
  workspace better and enables powerful features like native in-editor diffing.
6
6
 
7
- Currently, the supported IDEs are [Antigravity](https://antigravity.google),
8
- [Visual Studio Code](https://code.visualstudio.com/), and other editors that
9
- support VS Code extensions. To build support for other editors, see the
10
- [IDE Companion Extension Spec](./ide-companion-spec.md).
7
+ There are two primary ways to integrate Gemini CLI with an IDE:
11
8
 
12
- ## Features
9
+ 1. **VS Code companion extension**: Install the "Gemini CLI Companion"
10
+ extension on [Antigravity](https://antigravity.google),
11
+ [Visual Studio Code](https://code.visualstudio.com/), or other VS Code
12
+ compatible editors.
13
+ 2. **Agent Client Protocol (ACP)**: An open protocol for interoperability
14
+ between AI coding agents and IDEs. This method is used for integrations with
15
+ tools like JetBrains and Zed, which leverage the ACP Agent Registry for easy
16
+ discovery and installation of compatible agents like Gemini CLI.
17
+
18
+ ## VS Code companion extension
19
+
20
+ The **Gemini CLI Companion extension** grants Gemini CLI direct access to your
21
+ VS Code compatible IDEs and improves your experience by providing real-time
22
+ context such as open files, cursor positions, and text selection. The extension
23
+ also enables a native diffing interface so you can seamlessly review and apply
24
+ AI-generated code changes directly within your editor.
25
+
26
+ ### Features
13
27
 
14
28
  - **Workspace context:** The CLI automatically gains awareness of your workspace
15
29
  to provide more relevant and accurate responses. This context includes:
@@ -19,8 +33,8 @@ support VS Code extensions. To build support for other editors, see the
19
33
  truncated).
20
34
 
21
35
  - **Native diffing:** When Gemini suggests code modifications, you can view the
22
- changes directly within your IDE's native diff viewer. This allows you to
23
- review, edit, and accept or reject the suggested changes seamlessly.
36
+ changes directly within your IDE's native diff viewer. This lets you review,
37
+ edit, and accept or reject the suggested changes seamlessly.
24
38
 
25
39
  - **VS Code commands:** You can access Gemini CLI features directly from the VS
26
40
  Code Command Palette (`Cmd+Shift+P` or `Ctrl+Shift+P`):
@@ -32,18 +46,18 @@ support VS Code extensions. To build support for other editors, see the
32
46
  - `Gemini CLI: View Third-Party Notices`: Displays the third-party notices for
33
47
  the extension.
34
48
 
35
- ## Installation and setup
49
+ ### Installation and setup
36
50
 
37
51
  There are three ways to set up the IDE integration:
38
52
 
39
- ### 1. Automatic nudge (recommended)
53
+ #### 1. Automatic nudge (recommended)
40
54
 
41
55
  When you run Gemini CLI inside a supported editor, it will automatically detect
42
56
  your environment and prompt you to connect. Answering "Yes" will automatically
43
57
  run the necessary setup, which includes installing the companion extension and
44
58
  enabling the connection.
45
59
 
46
- ### 2. Manual installation from CLI
60
+ #### 2. Manual installation from CLI
47
61
 
48
62
  If you previously dismissed the prompt or want to install the extension
49
63
  manually, you can run the following command inside Gemini CLI:
@@ -54,7 +68,7 @@ manually, you can run the following command inside Gemini CLI:
54
68
 
55
69
  This will find the correct extension for your IDE and install it.
56
70
 
57
- ### 3. Manual installation from a marketplace
71
+ #### 3. Manual installation from a marketplace
58
72
 
59
73
  You can also install the extension directly from a marketplace.
60
74
 
@@ -75,9 +89,9 @@ You can also install the extension directly from a marketplace.
75
89
  > After manually installing the extension, you must run `/ide enable` in the CLI
76
90
  > to activate the integration.
77
91
 
78
- ## Usage
92
+ ### Usage
79
93
 
80
- ### Enabling and disabling
94
+ #### Enabling and disabling
81
95
 
82
96
  You can control the IDE integration from within the CLI:
83
97
 
@@ -93,7 +107,7 @@ You can control the IDE integration from within the CLI:
93
107
  When enabled, Gemini CLI will automatically attempt to connect to the IDE
94
108
  companion extension.
95
109
 
96
- ### Checking the status
110
+ #### Checking the status
97
111
 
98
112
  To check the connection status and see the context the CLI has received from the
99
113
  IDE, run:
@@ -108,9 +122,9 @@ recently opened files it is aware of.
108
122
  <!-- prettier-ignore -->
109
123
  > [!NOTE]
110
124
  > The file list is limited to 10 recently accessed files within your
111
- > workspace and only includes local files on disk.)
125
+ > workspace and only includes local files on disk.
112
126
 
113
- ### Working with diffs
127
+ #### Working with diffs
114
128
 
115
129
  When you ask Gemini to modify a file, it can open a diff view directly in your
116
130
  editor.
@@ -135,6 +149,63 @@ accepting them.
135
149
  If you select ‘Allow for this session’ in the CLI, changes will no longer show
136
150
  up in the IDE as they will be auto-accepted.
137
151
 
152
+ ## Agent Client Protocol (ACP)
153
+
154
+ ACP is an open protocol that standardizes how AI coding agents communicate with
155
+ code editors and IDEs. It addresses the challenge of fragmented distribution,
156
+ where agents traditionally needed custom integrations for each client. With ACP,
157
+ developers can implement their agent once, and it becomes compatible with any
158
+ ACP-compliant editor.
159
+
160
+ For a comprehensive introduction to ACP, including its architecture and
161
+ benefits, refer to the official
162
+ [ACP Introduction](https://agentclientprotocol.com/get-started/introduction)
163
+ documentation.
164
+
165
+ ### The ACP Agent Registry
166
+
167
+ Gemini CLI is officially available in the **ACP Agent Registry**. This allows
168
+ you to install and update Gemini CLI directly within supporting IDEs and
169
+ eliminates the need for manual downloads or IDE-specific extensions.
170
+
171
+ Using the registry ensures:
172
+
173
+ - **Ease of use**: Discover and install agents directly within your IDE
174
+ settings.
175
+ - **Latest versions**: Ensures users always have access to the most up-to-date
176
+ agent implementations.
177
+
178
+ For more details on how the registry works, visit the official
179
+ [ACP Agent Registry](https://agentclientprotocol.com/get-started/registry) page.
180
+ You can learn about how specific IDEs leverage this integration in the following
181
+ section.
182
+
183
+ ### IDE-specific integration
184
+
185
+ Gemini CLI is an ACP-compatible agent available in the ACP Agent Registry.
186
+ Here’s how different IDEs leverage the ACP and the registry:
187
+
188
+ #### JetBrains IDEs
189
+
190
+ JetBrains IDEs (like IntelliJ IDEA, PyCharm, or GoLand) offer built-in registry
191
+ support, allowing users to find and install ACP-compatible agents directly.
192
+
193
+ For more details, refer to the official
194
+ [JetBrains AI Blog announcement](https://blog.jetbrains.com/ai/2026/01/acp-agent-registry/).
195
+
196
+ #### Zed
197
+
198
+ Zed, a modern code editor, also integrates with the ACP Agent Registry. This
199
+ allows Zed users to easily browse, install, and manage ACP agents.
200
+
201
+ Learn more about Zed's integration with the ACP Registry in their
202
+ [blog post](https://zed.dev/blog/acp-registry).
203
+
204
+ #### Other ACP-compatible IDEs
205
+
206
+ Any other IDE that supports the ACP Agent Registry can install Gemini CLI
207
+ directly through their in-built registry features.
208
+
138
209
  ## Using with sandboxing
139
210
 
140
211
  If you are using Gemini CLI within a sandbox, please be aware of the following:
@@ -151,10 +222,9 @@ If you are using Gemini CLI within a sandbox, please be aware of the following:
151
222
 
152
223
  ## Troubleshooting
153
224
 
154
- If you encounter issues with IDE integration, here are some common error
155
- messages and how to resolve them.
225
+ ### VS Code companion extension errors
156
226
 
157
- ### Connection errors
227
+ #### Connection errors
158
228
 
159
229
  - **Message:**
160
230
  `🔴 Disconnected: Failed to connect to IDE companion extension in [IDE Name]. Please ensure the extension is running. To install the extension, run /ide install.`
@@ -174,7 +244,7 @@ messages and how to resolve them.
174
244
  - **Solution:** Run `/ide enable` to try and reconnect. If the issue
175
245
  continues, open a new terminal window or restart your IDE.
176
246
 
177
- ### Manual PID override
247
+ #### Manual PID override
178
248
 
179
249
  If automatic IDE detection fails, or if you are running Gemini CLI in a
180
250
  standalone terminal and want to manually associate it with a specific IDE
@@ -196,7 +266,7 @@ $env:GEMINI_CLI_IDE_PID=12345
196
266
  When this variable is set, Gemini CLI will skip automatic detection and attempt
197
267
  to connect using the provided PID.
198
268
 
199
- ### Configuration errors
269
+ #### Configuration errors
200
270
 
201
271
  - **Message:**
202
272
  `🔴 Disconnected: Directory mismatch. Gemini CLI is running in a different location than the open workspace in [IDE Name]. Please run the CLI from one of the following directories: [List of directories]`
@@ -210,7 +280,7 @@ to connect using the provided PID.
210
280
  - **Cause:** You have no workspace open in your IDE.
211
281
  - **Solution:** Open a workspace in your IDE and restart the CLI.
212
282
 
213
- ### General errors
283
+ #### General errors
214
284
 
215
285
  - **Message:**
216
286
  `IDE integration is not supported in your current environment. To use this feature, run Gemini CLI in one of these supported IDEs: [List of IDEs]`
@@ -220,9 +290,14 @@ to connect using the provided PID.
220
290
  IDE, like Antigravity or VS Code.
221
291
 
222
292
  - **Message:**
223
- `No installer is available for IDE. Please install the Gemini CLI Companion extension manually from the marketplace.`
293
+ `No installer is available for IDE. Please install Gemini CLI Companion extension manually from the marketplace.`
224
294
  - **Cause:** You ran `/ide install`, but the CLI does not have an automated
225
295
  installer for your specific IDE.
226
296
  - **Solution:** Open your IDE's extension marketplace, search for "Gemini CLI
227
297
  Companion", and
228
298
  [install it manually](#3-manual-installation-from-a-marketplace).
299
+
300
+ ### ACP integration errors
301
+
302
+ For issues related to ACP integration, please refer to the debugging and
303
+ telemetry section in the [ACP Mode](../cli/acp-mode.md) documentation.
@@ -19,8 +19,6 @@ Jump in to Gemini CLI.
19
19
  on your system.
20
20
  - **[Authentication](./get-started/authentication.md):** Setup instructions for
21
21
  personal and enterprise accounts.
22
- - **[Examples](./get-started/examples.md):** Practical examples of Gemini CLI in
23
- action.
24
22
  - **[CLI cheatsheet](./cli/cli-reference.md):** A quick reference for common
25
23
  commands and options.
26
24
  - **[Gemini 3 on Gemini CLI](./get-started/gemini-3.md):** Learn about Gemini 3
@@ -13,6 +13,7 @@
13
13
  "/docs/faq": "/docs/resources/faq",
14
14
  "/docs/get-started/configuration": "/docs/reference/configuration",
15
15
  "/docs/get-started/configuration-v1": "/docs/reference/configuration",
16
+ "/docs/get-started/examples": "/docs/get-started/index",
16
17
  "/docs/index": "/docs",
17
18
  "/docs/quota-and-pricing": "/docs/resources/quota-and-pricing",
18
19
  "/docs/tos-privacy": "/docs/resources/tos-privacy",
@@ -17,8 +17,6 @@ Slash commands provide meta-level control over the CLI itself.
17
17
  ### `/agents`
18
18
 
19
19
  - **Description:** Manage local and remote subagents.
20
- - **Note:** This command is experimental and requires
21
- `experimental.enableAgents: true` in your `settings.json`.
22
20
  - **Sub-commands:**
23
21
  - **`list`**:
24
22
  - **Description:** Lists all discovered agents, including built-in, local,
@@ -305,7 +303,7 @@ Slash commands provide meta-level control over the CLI itself.
305
303
  - **Description:** Switch to Plan Mode (read-only) and view the current plan if
306
304
  one has been generated.
307
305
  - **Note:** This feature is enabled by default. It can be disabled via the
308
- `experimental.plan` setting in your configuration.
306
+ `general.plan.enabled` setting in your configuration.
309
307
  - **Sub-commands:**
310
308
  - **`copy`**:
311
309
  - **Description:** Copy the currently approved plan to your clipboard.
@@ -133,7 +133,7 @@ their corresponding top-level category object in your `settings.json` file.
133
133
 
134
134
  - **`general.enableNotifications`** (boolean):
135
135
  - **Description:** Enable run-event notifications for action-required prompts
136
- and session completion. Currently macOS only.
136
+ and session completion.
137
137
  - **Default:** `false`
138
138
 
139
139
  - **`general.checkpointing.enabled`** (boolean):
@@ -141,9 +141,15 @@ their corresponding top-level category object in your `settings.json` file.
141
141
  - **Default:** `false`
142
142
  - **Requires restart:** Yes
143
143
 
144
+ - **`general.plan.enabled`** (boolean):
145
+ - **Description:** Enable Plan Mode for read-only safety during planning.
146
+ - **Default:** `true`
147
+ - **Requires restart:** Yes
148
+
144
149
  - **`general.plan.directory`** (string):
145
150
  - **Description:** The directory where planning artifacts are stored. If not
146
- specified, defaults to the system temporary directory.
151
+ specified, defaults to the system temporary directory. A custom directory
152
+ requires a policy to allow write access in Plan Mode.
147
153
  - **Default:** `undefined`
148
154
  - **Requires restart:** Yes
149
155
 
@@ -256,6 +262,11 @@ their corresponding top-level category object in your `settings.json` file.
256
262
  - **Description:** Show the "? for shortcuts" hint above the input.
257
263
  - **Default:** `true`
258
264
 
265
+ - **`ui.compactToolOutput`** (boolean):
266
+ - **Description:** Display tool outputs (like directory listings and file
267
+ reads) in a compact, structured format.
268
+ - **Default:** `false`
269
+
259
270
  - **`ui.hideBanner`** (boolean):
260
271
  - **Description:** Hide the application banner
261
272
  - **Default:** `false`
@@ -669,6 +680,11 @@ their corresponding top-level category object in your `settings.json` file.
669
680
  "modelConfig": {
670
681
  "model": "gemini-3-pro-preview"
671
682
  }
683
+ },
684
+ "agent-history-provider-summarizer": {
685
+ "modelConfig": {
686
+ "model": "gemini-3-flash-preview"
687
+ }
672
688
  }
673
689
  }
674
690
  ```
@@ -854,6 +870,12 @@ their corresponding top-level category object in your `settings.json` file.
854
870
  "hasAccessToPreview": false
855
871
  },
856
872
  "target": "gemini-2.5-pro"
873
+ },
874
+ {
875
+ "condition": {
876
+ "useCustomTools": true
877
+ },
878
+ "target": "gemini-3.1-pro-preview-customtools"
857
879
  }
858
880
  ]
859
881
  },
@@ -1239,6 +1261,11 @@ their corresponding top-level category object in your `settings.json` file.
1239
1261
  - **Description:** Disable user input on browser window during automation.
1240
1262
  - **Default:** `true`
1241
1263
 
1264
+ - **`agents.browser.maxActionsPerTask`** (number):
1265
+ - **Description:** The maximum number of tool calls allowed per browser task.
1266
+ Enforcement is hard: the agent will be terminated when the limit is reached.
1267
+ - **Default:** `100`
1268
+
1242
1269
  - **`agents.browser.confirmSensitiveActions`** (boolean):
1243
1270
  - **Description:** Require manual confirmation for sensitive browser actions
1244
1271
  (e.g., fill_form, evaluate_script).
@@ -1270,6 +1297,18 @@ their corresponding top-level category object in your `settings.json` file.
1270
1297
  - **Description:** Maximum number of directories to search for memory.
1271
1298
  - **Default:** `200`
1272
1299
 
1300
+ - **`context.memoryBoundaryMarkers`** (array):
1301
+ - **Description:** File or directory names that mark the boundary for
1302
+ GEMINI.md discovery. The upward traversal stops at the first directory
1303
+ containing any of these markers. An empty array disables parent traversal.
1304
+ - **Default:**
1305
+
1306
+ ```json
1307
+ [".git"]
1308
+ ```
1309
+
1310
+ - **Requires restart:** Yes
1311
+
1273
1312
  - **`context.includeDirectories`** (array):
1274
1313
  - **Description:** Additional directories to include in the workspace context.
1275
1314
  Missing directories will be skipped with a warning.
@@ -1337,6 +1376,14 @@ their corresponding top-level category object in your `settings.json` file.
1337
1376
  - **Default:** `true`
1338
1377
  - **Requires restart:** Yes
1339
1378
 
1379
+ - **`tools.shell.backgroundCompletionBehavior`** (enum):
1380
+ - **Description:** Controls what happens when a background shell command
1381
+ finishes. 'silent' (default): quietly exits in background. 'inject':
1382
+ automatically returns output to agent. 'notify': shows brief message in
1383
+ chat.
1384
+ - **Default:** `"silent"`
1385
+ - **Values:** `"silent"`, `"inject"`, `"notify"`
1386
+
1340
1387
  - **`tools.shell.pager`** (string):
1341
1388
  - **Description:** The pager command to use for shell output. Defaults to
1342
1389
  `cat`.
@@ -1540,28 +1587,6 @@ their corresponding top-level category object in your `settings.json` file.
1540
1587
 
1541
1588
  #### `experimental`
1542
1589
 
1543
- - **`experimental.toolOutputMasking.enabled`** (boolean):
1544
- - **Description:** Enables tool output masking to save tokens.
1545
- - **Default:** `true`
1546
- - **Requires restart:** Yes
1547
-
1548
- - **`experimental.toolOutputMasking.toolProtectionThreshold`** (number):
1549
- - **Description:** Minimum number of tokens to protect from masking (most
1550
- recent tool outputs).
1551
- - **Default:** `50000`
1552
- - **Requires restart:** Yes
1553
-
1554
- - **`experimental.toolOutputMasking.minPrunableTokensThreshold`** (number):
1555
- - **Description:** Minimum prunable tokens required to trigger a masking pass.
1556
- - **Default:** `30000`
1557
- - **Requires restart:** Yes
1558
-
1559
- - **`experimental.toolOutputMasking.protectLatestTurn`** (boolean):
1560
- - **Description:** Ensures the absolute latest turn is never masked,
1561
- regardless of token count.
1562
- - **Default:** `true`
1563
- - **Requires restart:** Yes
1564
-
1565
1590
  - **`experimental.enableAgents`** (boolean):
1566
1591
  - **Description:** Enable local and remote subagents.
1567
1592
  - **Default:** `true`
@@ -1615,11 +1640,6 @@ their corresponding top-level category object in your `settings.json` file.
1615
1640
  configured to allow it).
1616
1641
  - **Default:** `false`
1617
1642
 
1618
- - **`experimental.plan`** (boolean):
1619
- - **Description:** Enable Plan Mode.
1620
- - **Default:** `true`
1621
- - **Requires restart:** Yes
1622
-
1623
1643
  - **`experimental.taskTracker`** (boolean):
1624
1644
  - **Description:** Enable task tracker tools.
1625
1645
  - **Default:** `false`
@@ -1665,6 +1685,11 @@ their corresponding top-level category object in your `settings.json` file.
1665
1685
  - **Default:** `false`
1666
1686
  - **Requires restart:** Yes
1667
1687
 
1688
+ - **`experimental.contextManagement`** (boolean):
1689
+ - **Description:** Enable logic for context management.
1690
+ - **Default:** `false`
1691
+ - **Requires restart:** Yes
1692
+
1668
1693
  - **`experimental.topicUpdateNarration`** (boolean):
1669
1694
  - **Description:** Enable the experimental Topic & Update communication model
1670
1695
  for reduced chattiness and structured progress reporting.
@@ -1756,6 +1781,69 @@ their corresponding top-level category object in your `settings.json` file.
1756
1781
  prioritize available tools dynamically.
1757
1782
  - **Default:** `[]`
1758
1783
 
1784
+ #### `contextManagement`
1785
+
1786
+ - **`contextManagement.historyWindow.maxTokens`** (number):
1787
+ - **Description:** The number of tokens to allow before triggering
1788
+ compression.
1789
+ - **Default:** `150000`
1790
+ - **Requires restart:** Yes
1791
+
1792
+ - **`contextManagement.historyWindow.retainedTokens`** (number):
1793
+ - **Description:** The number of tokens to always retain.
1794
+ - **Default:** `40000`
1795
+ - **Requires restart:** Yes
1796
+
1797
+ - **`contextManagement.messageLimits.normalMaxTokens`** (number):
1798
+ - **Description:** The target number of tokens to budget for a normal
1799
+ conversation turn.
1800
+ - **Default:** `2500`
1801
+ - **Requires restart:** Yes
1802
+
1803
+ - **`contextManagement.messageLimits.retainedMaxTokens`** (number):
1804
+ - **Description:** The maximum number of tokens a single conversation turn can
1805
+ consume before truncation.
1806
+ - **Default:** `12000`
1807
+ - **Requires restart:** Yes
1808
+
1809
+ - **`contextManagement.messageLimits.normalizationHeadRatio`** (number):
1810
+ - **Description:** The ratio of tokens to retain from the beginning of a
1811
+ truncated message (0.0 to 1.0).
1812
+ - **Default:** `0.25`
1813
+ - **Requires restart:** Yes
1814
+
1815
+ - **`contextManagement.tools.distillation.maxOutputTokens`** (number):
1816
+ - **Description:** Maximum tokens to show to the model when truncating large
1817
+ tool outputs.
1818
+ - **Default:** `10000`
1819
+ - **Requires restart:** Yes
1820
+
1821
+ - **`contextManagement.tools.distillation.summarizationThresholdTokens`**
1822
+ (number):
1823
+ - **Description:** Threshold above which truncated tool outputs will be
1824
+ summarized by an LLM.
1825
+ - **Default:** `20000`
1826
+ - **Requires restart:** Yes
1827
+
1828
+ - **`contextManagement.tools.outputMasking.protectionThresholdTokens`**
1829
+ (number):
1830
+ - **Description:** Minimum number of tokens to protect from masking (most
1831
+ recent tool outputs).
1832
+ - **Default:** `50000`
1833
+ - **Requires restart:** Yes
1834
+
1835
+ - **`contextManagement.tools.outputMasking.minPrunableThresholdTokens`**
1836
+ (number):
1837
+ - **Description:** Minimum prunable tokens required to trigger a masking pass.
1838
+ - **Default:** `30000`
1839
+ - **Requires restart:** Yes
1840
+
1841
+ - **`contextManagement.tools.outputMasking.protectLatestTurn`** (boolean):
1842
+ - **Description:** Ensures the absolute latest turn is never masked,
1843
+ regardless of token count.
1844
+ - **Default:** `true`
1845
+ - **Requires restart:** Yes
1846
+
1759
1847
  #### `admin`
1760
1848
 
1761
1849
  - **`admin.secureModeEnabled`** (boolean):
@@ -2148,37 +2236,14 @@ You can customize this behavior in your `settings.json` file:
2148
2236
  Arguments passed directly when running the CLI can override other configurations
2149
2237
  for that specific session.
2150
2238
 
2151
- - **`--model <model_name>`** (**`-m <model_name>`**):
2152
- - Specifies the Gemini model to use for this session.
2153
- - Example: `npm start -- --model gemini-3-pro-preview`
2154
- - **`--prompt <your_prompt>`** (**`-p <your_prompt>`**):
2155
- - **Deprecated:** Use positional arguments instead.
2156
- - Used to pass a prompt directly to the command. This invokes Gemini CLI in a
2157
- non-interactive mode.
2158
- - **`--prompt-interactive <your_prompt>`** (**`-i <your_prompt>`**):
2159
- - Starts an interactive session with the provided prompt as the initial input.
2160
- - The prompt is processed within the interactive session, not before it.
2161
- - Cannot be used when piping input from stdin.
2162
- - Example: `gemini -i "explain this code"`
2163
- - **`--output-format <format>`**:
2164
- - **Description:** Specifies the format of the CLI output for non-interactive
2165
- mode.
2166
- - **Values:**
2167
- - `text`: (Default) The standard human-readable output.
2168
- - `json`: A machine-readable JSON output.
2169
- - `stream-json`: A streaming JSON output that emits real-time events.
2170
- - **Note:** For structured output and scripting, use the
2171
- `--output-format json` or `--output-format stream-json` flag.
2172
- - **`--sandbox`** (**`-s`**):
2173
- - Enables sandbox mode for this session.
2174
- - **`--debug`** (**`-d`**):
2175
- - Enables debug mode for this session, providing more verbose output. Open the
2176
- debug console with F12 to see the additional logging.
2177
-
2178
- - **`--help`** (or **`-h`**):
2179
- - Displays help information about command-line arguments.
2180
- - **`--yolo`**:
2181
- - Enables YOLO mode, which automatically approves all tool calls.
2239
+ - **`--acp`**:
2240
+ - Starts the agent in Agent Communication Protocol (ACP) mode.
2241
+ - **`--allowed-mcp-server-names`**:
2242
+ - A comma-separated list of MCP server names to allow for the session.
2243
+ - **`--allowed-tools <tool1,tool2,...>`**:
2244
+ - A comma-separated list of tool names that will bypass the confirmation
2245
+ dialog.
2246
+ - Example: `gemini --allowed-tools "ShellTool(git status)"`
2182
2247
  - **`--approval-mode <mode>`**:
2183
2248
  - Sets the approval mode for tool calls. Available modes:
2184
2249
  - `default`: Prompt for approval on each tool call (default behavior)
@@ -2192,17 +2257,61 @@ for that specific session.
2192
2257
  - Cannot be used together with `--yolo`. Use `--approval-mode=yolo` instead of
2193
2258
  `--yolo` for the new unified approach.
2194
2259
  - Example: `gemini --approval-mode auto_edit`
2195
- - **`--allowed-tools <tool1,tool2,...>`**:
2196
- - A comma-separated list of tool names that will bypass the confirmation
2197
- dialog.
2198
- - Example: `gemini --allowed-tools "ShellTool(git status)"`
2260
+ - **`--debug`** (**`-d`**):
2261
+ - Enables debug mode for this session, providing more verbose output. Open the
2262
+ debug console with F12 to see the additional logging.
2263
+ - **`--delete-session <identifier>`**:
2264
+ - Delete a specific chat session by its index number or full session UUID.
2265
+ - Use `--list-sessions` first to see available sessions, their indices, and
2266
+ UUIDs.
2267
+ - Example: `gemini --delete-session 3` or
2268
+ `gemini --delete-session a1b2c3d4-e5f6-7890-abcd-ef1234567890`
2199
2269
  - **`--extensions <extension_name ...>`** (**`-e <extension_name ...>`**):
2200
2270
  - Specifies a list of extensions to use for the session. If not provided, all
2201
2271
  available extensions are used.
2202
2272
  - Use the special term `gemini -e none` to disable all extensions.
2203
2273
  - Example: `gemini -e my-extension -e my-other-extension`
2274
+ - **`--fake-responses`**:
2275
+ - Path to a file with fake model responses for testing.
2276
+ - **`--help`** (or **`-h`**):
2277
+ - Displays help information about command-line arguments.
2278
+ - **`--include-directories <dir1,dir2,...>`**:
2279
+ - Includes additional directories in the workspace for multi-directory
2280
+ support.
2281
+ - Can be specified multiple times or as comma-separated values.
2282
+ - 5 directories can be added at maximum.
2283
+ - Example: `--include-directories /path/to/project1,/path/to/project2` or
2284
+ `--include-directories /path/to/project1 --include-directories /path/to/project2`
2204
2285
  - **`--list-extensions`** (**`-l`**):
2205
2286
  - Lists all available extensions and exits.
2287
+ - **`--list-sessions`**:
2288
+ - List all available chat sessions for the current project and exit.
2289
+ - Shows session indices, dates, message counts, and preview of first user
2290
+ message.
2291
+ - Example: `gemini --list-sessions`
2292
+ - **`--model <model_name>`** (**`-m <model_name>`**):
2293
+ - Specifies the Gemini model to use for this session.
2294
+ - Example: `npm start -- --model gemini-3-pro-preview`
2295
+ - **`--output-format <format>`**:
2296
+ - **Description:** Specifies the format of the CLI output for non-interactive
2297
+ mode.
2298
+ - **Values:**
2299
+ - `text`: (Default) The standard human-readable output.
2300
+ - `json`: A machine-readable JSON output.
2301
+ - `stream-json`: A streaming JSON output that emits real-time events.
2302
+ - **Note:** For structured output and scripting, use the
2303
+ `--output-format json` or `--output-format stream-json` flag.
2304
+ - **`--prompt <your_prompt>`** (**`-p <your_prompt>`**):
2305
+ - **Deprecated:** Use positional arguments instead.
2306
+ - Used to pass a prompt directly to the command. This invokes Gemini CLI in a
2307
+ non-interactive mode.
2308
+ - **`--prompt-interactive <your_prompt>`** (**`-i <your_prompt>`**):
2309
+ - Starts an interactive session with the provided prompt as the initial input.
2310
+ - The prompt is processed within the interactive session, not before it.
2311
+ - Cannot be used when piping input from stdin.
2312
+ - Example: `gemini -i "explain this code"`
2313
+ - **`--record-responses`**:
2314
+ - Path to a file to record model responses for testing.
2206
2315
  - **`--resume [session_id]`** (**`-r [session_id]`**):
2207
2316
  - Resume a previous chat session. Use "latest" for the most recent session,
2208
2317
  provide a session index number, or provide a full session UUID.
@@ -2210,37 +2319,15 @@ for that specific session.
2210
2319
  - Example: `gemini --resume 5` or `gemini --resume latest` or
2211
2320
  `gemini --resume a1b2c3d4-e5f6-7890-abcd-ef1234567890` or `gemini --resume`
2212
2321
  - See [Session Management](../cli/session-management.md) for more details.
2213
- - **`--list-sessions`**:
2214
- - List all available chat sessions for the current project and exit.
2215
- - Shows session indices, dates, message counts, and preview of first user
2216
- message.
2217
- - Example: `gemini --list-sessions`
2218
- - **`--delete-session <identifier>`**:
2219
- - Delete a specific chat session by its index number or full session UUID.
2220
- - Use `--list-sessions` first to see available sessions, their indices, and
2221
- UUIDs.
2222
- - Example: `gemini --delete-session 3` or
2223
- `gemini --delete-session a1b2c3d4-e5f6-7890-abcd-ef1234567890`
2224
- - **`--include-directories <dir1,dir2,...>`**:
2225
- - Includes additional directories in the workspace for multi-directory
2226
- support.
2227
- - Can be specified multiple times or as comma-separated values.
2228
- - 5 directories can be added at maximum.
2229
- - Example: `--include-directories /path/to/project1,/path/to/project2` or
2230
- `--include-directories /path/to/project1 --include-directories /path/to/project2`
2322
+ - **`--sandbox`** (**`-s`**):
2323
+ - Enables sandbox mode for this session.
2231
2324
  - **`--screen-reader`**:
2232
2325
  - Enables screen reader mode, which adjusts the TUI for better compatibility
2233
2326
  with screen readers.
2234
2327
  - **`--version`**:
2235
2328
  - Displays the version of the CLI.
2236
- - **`--experimental-acp`**:
2237
- - Starts the agent in ACP mode.
2238
- - **`--allowed-mcp-server-names`**:
2239
- - Allowed MCP server names.
2240
- - **`--fake-responses`**:
2241
- - Path to a file with fake model responses for testing.
2242
- - **`--record-responses`**:
2243
- - Path to a file to record model responses for testing.
2329
+ - **`--yolo`**:
2330
+ - Enables YOLO mode, which automatically approves all tool calls.
2244
2331
 
2245
2332
  ## Context files (hierarchical instructional context)
2246
2333
 
@@ -2365,9 +2452,13 @@ can be based on the base sandbox image:
2365
2452
  ```dockerfile
2366
2453
  FROM gemini-cli-sandbox
2367
2454
 
2368
- # Add your custom dependencies or configurations here
2455
+ # Add your custom dependencies or configurations here.
2456
+ # Note: The base image runs as the non-root 'node' user.
2457
+ # You must switch to 'root' to install system packages.
2369
2458
  # For example:
2459
+ # USER root
2370
2460
  # RUN apt-get update && apt-get install -y some-package
2461
+ # USER node
2371
2462
  # COPY ./my-config /app/my-config
2372
2463
  ```
2373
2464