@google/gemini-cli-core 0.30.0-preview.6 → 0.31.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (687) hide show
  1. package/README.md +1 -1
  2. package/dist/docs/CONTRIBUTING.md +6 -7
  3. package/dist/docs/changelogs/index.md +22 -2
  4. package/dist/docs/changelogs/latest.md +359 -293
  5. package/dist/docs/changelogs/preview.md +300 -349
  6. package/dist/docs/cli/cli-reference.md +23 -23
  7. package/dist/docs/cli/enterprise.md +7 -7
  8. package/dist/docs/cli/gemini-md.md +1 -1
  9. package/dist/docs/cli/model.md +1 -1
  10. package/dist/docs/cli/plan-mode.md +180 -80
  11. package/dist/docs/cli/sandbox.md +3 -3
  12. package/dist/docs/cli/settings.md +59 -51
  13. package/dist/docs/cli/telemetry.md +4 -1
  14. package/dist/docs/cli/themes.md +3 -3
  15. package/dist/docs/cli/trusted-folders.md +31 -0
  16. package/dist/docs/cli/tutorials/memory-management.md +2 -2
  17. package/dist/docs/cli/tutorials/session-management.md +1 -1
  18. package/dist/docs/core/index.md +7 -7
  19. package/dist/docs/core/subagents.md +155 -39
  20. package/dist/docs/extensions/reference.md +38 -14
  21. package/dist/docs/get-started/authentication.md +4 -4
  22. package/dist/docs/get-started/examples.md +2 -2
  23. package/dist/docs/get-started/gemini-3.md +17 -3
  24. package/dist/docs/get-started/index.md +11 -2
  25. package/dist/docs/hooks/best-practices.md +1 -1
  26. package/dist/docs/hooks/reference.md +8 -0
  27. package/dist/docs/ide-integration/index.md +14 -0
  28. package/dist/docs/index.md +62 -67
  29. package/dist/docs/redirects.json +19 -0
  30. package/dist/docs/{cli → reference}/commands.md +67 -11
  31. package/dist/docs/{get-started → reference}/configuration.md +93 -24
  32. package/dist/docs/{cli → reference}/keyboard-shortcuts.md +3 -3
  33. package/dist/docs/{core → reference}/policy-engine.md +63 -27
  34. package/dist/docs/{faq.md → resources/faq.md} +1 -1
  35. package/dist/docs/{quota-and-pricing.md → resources/quota-and-pricing.md} +12 -5
  36. package/dist/docs/{tos-privacy.md → resources/tos-privacy.md} +2 -2
  37. package/dist/docs/{troubleshooting.md → resources/troubleshooting.md} +1 -1
  38. package/dist/docs/sidebar.json +203 -166
  39. package/dist/docs/tools/file-system.md +7 -4
  40. package/dist/docs/tools/index.md +5 -2
  41. package/dist/docs/tools/internal-docs.md +5 -5
  42. package/dist/docs/tools/mcp-server.md +62 -2
  43. package/dist/docs/tools/planning.md +2 -0
  44. package/dist/docs/tools/shell.md +3 -3
  45. package/dist/src/agents/a2a-client-manager.test.js +1 -2
  46. package/dist/src/agents/a2a-client-manager.test.js.map +1 -1
  47. package/dist/src/agents/a2aUtils.d.ts +1 -5
  48. package/dist/src/agents/a2aUtils.js +1 -1
  49. package/dist/src/agents/a2aUtils.js.map +1 -1
  50. package/dist/src/agents/acknowledgedAgents.js +1 -0
  51. package/dist/src/agents/acknowledgedAgents.js.map +1 -1
  52. package/dist/src/agents/agent-scheduler.js +1 -0
  53. package/dist/src/agents/agent-scheduler.js.map +1 -1
  54. package/dist/src/agents/agentLoader.d.ts +0 -1
  55. package/dist/src/agents/agentLoader.js +22 -21
  56. package/dist/src/agents/agentLoader.js.map +1 -1
  57. package/dist/src/agents/agentLoader.test.js +1 -5
  58. package/dist/src/agents/agentLoader.test.js.map +1 -1
  59. package/dist/src/agents/auth-provider/api-key-provider.d.ts +30 -0
  60. package/dist/src/agents/auth-provider/api-key-provider.js +66 -0
  61. package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -0
  62. package/dist/src/agents/auth-provider/api-key-provider.test.d.ts +6 -0
  63. package/dist/src/agents/auth-provider/api-key-provider.test.js +130 -0
  64. package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -0
  65. package/dist/src/agents/auth-provider/base-provider.d.ts +2 -2
  66. package/dist/src/agents/auth-provider/base-provider.js.map +1 -1
  67. package/dist/src/agents/auth-provider/factory.js +6 -3
  68. package/dist/src/agents/auth-provider/factory.js.map +1 -1
  69. package/dist/src/agents/auth-provider/factory.test.js +12 -0
  70. package/dist/src/agents/auth-provider/factory.test.js.map +1 -1
  71. package/dist/src/agents/auth-provider/types.d.ts +2 -4
  72. package/dist/src/agents/browser/analyzeScreenshot.d.ts +35 -0
  73. package/dist/src/agents/browser/analyzeScreenshot.js +183 -0
  74. package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -0
  75. package/dist/src/agents/browser/analyzeScreenshot.test.d.ts +6 -0
  76. package/dist/src/agents/browser/analyzeScreenshot.test.js +161 -0
  77. package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -0
  78. package/dist/src/agents/browser/browserAgentDefinition.d.ts +50 -0
  79. package/dist/src/agents/browser/browserAgentDefinition.js +141 -0
  80. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -0
  81. package/dist/src/agents/browser/browserAgentFactory.d.ts +42 -0
  82. package/dist/src/agents/browser/browserAgentFactory.js +107 -0
  83. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -0
  84. package/dist/src/agents/browser/browserAgentFactory.test.d.ts +6 -0
  85. package/dist/src/agents/browser/browserAgentFactory.test.js +186 -0
  86. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -0
  87. package/dist/src/agents/browser/browserAgentInvocation.d.ts +44 -0
  88. package/dist/src/agents/browser/browserAgentInvocation.js +109 -0
  89. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -0
  90. package/dist/src/agents/browser/browserAgentInvocation.test.d.ts +6 -0
  91. package/dist/src/agents/browser/browserAgentInvocation.test.js +87 -0
  92. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -0
  93. package/dist/src/agents/browser/browserManager.d.ts +110 -0
  94. package/dist/src/agents/browser/browserManager.js +323 -0
  95. package/dist/src/agents/browser/browserManager.js.map +1 -0
  96. package/dist/src/agents/browser/browserManager.test.d.ts +6 -0
  97. package/dist/src/agents/browser/browserManager.test.js +314 -0
  98. package/dist/src/agents/browser/browserManager.test.js.map +1 -0
  99. package/dist/src/agents/browser/mcpToolWrapper.d.ts +45 -0
  100. package/dist/src/agents/browser/mcpToolWrapper.js +356 -0
  101. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -0
  102. package/dist/src/agents/browser/mcpToolWrapper.test.d.ts +6 -0
  103. package/dist/src/agents/browser/mcpToolWrapper.test.js +126 -0
  104. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -0
  105. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.d.ts +6 -0
  106. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +57 -0
  107. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js.map +1 -0
  108. package/dist/src/agents/browser/modelAvailability.d.ts +23 -0
  109. package/dist/src/agents/browser/modelAvailability.js +23 -0
  110. package/dist/src/agents/browser/modelAvailability.js.map +1 -0
  111. package/dist/src/agents/local-executor.js +73 -31
  112. package/dist/src/agents/local-executor.js.map +1 -1
  113. package/dist/src/agents/local-executor.test.js +157 -4
  114. package/dist/src/agents/local-executor.test.js.map +1 -1
  115. package/dist/src/agents/local-invocation.test.js.map +1 -1
  116. package/dist/src/agents/registry.js +8 -0
  117. package/dist/src/agents/registry.js.map +1 -1
  118. package/dist/src/agents/registry.test.js.map +1 -1
  119. package/dist/src/agents/remote-invocation.d.ts +2 -1
  120. package/dist/src/agents/remote-invocation.js +3 -3
  121. package/dist/src/agents/remote-invocation.js.map +1 -1
  122. package/dist/src/agents/subagent-tool-wrapper.js +6 -0
  123. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  124. package/dist/src/agents/subagent-tool.d.ts +3 -0
  125. package/dist/src/agents/subagent-tool.js +62 -3
  126. package/dist/src/agents/subagent-tool.js.map +1 -1
  127. package/dist/src/agents/subagent-tool.test.js +143 -0
  128. package/dist/src/agents/subagent-tool.test.js.map +1 -1
  129. package/dist/src/availability/fallbackIntegration.test.js +4 -1
  130. package/dist/src/availability/fallbackIntegration.test.js.map +1 -1
  131. package/dist/src/availability/policyHelpers.js +3 -1
  132. package/dist/src/availability/policyHelpers.js.map +1 -1
  133. package/dist/src/availability/policyHelpers.test.js +51 -5
  134. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  135. package/dist/src/code_assist/admin/admin_controls.js +1 -0
  136. package/dist/src/code_assist/admin/admin_controls.js.map +1 -1
  137. package/dist/src/code_assist/converter.js +8 -2
  138. package/dist/src/code_assist/converter.js.map +1 -1
  139. package/dist/src/code_assist/converter.test.js.map +1 -1
  140. package/dist/src/code_assist/experiments/experiments.js +1 -1
  141. package/dist/src/code_assist/experiments/experiments.js.map +1 -1
  142. package/dist/src/code_assist/oauth-credential-storage.js +1 -1
  143. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -1
  144. package/dist/src/code_assist/oauth-credential-storage.test.js +5 -0
  145. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -1
  146. package/dist/src/code_assist/oauth2.js +11 -8
  147. package/dist/src/code_assist/oauth2.js.map +1 -1
  148. package/dist/src/code_assist/oauth2.test.js +55 -0
  149. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  150. package/dist/src/code_assist/server.js +22 -13
  151. package/dist/src/code_assist/server.js.map +1 -1
  152. package/dist/src/code_assist/server.test.js +26 -0
  153. package/dist/src/code_assist/server.test.js.map +1 -1
  154. package/dist/src/code_assist/telemetry.js +16 -3
  155. package/dist/src/code_assist/telemetry.js.map +1 -1
  156. package/dist/src/code_assist/telemetry.test.js +10 -0
  157. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  158. package/dist/src/code_assist/types.d.ts +13 -12
  159. package/dist/src/code_assist/types.js.map +1 -1
  160. package/dist/src/config/config.d.ts +83 -8
  161. package/dist/src/config/config.js +127 -23
  162. package/dist/src/config/config.js.map +1 -1
  163. package/dist/src/config/config.test.js +285 -10
  164. package/dist/src/config/config.test.js.map +1 -1
  165. package/dist/src/config/projectRegistry.js +1 -0
  166. package/dist/src/config/projectRegistry.js.map +1 -1
  167. package/dist/src/config/storage.d.ts +17 -1
  168. package/dist/src/config/storage.js +82 -2
  169. package/dist/src/config/storage.js.map +1 -1
  170. package/dist/src/config/storage.test.js +149 -2
  171. package/dist/src/config/storage.test.js.map +1 -1
  172. package/dist/src/config/userHintService.d.ts +46 -0
  173. package/dist/src/config/userHintService.js +81 -0
  174. package/dist/src/config/userHintService.js.map +1 -0
  175. package/dist/src/config/userHintService.test.d.ts +6 -0
  176. package/dist/src/config/userHintService.test.js +62 -0
  177. package/dist/src/config/userHintService.test.js.map +1 -0
  178. package/dist/src/confirmation-bus/message-bus.js +15 -3
  179. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  180. package/dist/src/confirmation-bus/message-bus.test.js +15 -0
  181. package/dist/src/confirmation-bus/message-bus.test.js.map +1 -1
  182. package/dist/src/confirmation-bus/types.d.ts +7 -0
  183. package/dist/src/confirmation-bus/types.js.map +1 -1
  184. package/dist/src/core/baseLlmClient.d.ts +2 -3
  185. package/dist/src/core/baseLlmClient.js +7 -5
  186. package/dist/src/core/baseLlmClient.js.map +1 -1
  187. package/dist/src/core/baseLlmClient.test.js +45 -20
  188. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  189. package/dist/src/core/client.js +18 -7
  190. package/dist/src/core/client.js.map +1 -1
  191. package/dist/src/core/coreToolHookTriggers.d.ts +2 -3
  192. package/dist/src/core/coreToolHookTriggers.js +8 -3
  193. package/dist/src/core/coreToolHookTriggers.js.map +1 -1
  194. package/dist/src/core/coreToolScheduler.js +2 -1
  195. package/dist/src/core/coreToolScheduler.js.map +1 -1
  196. package/dist/src/core/coreToolScheduler.test.js +10 -3
  197. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  198. package/dist/src/core/fakeContentGenerator.js +2 -0
  199. package/dist/src/core/fakeContentGenerator.js.map +1 -1
  200. package/dist/src/core/geminiChat.d.ts +1 -1
  201. package/dist/src/core/geminiChat.js +5 -5
  202. package/dist/src/core/geminiChat.js.map +1 -1
  203. package/dist/src/core/geminiChat.test.js +1 -0
  204. package/dist/src/core/geminiChat.test.js.map +1 -1
  205. package/dist/src/core/geminiChat_network_retry.test.js +1 -0
  206. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  207. package/dist/src/core/logger.js +2 -0
  208. package/dist/src/core/logger.js.map +1 -1
  209. package/dist/src/core/loggingContentGenerator.d.ts +14 -2
  210. package/dist/src/core/loggingContentGenerator.js +98 -4
  211. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  212. package/dist/src/core/loggingContentGenerator.test.js +275 -1
  213. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  214. package/dist/src/core/prompts.test.js +55 -27
  215. package/dist/src/core/prompts.test.js.map +1 -1
  216. package/dist/src/core/recordingContentGenerator.test.js +5 -0
  217. package/dist/src/core/recordingContentGenerator.test.js.map +1 -1
  218. package/dist/src/core/turn.d.ts +4 -2
  219. package/dist/src/core/turn.js +2 -0
  220. package/dist/src/core/turn.js.map +1 -1
  221. package/dist/src/core/turn.test.js +4 -1
  222. package/dist/src/core/turn.test.js.map +1 -1
  223. package/dist/src/generated/git-commit.d.ts +2 -2
  224. package/dist/src/generated/git-commit.js +2 -2
  225. package/dist/src/hooks/hookAggregator.d.ts +1 -2
  226. package/dist/src/hooks/hookAggregator.js +1 -2
  227. package/dist/src/hooks/hookAggregator.js.map +1 -1
  228. package/dist/src/hooks/hookEventHandler.d.ts +2 -2
  229. package/dist/src/hooks/hookEventHandler.js +13 -4
  230. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  231. package/dist/src/hooks/hookEventHandler.test.js +1 -2
  232. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  233. package/dist/src/hooks/hookPlanner.d.ts +1 -2
  234. package/dist/src/hooks/hookPlanner.js.map +1 -1
  235. package/dist/src/hooks/hookRegistry.d.ts +8 -0
  236. package/dist/src/hooks/hookRegistry.js +31 -3
  237. package/dist/src/hooks/hookRegistry.js.map +1 -1
  238. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  239. package/dist/src/hooks/hookRunner.d.ts +5 -2
  240. package/dist/src/hooks/hookRunner.js +52 -2
  241. package/dist/src/hooks/hookRunner.js.map +1 -1
  242. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  243. package/dist/src/hooks/hookSystem.d.ts +11 -3
  244. package/dist/src/hooks/hookSystem.js +10 -4
  245. package/dist/src/hooks/hookSystem.js.map +1 -1
  246. package/dist/src/hooks/hookSystem.test.js +1 -0
  247. package/dist/src/hooks/hookSystem.test.js.map +1 -1
  248. package/dist/src/hooks/runtimeHooks.test.d.ts +6 -0
  249. package/dist/src/hooks/runtimeHooks.test.js +100 -0
  250. package/dist/src/hooks/runtimeHooks.test.js.map +1 -0
  251. package/dist/src/hooks/trustedHooks.js +6 -1
  252. package/dist/src/hooks/trustedHooks.js.map +1 -1
  253. package/dist/src/hooks/trustedHooks.test.js +17 -9
  254. package/dist/src/hooks/trustedHooks.test.js.map +1 -1
  255. package/dist/src/hooks/types.d.ts +49 -8
  256. package/dist/src/hooks/types.js +20 -1
  257. package/dist/src/hooks/types.js.map +1 -1
  258. package/dist/src/ide/detect-ide.d.ts +0 -1
  259. package/dist/src/ide/detect-ide.js +1 -1
  260. package/dist/src/ide/detect-ide.js.map +1 -1
  261. package/dist/src/ide/ide-client.js +3 -2
  262. package/dist/src/ide/ide-client.js.map +1 -1
  263. package/dist/src/ide/ide-connection-utils.js +90 -14
  264. package/dist/src/ide/ide-connection-utils.js.map +1 -1
  265. package/dist/src/ide/ide-connection-utils.test.js +78 -0
  266. package/dist/src/ide/ide-connection-utils.test.js.map +1 -1
  267. package/dist/src/ide/ide-installer.test.js +1 -2
  268. package/dist/src/ide/ide-installer.test.js.map +1 -1
  269. package/dist/src/ide/process-utils.d.ts +7 -0
  270. package/dist/src/ide/process-utils.js +20 -0
  271. package/dist/src/ide/process-utils.js.map +1 -1
  272. package/dist/src/ide/process-utils.test.js +30 -0
  273. package/dist/src/ide/process-utils.test.js.map +1 -1
  274. package/dist/src/index.d.ts +6 -1
  275. package/dist/src/index.js +6 -1
  276. package/dist/src/index.js.map +1 -1
  277. package/dist/src/mcp/oauth-provider.d.ts +1 -1
  278. package/dist/src/mcp/oauth-provider.js +8 -7
  279. package/dist/src/mcp/oauth-provider.js.map +1 -1
  280. package/dist/src/mcp/oauth-provider.test.js +34 -2
  281. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  282. package/dist/src/mcp/oauth-utils.js +2 -0
  283. package/dist/src/mcp/oauth-utils.js.map +1 -1
  284. package/dist/src/mcp/oauth-utils.test.js +12 -0
  285. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  286. package/dist/src/mcp/token-storage/file-token-storage.js +4 -1
  287. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -1
  288. package/dist/src/mcp/token-storage/file-token-storage.test.js +40 -2
  289. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -1
  290. package/dist/src/mcp/token-storage/keychain-token-storage.js +2 -0
  291. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -1
  292. package/dist/src/policy/config.d.ts +18 -9
  293. package/dist/src/policy/config.js +75 -54
  294. package/dist/src/policy/config.js.map +1 -1
  295. package/dist/src/policy/config.test.js +26 -26
  296. package/dist/src/policy/integrity.d.ts +45 -0
  297. package/dist/src/policy/integrity.js +121 -0
  298. package/dist/src/policy/integrity.js.map +1 -0
  299. package/dist/src/policy/integrity.test.d.ts +6 -0
  300. package/dist/src/policy/integrity.test.js +132 -0
  301. package/dist/src/policy/integrity.test.js.map +1 -0
  302. package/dist/src/policy/persistence.test.js +29 -19
  303. package/dist/src/policy/persistence.test.js.map +1 -1
  304. package/dist/src/policy/policies/conseca.toml +6 -0
  305. package/dist/src/policy/policies/plan.toml +28 -12
  306. package/dist/src/policy/policies/read-only.toml +11 -10
  307. package/dist/src/policy/policies/write.toml +11 -10
  308. package/dist/src/policy/policies/yolo.toml +11 -10
  309. package/dist/src/policy/policy-engine.d.ts +16 -3
  310. package/dist/src/policy/policy-engine.js +154 -29
  311. package/dist/src/policy/policy-engine.js.map +1 -1
  312. package/dist/src/policy/policy-engine.test.js +480 -9
  313. package/dist/src/policy/policy-engine.test.js.map +1 -1
  314. package/dist/src/policy/policy-updater.test.js +11 -6
  315. package/dist/src/policy/policy-updater.test.js.map +1 -1
  316. package/dist/src/policy/toml-loader.d.ts +13 -2
  317. package/dist/src/policy/toml-loader.js +55 -34
  318. package/dist/src/policy/toml-loader.js.map +1 -1
  319. package/dist/src/policy/toml-loader.test.js +115 -7
  320. package/dist/src/policy/toml-loader.test.js.map +1 -1
  321. package/dist/src/policy/types.d.ts +18 -1
  322. package/dist/src/policy/types.js +1 -0
  323. package/dist/src/policy/types.js.map +1 -1
  324. package/dist/src/policy/workspace-policy.test.d.ts +6 -0
  325. package/dist/src/policy/workspace-policy.test.js +231 -0
  326. package/dist/src/policy/workspace-policy.test.js.map +1 -0
  327. package/dist/src/prompts/promptProvider.js +11 -13
  328. package/dist/src/prompts/promptProvider.js.map +1 -1
  329. package/dist/src/prompts/promptProvider.test.js +64 -3
  330. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  331. package/dist/src/prompts/snippets.js +41 -10
  332. package/dist/src/prompts/snippets.js.map +1 -1
  333. package/dist/src/prompts/snippets.legacy.js +1 -0
  334. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  335. package/dist/src/routing/modelRouterService.js +3 -1
  336. package/dist/src/routing/modelRouterService.js.map +1 -1
  337. package/dist/src/routing/modelRouterService.test.js +12 -6
  338. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  339. package/dist/src/routing/strategies/approvalModeStrategy.d.ts +18 -0
  340. package/dist/src/routing/strategies/approvalModeStrategy.js +58 -0
  341. package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -0
  342. package/dist/src/routing/strategies/approvalModeStrategy.test.d.ts +6 -0
  343. package/dist/src/routing/strategies/approvalModeStrategy.test.js +110 -0
  344. package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -0
  345. package/dist/src/safety/checker-runner.js +1 -0
  346. package/dist/src/safety/checker-runner.js.map +1 -1
  347. package/dist/src/safety/conseca/conseca.d.ts +31 -0
  348. package/dist/src/safety/conseca/conseca.js +105 -0
  349. package/dist/src/safety/conseca/conseca.js.map +1 -0
  350. package/dist/src/safety/conseca/conseca.test.d.ts +6 -0
  351. package/dist/src/safety/conseca/conseca.test.js +226 -0
  352. package/dist/src/safety/conseca/conseca.test.js.map +1 -0
  353. package/dist/src/safety/conseca/integration.test.d.ts +6 -0
  354. package/dist/src/safety/conseca/integration.test.js +19 -0
  355. package/dist/src/safety/conseca/integration.test.js.map +1 -0
  356. package/dist/src/safety/conseca/policy-enforcer.d.ts +13 -0
  357. package/dist/src/safety/conseca/policy-enforcer.js +135 -0
  358. package/dist/src/safety/conseca/policy-enforcer.js.map +1 -0
  359. package/dist/src/safety/conseca/policy-enforcer.test.d.ts +6 -0
  360. package/dist/src/safety/conseca/policy-enforcer.test.js +141 -0
  361. package/dist/src/safety/conseca/policy-enforcer.test.js.map +1 -0
  362. package/dist/src/safety/conseca/policy-generator.d.ts +15 -0
  363. package/dist/src/safety/conseca/policy-generator.js +144 -0
  364. package/dist/src/safety/conseca/policy-generator.js.map +1 -0
  365. package/dist/src/safety/conseca/policy-generator.test.d.ts +6 -0
  366. package/dist/src/safety/conseca/policy-generator.test.js +84 -0
  367. package/dist/src/safety/conseca/policy-generator.test.js.map +1 -0
  368. package/dist/src/safety/conseca/types.d.ts +15 -0
  369. package/dist/src/safety/conseca/types.js +7 -0
  370. package/dist/src/safety/conseca/types.js.map +1 -0
  371. package/dist/src/safety/context-builder.d.ts +3 -3
  372. package/dist/src/safety/context-builder.js +60 -4
  373. package/dist/src/safety/context-builder.js.map +1 -1
  374. package/dist/src/safety/context-builder.test.js +98 -18
  375. package/dist/src/safety/context-builder.test.js.map +1 -1
  376. package/dist/src/safety/protocol.d.ts +4 -0
  377. package/dist/src/safety/registry.d.ts +2 -1
  378. package/dist/src/safety/registry.js +14 -4
  379. package/dist/src/safety/registry.js.map +1 -1
  380. package/dist/src/safety/registry.test.js +5 -2
  381. package/dist/src/safety/registry.test.js.map +1 -1
  382. package/dist/src/scheduler/confirmation.d.ts +0 -13
  383. package/dist/src/scheduler/confirmation.js +1 -1
  384. package/dist/src/scheduler/confirmation.js.map +1 -1
  385. package/dist/src/scheduler/policy.js +6 -2
  386. package/dist/src/scheduler/policy.js.map +1 -1
  387. package/dist/src/scheduler/policy.test.js +4 -3
  388. package/dist/src/scheduler/policy.test.js.map +1 -1
  389. package/dist/src/scheduler/scheduler.d.ts +3 -1
  390. package/dist/src/scheduler/scheduler.js +148 -28
  391. package/dist/src/scheduler/scheduler.js.map +1 -1
  392. package/dist/src/scheduler/scheduler.test.js +341 -242
  393. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  394. package/dist/src/scheduler/scheduler_parallel.test.d.ts +6 -0
  395. package/dist/src/scheduler/scheduler_parallel.test.js +309 -0
  396. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -0
  397. package/dist/src/scheduler/state-manager.d.ts +8 -0
  398. package/dist/src/scheduler/state-manager.js +30 -2
  399. package/dist/src/scheduler/state-manager.js.map +1 -1
  400. package/dist/src/scheduler/state-manager.test.js +61 -0
  401. package/dist/src/scheduler/state-manager.test.js.map +1 -1
  402. package/dist/src/scheduler/tool-executor.js +15 -7
  403. package/dist/src/scheduler/tool-executor.js.map +1 -1
  404. package/dist/src/scheduler/tool-executor.test.js +1 -1
  405. package/dist/src/scheduler/tool-executor.test.js.map +1 -1
  406. package/dist/src/scheduler/types.d.ts +23 -0
  407. package/dist/src/services/FolderTrustDiscoveryService.d.ts +32 -0
  408. package/dist/src/services/FolderTrustDiscoveryService.js +167 -0
  409. package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -0
  410. package/dist/src/services/FolderTrustDiscoveryService.test.d.ts +6 -0
  411. package/dist/src/services/FolderTrustDiscoveryService.test.js +118 -0
  412. package/dist/src/services/FolderTrustDiscoveryService.test.js.map +1 -0
  413. package/dist/src/services/chatCompressionService.d.ts +0 -14
  414. package/dist/src/services/chatCompressionService.js +29 -7
  415. package/dist/src/services/chatCompressionService.js.map +1 -1
  416. package/dist/src/services/chatCompressionService.test.js +3 -1
  417. package/dist/src/services/chatCompressionService.test.js.map +1 -1
  418. package/dist/src/services/chatRecordingService.d.ts +7 -1
  419. package/dist/src/services/chatRecordingService.js +12 -1
  420. package/dist/src/services/chatRecordingService.js.map +1 -1
  421. package/dist/src/services/chatRecordingService.test.js +34 -0
  422. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  423. package/dist/src/services/loopDetectionService.js +1 -2
  424. package/dist/src/services/loopDetectionService.js.map +1 -1
  425. package/dist/src/services/sessionSummaryUtils.js +3 -0
  426. package/dist/src/services/sessionSummaryUtils.js.map +1 -1
  427. package/dist/src/services/shellExecutionService.js +6 -0
  428. package/dist/src/services/shellExecutionService.js.map +1 -1
  429. package/dist/src/skills/skillLoader.js +2 -2
  430. package/dist/src/skills/skillLoader.js.map +1 -1
  431. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +3 -1
  432. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +35 -4
  433. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  434. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +0 -1
  435. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +19 -5
  436. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  437. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +14 -1
  438. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +29 -1
  439. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  440. package/dist/src/telemetry/conseca-logger.d.ts +9 -0
  441. package/dist/src/telemetry/conseca-logger.js +91 -0
  442. package/dist/src/telemetry/conseca-logger.js.map +1 -0
  443. package/dist/src/telemetry/conseca-logger.test.d.ts +6 -0
  444. package/dist/src/telemetry/conseca-logger.test.js +89 -0
  445. package/dist/src/telemetry/conseca-logger.test.js.map +1 -0
  446. package/dist/src/telemetry/gcp-exporters.js +1 -2
  447. package/dist/src/telemetry/gcp-exporters.js.map +1 -1
  448. package/dist/src/telemetry/index.d.ts +2 -1
  449. package/dist/src/telemetry/index.js +2 -1
  450. package/dist/src/telemetry/index.js.map +1 -1
  451. package/dist/src/telemetry/integration.test.circular.js +3 -0
  452. package/dist/src/telemetry/integration.test.circular.js.map +1 -1
  453. package/dist/src/telemetry/loggers.d.ts +1 -2
  454. package/dist/src/telemetry/loggers.js +3 -13
  455. package/dist/src/telemetry/loggers.js.map +1 -1
  456. package/dist/src/telemetry/loggers.test.circular.js +3 -0
  457. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  458. package/dist/src/telemetry/loggers.test.js +6 -5
  459. package/dist/src/telemetry/loggers.test.js.map +1 -1
  460. package/dist/src/telemetry/metrics.d.ts +1 -3
  461. package/dist/src/telemetry/metrics.js +3 -2
  462. package/dist/src/telemetry/metrics.js.map +1 -1
  463. package/dist/src/telemetry/metrics.test.js +7 -3
  464. package/dist/src/telemetry/metrics.test.js.map +1 -1
  465. package/dist/src/telemetry/sanitize.test.js +19 -18
  466. package/dist/src/telemetry/sanitize.test.js.map +1 -1
  467. package/dist/src/telemetry/semantic.d.ts +7 -9
  468. package/dist/src/telemetry/semantic.js +8 -8
  469. package/dist/src/telemetry/semantic.js.map +1 -1
  470. package/dist/src/telemetry/types.d.ts +42 -4
  471. package/dist/src/telemetry/types.js +87 -2
  472. package/dist/src/telemetry/types.js.map +1 -1
  473. package/dist/src/telemetry/uiTelemetry.d.ts +1 -2
  474. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  475. package/dist/src/telemetry/uiTelemetry.test.js +1 -2
  476. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  477. package/dist/src/tools/ask-user.test.js +1 -19
  478. package/dist/src/tools/ask-user.test.js.map +1 -1
  479. package/dist/src/tools/confirmation-policy.test.js +14 -17
  480. package/dist/src/tools/confirmation-policy.test.js.map +1 -1
  481. package/dist/src/tools/definitions/dynamic-declaration-helpers.js +1 -1
  482. package/dist/src/tools/definitions/dynamic-declaration-helpers.js.map +1 -1
  483. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +14 -16
  484. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  485. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +24 -59
  486. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  487. package/dist/src/tools/diff-utils.d.ts +9 -0
  488. package/dist/src/tools/diff-utils.js +66 -0
  489. package/dist/src/tools/diff-utils.js.map +1 -0
  490. package/dist/src/tools/diff-utils.test.d.ts +6 -0
  491. package/dist/src/tools/diff-utils.test.js +53 -0
  492. package/dist/src/tools/diff-utils.test.js.map +1 -0
  493. package/dist/src/tools/edit.d.ts +9 -4
  494. package/dist/src/tools/edit.js +203 -34
  495. package/dist/src/tools/edit.js.map +1 -1
  496. package/dist/src/tools/edit.test.js +225 -10
  497. package/dist/src/tools/edit.test.js.map +1 -1
  498. package/dist/src/tools/enter-plan-mode.js +1 -1
  499. package/dist/src/tools/enter-plan-mode.js.map +1 -1
  500. package/dist/src/tools/enter-plan-mode.test.js +1 -1
  501. package/dist/src/tools/enter-plan-mode.test.js.map +1 -1
  502. package/dist/src/tools/exit-plan-mode.js +10 -24
  503. package/dist/src/tools/exit-plan-mode.js.map +1 -1
  504. package/dist/src/tools/exit-plan-mode.test.js +1 -1
  505. package/dist/src/tools/exit-plan-mode.test.js.map +1 -1
  506. package/dist/src/tools/grep-utils.d.ts +49 -0
  507. package/dist/src/tools/grep-utils.js +139 -0
  508. package/dist/src/tools/grep-utils.js.map +1 -0
  509. package/dist/src/tools/grep.js +4 -44
  510. package/dist/src/tools/grep.js.map +1 -1
  511. package/dist/src/tools/grep.test.js +21 -2
  512. package/dist/src/tools/grep.test.js.map +1 -1
  513. package/dist/src/tools/ls.js +6 -1
  514. package/dist/src/tools/ls.js.map +1 -1
  515. package/dist/src/tools/ls.test.js +2 -2
  516. package/dist/src/tools/ls.test.js.map +1 -1
  517. package/dist/src/tools/mcp-client-manager.js +16 -18
  518. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  519. package/dist/src/tools/mcp-client-manager.test.js +51 -0
  520. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  521. package/dist/src/tools/mcp-client.d.ts +22 -1
  522. package/dist/src/tools/mcp-client.js +95 -36
  523. package/dist/src/tools/mcp-client.js.map +1 -1
  524. package/dist/src/tools/mcp-client.test.js +148 -20
  525. package/dist/src/tools/mcp-client.test.js.map +1 -1
  526. package/dist/src/tools/mcp-tool.d.ts +15 -5
  527. package/dist/src/tools/mcp-tool.js +36 -8
  528. package/dist/src/tools/mcp-tool.js.map +1 -1
  529. package/dist/src/tools/memoryTool.js +1 -1
  530. package/dist/src/tools/memoryTool.js.map +1 -1
  531. package/dist/src/tools/memoryTool.test.js +5 -0
  532. package/dist/src/tools/memoryTool.test.js.map +1 -1
  533. package/dist/src/tools/omissionPlaceholderDetector.d.ts +15 -0
  534. package/dist/src/tools/omissionPlaceholderDetector.js +90 -0
  535. package/dist/src/tools/omissionPlaceholderDetector.js.map +1 -0
  536. package/dist/src/tools/omissionPlaceholderDetector.test.d.ts +6 -0
  537. package/dist/src/tools/omissionPlaceholderDetector.test.js +49 -0
  538. package/dist/src/tools/omissionPlaceholderDetector.test.js.map +1 -0
  539. package/dist/src/tools/read-file.d.ts +4 -4
  540. package/dist/src/tools/read-file.js +17 -10
  541. package/dist/src/tools/read-file.js.map +1 -1
  542. package/dist/src/tools/read-file.test.js +20 -10
  543. package/dist/src/tools/read-file.test.js.map +1 -1
  544. package/dist/src/tools/ripGrep.js +49 -46
  545. package/dist/src/tools/ripGrep.js.map +1 -1
  546. package/dist/src/tools/ripGrep.test.js +52 -37
  547. package/dist/src/tools/ripGrep.test.js.map +1 -1
  548. package/dist/src/tools/shell.d.ts +2 -2
  549. package/dist/src/tools/shell.js +2 -2
  550. package/dist/src/tools/shell.js.map +1 -1
  551. package/dist/src/tools/shell.test.js +1 -2
  552. package/dist/src/tools/shell.test.js.map +1 -1
  553. package/dist/src/tools/tool-names.d.ts +0 -6
  554. package/dist/src/tools/tool-names.js +0 -15
  555. package/dist/src/tools/tool-names.js.map +1 -1
  556. package/dist/src/tools/tool-registry.d.ts +1 -0
  557. package/dist/src/tools/tool-registry.js +33 -6
  558. package/dist/src/tools/tool-registry.js.map +1 -1
  559. package/dist/src/tools/tool-registry.test.js +47 -0
  560. package/dist/src/tools/tool-registry.test.js.map +1 -1
  561. package/dist/src/tools/tools.d.ts +21 -1
  562. package/dist/src/tools/tools.js +19 -3
  563. package/dist/src/tools/tools.js.map +1 -1
  564. package/dist/src/tools/tools.test.js +24 -0
  565. package/dist/src/tools/tools.test.js.map +1 -1
  566. package/dist/src/tools/web-fetch.d.ts +9 -1
  567. package/dist/src/tools/web-fetch.js +273 -34
  568. package/dist/src/tools/web-fetch.js.map +1 -1
  569. package/dist/src/tools/web-fetch.test.js +303 -30
  570. package/dist/src/tools/web-fetch.test.js.map +1 -1
  571. package/dist/src/tools/write-file.js +14 -10
  572. package/dist/src/tools/write-file.js.map +1 -1
  573. package/dist/src/tools/write-file.test.js +75 -0
  574. package/dist/src/tools/write-file.test.js.map +1 -1
  575. package/dist/src/tools/write-todos.d.ts +2 -2
  576. package/dist/src/tools/write-todos.js +1 -1
  577. package/dist/src/tools/write-todos.js.map +1 -1
  578. package/dist/src/tools/xcode-mcp-fix-transport.js +4 -1
  579. package/dist/src/tools/xcode-mcp-fix-transport.js.map +1 -1
  580. package/dist/src/utils/approvalModeUtils.d.ts +14 -0
  581. package/dist/src/utils/approvalModeUtils.js +35 -0
  582. package/dist/src/utils/approvalModeUtils.js.map +1 -0
  583. package/dist/src/utils/approvalModeUtils.test.d.ts +6 -0
  584. package/dist/src/utils/approvalModeUtils.test.js +36 -0
  585. package/dist/src/utils/approvalModeUtils.test.js.map +1 -0
  586. package/dist/src/utils/authConsent.d.ts +1 -1
  587. package/dist/src/utils/authConsent.js +10 -8
  588. package/dist/src/utils/authConsent.js.map +1 -1
  589. package/dist/src/utils/authConsent.test.js +89 -44
  590. package/dist/src/utils/authConsent.test.js.map +1 -1
  591. package/dist/src/utils/compatibility.d.ts +41 -0
  592. package/dist/src/utils/compatibility.js +112 -0
  593. package/dist/src/utils/compatibility.js.map +1 -0
  594. package/dist/src/utils/compatibility.test.d.ts +6 -0
  595. package/dist/src/utils/compatibility.test.js +233 -0
  596. package/dist/src/utils/compatibility.test.js.map +1 -0
  597. package/dist/src/utils/editCorrector.js +22 -29
  598. package/dist/src/utils/editCorrector.js.map +1 -1
  599. package/dist/src/utils/editCorrector.test.js.map +1 -1
  600. package/dist/src/utils/envExpansion.d.ts +18 -0
  601. package/dist/src/utils/envExpansion.js +46 -0
  602. package/dist/src/utils/envExpansion.js.map +1 -0
  603. package/dist/src/utils/envExpansion.test.d.ts +6 -0
  604. package/dist/src/utils/envExpansion.test.js +110 -0
  605. package/dist/src/utils/envExpansion.test.js.map +1 -0
  606. package/dist/src/utils/errors.d.ts +1 -0
  607. package/dist/src/utils/errors.js +55 -10
  608. package/dist/src/utils/errors.js.map +1 -1
  609. package/dist/src/utils/errors.test.js +27 -1
  610. package/dist/src/utils/errors.test.js.map +1 -1
  611. package/dist/src/utils/events.d.ts +17 -0
  612. package/dist/src/utils/events.js +12 -0
  613. package/dist/src/utils/events.js.map +1 -1
  614. package/dist/src/utils/events.test.d.ts +1 -1
  615. package/dist/src/utils/events.test.js +50 -3
  616. package/dist/src/utils/events.test.js.map +1 -1
  617. package/dist/src/utils/fastAckHelper.js +2 -1
  618. package/dist/src/utils/fastAckHelper.js.map +1 -1
  619. package/dist/src/utils/fetch.d.ts +1 -1
  620. package/dist/src/utils/fetch.js +15 -2
  621. package/dist/src/utils/fetch.js.map +1 -1
  622. package/dist/src/utils/fileDiffUtils.d.ts +2 -2
  623. package/dist/src/utils/fileDiffUtils.js +1 -2
  624. package/dist/src/utils/fileDiffUtils.js.map +1 -1
  625. package/dist/src/utils/fileUtils.d.ts +5 -3
  626. package/dist/src/utils/fileUtils.js +25 -16
  627. package/dist/src/utils/fileUtils.js.map +1 -1
  628. package/dist/src/utils/fileUtils.test.js +14 -13
  629. package/dist/src/utils/fileUtils.test.js.map +1 -1
  630. package/dist/src/utils/filesearch/fileSearch.js +4 -1
  631. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  632. package/dist/src/utils/getFolderStructure.test.js +4 -5
  633. package/dist/src/utils/getFolderStructure.test.js.map +1 -1
  634. package/dist/src/utils/getPty.js +4 -0
  635. package/dist/src/utils/getPty.js.map +1 -1
  636. package/dist/src/utils/googleErrors.js +29 -5
  637. package/dist/src/utils/googleErrors.js.map +1 -1
  638. package/dist/src/utils/googleQuotaErrors.js +10 -0
  639. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  640. package/dist/src/utils/googleQuotaErrors.test.js +16 -1
  641. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  642. package/dist/src/utils/memoryDiscovery.js +2 -0
  643. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  644. package/dist/src/utils/memoryDiscovery.test.js +1 -2
  645. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  646. package/dist/src/utils/retry.d.ts +1 -1
  647. package/dist/src/utils/retry.js +9 -4
  648. package/dist/src/utils/retry.js.map +1 -1
  649. package/dist/src/utils/retry.test.js +15 -12
  650. package/dist/src/utils/retry.test.js.map +1 -1
  651. package/dist/src/utils/safeJsonStringify.js +3 -0
  652. package/dist/src/utils/safeJsonStringify.js.map +1 -1
  653. package/dist/src/utils/schemaValidator.js +5 -3
  654. package/dist/src/utils/schemaValidator.js.map +1 -1
  655. package/dist/src/utils/session.d.ts +1 -0
  656. package/dist/src/utils/session.js +3 -0
  657. package/dist/src/utils/session.js.map +1 -1
  658. package/dist/src/utils/sessionUtils.d.ts +14 -0
  659. package/dist/src/utils/sessionUtils.js +113 -0
  660. package/dist/src/utils/sessionUtils.js.map +1 -0
  661. package/dist/src/utils/sessionUtils.test.d.ts +1 -0
  662. package/dist/src/utils/sessionUtils.test.js +137 -0
  663. package/dist/src/utils/sessionUtils.test.js.map +1 -0
  664. package/dist/src/utils/shell-utils.js +1 -0
  665. package/dist/src/utils/shell-utils.js.map +1 -1
  666. package/dist/src/utils/stdio.js +6 -0
  667. package/dist/src/utils/stdio.js.map +1 -1
  668. package/dist/src/utils/textUtils.d.ts +9 -0
  669. package/dist/src/utils/textUtils.js +15 -0
  670. package/dist/src/utils/textUtils.js.map +1 -1
  671. package/dist/src/utils/textUtils.test.js +42 -1
  672. package/dist/src/utils/textUtils.test.js.map +1 -1
  673. package/dist/src/utils/toolCallContext.d.ts +0 -5
  674. package/dist/src/utils/toolCallContext.js +1 -1
  675. package/dist/src/utils/toolCallContext.js.map +1 -1
  676. package/dist/src/utils/userAccountManager.js +3 -0
  677. package/dist/src/utils/userAccountManager.js.map +1 -1
  678. package/dist/tsconfig.tsbuildinfo +1 -1
  679. package/package.json +6 -3
  680. package/dist/docs/architecture.md +0 -80
  681. package/dist/docs/cli/index.md +0 -123
  682. package/dist/docs/core/concepts.md +0 -137
  683. package/dist/docs/get-started/configuration-v1.md +0 -882
  684. package/dist/google-gemini-cli-core-0.30.0-preview.5.tgz +0 -0
  685. /package/dist/docs/{core → reference}/memport.md +0 -0
  686. /package/dist/docs/{core → reference}/tools-api.md +0 -0
  687. /package/dist/docs/{cli → resources}/uninstall.md +0 -0
