@google/gemini-cli-core 0.39.0-preview.2 → 0.40.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 (259) hide show
  1. package/dist/docs/changelogs/index.md +21 -0
  2. package/dist/docs/changelogs/latest.md +253 -407
  3. package/dist/docs/changelogs/preview.md +236 -247
  4. package/dist/docs/cli/auto-memory.md +143 -0
  5. package/dist/docs/cli/enterprise.md +1 -1
  6. package/dist/docs/cli/plan-mode.md +3 -1
  7. package/dist/docs/cli/settings.md +29 -25
  8. package/dist/docs/cli/system-prompt.md +6 -6
  9. package/dist/docs/cli/telemetry.md +18 -11
  10. package/dist/docs/cli/tutorials/memory-management.md +2 -0
  11. package/dist/docs/get-started/{authentication.md → authentication.mdx} +139 -93
  12. package/dist/docs/get-started/index.md +3 -2
  13. package/dist/docs/get-started/installation.mdx +201 -0
  14. package/dist/docs/index.md +2 -2
  15. package/dist/docs/reference/configuration.md +88 -12
  16. package/dist/docs/reference/policy-engine.md +18 -12
  17. package/dist/docs/reference/tools.md +22 -0
  18. package/dist/docs/sidebar.json +13 -1
  19. package/dist/docs/tools/mcp-resources.md +44 -0
  20. package/dist/docs/tools/mcp-server.md +2 -1
  21. package/dist/docs/tools/tracker.md +61 -0
  22. package/dist/src/agents/agent-tool.js +1 -0
  23. package/dist/src/agents/agent-tool.js.map +1 -1
  24. package/dist/src/agents/agentLoader.d.ts +4 -4
  25. package/dist/src/agents/generalist-agent.js +3 -2
  26. package/dist/src/agents/generalist-agent.js.map +1 -1
  27. package/dist/src/agents/local-executor.js +4 -1
  28. package/dist/src/agents/local-executor.js.map +1 -1
  29. package/dist/src/agents/registry.js +0 -8
  30. package/dist/src/agents/registry.js.map +1 -1
  31. package/dist/src/agents/skill-extraction-agent.d.ts +3 -2
  32. package/dist/src/agents/skill-extraction-agent.js +72 -67
  33. package/dist/src/agents/skill-extraction-agent.js.map +1 -1
  34. package/dist/src/agents/skill-extraction-agent.test.js +54 -0
  35. package/dist/src/agents/skill-extraction-agent.test.js.map +1 -0
  36. package/dist/src/config/config.d.ts +21 -6
  37. package/dist/src/config/config.js +103 -19
  38. package/dist/src/config/config.js.map +1 -1
  39. package/dist/src/config/config.test.js +262 -6
  40. package/dist/src/config/config.test.js.map +1 -1
  41. package/dist/src/config/constants.d.ts +1 -0
  42. package/dist/src/config/constants.js +2 -0
  43. package/dist/src/config/constants.js.map +1 -1
  44. package/dist/src/config/memory.js +1 -1
  45. package/dist/src/config/memory.js.map +1 -1
  46. package/dist/src/config/path-validation.test.js +15 -6
  47. package/dist/src/config/path-validation.test.js.map +1 -1
  48. package/dist/src/config/projectRegistry.js +113 -32
  49. package/dist/src/config/projectRegistry.js.map +1 -1
  50. package/dist/src/config/projectRegistry.test.js +51 -0
  51. package/dist/src/config/projectRegistry.test.js.map +1 -1
  52. package/dist/src/config/storage.d.ts +3 -1
  53. package/dist/src/config/storage.js +6 -0
  54. package/dist/src/config/storage.js.map +1 -1
  55. package/dist/src/config/storage.test.js +12 -0
  56. package/dist/src/config/storage.test.js.map +1 -1
  57. package/dist/src/core/contentGenerator.d.ts +8 -1
  58. package/dist/src/core/contentGenerator.js +46 -4
  59. package/dist/src/core/contentGenerator.js.map +1 -1
  60. package/dist/src/core/contentGenerator.test.js +174 -8
  61. package/dist/src/core/contentGenerator.test.js.map +1 -1
  62. package/dist/src/core/geminiChat.test.js +1 -0
  63. package/dist/src/core/geminiChat.test.js.map +1 -1
  64. package/dist/src/core/geminiChat_network_retry.test.js +42 -0
  65. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  66. package/dist/src/core/localLiteRtLmClient.js +2 -0
  67. package/dist/src/core/localLiteRtLmClient.js.map +1 -1
  68. package/dist/src/core/localLiteRtLmClient.test.js +7 -0
  69. package/dist/src/core/localLiteRtLmClient.test.js.map +1 -1
  70. package/dist/src/core/loggingContentGenerator.js +3 -0
  71. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  72. package/dist/src/core/loggingContentGenerator.test.js +1 -0
  73. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  74. package/dist/src/core/prompts.d.ts +1 -1
  75. package/dist/src/core/prompts.js +2 -2
  76. package/dist/src/core/prompts.js.map +1 -1
  77. package/dist/src/core/prompts.test.js +2 -2
  78. package/dist/src/core/prompts.test.js.map +1 -1
  79. package/dist/src/generated/git-commit.d.ts +2 -2
  80. package/dist/src/generated/git-commit.js +2 -2
  81. package/dist/src/ide/ide-client.js +3 -4
  82. package/dist/src/ide/ide-client.js.map +1 -1
  83. package/dist/src/policy/policies/read-only.toml +4 -1
  84. package/dist/src/policy/policy-engine.js +4 -0
  85. package/dist/src/policy/policy-engine.js.map +1 -1
  86. package/dist/src/policy/policy-engine.test.js +25 -0
  87. package/dist/src/policy/policy-engine.test.js.map +1 -1
  88. package/dist/src/policy/toml-loader.test.js +5 -0
  89. package/dist/src/policy/toml-loader.test.js.map +1 -1
  90. package/dist/src/prompts/promptProvider.d.ts +1 -1
  91. package/dist/src/prompts/promptProvider.js +15 -7
  92. package/dist/src/prompts/promptProvider.js.map +1 -1
  93. package/dist/src/prompts/promptProvider.test.js +31 -1
  94. package/dist/src/prompts/promptProvider.test.js.map +1 -1
  95. package/dist/src/prompts/snippets-memory-v2.test.js +94 -0
  96. package/dist/src/prompts/snippets-memory-v2.test.js.map +1 -0
  97. package/dist/src/prompts/snippets.d.ts +19 -1
  98. package/dist/src/prompts/snippets.js +24 -3
  99. package/dist/src/prompts/snippets.js.map +1 -1
  100. package/dist/src/prompts/snippets.legacy.d.ts +6 -1
  101. package/dist/src/prompts/snippets.legacy.js +10 -3
  102. package/dist/src/prompts/snippets.legacy.js.map +1 -1
  103. package/dist/src/sandbox/linux/LinuxSandboxManager.js +16 -2
  104. package/dist/src/sandbox/linux/LinuxSandboxManager.js.map +1 -1
  105. package/dist/src/sandbox/linux/bwrapArgsBuilder.js +64 -36
  106. package/dist/src/sandbox/linux/bwrapArgsBuilder.js.map +1 -1
  107. package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js +3 -3
  108. package/dist/src/sandbox/linux/bwrapArgsBuilder.test.js.map +1 -1
  109. package/dist/src/sandbox/macos/MacOsSandboxManager.js +13 -1
  110. package/dist/src/sandbox/macos/MacOsSandboxManager.js.map +1 -1
  111. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js +61 -42
  112. package/dist/src/sandbox/macos/seatbeltArgsBuilder.js.map +1 -1
  113. package/dist/src/sandbox/windows/WindowsSandboxManager.js +12 -1
  114. package/dist/src/sandbox/windows/WindowsSandboxManager.js.map +1 -1
  115. package/dist/src/scheduler/policy.js +1 -2
  116. package/dist/src/scheduler/policy.js.map +1 -1
  117. package/dist/src/scheduler/policy.test.js +35 -2
  118. package/dist/src/scheduler/policy.test.js.map +1 -1
  119. package/dist/src/scheduler/scheduler.js +1 -0
  120. package/dist/src/scheduler/scheduler.js.map +1 -1
  121. package/dist/src/scheduler/scheduler.test.js +2 -0
  122. package/dist/src/scheduler/scheduler.test.js.map +1 -1
  123. package/dist/src/scheduler/scheduler_hooks.test.js +1 -0
  124. package/dist/src/scheduler/scheduler_hooks.test.js.map +1 -1
  125. package/dist/src/scheduler/scheduler_parallel.test.js +1 -0
  126. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -1
  127. package/dist/src/scheduler/tool-executor.js +1 -0
  128. package/dist/src/scheduler/tool-executor.js.map +1 -1
  129. package/dist/src/services/chatRecordingService.d.ts +1 -0
  130. package/dist/src/services/chatRecordingService.js +48 -19
  131. package/dist/src/services/chatRecordingService.js.map +1 -1
  132. package/dist/src/services/memoryService.d.ts +15 -1
  133. package/dist/src/services/memoryService.js +276 -57
  134. package/dist/src/services/memoryService.js.map +1 -1
  135. package/dist/src/services/memoryService.test.js +296 -2
  136. package/dist/src/services/memoryService.test.js.map +1 -1
  137. package/dist/src/services/sandboxManager.integration.test.js +204 -0
  138. package/dist/src/services/sandboxManager.integration.test.js.map +1 -1
  139. package/dist/src/services/sandboxManager.js +16 -0
  140. package/dist/src/services/sandboxManager.js.map +1 -1
  141. package/dist/src/services/sessionSummaryUtils.d.ts +1 -1
  142. package/dist/src/services/sessionSummaryUtils.js +111 -38
  143. package/dist/src/services/sessionSummaryUtils.js.map +1 -1
  144. package/dist/src/services/sessionSummaryUtils.test.js +204 -51
  145. package/dist/src/services/sessionSummaryUtils.test.js.map +1 -1
  146. package/dist/src/services/shellExecutionService.js +7 -1
  147. package/dist/src/services/shellExecutionService.js.map +1 -1
  148. package/dist/src/telemetry/config.js +3 -0
  149. package/dist/src/telemetry/config.js.map +1 -1
  150. package/dist/src/telemetry/conseca-logger.test.js +1 -0
  151. package/dist/src/telemetry/conseca-logger.test.js.map +1 -1
  152. package/dist/src/telemetry/loggers.test.js +72 -4
  153. package/dist/src/telemetry/loggers.test.js.map +1 -1
  154. package/dist/src/telemetry/memory-monitor.d.ts +1 -0
  155. package/dist/src/telemetry/memory-monitor.js +8 -1
  156. package/dist/src/telemetry/memory-monitor.js.map +1 -1
  157. package/dist/src/telemetry/memory-monitor.test.js +6 -1
  158. package/dist/src/telemetry/memory-monitor.test.js.map +1 -1
  159. package/dist/src/telemetry/trace.d.ts +1 -0
  160. package/dist/src/telemetry/trace.js +33 -13
  161. package/dist/src/telemetry/trace.js.map +1 -1
  162. package/dist/src/telemetry/trace.test.js +50 -10
  163. package/dist/src/telemetry/trace.test.js.map +1 -1
  164. package/dist/src/telemetry/types.js +11 -4
  165. package/dist/src/telemetry/types.js.map +1 -1
  166. package/dist/src/tools/definitions/base-declarations.d.ts +2 -0
  167. package/dist/src/tools/definitions/base-declarations.js +3 -0
  168. package/dist/src/tools/definitions/base-declarations.js.map +1 -1
  169. package/dist/src/tools/definitions/coreTools.d.ts +3 -1
  170. package/dist/src/tools/definitions/coreTools.js +13 -1
  171. package/dist/src/tools/definitions/coreTools.js.map +1 -1
  172. package/dist/src/tools/definitions/model-family-sets/default-legacy.js +29 -1
  173. package/dist/src/tools/definitions/model-family-sets/default-legacy.js.map +1 -1
  174. package/dist/src/tools/definitions/model-family-sets/gemini-3.js +29 -1
  175. package/dist/src/tools/definitions/model-family-sets/gemini-3.js.map +1 -1
  176. package/dist/src/tools/definitions/types.d.ts +2 -0
  177. package/dist/src/tools/get-internal-docs.js +5 -2
  178. package/dist/src/tools/get-internal-docs.js.map +1 -1
  179. package/dist/src/tools/list-mcp-resources.d.ts +24 -0
  180. package/dist/src/tools/list-mcp-resources.js +74 -0
  181. package/dist/src/tools/list-mcp-resources.js.map +1 -0
  182. package/dist/src/tools/list-mcp-resources.test.d.ts +6 -0
  183. package/dist/src/tools/list-mcp-resources.test.js +79 -0
  184. package/dist/src/tools/list-mcp-resources.test.js.map +1 -0
  185. package/dist/src/tools/mcp-client-manager.d.ts +3 -1
  186. package/dist/src/tools/mcp-client-manager.js +24 -1
  187. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  188. package/dist/src/tools/mcp-client-manager.test.js +43 -0
  189. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  190. package/dist/src/tools/memoryTool.d.ts +2 -1
  191. package/dist/src/tools/memoryTool.js +42 -13
  192. package/dist/src/tools/memoryTool.js.map +1 -1
  193. package/dist/src/tools/memoryTool.test.js +23 -3
  194. package/dist/src/tools/memoryTool.test.js.map +1 -1
  195. package/dist/src/tools/read-mcp-resource.d.ts +25 -0
  196. package/dist/src/tools/read-mcp-resource.js +120 -0
  197. package/dist/src/tools/read-mcp-resource.js.map +1 -0
  198. package/dist/src/tools/read-mcp-resource.test.d.ts +6 -0
  199. package/dist/src/tools/read-mcp-resource.test.js +110 -0
  200. package/dist/src/tools/read-mcp-resource.test.js.map +1 -0
  201. package/dist/src/tools/ripGrep.d.ts +3 -2
  202. package/dist/src/tools/ripGrep.js +25 -54
  203. package/dist/src/tools/ripGrep.js.map +1 -1
  204. package/dist/src/tools/ripGrep.test.js +73 -131
  205. package/dist/src/tools/ripGrep.test.js.map +1 -1
  206. package/dist/src/tools/shell.js +38 -12
  207. package/dist/src/tools/shell.js.map +1 -1
  208. package/dist/src/tools/shell.test.js +410 -25
  209. package/dist/src/tools/shell.test.js.map +1 -1
  210. package/dist/src/tools/tool-error.d.ts +1 -0
  211. package/dist/src/tools/tool-error.js +1 -0
  212. package/dist/src/tools/tool-error.js.map +1 -1
  213. package/dist/src/tools/tool-names.d.ts +4 -4
  214. package/dist/src/tools/tool-names.js +6 -2
  215. package/dist/src/tools/tool-names.js.map +1 -1
  216. package/dist/src/tools/tool-registry.js +8 -1
  217. package/dist/src/tools/tool-registry.js.map +1 -1
  218. package/dist/src/utils/filesearch/fileSearch.d.ts +2 -0
  219. package/dist/src/utils/filesearch/fileSearch.js +97 -6
  220. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  221. package/dist/src/utils/filesearch/fileSearch.test.js +54 -0
  222. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -1
  223. package/dist/src/utils/filesearch/fileWatcher.d.ts +25 -0
  224. package/dist/src/utils/filesearch/fileWatcher.js +86 -0
  225. package/dist/src/utils/filesearch/fileWatcher.js.map +1 -0
  226. package/dist/src/utils/filesearch/fileWatcher.test.d.ts +6 -0
  227. package/dist/src/utils/filesearch/fileWatcher.test.js +142 -0
  228. package/dist/src/utils/filesearch/fileWatcher.test.js.map +1 -0
  229. package/dist/src/utils/gitIgnoreParser.js +1 -1
  230. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  231. package/dist/src/utils/ignoreFileParser.js +1 -1
  232. package/dist/src/utils/ignoreFileParser.js.map +1 -1
  233. package/dist/src/utils/memoryDiscovery.js +15 -5
  234. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  235. package/dist/src/utils/retry.js +18 -6
  236. package/dist/src/utils/retry.js.map +1 -1
  237. package/dist/src/utils/retry.test.js +30 -0
  238. package/dist/src/utils/retry.test.js.map +1 -1
  239. package/dist/src/utils/shell-utils.d.ts +1 -0
  240. package/dist/src/utils/shell-utils.js +106 -0
  241. package/dist/src/utils/shell-utils.js.map +1 -1
  242. package/dist/tsconfig.tsbuildinfo +1 -1
  243. package/package.json +5 -3
  244. package/vendor/ripgrep/rg-darwin-arm64 +0 -0
  245. package/vendor/ripgrep/rg-darwin-x64 +0 -0
  246. package/vendor/ripgrep/rg-linux-arm64 +0 -0
  247. package/vendor/ripgrep/rg-linux-x64 +0 -0
  248. package/vendor/ripgrep/rg-win32-x64.exe +0 -0
  249. package/dist/docs/get-started/installation.md +0 -181
  250. package/dist/google-gemini-cli-core-0.39.0-preview.1.tgz +0 -0
  251. package/dist/src/agents/memory-manager-agent.d.ts +0 -25
  252. package/dist/src/agents/memory-manager-agent.js +0 -138
  253. package/dist/src/agents/memory-manager-agent.js.map +0 -1
  254. package/dist/src/agents/memory-manager-agent.test.js +0 -123
  255. package/dist/src/agents/memory-manager-agent.test.js.map +0 -1
  256. package/dist/src/prompts/snippets-memory-manager.test.js +0 -31
  257. package/dist/src/prompts/snippets-memory-manager.test.js.map +0 -1
  258. /package/dist/src/agents/{memory-manager-agent.test.d.ts → skill-extraction-agent.test.d.ts} +0 -0
  259. /package/dist/src/prompts/{snippets-memory-manager.test.d.ts → snippets-memory-v2.test.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google/gemini-cli-core",
3
- "version": "0.39.0-preview.2",
3
+ "version": "0.40.0-preview.0",
4
4
  "description": "Gemini CLI Core",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -20,7 +20,8 @@
20
20
  "typecheck": "tsc --noEmit"
21
21
  },
