@google/gemini-cli-core 0.1.16 → 0.1.17-nightly.250808.60362e03

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 (216) hide show
  1. package/README.md +11 -1
  2. package/dist/google-gemini-cli-core-0.1.17.tgz +0 -0
  3. package/dist/src/config/config.d.ts +24 -4
  4. package/dist/src/config/config.js +71 -12
  5. package/dist/src/config/config.js.map +1 -1
  6. package/dist/src/config/config.test.js +68 -2
  7. package/dist/src/config/config.test.js.map +1 -1
  8. package/dist/src/config/flashFallback.test.js +0 -4
  9. package/dist/src/config/flashFallback.test.js.map +1 -1
  10. package/dist/src/core/client.d.ts +0 -2
  11. package/dist/src/core/client.js +9 -84
  12. package/dist/src/core/client.js.map +1 -1
  13. package/dist/src/core/client.test.js +7 -2
  14. package/dist/src/core/client.test.js.map +1 -1
  15. package/dist/src/core/coreToolScheduler.d.ts +18 -7
  16. package/dist/src/core/coreToolScheduler.js +81 -17
  17. package/dist/src/core/coreToolScheduler.js.map +1 -1
  18. package/dist/src/core/coreToolScheduler.test.js +29 -37
  19. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  20. package/dist/src/core/geminiChat.d.ts +6 -0
  21. package/dist/src/core/geminiChat.js +42 -4
  22. package/dist/src/core/geminiChat.js.map +1 -1
  23. package/dist/src/core/nonInteractiveToolExecutor.js +3 -1
  24. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  25. package/dist/src/core/nonInteractiveToolExecutor.test.js +7 -31
  26. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  27. package/dist/src/core/subagent.d.ts +230 -0
  28. package/dist/src/core/subagent.js +447 -0
  29. package/dist/src/core/subagent.js.map +1 -0
  30. package/dist/src/core/subagent.test.d.ts +6 -0
  31. package/dist/src/core/subagent.test.js +515 -0
  32. package/dist/src/core/subagent.test.js.map +1 -0
  33. package/dist/src/core/turn.js +1 -0
  34. package/dist/src/core/turn.js.map +1 -1
  35. package/dist/src/core/turn.test.js +4 -0
  36. package/dist/src/core/turn.test.js.map +1 -1
  37. package/dist/src/ide/detect-ide.js +6 -3
  38. package/dist/src/ide/detect-ide.js.map +1 -1
  39. package/dist/src/ide/ide-client.d.ts +27 -11
  40. package/dist/src/ide/ide-client.js +163 -61
  41. package/dist/src/ide/ide-client.js.map +1 -1
  42. package/dist/src/ide/ide-installer.d.ts +0 -1
  43. package/dist/src/ide/ide-installer.js +5 -7
  44. package/dist/src/ide/ide-installer.js.map +1 -1
  45. package/dist/src/ide/ide-installer.test.js +1 -24
  46. package/dist/src/ide/ide-installer.test.js.map +1 -1
  47. package/dist/src/ide/ideContext.d.ts +127 -32
  48. package/dist/src/ide/ideContext.js +45 -0
  49. package/dist/src/ide/ideContext.js.map +1 -1
  50. package/dist/src/index.d.ts +1 -0
  51. package/dist/src/index.js +1 -0
  52. package/dist/src/index.js.map +1 -1
  53. package/dist/src/mcp/oauth-provider.d.ts +1 -0
  54. package/dist/src/mcp/oauth-provider.js +14 -1
  55. package/dist/src/mcp/oauth-provider.js.map +1 -1
  56. package/dist/src/mcp/oauth-provider.test.js +87 -6
  57. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  58. package/dist/src/prompts/prompt-registry.d.ts +8 -0
  59. package/dist/src/prompts/prompt-registry.js +16 -0
  60. package/dist/src/prompts/prompt-registry.js.map +1 -1
  61. package/dist/src/services/shellExecutionService.js +29 -9
  62. package/dist/src/services/shellExecutionService.js.map +1 -1
  63. package/dist/src/services/shellExecutionService.test.js +8 -0
  64. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  65. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +2 -1
  66. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +32 -1
  67. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  68. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +2 -1
  69. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +5 -0
  70. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  71. package/dist/src/telemetry/constants.d.ts +1 -0
  72. package/dist/src/telemetry/constants.js +1 -0
  73. package/dist/src/telemetry/constants.js.map +1 -1
  74. package/dist/src/telemetry/loggers.d.ts +2 -1
  75. package/dist/src/telemetry/loggers.js +17 -1
  76. package/dist/src/telemetry/loggers.js.map +1 -1
  77. package/dist/src/telemetry/loggers.test.circular.js +7 -2
  78. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  79. package/dist/src/telemetry/loggers.test.js +5 -1
  80. package/dist/src/telemetry/loggers.test.js.map +1 -1
  81. package/dist/src/telemetry/metrics.d.ts +1 -1
  82. package/dist/src/telemetry/metrics.js.map +1 -1
  83. package/dist/src/telemetry/telemetry.test.js +0 -2
  84. package/dist/src/telemetry/telemetry.test.js.map +1 -1
  85. package/dist/src/telemetry/types.d.ts +13 -2
  86. package/dist/src/telemetry/types.js +18 -1
  87. package/dist/src/telemetry/types.js.map +1 -1
  88. package/dist/src/telemetry/uiTelemetry.d.ts +2 -0
  89. package/dist/src/telemetry/uiTelemetry.js +2 -0
  90. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  91. package/dist/src/telemetry/uiTelemetry.test.js +11 -1
  92. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  93. package/dist/src/test-utils/tools.d.ts +23 -0
  94. package/dist/src/test-utils/tools.js +41 -0
  95. package/dist/src/test-utils/tools.js.map +1 -0
  96. package/dist/src/tools/edit.d.ts +5 -33
  97. package/dist/src/tools/edit.js +129 -124
  98. package/dist/src/tools/edit.js.map +1 -1
  99. package/dist/src/tools/edit.test.js +117 -51
  100. package/dist/src/tools/edit.test.js.map +1 -1
  101. package/dist/src/tools/glob.d.ts +3 -10
  102. package/dist/src/tools/glob.js +85 -88
  103. package/dist/src/tools/glob.js.map +1 -1
  104. package/dist/src/tools/glob.test.js +22 -12
  105. package/dist/src/tools/glob.test.js.map +1 -1
  106. package/dist/src/tools/grep.d.ts +3 -35
  107. package/dist/src/tools/grep.js +111 -82
  108. package/dist/src/tools/grep.js.map +1 -1
  109. package/dist/src/tools/grep.test.js +40 -23
  110. package/dist/src/tools/grep.test.js.map +1 -1
  111. package/dist/src/tools/mcp-client.d.ts +11 -1
  112. package/dist/src/tools/mcp-client.js +91 -17
  113. package/dist/src/tools/mcp-client.js.map +1 -1
  114. package/dist/src/tools/mcp-client.test.js +329 -10
  115. package/dist/src/tools/mcp-client.test.js.map +1 -1
  116. package/dist/src/tools/mcp-tool.js +104 -45
  117. package/dist/src/tools/mcp-tool.js.map +1 -1
  118. package/dist/src/tools/mcp-tool.test.js +280 -2
  119. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  120. package/dist/src/tools/memoryTool.d.ts +2 -2
  121. package/dist/src/tools/memoryTool.js +1 -0
  122. package/dist/src/tools/memoryTool.js.map +1 -1
  123. package/dist/src/tools/modifiable-tool.d.ts +9 -6
  124. package/dist/src/tools/modifiable-tool.js +6 -3
  125. package/dist/src/tools/modifiable-tool.js.map +1 -1
  126. package/dist/src/tools/modifiable-tool.test.js +12 -12
  127. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  128. package/dist/src/tools/read-file.d.ts +4 -6
  129. package/dist/src/tools/read-file.js +55 -39
  130. package/dist/src/tools/read-file.js.map +1 -1
  131. package/dist/src/tools/read-file.test.js +132 -134
  132. package/dist/src/tools/read-file.test.js.map +1 -1
  133. package/dist/src/tools/read-many-files.js +84 -34
  134. package/dist/src/tools/read-many-files.js.map +1 -1
  135. package/dist/src/tools/read-many-files.test.js +107 -0
  136. package/dist/src/tools/read-many-files.test.js.map +1 -1
  137. package/dist/src/tools/tool-registry.d.ts +12 -5
  138. package/dist/src/tools/tool-registry.js +28 -11
  139. package/dist/src/tools/tool-registry.js.map +1 -1
  140. package/dist/src/tools/tool-registry.test.js +7 -22
  141. package/dist/src/tools/tool-registry.test.js.map +1 -1
  142. package/dist/src/tools/tools.d.ts +133 -39
  143. package/dist/src/tools/tools.js +180 -10
  144. package/dist/src/tools/tools.js.map +1 -1
  145. package/dist/src/tools/tools.test.d.ts +6 -0
  146. package/dist/src/tools/tools.test.js +117 -0
  147. package/dist/src/tools/tools.test.js.map +1 -0
  148. package/dist/src/tools/write-file.d.ts +2 -2
  149. package/dist/src/tools/write-file.js +17 -2
  150. package/dist/src/tools/write-file.js.map +1 -1
  151. package/dist/src/tools/write-file.test.js +40 -3
  152. package/dist/src/tools/write-file.test.js.map +1 -1
  153. package/dist/src/utils/bfsFileSearch.test.js +28 -56
  154. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  155. package/dist/src/utils/editor.d.ts +1 -1
  156. package/dist/src/utils/editor.js +13 -5
  157. package/dist/src/utils/editor.js.map +1 -1
  158. package/dist/src/utils/editor.test.js +38 -6
  159. package/dist/src/utils/editor.test.js.map +1 -1
  160. package/dist/src/utils/environmentContext.d.ts +21 -0
  161. package/dist/src/utils/environmentContext.js +90 -0
  162. package/dist/src/utils/environmentContext.js.map +1 -0
  163. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  164. package/dist/src/utils/environmentContext.test.js +139 -0
  165. package/dist/src/utils/environmentContext.test.js.map +1 -0
  166. package/dist/src/utils/fileUtils.js +7 -13
  167. package/dist/src/utils/fileUtils.js.map +1 -1
  168. package/dist/src/utils/fileUtils.test.js +18 -4
  169. package/dist/src/utils/fileUtils.test.js.map +1 -1
  170. package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
  171. package/dist/src/utils/filesearch/crawlCache.js +57 -0
  172. package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
  173. package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
  174. package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
  175. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
  176. package/dist/src/utils/filesearch/fileSearch.d.ts +81 -0
  177. package/dist/src/utils/filesearch/fileSearch.js +241 -0
  178. package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
  179. package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
  180. package/dist/src/utils/filesearch/fileSearch.test.js +654 -0
  181. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
  182. package/dist/src/utils/filesearch/ignore.d.ts +35 -0
  183. package/dist/src/utils/filesearch/ignore.js +81 -0
  184. package/dist/src/utils/filesearch/ignore.js.map +1 -0
  185. package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
  186. package/dist/src/utils/filesearch/ignore.test.js +57 -0
  187. package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
  188. package/dist/src/utils/filesearch/result-cache.d.ts +34 -0
  189. package/dist/src/utils/filesearch/result-cache.js +61 -0
  190. package/dist/src/utils/filesearch/result-cache.js.map +1 -0
  191. package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
  192. package/dist/src/utils/filesearch/result-cache.test.js +47 -0
  193. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
  194. package/dist/src/utils/flashFallback.integration.test.js +0 -2
  195. package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
  196. package/dist/src/utils/memoryDiscovery.d.ts +1 -1
  197. package/dist/src/utils/memoryDiscovery.js +22 -7
  198. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  199. package/dist/src/utils/memoryDiscovery.test.js +30 -71
  200. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  201. package/dist/src/utils/nextSpeakerChecker.js +2 -2
  202. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  203. package/dist/src/utils/nextSpeakerChecker.test.js +2 -2
  204. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  205. package/dist/src/utils/paths.d.ts +11 -2
  206. package/dist/src/utils/paths.js +24 -7
  207. package/dist/src/utils/paths.js.map +1 -1
  208. package/dist/src/utils/paths.test.d.ts +6 -0
  209. package/dist/src/utils/paths.test.js +153 -0
  210. package/dist/src/utils/paths.test.js.map +1 -0
  211. package/dist/src/utils/workspaceContext.d.ts +4 -0
  212. package/dist/src/utils/workspaceContext.js +33 -0
  213. package/dist/src/utils/workspaceContext.js.map +1 -1
  214. package/dist/tsconfig.tsbuildinfo +1 -1
  215. package/package.json +6 -1
  216. package/dist/google-gemini-cli-core-0.1.15.tgz +0 -0