@@ -8,33 +8,16 @@ import path from 'node:path';
8
8
  import { EXIT_PLAN_MODE_TOOL_NAME } from './tool-names.js';
9
9
  import { validatePlanPath, validatePlanContent } from '../utils/planUtils.js';
10
10
  import { ApprovalMode } from '../policy/types.js';
11
- import { checkExhaustive } from '../utils/checks.js';
12
11
  import { resolveToRealPath, isSubpath } from '../utils/paths.js';
13
12
  import { logPlanExecution } from '../telemetry/loggers.js';
14
13
  import { PlanExecutionEvent } from '../telemetry/types.js';
15
14
  import { getExitPlanModeDefinition } from './definitions/coreTools.js';
16
15
  import { resolveToolDeclaration } from './definitions/resolver.js';
17
- /**
18
- * Returns a human-readable description for an approval mode.
19
- */
20
- function getApprovalModeDescription(mode) {
21
- switch (mode) {
22
- case ApprovalMode.AUTO_EDIT:
23
- return 'Auto-Edit mode (edits will be applied automatically)';
24
- case ApprovalMode.DEFAULT:
25
- return 'Default mode (edits will require confirmation)';
26
- case ApprovalMode.YOLO:
27
- case ApprovalMode.PLAN:
28
- // YOLO and PLAN are not valid modes to enter when exiting plan mode
29
- throw new Error(`Unexpected approval mode: ${mode}`);
30
- default:
31
- checkExhaustive(mode);
32
- }
33
- }
16
+ import { getPlanModeExitMessage } from '../utils/approvalModeUtils.js';
34
17
  export class ExitPlanModeTool extends BaseDeclarativeTool {
35
18
  config;
36
19
  constructor(config, messageBus) {
37
- const plansDir = config.storage.getProjectTempPlansDir();
20
+ const plansDir = config.storage.getPlansDir();
38
21
  const definition = getExitPlanModeDefinition(plansDir);
39
22
  super(EXIT_PLAN_MODE_TOOL_NAME, 'Exit Plan Mode', definition.base.description, Kind.Plan, definition.base.parametersJsonSchema, messageBus);
40
23
  this.config = config;
@@ -45,7 +28,7 @@ export class ExitPlanModeTool extends BaseDeclarativeTool {
45
28
  }
46
29
  // Since validateToolParamValues is synchronous, we use a basic synchronous check
47
30
  // for path traversal safety. High-level async validation is deferred to shouldConfirmExecute.
48
- const plansDir = resolveToRealPath(this.config.storage.getProjectTempPlansDir());
31
+ const plansDir = resolveToRealPath(this.config.storage.getPlansDir());
49
32
  const resolvedPath = path.resolve(this.config.getTargetDir(), params.plan_path);
50
33
  const realPath = resolveToRealPath(resolvedPath);
51
34
  if (!isSubpath(plansDir, realPath)) {
@@ -57,7 +40,7 @@ export class ExitPlanModeTool extends BaseDeclarativeTool {
57
40
  return new ExitPlanModeInvocation(params, messageBus, toolName, toolDisplayName, this.config);
58
41
  }
59
42
  getSchema(modelId) {
60
- const plansDir = this.config.storage.getProjectTempPlansDir();
43
+ const plansDir = this.config.storage.getPlansDir();
61
44
  return resolveToolDeclaration(getExitPlanModeDefinition(plansDir), modelId);
62
45
  }
63
46
  }
@@ -72,7 +55,7 @@ export class ExitPlanModeInvocation extends BaseToolInvocation {
72
55
  }
73
56
  async shouldConfirmExecute(abortSignal) {
74
57
  const resolvedPlanPath = this.getResolvedPlanPath();
75
- const pathError = await validatePlanPath(this.params.plan_path, this.config.storage.getProjectTempPlansDir(), this.config.getTargetDir());
58
+ const pathError = await validatePlanPath(this.params.plan_path, this.config.storage.getPlansDir(), this.config.getTargetDir());
76
59
  if (pathError) {
77
60
  this.planValidationError = pathError;
78
61
  return false;
@@ -135,12 +118,15 @@ export class ExitPlanModeInvocation extends BaseToolInvocation {
135
118
  const payload = this.approvalPayload;
136
119
  if (payload?.approved) {
137
120
  const newMode = payload.approvalMode ?? ApprovalMode.DEFAULT;
121
+ if (newMode === ApprovalMode.PLAN || newMode === ApprovalMode.YOLO) {
122
+ throw new Error(`Unexpected approval mode: ${newMode}`);
123
+ }
138
124
  this.config.setApprovalMode(newMode);
139
125
  this.config.setApprovedPlanPath(resolvedPlanPath);
140
126
  logPlanExecution(this.config, new PlanExecutionEvent(newMode));
141
- const description = getApprovalModeDescription(newMode);
127
+ const exitMessage = getPlanModeExitMessage(newMode);
142
128
  return {
143
- llmContent: `Plan approved. Switching to ${description}.
129
+ llmContent: `${exitMessage}
144
130
 
145
131
  The approved implementation plan is stored at: ${resolvedPlanPath}
146
132
  Read and follow the plan strictly during implementation.`,
@@ -1 +1 @@
1
- {"version":3,"file":"exit-plan-mode.js","sourceRoot":"","sources":["../../../src/tools/exit-plan-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exit-plan-mode.js","sourceRoot":"","sources":["../../../src/tools/exit-plan-mode.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ describe('ExitPlanModeTool', () => {
35
35
  setApprovalMode: vi.fn(),
36
36
  setApprovedPlanPath: vi.fn(),
37
37
  storage: {
38
- getProjectTempPlansDir: vi.fn().mockReturnValue(mockPlansDir),
38
+ getPlansDir: vi.fn().mockReturnValue(mockPlansDir),
39
39
  },
40
40
  };
41
41
  tool = new ExitPlanModeTool(mockConfig, mockMessageBus);
@@ -1 +1 @@
1
- {"version":3,"file":"exit-plan-mode.test.js","sourceRoot":"","sources":["../../../src/tools/exit-plan-mode.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exit-plan-mode.test.js","sourceRoot":"","sources":["../../../src/tools/exit-plan-mode.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Result object for a single grep match
8
+ */
9
+ export interface GrepMatch {
10
+ filePath: string;
11
+ absolutePath: string;
12
+ lineNumber: number;
13
+ line: string;
14
+ isContext?: boolean;
15
+ }
16
+ /**
17
+ * Groups matches by their file path and ensures they are sorted by line number.
18
+ */
19
+ export declare function groupMatchesByFile(allMatches: GrepMatch[]): Record<string, GrepMatch[]>;
20
+ /**
21
+ * Reads the content of a file and splits it into lines.
22
+ * Returns null if the file cannot be read.
23
+ */
24
+ export declare function readFileLines(absolutePath: string): Promise<string[] | null>;
25
+ /**
26
+ * Automatically enriches grep results with surrounding context if the match count is low
27
+ * and no specific context was requested. This optimization can enable the agent
28
+ * to skip turns that would be spent reading files after grep calls.
29
+ */
30
+ export declare function enrichWithAutoContext(matchesByFile: Record<string, GrepMatch[]>, matchCount: number, params: {
31
+ names_only?: boolean;
32
+ context?: number;
33
+ before?: number;
34
+ after?: number;
35
+ }): Promise<void>;
36
+ /**
37
+ * Formats the grep results for the LLM, including optional context.
38
+ */
39
+ export declare function formatGrepResults(allMatches: GrepMatch[], params: {
40
+ pattern: string;
41
+ names_only?: boolean;
42
+ include?: string;
43
+ context?: number;
44
+ before?: number;
45
+ after?: number;
46
+ }, searchLocationDescription: string, totalMaxMatches: number): Promise<{
47
+ llmContent: string;
48
+ returnDisplay: string;
49
+ }>;
@@ -0,0 +1,139 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import fsPromises from 'node:fs/promises';
7
+ import { debugLogger } from '../utils/debugLogger.js';
8
+ /**
9
+ * Groups matches by their file path and ensures they are sorted by line number.
10
+ */
11
+ export function groupMatchesByFile(allMatches) {
12
+ const groups = {};
13
+ for (const match of allMatches) {
14
+ if (!groups[match.filePath]) {
15
+ groups[match.filePath] = [];
16
+ }
17
+ groups[match.filePath].push(match);
18
+ }
19
+ for (const filePath in groups) {
20
+ groups[filePath].sort((a, b) => a.lineNumber - b.lineNumber);
21
+ }
22
+ return groups;
23
+ }
24
+ /**
25
+ * Reads the content of a file and splits it into lines.
26
+ * Returns null if the file cannot be read.
27
+ */
28
+ export async function readFileLines(absolutePath) {
29
+ try {
30
+ const content = await fsPromises.readFile(absolutePath, 'utf8');
31
+ return content.split(/\r?\n/);
32
+ }
33
+ catch (err) {
34
+ debugLogger.warn(`Failed to read file for context: ${absolutePath}`, err);
35
+ return null;
36
+ }
37
+ }
38
+ /**
39
+ * Automatically enriches grep results with surrounding context if the match count is low
40
+ * and no specific context was requested. This optimization can enable the agent
41
+ * to skip turns that would be spent reading files after grep calls.
42
+ */
43
+ export async function enrichWithAutoContext(matchesByFile, matchCount, params) {
44
+ const { names_only, context, before, after } = params;
45
+ if (matchCount >= 1 &&
46
+ matchCount <= 3 &&
47
+ !names_only &&
48
+ context === undefined &&
49
+ before === undefined &&
50
+ after === undefined) {
51
+ const contextLines = matchCount === 1 ? 50 : 15;
52
+ for (const filePath in matchesByFile) {
53
+ const fileMatches = matchesByFile[filePath];
54
+ if (fileMatches.length === 0)
55
+ continue;
56
+ const fileLines = await readFileLines(fileMatches[0].absolutePath);
57
+ if (fileLines) {
58
+ const newFileMatches = [];
59
+ const seenLines = new Set();
60
+ // Sort matches to process them in order
61
+ fileMatches.sort((a, b) => a.lineNumber - b.lineNumber);
62
+ for (const match of fileMatches) {
63
+ const startLine = Math.max(0, match.lineNumber - 1 - contextLines);
64
+ const endLine = Math.min(fileLines.length, match.lineNumber - 1 + contextLines + 1);
65
+ for (let i = startLine; i < endLine; i++) {
66
+ const lineNum = i + 1;
67
+ if (!seenLines.has(lineNum)) {
68
+ newFileMatches.push({
69
+ absolutePath: match.absolutePath,
70
+ filePath: match.filePath,
71
+ lineNumber: lineNum,
72
+ line: fileLines[i],
73
+ isContext: lineNum !== match.lineNumber,
74
+ });
75
+ seenLines.add(lineNum);
76
+ }
77
+ else if (lineNum === match.lineNumber) {
78
+ const existing = newFileMatches.find((m) => m.lineNumber === lineNum);
79
+ if (existing) {
80
+ existing.isContext = false;
81
+ }
82
+ }
83
+ }
84
+ }
85
+ matchesByFile[filePath] = newFileMatches.sort((a, b) => a.lineNumber - b.lineNumber);
86
+ }
87
+ }
88
+ }
89
+ }
90
+ /**
91
+ * Formats the grep results for the LLM, including optional context.
92
+ */
93
+ export async function formatGrepResults(allMatches, params, searchLocationDescription, totalMaxMatches) {
94
+ const { pattern, names_only, include } = params;
95
+ if (allMatches.length === 0) {
96
+ const noMatchMsg = `No matches found for pattern "${pattern}" ${searchLocationDescription}${include ? ` (filter: "${include}")` : ''}.`;
97
+ return { llmContent: noMatchMsg, returnDisplay: `No matches found` };
98
+ }
99
+ const matchesByFile = groupMatchesByFile(allMatches);
100
+ const matchesOnly = allMatches.filter((m) => !m.isContext);
101
+ const matchCount = matchesOnly.length; // Count actual matches, not context lines
102
+ const matchTerm = matchCount === 1 ? 'match' : 'matches';
103
+ // If the result count is low and Gemini didn't request before/after lines of context
104
+ // add a small amount anyways to enable the agent to avoid one or more extra turns
105
+ // reading the matched files. This optimization reduces turns count by ~10% in SWEBench.
106
+ await enrichWithAutoContext(matchesByFile, matchCount, params);
107
+ const wasTruncated = matchCount >= totalMaxMatches;
108
+ if (names_only) {
109
+ const filePaths = Object.keys(matchesByFile).sort();
110
+ let llmContent = `Found ${filePaths.length} files with matches for pattern "${pattern}" ${searchLocationDescription}${include ? ` (filter: "${include}")` : ''}${wasTruncated
111
+ ? ` (results limited to ${totalMaxMatches} matches for performance)`
112
+ : ''}:\n`;
113
+ llmContent += filePaths.join('\n');
114
+ return {
115
+ llmContent: llmContent.trim(),
116
+ returnDisplay: `Found ${filePaths.length} files${wasTruncated ? ' (limited)' : ''}`,
117
+ };
118
+ }
119
+ let llmContent = `Found ${matchCount} ${matchTerm} for pattern "${pattern}" ${searchLocationDescription}${include ? ` (filter: "${include}")` : ''}`;
120
+ if (wasTruncated) {
121
+ llmContent += ` (results limited to ${totalMaxMatches} matches for performance)`;
122
+ }
123
+ llmContent += `:\n---\n`;
124
+ for (const filePath in matchesByFile) {
125
+ llmContent += `File: ${filePath}\n`;
126
+ matchesByFile[filePath].forEach((match) => {
127
+ // If isContext is undefined, assume it's a match (false)
128
+ const separator = match.isContext ? '-' : ':';
129
+ // trimEnd to avoid double newlines if line has them, but we want to preserve indentation
130
+ llmContent += `L${match.lineNumber}${separator} ${match.line.trimEnd()}\n`;
131
+ });
132
+ llmContent += '---\n';
133
+ }
134
+ return {
135
+ llmContent: llmContent.trim(),
136
+ returnDisplay: `Found ${matchCount} ${matchTerm}${wasTruncated ? ' (limited)' : ''}`,
137
+ };
138
+ }
139
+ //# sourceMappingURL=grep-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grep-utils.js","sourceRoot":"","sources":["../../../src/tools/grep-utils.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import { GREP_TOOL_NAME } from './tool-names.js';
19
19
  import { debugLogger } from '../utils/debugLogger.js';
20
20
  import { GREP_DEFINITION } from './definitions/coreTools.js';
21
21
  import { resolveToolDeclaration } from './definitions/resolver.js';
22
+ import { formatGrepResults } from './grep-utils.js';
22
23
  class GrepToolInvocation extends BaseToolInvocation {
23
24
  config;
24
25
  fileExclusions;
@@ -56,6 +57,7 @@ class GrepToolInvocation extends BaseToolInvocation {
56
57
  const relativeFilePath = path.relative(basePath, absoluteFilePath);
57
58
  return {
58
59
  filePath: relativeFilePath || path.basename(absoluteFilePath),
60
+ absolutePath: absoluteFilePath,
59
61
  lineNumber,
60
62
  line: lineContent,
61
63
  };
@@ -181,50 +183,7 @@ class GrepToolInvocation extends BaseToolInvocation {
181
183
  else {
182
184
  searchLocationDescription = `in path "${searchDirDisplay}"`;
183
185
  }
184
- if (allMatches.length === 0) {
185
- const noMatchMsg = `No matches found for pattern "${this.params.pattern}" ${searchLocationDescription}${this.params.include ? ` (filter: "${this.params.include}")` : ''}.`;
186
- return { llmContent: noMatchMsg, returnDisplay: `No matches found` };
187
- }
188
- const wasTruncated = allMatches.length >= totalMaxMatches;
189
- // Group matches by file
190
- const matchesByFile = allMatches.reduce((acc, match) => {
191
- const fileKey = match.filePath;
192
- if (!acc[fileKey]) {
193
- acc[fileKey] = [];
194
- }
195
- acc[fileKey].push(match);
196
- acc[fileKey].sort((a, b) => a.lineNumber - b.lineNumber);
197
- return acc;
198
- }, {});
199
- const matchCount = allMatches.length;
200
- const matchTerm = matchCount === 1 ? 'match' : 'matches';
201
- if (this.params.names_only) {
202
- const filePaths = Object.keys(matchesByFile).sort();
203
- let llmContent = `Found ${filePaths.length} files with matches for pattern "${this.params.pattern}" ${searchLocationDescription}${this.params.include ? ` (filter: "${this.params.include}")` : ''}${wasTruncated ? ` (results limited to ${totalMaxMatches} matches for performance)` : ''}:\n`;
204
- llmContent += filePaths.join('\n');
205
- return {
206
- llmContent: llmContent.trim(),
207
- returnDisplay: `Found ${filePaths.length} files${wasTruncated ? ' (limited)' : ''}`,
208
- };
209
- }
210
- let llmContent = `Found ${matchCount} ${matchTerm} for pattern "${this.params.pattern}" ${searchLocationDescription}${this.params.include ? ` (filter: "${this.params.include}")` : ''}`;
211
- if (wasTruncated) {
212
- llmContent += ` (results limited to ${totalMaxMatches} matches for performance)`;
213
- }
214
- llmContent += `:\n---\n`;
215
- for (const filePath in matchesByFile) {
216
- llmContent += `File: ${filePath}
217
- `;
218
- matchesByFile[filePath].forEach((match) => {
219
- const trimmedLine = match.line.trim();
220
- llmContent += `L${match.lineNumber}: ${trimmedLine}\n`;
221
- });
222
- llmContent += '---\n';
223
- }
224
- return {
225
- llmContent: llmContent.trim(),
226
- returnDisplay: `Found ${matchCount} ${matchTerm}${wasTruncated ? ' (limited)' : ''}`,
227
- };
186
+ return await formatGrepResults(allMatches, this.params, searchLocationDescription, totalMaxMatches);
228
187
  }
229
188
  catch (error) {
230
189
  debugLogger.warn(`Error during GrepLogic execution: ${error}`);
@@ -424,6 +383,7 @@ class GrepToolInvocation extends BaseToolInvocation {
424
383
  allMatches.push({
425
384
  filePath: path.relative(absolutePath, fileAbsolutePath) ||
426
385
  path.basename(fileAbsolutePath),
386
+ absolutePath: fileAbsolutePath,
427
387
  lineNumber: index + 1,
428
388
  line,
429
389
  });
@@ -1 +1 @@
1
- {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../../src/tools/grep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grep.js","sourceRoot":"","sources":["../../../src/tools/grep.ts"],"names":[],"mappings":"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"}
@@ -353,7 +353,9 @@ describe('GrepTool', () => {
353
353
  // sub/fileC.txt has 1 world, so total matches = 2.
354
354
  expect(result.llmContent).toContain('Found 2 matches');
355
355
  expect(result.llmContent).toContain('File: fileA.txt');
356
+ // Should be a match
356
357
  expect(result.llmContent).toContain('L1: hello world');
358
+ // Should NOT be a match (but might be in context as L2-)
357
359
  expect(result.llmContent).not.toContain('L2: second line with world');
358
360
  expect(result.llmContent).toContain('File: sub/fileC.txt');
359
361
  expect(result.llmContent).toContain('L1: another world in sub dir');
@@ -382,8 +384,25 @@ describe('GrepTool', () => {
382
384
  const result = await invocation.execute(abortSignal);
383
385
  expect(result.llmContent).toContain('Found 1 match');
384
386
  expect(result.llmContent).toContain('copyright.txt');
385
- expect(result.llmContent).toContain('Copyright 2025 Google LLC');
386
- expect(result.llmContent).not.toContain('Copyright 2026 Google LLC');
387
+ // Should be a match
388
+ expect(result.llmContent).toContain('L1: Copyright 2025 Google LLC');
389
+ // Should NOT be a match (but might be in context as L2-)
390
+ expect(result.llmContent).not.toContain('L2: Copyright 2026 Google LLC');
391
+ });
392
+ it('should include context when matches are <= 3', async () => {
393
+ const lines = Array.from({ length: 100 }, (_, i) => `Line ${i + 1}`);
394
+ lines[50] = 'Target match';
395
+ await fs.writeFile(path.join(tempRootDir, 'context.txt'), lines.join('\n'));
396
+ const params = { pattern: 'Target match' };
397
+ const invocation = grepTool.build(params);
398
+ const result = await invocation.execute(abortSignal);
399
+ expect(result.llmContent).toContain('Found 1 match for pattern "Target match"');
400
+ // Verify context before
401
+ expect(result.llmContent).toContain('L40- Line 40');
402
+ // Verify match line
403
+ expect(result.llmContent).toContain('L51: Target match');
404
+ // Verify context after
405
+ expect(result.llmContent).toContain('L60- Line 60');
387
406
  });
388
407
  });
389
408
  describe('getDescription', () => {