@google/gemini-cli-core 0.36.0 → 0.37.0-preview.1

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 (480) 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 +22 -11
  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 +36 -31
  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/google-gemini-cli-core-0.37.0-preview.0.tgz +0 -0
  29. package/dist/src/agents/agentLoader.d.ts +12 -12
  30. package/dist/src/agents/agentLoader.js +1 -0
  31. package/dist/src/agents/agentLoader.js.map +1 -1
  32. package/dist/src/agents/browser/automationOverlay.js +2 -10
  33. package/dist/src/agents/browser/automationOverlay.js.map +1 -1
  34. package/dist/src/agents/browser/browserAgentDefinition.js +10 -3
  35. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -1
  36. package/dist/src/agents/browser/browserAgentFactory.d.ts +4 -4
  37. package/dist/src/agents/browser/browserAgentFactory.js +15 -29
  38. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -1
  39. package/dist/src/agents/browser/browserAgentFactory.test.js +41 -24
  40. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -1
  41. package/dist/src/agents/browser/browserAgentInvocation.d.ts +1 -0
  42. package/dist/src/agents/browser/browserAgentInvocation.js +60 -27
  43. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -1
  44. package/dist/src/agents/browser/browserAgentInvocation.test.js +59 -5
  45. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -1
  46. package/dist/src/agents/browser/browserManager.d.ts +51 -8
  47. package/dist/src/agents/browser/browserManager.js +242 -70
  48. package/dist/src/agents/browser/browserManager.js.map +1 -1
  49. package/dist/src/agents/browser/browserManager.test.js +384 -17
  50. package/dist/src/agents/browser/browserManager.test.js.map +1 -1
  51. package/dist/src/agents/browser/inputBlocker.d.ts +4 -4
  52. package/dist/src/agents/browser/inputBlocker.js +8 -18
  53. package/dist/src/agents/browser/inputBlocker.js.map +1 -1
  54. package/dist/src/agents/browser/inputBlocker.test.js +31 -3
  55. package/dist/src/agents/browser/inputBlocker.test.js.map +1 -1
  56. package/dist/src/agents/browser/mcpToolWrapper.d.ts +1 -1
  57. package/dist/src/agents/browser/mcpToolWrapper.js +9 -6
  58. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -1
  59. package/dist/src/agents/browser/mcpToolWrapper.test.js +2 -2
  60. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -1
  61. package/dist/src/agents/browser/snapshotSuperseder.d.ts +31 -0
  62. package/dist/src/agents/browser/snapshotSuperseder.js +101 -0
  63. package/dist/src/agents/browser/snapshotSuperseder.js.map +1 -0
  64. package/dist/src/agents/browser/snapshotSuperseder.test.js +158 -0
  65. package/dist/src/agents/browser/snapshotSuperseder.test.js.map +1 -0
  66. package/dist/src/agents/local-executor.d.ts +4 -0
  67. package/dist/src/agents/local-executor.js +46 -19
  68. package/dist/src/agents/local-executor.js.map +1 -1
  69. package/dist/src/agents/local-executor.test.js +118 -18
  70. package/dist/src/agents/local-executor.test.js.map +1 -1
  71. package/dist/src/agents/local-invocation.d.ts +1 -0
  72. package/dist/src/agents/local-invocation.js +19 -9
  73. package/dist/src/agents/local-invocation.js.map +1 -1
  74. package/dist/src/agents/local-invocation.test.js +24 -0
  75. package/dist/src/agents/local-invocation.test.js.map +1 -1
  76. package/dist/src/agents/registry.js +16 -1
  77. package/dist/src/agents/registry.js.map +1 -1
  78. package/dist/src/agents/registry.test.js +67 -0
  79. package/dist/src/agents/registry.test.js.map +1 -1
  80. package/dist/src/agents/types.d.ts +9 -0
  81. package/dist/src/agents/types.js.map +1 -1
  82. package/dist/src/code_assist/oauth2.js +8 -3
  83. package/dist/src/code_assist/oauth2.js.map +1 -1
  84. package/dist/src/code_assist/oauth2.test.js +57 -0
  85. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  86. package/dist/src/code_assist/setup.js +5 -2
  87. package/dist/src/code_assist/setup.js.map +1 -1
  88. package/dist/src/code_assist/setup.test.js +27 -1
  89. package/dist/src/code_assist/setup.test.js.map +1 -1
  90. package/dist/src/code_assist/types.d.ts +80 -80
  91. package/dist/src/config/agent-loop-context.d.ts +2 -0
  92. package/dist/src/config/config.d.ts +81 -16
  93. package/dist/src/config/config.js +146 -50
  94. package/dist/src/config/config.js.map +1 -1
  95. package/dist/src/config/config.test.js +89 -2
  96. package/dist/src/config/config.test.js.map +1 -1
  97. package/dist/src/config/defaultModelConfigs.js +9 -0
  98. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  99. package/dist/src/config/memory.d.ts +1 -0
  100. package/dist/src/config/memory.js +6 -0
  101. package/dist/src/config/memory.js.map +1 -1
  102. package/dist/src/config/storage.d.ts +1 -0
  103. package/dist/src/config/storage.js +4 -0
  104. package/dist/src/config/storage.js.map +1 -1
  105. package/dist/src/config/storage.test.js +5 -0
  106. package/dist/src/config/storage.test.js.map +1 -1
  107. package/dist/src/config/topicState.d.ts +21 -0
  108. package/dist/src/config/topicState.js +41 -0
  109. package/dist/src/config/topicState.js.map +1 -0
  110. package/dist/src/confirmation-bus/types.d.ts +11 -2
  111. package/dist/src/confirmation-bus/types.js +2 -0
  112. package/dist/src/confirmation-bus/types.js.map +1 -1
  113. package/dist/src/context/agentHistoryProvider.d.ts +45 -0
  114. package/dist/src/context/agentHistoryProvider.js +298 -0
  115. package/dist/src/context/agentHistoryProvider.js.map +1 -0
  116. package/dist/src/context/agentHistoryProvider.test.d.ts +6 -0
  117. package/dist/src/context/agentHistoryProvider.test.js +394 -0
  118. package/dist/src/context/agentHistoryProvider.test.js.map +1 -0
  119. package/dist/src/context/chatCompressionService.js.map +1 -0
  120. package/dist/src/context/chatCompressionService.test.js.map +1 -0
  121. package/dist/src/{services → context}/contextManager.d.ts +2 -0
  122. package/dist/src/{services → context}/contextManager.js +18 -9
  123. package/dist/src/context/contextManager.js.map +1 -0
  124. package/dist/src/{services → context}/contextManager.test.js +21 -6
  125. package/dist/src/context/contextManager.test.js.map +1 -0
  126. package/dist/src/context/toolDistillationService.d.ts +38 -0
  127. package/dist/src/context/toolDistillationService.js +170 -0
  128. package/dist/src/context/toolDistillationService.js.map +1 -0
  129. package/dist/src/context/toolDistillationService.test.d.ts +6 -0
  130. package/dist/src/context/toolDistillationService.test.js +83 -0
  131. package/dist/src/context/toolDistillationService.test.js.map +1 -0
  132. package/dist/src/{services → context}/toolOutputMaskingService.d.ts +2 -2
  133. package/dist/src/{services → context}/toolOutputMaskingService.js +7 -7
  134. package/dist/src/context/toolOutputMaskingService.js.map +1 -0
  135. package/dist/src/context/toolOutputMaskingService.test.d.ts +6 -0
  136. package/dist/src/{services → context}/toolOutputMaskingService.test.js +4 -5
  137. package/dist/src/context/toolOutputMaskingService.test.js.map +1 -0
  138. package/dist/src/context/truncation.d.ts +26 -0
  139. package/dist/src/context/truncation.js +102 -0
  140. package/dist/src/context/truncation.js.map +1 -0
  141. package/dist/src/core/client.d.ts +3 -1
  142. package/dist/src/core/client.js +23 -13
  143. package/dist/src/core/client.js.map +1 -1
  144. package/dist/src/core/client.test.js +29 -34
  145. package/dist/src/core/client.test.js.map +1 -1
  146. package/dist/src/core/contentGenerator.d.ts +0 -1
  147. package/dist/src/core/contentGenerator.js +2 -28
  148. package/dist/src/core/contentGenerator.js.map +1 -1
  149. package/dist/src/core/contentGenerator.test.js +1 -101
  150. package/dist/src/core/contentGenerator.test.js.map +1 -1
  151. package/dist/src/core/geminiChat.js +4 -5
  152. package/dist/src/core/geminiChat.js.map +1 -1
  153. package/dist/src/core/geminiChat.test.js +71 -18
  154. package/dist/src/core/geminiChat.test.js.map +1 -1
  155. package/dist/src/core/prompts-substitution.test.js +5 -0
  156. package/dist/src/core/prompts-substitution.test.js.map +1 -1
  157. package/dist/src/core/prompts.test.js +3 -0
  158. package/dist/src/core/prompts.test.js.map +1 -1
  159. package/dist/src/generated/git-commit.d.ts +2 -2
  160. package/dist/src/generated/git-commit.js +2 -2
  161. package/dist/src/generated/git-commit.js.map +1 -1
  162. package/dist/src/index.d.ts +7 -3
  163. package/dist/src/index.js +9 -5
  164. package/dist/src/index.js.map +1 -1
  165. package/dist/src/policy/config.d.ts +1 -1
  166. package/dist/src/policy/config.js +61 -24
  167. package/dist/src/policy/config.js.map +1 -1
  168. package/dist/src/policy/persistence.test.js +42 -0
  169. package/dist/src/policy/persistence.test.js.map +1 -1
  170. package/dist/src/policy/policies/discovered.toml +7 -0
  171. package/dist/src/policy/policies/non-interactive.toml +7 -0
  172. package/dist/src/policy/policies/plan.toml +25 -0
  173. package/dist/src/policy/policies/read-only.toml +6 -0
  174. package/dist/src/policy/policies/sandbox-default.toml +3 -2
  175. package/dist/src/policy/policies/write.toml +21 -0
  176. package/dist/src/policy/policies/yolo.toml +1 -1
  177. package/dist/src/policy/policy-engine.d.ts +2 -4
  178. package/dist/src/policy/policy-engine.js +24 -37
  179. package/dist/src/policy/policy-engine.js.map +1 -1
  180. package/dist/src/policy/policy-engine.test.js +107 -29
  181. package/dist/src/policy/policy-engine.test.js.map +1 -1
  182. package/dist/src/policy/topic-policy.test.d.ts +6 -0
  183. package/dist/src/policy/topic-policy.test.js +48 -0
  184. package/dist/src/policy/topic-policy.test.js.map +1 -0
  185. package/dist/src/policy/types.d.ts +9 -6
  186. package/dist/src/policy/types.js +11 -0
  187. package/dist/src/policy/types.js.map +1 -1
  188. package/dist/src/prompts/promptProvider.js +20 -4
  189. package/dist/src/prompts/promptProvider.js.map +1 -1
  190. package/dist/src/prompts/promptProvider.test.js +84 -1
  191. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  192. package/dist/src/prompts/snippets-memory-manager.test.js +1 -1
  193. package/dist/src/prompts/snippets-memory-manager.test.js.map +1 -1
  194. package/dist/src/prompts/snippets.d.ts +3 -4
  195. package/dist/src/prompts/snippets.js +33 -51
  196. package/dist/src/prompts/snippets.js.map +1 -1
  197. package/dist/src/prompts/snippets.legacy.d.ts +6 -4
  198. package/dist/src/prompts/snippets.legacy.js +32 -7
  199. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  200. package/dist/src/sandbox/linux/LinuxSandboxManager.d.ts +11 -1
  201. package/dist/src/sandbox/linux/LinuxSandboxManager.js +261 -27
  202. package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
  203. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js +430 -125
  204. package/dist/src/sandbox/linux/LinuxSandboxManager.test.js.map +1 -1
  205. package/dist/src/sandbox/macos/MacOsSandboxManager.d.ts +7 -22
  206. package/dist/src/sandbox/macos/MacOsSandboxManager.js +58 -57
  207. package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
  208. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js +148 -103
  209. package/dist/src/sandbox/macos/MacOsSandboxManager.test.js.map +1 -1
  210. package/dist/src/sandbox/macos/baseProfile.d.ts +1 -1
  211. package/dist/src/sandbox/macos/baseProfile.js +0 -6
  212. package/dist/src/sandbox/macos/baseProfile.js.map +1 -1
  213. package/dist/src/sandbox/macos/seatbeltArgsBuilder.d.ts +10 -10
  214. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +80 -92
  215. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
  216. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js +135 -99
  217. package/dist/src/sandbox/macos/seatbeltArgsBuilder.test.js.map +1 -1
  218. package/dist/src/sandbox/{macos → utils}/commandSafety.d.ts +11 -0
  219. package/dist/src/sandbox/{macos → utils}/commandSafety.js +47 -14
  220. package/dist/src/sandbox/utils/commandSafety.js.map +1 -0
  221. package/dist/src/sandbox/utils/commandUtils.d.ts +9 -0
  222. package/dist/src/sandbox/utils/commandUtils.js +57 -0
  223. package/dist/src/sandbox/utils/commandUtils.js.map +1 -0
  224. package/dist/src/sandbox/utils/fsUtils.d.ts +11 -0
  225. package/dist/src/sandbox/utils/fsUtils.js +82 -0
  226. package/dist/src/sandbox/utils/fsUtils.js.map +1 -0
  227. package/dist/src/sandbox/utils/sandboxDenialUtils.d.ts +12 -0
  228. package/dist/src/sandbox/utils/sandboxDenialUtils.js +68 -0
  229. package/dist/src/sandbox/utils/sandboxDenialUtils.js.map +1 -0
  230. package/dist/src/sandbox/utils/sandboxDenialUtils.test.d.ts +6 -0
  231. package/dist/src/sandbox/utils/sandboxDenialUtils.test.js +37 -0
  232. package/dist/src/sandbox/utils/sandboxDenialUtils.test.js.map +1 -0
  233. package/dist/src/sandbox/utils/sandboxReadWriteUtils.d.ts +5 -0
  234. package/dist/src/sandbox/utils/sandboxReadWriteUtils.js +60 -0
  235. package/dist/src/sandbox/utils/sandboxReadWriteUtils.js.map +1 -0
  236. package/dist/src/sandbox/windows/GeminiSandbox.cs +257 -216
  237. package/dist/src/sandbox/windows/WindowsSandboxManager.d.ts +12 -2
  238. package/dist/src/sandbox/windows/WindowsSandboxManager.js +250 -38
  239. package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
  240. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js +326 -9
  241. package/dist/src/sandbox/windows/WindowsSandboxManager.test.js.map +1 -1
  242. package/dist/src/sandbox/windows/commandSafety.d.ts +19 -0
  243. package/dist/src/sandbox/windows/commandSafety.js +128 -0
  244. package/dist/src/sandbox/windows/commandSafety.js.map +1 -0
  245. package/dist/src/sandbox/windows/commandSafety.test.d.ts +6 -0
  246. package/dist/src/sandbox/windows/commandSafety.test.js +42 -0
  247. package/dist/src/sandbox/windows/commandSafety.test.js.map +1 -0
  248. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.d.ts +12 -0
  249. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js +68 -0
  250. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.js.map +1 -0
  251. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.d.ts +6 -0
  252. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js +68 -0
  253. package/dist/src/sandbox/windows/windowsSandboxDenialUtils.test.js.map +1 -0
  254. package/dist/src/scheduler/policy.js +20 -5
  255. package/dist/src/scheduler/policy.js.map +1 -1
  256. package/dist/src/scheduler/policy.test.js +80 -0
  257. package/dist/src/scheduler/policy.test.js.map +1 -1
  258. package/dist/src/scheduler/scheduler.js +12 -2
  259. package/dist/src/scheduler/scheduler.js.map +1 -1
  260. package/dist/src/scheduler/scheduler.test.js +52 -0
  261. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  262. package/dist/src/scheduler/scheduler_hooks.test.js +1 -0
  263. package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
  264. package/dist/src/scheduler/state-manager.js +1 -1
  265. package/dist/src/scheduler/state-manager.js.map +1 -1
  266. package/dist/src/scheduler/state-manager.test.js +10 -0
  267. package/dist/src/scheduler/state-manager.test.js.map +1 -1
  268. package/dist/src/scheduler/tool-executor.js +7 -2
  269. package/dist/src/scheduler/tool-executor.js.map +1 -1
  270. package/dist/src/scheduler/tool-executor.test.js +38 -0
  271. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  272. package/dist/src/scheduler/types.d.ts +4 -2
  273. package/dist/src/services/chatRecordingService.d.ts +1 -13
  274. package/dist/src/services/chatRecordingService.js +45 -46
  275. package/dist/src/services/chatRecordingService.js.map +1 -1
  276. package/dist/src/services/chatRecordingService.test.js +79 -10
  277. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  278. package/dist/src/services/executionLifecycleService.d.ts +43 -6
  279. package/dist/src/services/executionLifecycleService.js +49 -12
  280. package/dist/src/services/executionLifecycleService.js.map +1 -1
  281. package/dist/src/services/executionLifecycleService.test.js +157 -3
  282. package/dist/src/services/executionLifecycleService.test.js.map +1 -1
  283. package/dist/src/services/fileDiscoveryService.d.ts +17 -2
  284. package/dist/src/services/fileDiscoveryService.js +84 -20
  285. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  286. package/dist/src/services/fileDiscoveryService.test.js +67 -1
  287. package/dist/src/services/fileDiscoveryService.test.js.map +1 -1
  288. package/dist/src/services/modelConfigService.d.ts +11 -0
  289. package/dist/src/services/modelConfigService.js +67 -0
  290. package/dist/src/services/modelConfigService.js.map +1 -1
  291. package/dist/src/services/modelConfigService.test.js +30 -0
  292. package/dist/src/services/modelConfigService.test.js.map +1 -1
  293. package/dist/src/services/sandboxManager.d.ts +90 -8
  294. package/dist/src/services/sandboxManager.integration.test.js +438 -0
  295. package/dist/src/services/sandboxManager.integration.test.js.map +1 -0
  296. package/dist/src/services/sandboxManager.js +156 -13
  297. package/dist/src/services/sandboxManager.js.map +1 -1
  298. package/dist/src/services/sandboxManager.test.js +373 -117
  299. package/dist/src/services/sandboxManager.test.js.map +1 -1
  300. package/dist/src/services/sandboxManagerFactory.d.ts +2 -3
  301. package/dist/src/services/sandboxManagerFactory.js +10 -17
  302. package/dist/src/services/sandboxManagerFactory.js.map +1 -1
  303. package/dist/src/services/sandboxedFileSystemService.d.ts +1 -0
  304. package/dist/src/services/sandboxedFileSystemService.js +32 -3
  305. package/dist/src/services/sandboxedFileSystemService.js.map +1 -1
  306. package/dist/src/services/sandboxedFileSystemService.test.js +83 -12
  307. package/dist/src/services/sandboxedFileSystemService.test.js.map +1 -1
  308. package/dist/src/services/shellExecutionService.d.ts +2 -0
  309. package/dist/src/services/shellExecutionService.js +45 -16
  310. package/dist/src/services/shellExecutionService.js.map +1 -1
  311. package/dist/src/services/shellExecutionService.test.js +5 -4
  312. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  313. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +4 -0
  314. package/dist/src/services/test-data/resolved-aliases.golden.json +4 -0
  315. package/dist/src/services/types.d.ts +14 -0
  316. package/dist/src/services/types.js +7 -0
  317. package/dist/src/services/types.js.map +1 -0
  318. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +6 -0
  319. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  320. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +5 -1
  321. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  322. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -1
  323. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +3 -1
  324. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  325. package/dist/src/telemetry/loggers.js +1 -1
  326. package/dist/src/telemetry/loggers.js.map +1 -1
  327. package/dist/src/telemetry/loggers.test.js +8 -3
  328. package/dist/src/telemetry/loggers.test.js.map +1 -1
  329. package/dist/src/telemetry/metrics.d.ts +10 -1
  330. package/dist/src/telemetry/metrics.js +19 -4
  331. package/dist/src/telemetry/metrics.js.map +1 -1
  332. package/dist/src/telemetry/metrics.test.js +44 -0
  333. package/dist/src/telemetry/metrics.test.js.map +1 -1
  334. package/dist/src/telemetry/types.d.ts +3 -3
  335. package/dist/src/telemetry/types.js +9 -4
  336. package/dist/src/telemetry/types.js.map +1 -1
  337. package/dist/src/test-utils/mock-message-bus.d.ts +1 -1
  338. package/dist/src/test-utils/mock-message-bus.js +1 -1
  339. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  340. package/dist/src/tools/definitions/base-declarations.d.ts +6 -0
  341. package/dist/src/tools/definitions/base-declarations.js +7 -0
  342. package/dist/src/tools/definitions/base-declarations.js.map +1 -1
  343. package/dist/src/tools/definitions/coreTools.d.ts +2 -1
  344. package/dist/src/tools/definitions/coreTools.js +9 -3
  345. package/dist/src/tools/definitions/coreTools.js.map +1 -1
  346. package/dist/src/tools/definitions/dynamic-declaration-helpers.d.ts +4 -0
  347. package/dist/src/tools/definitions/dynamic-declaration-helpers.js +29 -2
  348. package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
  349. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +11 -6
  350. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  351. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +10 -4
  352. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  353. package/dist/src/tools/definitions/trackerTools.js +3 -3
  354. package/dist/src/tools/definitions/trackerTools.js.map +1 -1
  355. package/dist/src/tools/definitions/types.d.ts +1 -0
  356. package/dist/src/tools/enter-plan-mode.js +15 -0
  357. package/dist/src/tools/enter-plan-mode.js.map +1 -1
  358. package/dist/src/tools/enter-plan-mode.test.js +25 -0
  359. package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
  360. package/dist/src/tools/grep-utils.d.ts +2 -1
  361. package/dist/src/tools/grep-utils.js +22 -3
  362. package/dist/src/tools/grep-utils.js.map +1 -1
  363. package/dist/src/tools/grep.js +16 -3
  364. package/dist/src/tools/grep.js.map +1 -1
  365. package/dist/src/tools/grep.test.js +34 -6
  366. package/dist/src/tools/grep.test.js.map +1 -1
  367. package/dist/src/tools/ls.js +6 -4
  368. package/dist/src/tools/ls.js.map +1 -1
  369. package/dist/src/tools/ls.test.js +22 -7
  370. package/dist/src/tools/ls.test.js.map +1 -1
  371. package/dist/src/tools/mcp-client-manager.js +6 -3
  372. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  373. package/dist/src/tools/mcp-client-manager.test.js +35 -0
  374. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  375. package/dist/src/tools/memoryTool.d.ts +9 -2
  376. package/dist/src/tools/memoryTool.js +39 -15
  377. package/dist/src/tools/memoryTool.js.map +1 -1
  378. package/dist/src/tools/memoryTool.test.js +61 -2
  379. package/dist/src/tools/memoryTool.test.js.map +1 -1
  380. package/dist/src/tools/read-many-files.js +12 -4
  381. package/dist/src/tools/read-many-files.js.map +1 -1
  382. package/dist/src/tools/read-many-files.test.js +17 -17
  383. package/dist/src/tools/read-many-files.test.js.map +1 -1
  384. package/dist/src/tools/ripGrep.js +14 -1
  385. package/dist/src/tools/ripGrep.js.map +1 -1
  386. package/dist/src/tools/ripGrep.test.js +9 -9
  387. package/dist/src/tools/ripGrep.test.js.map +1 -1
  388. package/dist/src/tools/shell.d.ts +10 -0
  389. package/dist/src/tools/shell.js +97 -124
  390. package/dist/src/tools/shell.js.map +1 -1
  391. package/dist/src/tools/shell.test.js +22 -3
  392. package/dist/src/tools/shell.test.js.map +1 -1
  393. package/dist/src/tools/tool-names.d.ts +4 -4
  394. package/dist/src/tools/tool-names.js +5 -3
  395. package/dist/src/tools/tool-names.js.map +1 -1
  396. package/dist/src/tools/tool-registry.js +11 -1
  397. package/dist/src/tools/tool-registry.js.map +1 -1
  398. package/dist/src/tools/tool-registry.test.js +43 -1
  399. package/dist/src/tools/tool-registry.test.js.map +1 -1
  400. package/dist/src/tools/tools.d.ts +12 -1
  401. package/dist/src/tools/tools.js +15 -0
  402. package/dist/src/tools/tools.js.map +1 -1
  403. package/dist/src/tools/tools.test.js +42 -1
  404. package/dist/src/tools/tools.test.js.map +1 -1
  405. package/dist/src/tools/topicTool.d.ts +29 -0
  406. package/dist/src/tools/topicTool.js +72 -0
  407. package/dist/src/tools/topicTool.js.map +1 -0
  408. package/dist/src/tools/topicTool.test.d.ts +6 -0
  409. package/dist/src/tools/topicTool.test.js +105 -0
  410. package/dist/src/tools/topicTool.test.js.map +1 -0
  411. package/dist/src/tools/web-fetch.js +38 -20
  412. package/dist/src/tools/web-fetch.js.map +1 -1
  413. package/dist/src/tools/web-fetch.test.js +28 -0
  414. package/dist/src/tools/web-fetch.test.js.map +1 -1
  415. package/dist/src/utils/checkpointUtils.d.ts +4 -4
  416. package/dist/src/utils/errors.d.ts +3 -0
  417. package/dist/src/utils/errors.js +28 -6
  418. package/dist/src/utils/errors.js.map +1 -1
  419. package/dist/src/utils/errors.test.js +23 -0
  420. package/dist/src/utils/errors.test.js.map +1 -1
  421. package/dist/src/utils/getFolderStructure.js +1 -1
  422. package/dist/src/utils/getFolderStructure.js.map +1 -1
  423. package/dist/src/utils/gitIgnoreParser.d.ts +2 -2
  424. package/dist/src/utils/gitIgnoreParser.js +28 -50
  425. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  426. package/dist/src/utils/gitIgnoreParser.test.js +51 -185
  427. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  428. package/dist/src/utils/ignoreFileParser.d.ts +2 -2
  429. package/dist/src/utils/ignoreFileParser.js +6 -17
  430. package/dist/src/utils/ignoreFileParser.js.map +1 -1
  431. package/dist/src/utils/ignoreFileParser.test.js +40 -132
  432. package/dist/src/utils/ignoreFileParser.test.js.map +1 -1
  433. package/dist/src/utils/ignorePathUtils.d.ts +11 -0
  434. package/dist/src/utils/ignorePathUtils.js +39 -0
  435. package/dist/src/utils/ignorePathUtils.js.map +1 -0
  436. package/dist/src/utils/ignorePathUtils.test.d.ts +6 -0
  437. package/dist/src/utils/ignorePathUtils.test.js +70 -0
  438. package/dist/src/utils/ignorePathUtils.test.js.map +1 -0
  439. package/dist/src/utils/memoryDiscovery.d.ts +6 -4
  440. package/dist/src/utils/memoryDiscovery.js +66 -41
  441. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  442. package/dist/src/utils/memoryDiscovery.test.js +40 -0
  443. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  444. package/dist/src/utils/memoryImportProcessor.d.ts +1 -1
  445. package/dist/src/utils/memoryImportProcessor.js +24 -15
  446. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  447. package/dist/src/utils/sessionOperations.d.ts +19 -0
  448. package/dist/src/utils/sessionOperations.js +101 -0
  449. package/dist/src/utils/sessionOperations.js.map +1 -0
  450. package/dist/src/utils/sessionOperations.test.d.ts +6 -0
  451. package/dist/src/utils/sessionOperations.test.js +92 -0
  452. package/dist/src/utils/sessionOperations.test.js.map +1 -0
  453. package/dist/src/utils/shell-utils.d.ts +15 -0
  454. package/dist/src/utils/shell-utils.js +43 -2
  455. package/dist/src/utils/shell-utils.js.map +1 -1
  456. package/dist/src/utils/textUtils.d.ts +8 -0
  457. package/dist/src/utils/textUtils.js +16 -0
  458. package/dist/src/utils/textUtils.js.map +1 -1
  459. package/dist/src/utils/tokenCalculation.d.ts +2 -0
  460. package/dist/src/utils/tokenCalculation.js +2 -2
  461. package/dist/src/utils/tokenCalculation.js.map +1 -1
  462. package/dist/tsconfig.tsbuildinfo +1 -1
  463. package/package.json +1 -1
  464. package/dist/docs/get-started/examples.md +0 -141
  465. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js +0 -164
  466. package/dist/src/sandbox/macos/MacOsSandboxManager.integration.test.js.map +0 -1
  467. package/dist/src/sandbox/macos/commandSafety.js.map +0 -1
  468. package/dist/src/services/chatCompressionService.js.map +0 -1
  469. package/dist/src/services/chatCompressionService.test.js.map +0 -1
  470. package/dist/src/services/contextManager.js.map +0 -1
  471. package/dist/src/services/contextManager.test.js.map +0 -1
  472. package/dist/src/services/toolOutputMaskingService.js.map +0 -1
  473. package/dist/src/services/toolOutputMaskingService.test.js.map +0 -1
  474. /package/dist/src/{services/toolOutputMaskingService.test.d.ts → agents/browser/snapshotSuperseder.test.d.ts} +0 -0
  475. /package/dist/src/{services → context}/chatCompressionService.d.ts +0 -0
  476. /package/dist/src/{services → context}/chatCompressionService.js +0 -0
  477. /package/dist/src/{services → context}/chatCompressionService.test.d.ts +0 -0
  478. /package/dist/src/{services → context}/chatCompressionService.test.js +0 -0
  479. /package/dist/src/{services → context}/contextManager.test.d.ts +0 -0
  480. /package/dist/src/{sandbox/macos/MacOsSandboxManager.integration.test.d.ts → services/sandboxManager.integration.test.d.ts} +0 -0