@@ -10,6 +10,7 @@
10
10
  */
11
11
  export declare class WorkspaceContext {
12
12
  private directories;
13
+ private initialDirectories;
13
14
  /**
14
15
  * Creates a new WorkspaceContext with the given initial directory and optional additional directories.
15
16
  * @param initialDirectory The initial working directory (usually cwd)
@@ -26,11 +27,14 @@ export declare class WorkspaceContext {
26
27
  * Internal method to add a directory with validation.
27
28
  */
28
29
  private addDirectoryInternal;
30
+ private addInitialDirectoryInternal;
29
31
  /**
30
32
  * Gets a copy of all workspace directories.
31
33
  * @returns Array of absolute directory paths
32
34
  */
33
35
  getDirectories(): readonly string[];
36
+ getInitialDirectories(): readonly string[];
37
+ setDirectories(directories: readonly string[]): void;
34
38
  /**
35
39
  * Checks if a given path is within any of the workspace directories.
36
40
  * @param pathToCheck The path to validate
@@ -12,6 +12,7 @@ import * as path from 'path';
12
12
  */
13
13
  export class WorkspaceContext {
14
14
  directories;
15
+ initialDirectories;
15
16
  /**
16
17
  * Creates a new WorkspaceContext with the given initial directory and optional additional directories.
17
18
  * @param initialDirectory The initial working directory (usually cwd)
@@ -19,9 +20,12 @@ export class WorkspaceContext {
19
20
  */
20
21
  constructor(initialDirectory, additionalDirectories = []) {
21
22
  this.directories = new Set();
23
+ this.initialDirectories = new Set();
22
24
  this.addDirectoryInternal(initialDirectory);
25
+ this.addInitialDirectoryInternal(initialDirectory);
23
26
  for (const dir of additionalDirectories) {
24
27
  this.addDirectoryInternal(dir);
28
+ this.addInitialDirectoryInternal(dir);
25
29
  }
26
30
  }
27
31
  /**
@@ -55,6 +59,26 @@ export class WorkspaceContext {
55
59
  }
56
60
  this.directories.add(realPath);
57
61
  }
62
+ addInitialDirectoryInternal(directory, basePath = process.cwd()) {
63
+ const absolutePath = path.isAbsolute(directory)
64
+ ? directory
65
+ : path.resolve(basePath, directory);
66
+ if (!fs.existsSync(absolutePath)) {
67
+ throw new Error(`Directory does not exist: ${absolutePath}`);
68
+ }
69
+ const stats = fs.statSync(absolutePath);
70
+ if (!stats.isDirectory()) {
71
+ throw new Error(`Path is not a directory: ${absolutePath}`);
72
+ }
73
+ let realPath;
74
+ try {
75
+ realPath = fs.realpathSync(absolutePath);
76
+ }
77
+ catch (_error) {
78
+ throw new Error(`Failed to resolve path: ${absolutePath}`);
79
+ }
80
+ this.initialDirectories.add(realPath);
81
+ }
58
82
  /**
59
83
  * Gets a copy of all workspace directories.
60
84
  * @returns Array of absolute directory paths
@@ -62,6 +86,15 @@ export class WorkspaceContext {
62
86
  getDirectories() {
63
87
  return Array.from(this.directories);
64
88
  }
89
+ getInitialDirectories() {
90
+ return Array.from(this.initialDirectories);
91
+ }
92
+ setDirectories(directories) {
93
+ this.directories.clear();
94
+ for (const dir of directories) {
95
+ this.addDirectoryInternal(dir);
96
+ }
97
+ }
65
98
  /**
66
99
  * Checks if a given path is within any of the workspace directories.
67
100
  * @param pathToCheck The path to validate
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceContext.js","sourceRoot":"","sources":["../../../src/utils/workspaceContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaceContext.js","sourceRoot":"","sources":["../../../src/utils/workspaceContext.ts"],"names":[],"mappings":"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"}