22
22
  "files": [
23
- "dist"
23
+ "dist",
24
+ "vendor"
24
25
  ],
25
26
  "dependencies": {
26
27
  "@a2a-js/sdk": "0.3.11",
@@ -31,7 +32,6 @@
31
32
  "@google/genai": "1.30.0",
32
33
  "@grpc/grpc-js": "^1.14.3",
33
34
  "@iarna/toml": "^2.2.5",
34
- "@joshua.litt/get-ripgrep": "^0.0.3",
35
35
  "@modelcontextprotocol/sdk": "^1.23.0",
36
36
  "@opentelemetry/api": "^1.9.0",
37
37
  "@opentelemetry/api-logs": "^0.211.0",
@@ -56,9 +56,11 @@
56
56
  "ajv": "^8.17.1",
57
57
  "ajv-formats": "^3.0.0",
58
58
  "chardet": "^2.1.0",
59
+ "chokidar": "^5.0.0",
59
60
  "diff": "^8.0.3",
60
61
  "dotenv": "^17.2.4",
61
62
  "dotenv-expand": "^12.0.3",
63
+ "execa": "^9.6.1",
62
64
  "fast-levenshtein": "^2.0.6",
63
65
  "fdir": "^6.4.6",
64
66
  "fzf": "^0.5.2",
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,181 +0,0 @@
1
- # Gemini CLI installation, execution, and releases
2
-
3
- This document provides an overview of Gemini CLI's system requirements,
4
- installation methods, and release types.
5
-
6
- ## Recommended system specifications
7
-
8
- - **Operating System:**
9
- - macOS 15+
10
- - Windows 11 24H2+
11
- - Ubuntu 20.04+
12
- - **Hardware:**
13
- - "Casual" usage: 4GB+ RAM (short sessions, common tasks and edits)
14
- - "Power" usage: 16GB+ RAM (long sessions, large codebases, deep context)
15
- - **Runtime:** Node.js 20.0.0+
16
- - **Shell:** Bash, Zsh, or PowerShell
17
- - **Location:**
18
- [Gemini Code Assist supported locations](https://developers.google.com/gemini-code-assist/resources/available-locations#americas)
19
- - **Internet connection required**
20
-
21
- ## Install Gemini CLI
22
-
23
- We recommend most users install Gemini CLI using one of the following
24
- installation methods:
25
-
26
- - npm
27
- - Homebrew
28
- - MacPorts
29
- - Anaconda
30
-
31
- Note that Gemini CLI comes pre-installed on
32
- [**Cloud Shell**](https://docs.cloud.google.com/shell/docs) and
33
- [**Cloud Workstations**](https://cloud.google.com/workstations).
34
-
35
- ### Install globally with npm
36
-
37
- ```bash
38
- npm install -g @google/gemini-cli
39
- ```
40
-
41
- ### Install globally with Homebrew (macOS/Linux)
42
-
43
- ```bash
44
- brew install gemini-cli
45
- ```
46
-
47
- ### Install globally with MacPorts (macOS)
48
-
49
- ```bash
50
- sudo port install gemini-cli
51
- ```
52
-
53
- ### Install with Anaconda (for restricted environments)
54
-
55
- ```bash
56
- # Create and activate a new environment
57
- conda create -y -n gemini_env -c conda-forge nodejs
58
- conda activate gemini_env
59
-
60
- # Install Gemini CLI globally via npm (inside the environment)
61
- npm install -g @google/gemini-cli
62
- ```
63
-
64
- ## Run Gemini CLI
65
-
66
- For most users, we recommend running Gemini CLI with the `gemini` command:
67
-
68
- ```bash
69
- gemini
70
- ```
71
-
72
- For a list of options and additional commands, see the
73
- [CLI cheatsheet](../cli/cli-reference.md).
74
-
75
- You can also run Gemini CLI using one of the following advanced methods:
76
-
77
- - Run instantly with npx. You can run Gemini CLI without permanent installation.
78
- - In a sandbox. This method offers increased security and isolation.
79
- - From the source. This is recommended for contributors to the project.
80
-
81
- ### Run instantly with npx
82
-
83
- ```bash
84
- # Using npx (no installation required)
85
- npx @google/gemini-cli
86
- ```
87
-
88
- You can also execute the CLI directly from the main branch on GitHub, which is
89
- helpful for testing features still in development:
90
-
91
- ```bash
92
- npx https://github.com/google-gemini/gemini-cli
93
- ```
94
-
95
- ### Run in a sandbox (Docker/Podman)
96
-
97
- For security and isolation, Gemini CLI can be run inside a container. This is
98
- the default way that the CLI executes tools that might have side effects.
99
-
100
- - **Directly from the registry:** You can run the published sandbox image
101
- directly. This is useful for environments where you only have Docker and want
102
- to run the CLI.
103
- ```bash
104
- # Run the published sandbox image
105
- docker run --rm -it us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.1.1
106
- ```
107
- - **Using the `--sandbox` flag:** If you have Gemini CLI installed locally
108
- (using the standard installation described above), you can instruct it to run
109
- inside the sandbox container.
110
- ```bash
111
- gemini --sandbox -y -p "your prompt here"
112
- ```
113
-
114
- ### Run from source (recommended for Gemini CLI contributors)
115
-
116
- Contributors to the project will want to run the CLI directly from the source
117
- code.
118
-
119
- - **Development mode:** This method provides hot-reloading and is useful for
120
- active development.
121
- ```bash
122
- # From the root of the repository
123
- npm run start
124
- ```
125
- - **Production mode (React optimizations):** This method runs the CLI with React
126
- production mode enabled, which is useful for testing performance without
127
- development overhead.
128
- ```bash
129
- # From the root of the repository
130
- npm run start:prod
131
- ```
132
- - **Production-like mode (linked package):** This method simulates a global
133
- installation by linking your local package. It's useful for testing a local
134
- build in a production workflow.
135
-
136
- ```bash
137
- # Link the local cli package to your global node_modules
138
- npm link packages/cli
139
-
140
- # Now you can run your local version using the `gemini` command
141
- gemini
142
- ```
143
-
144
- ## Releases
145
-
146
- Gemini CLI has three release channels: nightly, preview, and stable. For most
147
- users, we recommend the stable release, which is the default installation.
148
-
149
- ### Stable
150
-
151
- New stable releases are published each week. The stable release is the promotion
152
- of last week's `preview` release along with any bug fixes. The stable release
153
- uses `latest` tag, but omitting the tag also installs the latest stable release
154
- by default:
155
-
156
- ```bash
157
- # Both commands install the latest stable release.
158
- npm install -g @google/gemini-cli
159
- npm install -g @google/gemini-cli@latest
160
- ```
161
-
162
- ### Preview
163
-
164
- New preview releases will be published each week. These releases are not fully
165
- vetted and may contain regressions or other outstanding issues. Try out the
166
- preview release by using the `preview` tag:
167
-
168
- ```bash
169
- npm install -g @google/gemini-cli@preview
170
- ```
171
-
172
- ### Nightly
173
-
174
- Nightly releases are published every day. The nightly release includes all
175
- changes from the main branch at time of release. It should be assumed there are
176
- pending validations and issues. You can help test the latest changes by
177
- installing with the `nightly` tag:
178
-
179
- ```bash
180
- npm install -g @google/gemini-cli@nightly
181
- ```
@@ -1,25 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { z } from 'zod';
7
- import type { LocalAgentDefinition } from './types.js';
8
- import type { Config } from '../config/config.js';
9
- declare const MemoryManagerSchema: z.ZodObject<{
10
- response: z.ZodString;
11
- }, "strip", z.ZodTypeAny, {
12
- response: string;
13
- }, {
14
- response: string;
15
- }>;
16
- /**
17
- * A memory management agent that replaces the built-in save_memory tool.
18
- * It provides richer memory operations: adding, removing, de-duplicating,
19
- * and organizing memories in the global GEMINI.md file.
20
- *
21
- * Users can override this agent by placing a custom save_memory.md
22
- * in ~/.gemini/agents/ or .gemini/agents/.
23
- */
24
- export declare const MemoryManagerAgent: (config: Config) => LocalAgentDefinition<typeof MemoryManagerSchema>;
25
- export {};
@@ -1,138 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { z } from 'zod';
7
- import { ASK_USER_TOOL_NAME, EDIT_TOOL_NAME, GLOB_TOOL_NAME, GREP_TOOL_NAME, LS_TOOL_NAME, READ_FILE_TOOL_NAME, WRITE_FILE_TOOL_NAME, } from '../tools/tool-names.js';
8
- import { Storage } from '../config/storage.js';
9
- import { flattenMemory } from '../config/memory.js';
10
- import { GEMINI_MODEL_ALIAS_FLASH } from '../config/models.js';
11
- const MemoryManagerSchema = z.object({
12
- response: z
13
- .string()
14
- .describe('A summary of the memory operations performed.'),
15
- });
16
- /**
17
- * A memory management agent that replaces the built-in save_memory tool.
18
- * It provides richer memory operations: adding, removing, de-duplicating,
19
- * and organizing memories in the global GEMINI.md file.
20
- *
21
- * Users can override this agent by placing a custom save_memory.md
22
- * in ~/.gemini/agents/ or .gemini/agents/.
23
- */
24
- export const MemoryManagerAgent = (config) => {
25
- const globalGeminiDir = Storage.getGlobalGeminiDir();
26
- const getInitialContext = () => {
27
- const memory = config.getUserMemory();
28
- // Only include global and project memory — extension memory is read-only
29
- // and not relevant to the memory manager.
30
- const content = typeof memory === 'string'
31
- ? memory
32
- : flattenMemory({ global: memory.global, project: memory.project });
33
- if (!content.trim())
34
- return '';
35
- return `\n# Initial Context\n\n${content}\n`;
36
- };
37
- const buildSystemPrompt = () => `
38
- You are a memory management agent maintaining user memories in GEMINI.md files.
39
-
40
- # Memory Hierarchy
41
-
42
- ## Global (${globalGeminiDir})
43
- - \`${globalGeminiDir}/GEMINI.md\` — Cross-project user preferences, key personal info,
44
- and habits that apply everywhere.
45
-
46
- ## Project (./)
47
- - \`./GEMINI.md\` — **Table of Contents** for project-specific context:
48
- architecture decisions, conventions, key contacts, and references to
49
- subdirectory GEMINI.md files for detailed context.
50
- - Subdirectory GEMINI.md files (e.g. \`src/GEMINI.md\`, \`docs/GEMINI.md\`) —
51
- detailed, domain-specific context for that part of the project. Reference
52
- these from the root \`./GEMINI.md\`.
53
-
54
- ## Routing
55
-
56
- When adding a memory, route it to the right store:
57
- - **Global**: User preferences, personal info, tool aliases, cross-project habits → **global**
58
- - **Project Root**: Project architecture, conventions, workflows, team info → **project root**
59
- - **Subdirectory**: Detailed context about a specific module or directory → **subdirectory
60
- GEMINI.md**, with a reference added to the project root
61
-
62
- - **Ambiguity**: If a memory (like a coding preference or workflow) could be interpreted as either a global habit or a project-specific convention, you **MUST** use \`${ASK_USER_TOOL_NAME}\` to clarify the user's intent. Do NOT make a unilateral decision when ambiguity exists between Global and Project stores.
63
-
64
- # Operations
65
-
66
- 1. **Adding** — Route to the correct store and file. Check for duplicates in your provided context first.
67
- 2. **Removing stale entries** — Delete outdated or unwanted entries. Clean up
68
- dangling references.
69
- 3. **De-duplicating** — Semantically equivalent entries should be combined. Keep the most informative version.
70
- 4. **Organizing** — Restructure for clarity. Update references between files.
71
-
72
- # Restrictions
73
- - Keep GEMINI.md files lean — they are loaded into context every session.
74
- - Keep entries concise.
75
- - Edit surgically — preserve existing structure and user-authored content.
76
- - NEVER write or read any files other than GEMINI.md files.
77
-
78
- # Efficiency & Performance
79
- - **Use as few turns as possible.** Execute independent reads and writes to different files in parallel by calling multiple tools in a single turn.
80
- - **Do not perform any exploration of the codebase.** Try to use the provided file context and only search additional GEMINI.md files as needed to accomplish your task.
81
- - **Be strategic with your thinking.** carefully decide where to route memories and how to de-duplicate memories, but be decisive with simple memory writes.
82
- - **Minimize file system operations.** You should typically only modify the GEMINI.md files that are already provided in your context. Only read or write to other files if explicitly directed or if you are following a specific reference from an existing memory file.
83
- - **Context Awareness.** If a file's content is already provided in the "Initial Context" section, you do not need to call \`read_file\` for it.
84
-
85
- # Insufficient context
86
- If you find that you have insufficient context to read or modify the memories as described,
87
- reply with what you need, and exit. Do not search the codebase for the missing context.
88
- `.trim();
89
- return {
90
- kind: 'local',
91
- name: 'save_memory',
92
- displayName: 'Memory Manager',
93
- description: `Writes and reads memory, preferences or facts across ALL future sessions. Use this for recurring instructions like coding styles or tool aliases.`,
94
- inputConfig: {
95
- inputSchema: {
96
- type: 'object',
97
- properties: {
98
- request: {
99
- type: 'string',
100
- description: 'The memory operation to perform. Examples: "Remember that I prefer tabs over spaces", "Clean up stale memories", "De-duplicate my memories", "Organize my memories".',
101
- },
102
- },
103
- required: ['request'],
104
- },
105
- },
106
- outputConfig: {
107
- outputName: 'result',
108
- description: 'A summary of the memory operations performed.',
109
- schema: MemoryManagerSchema,
110
- },
111
- modelConfig: {
112
- model: GEMINI_MODEL_ALIAS_FLASH,
113
- },
114
- workspaceDirectories: [globalGeminiDir],
115
- toolConfig: {
116
- tools: [
117
- READ_FILE_TOOL_NAME,
118
- EDIT_TOOL_NAME,
119
- WRITE_FILE_TOOL_NAME,
120
- LS_TOOL_NAME,
121
- GLOB_TOOL_NAME,
122
- GREP_TOOL_NAME,
123
- ASK_USER_TOOL_NAME,
124
- ],
125
- },
126
- get promptConfig() {
127
- return {
128
- systemPrompt: buildSystemPrompt(),
129
- query: `${getInitialContext()}\${request}`,
130
- };
131
- },
132
- runConfig: {
133
- maxTimeMinutes: 5,
134
- maxTurns: 10,
135
- },
136
- };
137
- };
138
- //# sourceMappingURL=memory-manager-agent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-manager-agent.js","sourceRoot":"","sources":["../../../src/agents/memory-manager-agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,+CAA+C,CAAC;CAC7D,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAc,EACoC,EAAE;IACpD,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAErD,MAAM,iBAAiB,GAAG,GAAW,EAAE;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QACtC,yEAAyE;QACzE,0CAA0C;QAC1C,MAAM,OAAO,GACX,OAAO,MAAM,KAAK,QAAQ;YACxB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,CAAC;QAC/B,OAAO,0BAA0B,OAAO,IAAI,CAAC;IAC/C,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAW,EAAE,CACrC;;;;;aAKS,eAAe;MACtB,eAAe;;;;;;;;;;;;;;;;;;;yKAmBoJ,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1L,CAAC,IAAI,EAAE,CAAC;IAEP,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,gBAAgB;QAC7B,WAAW,EAAE,mJAAmJ;QAChK,WAAW,EAAE;YACX,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,sKAAsK;qBACzK;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF;QACD,YAAY,EAAE;YACZ,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,+CAA+C;YAC5D,MAAM,EAAE,mBAAmB;SAC5B;QACD,WAAW,EAAE;YACX,KAAK,EAAE,wBAAwB;SAChC;QACD,oBAAoB,EAAE,CAAC,eAAe,CAAC;QACvC,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,mBAAmB;gBACnB,cAAc;gBACd,oBAAoB;gBACpB,YAAY;gBACZ,cAAc;gBACd,cAAc;gBACd,kBAAkB;aACnB;SACF;QACD,IAAI,YAAY;YACd,OAAO;gBACL,YAAY,EAAE,iBAAiB,EAAE;gBACjC,KAAK,EAAE,GAAG,iBAAiB,EAAE,aAAa;aAC3C,CAAC;QACJ,CAAC;QACD,SAAS,EAAE;YACT,cAAc,EAAE,CAAC;YACjB,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,123 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
- import { MemoryManagerAgent } from './memory-manager-agent.js';
8
- import { ASK_USER_TOOL_NAME, EDIT_TOOL_NAME, GLOB_TOOL_NAME, GREP_TOOL_NAME, LS_TOOL_NAME, READ_FILE_TOOL_NAME, WRITE_FILE_TOOL_NAME, } from '../tools/tool-names.js';
9
- import { Storage } from '../config/storage.js';
10
- function createMockConfig(memory = '') {
11
- return {
12
- getUserMemory: vi.fn().mockReturnValue(memory),
13
- };
14
- }
15
- describe('MemoryManagerAgent', () => {
16
- beforeEach(() => {
17
- vi.clearAllMocks();
18
- });
19
- afterEach(() => {
20
- vi.restoreAllMocks();
21
- });
22
- it('should have the correct name "save_memory"', () => {
23
- const agent = MemoryManagerAgent(createMockConfig());
24
- expect(agent.name).toBe('save_memory');
25
- });
26
- it('should be a local agent', () => {
27
- const agent = MemoryManagerAgent(createMockConfig());
28
- expect(agent.kind).toBe('local');
29
- });
30
- it('should have a description', () => {
31
- const agent = MemoryManagerAgent(createMockConfig());
32
- expect(agent.description).toBeTruthy();
33
- expect(agent.description).toContain('memory');
34
- });
35
- it('should have a system prompt with memory management instructions', () => {
36
- const agent = MemoryManagerAgent(createMockConfig());
37
- const prompt = agent.promptConfig.systemPrompt;
38
- const globalGeminiDir = Storage.getGlobalGeminiDir();
39
- expect(prompt).toContain(`Global (${globalGeminiDir}`);
40
- expect(prompt).toContain('Project (./');
41
- expect(prompt).toContain('Memory Hierarchy');
42
- expect(prompt).toContain('De-duplicating');
43
- expect(prompt).toContain('Adding');
44
- expect(prompt).toContain('Removing stale entries');
45
- expect(prompt).toContain('Organizing');
46
- expect(prompt).toContain('Routing');
47
- });
48
- it('should have efficiency guidelines in the system prompt', () => {
49
- const agent = MemoryManagerAgent(createMockConfig());
50
- const prompt = agent.promptConfig.systemPrompt;
51
- expect(prompt).toContain('Efficiency & Performance');
52
- expect(prompt).toContain('Use as few turns as possible');
53
- expect(prompt).toContain('Do not perform any exploration');
54
- expect(prompt).toContain('Be strategic with your thinking');
55
- expect(prompt).toContain('Context Awareness');
56
- });
57
- it('should inject hierarchical memory into initial context', () => {
58
- const config = createMockConfig({
59
- global: '--- Context from: ../../.gemini/GEMINI.md ---\nglobal context\n--- End of Context from: ../../.gemini/GEMINI.md ---',
60
- project: '--- Context from: .gemini/GEMINI.md ---\nproject context\n--- End of Context from: .gemini/GEMINI.md ---',
61
- });
62
- const agent = MemoryManagerAgent(config);
63
- const query = agent.promptConfig.query;
64
- expect(query).toContain('# Initial Context');
65
- expect(query).toContain('global context');
66
- expect(query).toContain('project context');
67
- });
68
- it('should inject flat string memory into initial context', () => {
69
- const config = createMockConfig('flat memory content');
70
- const agent = MemoryManagerAgent(config);
71
- const query = agent.promptConfig.query;
72
- expect(query).toContain('# Initial Context');
73
- expect(query).toContain('flat memory content');
74
- });
75
- it('should exclude extension memory from initial context', () => {
76
- const config = createMockConfig({
77
- global: 'global context',
78
- extension: 'extension context that should be excluded',
79
- project: 'project context',
80
- });
81
- const agent = MemoryManagerAgent(config);
82
- const query = agent.promptConfig.query;
83
- expect(query).toContain('global context');
84
- expect(query).toContain('project context');
85
- expect(query).not.toContain('extension context');
86
- });
87
- it('should not include initial context when memory is empty', () => {
88
- const agent = MemoryManagerAgent(createMockConfig());
89
- const query = agent.promptConfig.query;
90
- expect(query).not.toContain('# Initial Context');
91
- });
92
- it('should have file-management and search tools', () => {
93
- const agent = MemoryManagerAgent(createMockConfig());
94
- expect(agent.toolConfig).toBeDefined();
95
- expect(agent.toolConfig.tools).toEqual(expect.arrayContaining([
96
- READ_FILE_TOOL_NAME,
97
- EDIT_TOOL_NAME,
98
- WRITE_FILE_TOOL_NAME,
99
- LS_TOOL_NAME,
100
- GLOB_TOOL_NAME,
101
- GREP_TOOL_NAME,
102
- ASK_USER_TOOL_NAME,
103
- ]));
104
- });
105
- it('should require a "request" input parameter', () => {
106
- const agent = MemoryManagerAgent(createMockConfig());
107
- const schema = agent.inputConfig.inputSchema;
108
- expect(schema).toBeDefined();
109
- expect(schema['properties']).toHaveProperty('request');
110
- expect(schema['required']).toContain('request');
111
- });
112
- it('should use a fast model', () => {
113
- const agent = MemoryManagerAgent(createMockConfig());
114
- expect(agent.modelConfig.model).toBe('flash');
115
- });
116
- it('should declare workspaceDirectories containing the global .gemini directory', () => {
117
- const agent = MemoryManagerAgent(createMockConfig());
118
- const globalGeminiDir = Storage.getGlobalGeminiDir();
119
- expect(agent.workspaceDirectories).toBeDefined();
120
- expect(agent.workspaceDirectories).toContain(globalGeminiDir);
121
- });
122
- });
123
- //# sourceMappingURL=memory-manager-agent.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-manager-agent.test.js","sourceRoot":"","sources":["../../../src/agents/memory-manager-agent.test.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2026 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect } from 'vitest';
7
- import { renderOperationalGuidelines } from './snippets.js';
8
- describe('renderOperationalGuidelines - memoryManagerEnabled', () => {
9
- const baseOptions = {
10
- interactive: true,
11
- interactiveShellEnabled: false,
12
- topicUpdateNarration: false,
13
- memoryManagerEnabled: false,
14
- };
15
- it('should include standard memory tool guidance when memoryManagerEnabled is false', () => {
16
- const result = renderOperationalGuidelines(baseOptions);
17
- expect(result).toContain('save_memory');
18
- expect(result).toContain('persist facts across sessions');
19
- expect(result).not.toContain('subagent');
20
- });
21
- it('should include subagent memory guidance when memoryManagerEnabled is true', () => {
22
- const result = renderOperationalGuidelines({
23
- ...baseOptions,
24
- memoryManagerEnabled: true,
25
- });
26
- expect(result).toContain('save_memory');
27
- expect(result).toContain('subagent');
28
- expect(result).not.toContain('persistent user-related information');
29
- });
30
- });
31
- //# sourceMappingURL=snippets-memory-manager.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snippets-memory-manager.test.js","sourceRoot":"","sources":["../../../src/prompts/snippets-memory-manager.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAClE,MAAM,WAAW,GAAG;QAClB,WAAW,EAAE,IAAI;QACjB,uBAAuB,EAAE,KAAK;QAC9B,oBAAoB,EAAE,KAAK;QAC3B,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IAEF,EAAE,CAAC,iFAAiF,EAAE,GAAG,EAAE;QACzF,MAAM,MAAM,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,MAAM,MAAM,GAAG,2BAA2B,CAAC;YACzC,GAAG,WAAW;YACd,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}