@@ -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
 
@@ -86,12 +86,13 @@ available combinations.
86
86
 
87
87
  #### Text Input
88
88
 
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` |
89
+ | Command | Action | Keys |
90
+ | -------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
91
+ | `input.submit` | Submit the current prompt. | `Enter` |
92
+ | `input.queueMessage` | Queue the current prompt to be processed after the current task finishes. | `Tab` |
93
+ | `input.newline` | Insert a newline without submitting. | `Ctrl+Enter`<br />`Cmd/Win+Enter`<br />`Alt+Enter`<br />`Shift+Enter`<br />`Ctrl+J` |
94
+ | `input.openExternalEditor` | Open the current prompt or the plan in an external editor. | `Ctrl+X` |
95
+ | `input.paste` | Paste from the clipboard. | `Ctrl+V`<br />`Cmd/Win+V`<br />`Alt+V` |
95
96
 
96
97
  #### App Controls
97
98
 
@@ -126,6 +127,13 @@ available combinations.
126
127
  | `background.unfocusList` | Move focus from background shell list to Gemini. | `Tab` |
127
128
  | `background.unfocusWarning` | Show warning when trying to move focus away from background shell. | `Tab` |
128
129
 
130
+ #### Extension Controls
131
+
132
+ | Command | Action | Keys |
133
+ | ------------------ | ------------------------------------------- | ---- |
134
+ | `extension.update` | Update the current extension if available. | `I` |
135
+ | `extension.link` | Link the current extension to a local path. | `L` |
136
+
129
137
  <!-- KEYBINDINGS-AUTOGEN:END -->
130
138
 
131
139
  ## Customizing Keybindings
@@ -29,13 +29,12 @@ To create your first policy:
29
29
  ```toml
30
30
  [[rule]]
31
31
  toolName = "run_shell_command"
32
- commandPrefix = "git status"
33
- decision = "allow"
32
+ commandPrefix = "rm -rf"
33
+ decision = "deny"
34
34
  priority = 100
35
35
  ```
36
36
  3. **Run a command** that triggers the policy (e.g., ask Gemini CLI to
37
- `git status`). The tool will now execute automatically without prompting for
38
- confirmation.
37
+ `rm -rf /`). The tool will now be blocked automatically.
39
38
 
40
39
  ## Core concepts
41
40
 
@@ -143,25 +142,26 @@ engine transforms this into a final priority using the following formula:
143
142
 
144
143
  This system guarantees that:
145
144
 
146
- - Admin policies always override User, Workspace, and Default policies.
145
+ - Admin policies always override User, Workspace, and Default policies (defined
146
+ in policy TOML files).
147
147
  - User policies override Workspace and Default policies.
148
148
  - Workspace policies override Default policies.
149
149
  - You can still order rules within a single tier with fine-grained control.
150
150
 
151
151
  For example:
152
152
 
153
- - A `priority: 50` rule in a Default policy file becomes `1.050`.
154
- - A `priority: 10` rule in a Workspace policy policy file becomes `2.010`.
155
- - A `priority: 100` rule in a User policy file becomes `3.100`.
156
- - A `priority: 20` rule in an Admin policy file becomes `4.020`.
153
+ - A `priority: 50` rule in a Default policy TOML becomes `1.050`.
154
+ - A `priority: 10` rule in a Workspace policy TOML becomes `2.010`.
155
+ - A `priority: 100` rule in a User policy TOML becomes `3.100`.
156
+ - A `priority: 20` rule in an Admin policy TOML becomes `4.020`.
157
157
 
158
158
  ### Approval modes
159
159
 
160
160
  Approval modes allow the policy engine to apply different sets of rules based on
161
- the CLI's operational mode. A rule can be associated with one or more modes
162
- (e.g., `yolo`, `autoEdit`, `plan`). The rule will only be active if the CLI is
163
- running in one of its specified modes. If a rule has no modes specified, it is
164
- always active.
161
+ the CLI's operational mode. A rule in a TOML policy file can be associated with
162
+ one or more modes (e.g., `yolo`, `autoEdit`, `plan`). The rule will only be
163
+ active if the CLI is running in one of its specified modes. If a rule has no
164
+ modes specified, it is always active.
165
165
 
166
166
  - `default`: The standard interactive mode where most write tools require
167
167
  confirmation.
@@ -171,6 +171,24 @@ always active.
171
171
  [Customizing Plan Mode Policies](../cli/plan-mode.md#customizing-policies).
172
172
  - `yolo`: A mode where all tools are auto-approved (use with extreme caution).
173
173
 
174
+ To maintain the integrity of Plan Mode as a safe research environment,
175
+ persistent tool approvals are context-aware. When you select **"Allow for all
176
+ future sessions"**, the policy engine explicitly includes the current mode and
177
+ all more permissive modes in the hierarchy (`plan` < `default` < `autoEdit` <
178
+ `yolo`).
179
+
180
+ - **Approvals in `plan` mode**: These represent an intentional choice to trust a
181
+ tool globally. The resulting rule explicitly includes all modes (`plan`,
182
+ `default`, `autoEdit`, and `yolo`).
183
+ - **Approvals in other modes**: These only apply to the current mode and those
184
+ more permissive. For example:
185
+ - An approval granted in **`default`** mode applies to `default`, `autoEdit`,
186
+ and `yolo`.
187
+ - An approval granted in **`autoEdit`** mode applies to `autoEdit` and `yolo`.
188
+ - An approval granted in **`yolo`** mode applies only to `yolo`. This ensures
189
+ that trust flows correctly to more permissive environments while maintaining
190
+ the safety of more restricted modes like `plan`.
191
+
174
192
  ## Rule matching
175
193
 
176
194
  When a tool call is made, the engine checks it against all active rules,
@@ -179,8 +197,8 @@ outcome.
179
197
 
180
198
  A rule matches a tool call if all of its conditions are met:
181
199
 
182
- 1. **Tool name**: The `toolName` in the rule must match the name of the tool
183
- being called.
200
+ 1. **Tool name**: The `toolName` in the TOML rule must match the name of the
201
+ tool being called.
184
202
  - **Wildcards**: You can use wildcards like `*`, `mcp_server_*`, or
185
203
  `mcp_*_toolName` to match multiple tools. See [Tool Name](#tool-name) for
186
204
  details.
@@ -264,7 +282,7 @@ toolName = "run_shell_command"
264
282
 
265
283
  # (Optional) The name of a subagent. If provided, the rule only applies to tool
266
284
  # calls made by this specific subagent.
267
- subagent = "generalist"
285
+ subagent = "codebase_investigator"
268
286
 
269
287
  # (Optional) The name of an MCP server. Can be combined with toolName
270
288
  # to form a composite FQN internally like "mcp_mcpName_toolName".
@@ -304,7 +322,8 @@ priority = 10
304
322
  denyMessage = "Deletion is permanent"
305
323
 
306
324
  # (Optional) An array of approval modes where this rule is active.
307
- modes = ["autoEdit"]
325
+ # If omitted or empty, the rule applies to all modes.
326
+ modes = ["default", "autoEdit", "yolo"]
308
327
 
309
328
  # (Optional) A boolean to restrict the rule to interactive (true) or
310
329
  # non-interactive (false) environments.
@@ -419,20 +438,6 @@ decision = "ask_user"
419
438
  priority = 10
420
439
  ```
421
440
 
422
- **4. Targeting a tool name across all servers**
423
-
424
- Use `mcpName = "*"` with a specific `toolName` to target that operation
425
- regardless of which server provides it.
426
-
427
- ```toml
428
- # Allow the `search` tool across all connected MCP servers
429
- [[rule]]
430
- mcpName = "*"
431
- toolName = "search"
432
- decision = "allow"
433
- priority = 50
434
- ```
435
-
436
441
  ## Default policies
437
442
 
438
443
  The Gemini CLI ships with a set of default policies to provide a safe