@google/gemini-cli-core 0.3.2 → 0.4.0-preview

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 (221) hide show
  1. package/dist/google-gemini-cli-core-0.3.1.tgz +0 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +1 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/code_assist/codeAssist.d.ts +2 -0
  6. package/dist/src/code_assist/codeAssist.js +12 -0
  7. package/dist/src/code_assist/codeAssist.js.map +1 -1
  8. package/dist/src/code_assist/converter.d.ts +2 -1
  9. package/dist/src/code_assist/converter.js +1 -1
  10. package/dist/src/code_assist/converter.js.map +1 -1
  11. package/dist/src/code_assist/oauth2.js +64 -27
  12. package/dist/src/code_assist/oauth2.js.map +1 -1
  13. package/dist/src/code_assist/oauth2.test.js +252 -0
  14. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  15. package/dist/src/config/config.d.ts +12 -7
  16. package/dist/src/config/config.js +47 -27
  17. package/dist/src/config/config.js.map +1 -1
  18. package/dist/src/config/config.test.js +65 -41
  19. package/dist/src/config/config.test.js.map +1 -1
  20. package/dist/src/config/models.d.ts +1 -0
  21. package/dist/src/config/models.js +2 -0
  22. package/dist/src/config/models.js.map +1 -1
  23. package/dist/src/core/client.d.ts +6 -2
  24. package/dist/src/core/client.js +22 -11
  25. package/dist/src/core/client.js.map +1 -1
  26. package/dist/src/core/client.test.js +62 -7
  27. package/dist/src/core/client.test.js.map +1 -1
  28. package/dist/src/core/contentGenerator.d.ts +2 -2
  29. package/dist/src/core/coreToolScheduler.test.js +18 -0
  30. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  31. package/dist/src/core/geminiChat.d.ts +30 -1
  32. package/dist/src/core/geminiChat.js +145 -5
  33. package/dist/src/core/geminiChat.js.map +1 -1
  34. package/dist/src/core/geminiChat.test.js +273 -5
  35. package/dist/src/core/geminiChat.test.js.map +1 -1
  36. package/dist/src/core/loggingContentGenerator.js +9 -9
  37. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  38. package/dist/src/core/nonInteractiveToolExecutor.test.js +2 -0
  39. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  40. package/dist/src/core/subagent.js +5 -6
  41. package/dist/src/core/subagent.js.map +1 -1
  42. package/dist/src/core/subagent.test.js +20 -9
  43. package/dist/src/core/subagent.test.js.map +1 -1
  44. package/dist/src/core/turn.d.ts +18 -4
  45. package/dist/src/core/turn.js +43 -9
  46. package/dist/src/core/turn.js.map +1 -1
  47. package/dist/src/core/turn.test.js +329 -89
  48. package/dist/src/core/turn.test.js.map +1 -1
  49. package/dist/src/generated/git-commit.d.ts +2 -2
  50. package/dist/src/generated/git-commit.js +2 -2
  51. package/dist/src/generated/git-commit.js.map +1 -1
  52. package/dist/src/ide/ide-client.d.ts +7 -2
  53. package/dist/src/ide/ide-client.js +33 -13
  54. package/dist/src/ide/ide-client.js.map +1 -1
  55. package/dist/src/ide/ideContext.d.ts +12 -0
  56. package/dist/src/ide/ideContext.js +1 -0
  57. package/dist/src/ide/ideContext.js.map +1 -1
  58. package/dist/src/ide/process-utils.d.ts +1 -0
  59. package/dist/src/ide/process-utils.js +31 -36
  60. package/dist/src/ide/process-utils.js.map +1 -1
  61. package/dist/src/index.d.ts +2 -0
  62. package/dist/src/index.js +3 -0
  63. package/dist/src/index.js.map +1 -1
  64. package/dist/src/mcp/oauth-provider.d.ts +12 -12
  65. package/dist/src/mcp/oauth-provider.js +32 -31
  66. package/dist/src/mcp/oauth-provider.js.map +1 -1
  67. package/dist/src/mcp/oauth-provider.test.js +74 -35
  68. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  69. package/dist/src/mcp/oauth-token-storage.d.ts +8 -8
  70. package/dist/src/mcp/oauth-token-storage.js +8 -8
  71. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  72. package/dist/src/mcp/oauth-token-storage.test.js +23 -21
  73. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -1
  74. package/dist/src/mcp/token-storage/base-token-storage.d.ts +1 -1
  75. package/dist/src/mcp/token-storage/base-token-storage.js +1 -1
  76. package/dist/src/mcp/token-storage/base-token-storage.js.map +1 -1
  77. package/dist/src/mcp/token-storage/base-token-storage.test.js +1 -1
  78. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -1
  79. package/dist/src/mcp/token-storage/file-token-storage.d.ts +24 -0
  80. package/dist/src/mcp/token-storage/file-token-storage.js +144 -0
  81. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -0
  82. package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +6 -0
  83. package/dist/src/mcp/token-storage/file-token-storage.test.js +235 -0
  84. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -0
  85. package/dist/src/mcp/token-storage/hybrid-token-storage.d.ts +23 -0
  86. package/dist/src/mcp/token-storage/hybrid-token-storage.js +78 -0
  87. package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -0
  88. package/dist/src/mcp/token-storage/hybrid-token-storage.test.d.ts +6 -0
  89. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +193 -0
  90. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -0
  91. package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +31 -0
  92. package/dist/src/mcp/token-storage/keychain-token-storage.js +190 -0
  93. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -0
  94. package/dist/src/mcp/token-storage/keychain-token-storage.test.d.ts +6 -0
  95. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +254 -0
  96. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -0
  97. package/dist/src/mcp/token-storage/types.d.ts +4 -0
  98. package/dist/src/mcp/token-storage/types.js +5 -1
  99. package/dist/src/mcp/token-storage/types.js.map +1 -1
  100. package/dist/src/services/chatRecordingService.d.ts +5 -12
  101. package/dist/src/services/chatRecordingService.js +25 -16
  102. package/dist/src/services/chatRecordingService.js.map +1 -1
  103. package/dist/src/services/chatRecordingService.test.js +54 -17
  104. package/dist/src/services/chatRecordingService.test.js.map +1 -1
  105. package/dist/src/services/shellExecutionService.js +5 -5
  106. package/dist/src/services/shellExecutionService.js.map +1 -1
  107. package/dist/src/services/shellExecutionService.test.js +1 -1
  108. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  109. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +12 -18
  110. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  111. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +27 -0
  112. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  113. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +3 -1
  114. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +4 -0
  115. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  116. package/dist/src/telemetry/constants.d.ts +1 -0
  117. package/dist/src/telemetry/constants.js +1 -0
  118. package/dist/src/telemetry/constants.js.map +1 -1
  119. package/dist/src/telemetry/loggers.js +27 -2
  120. package/dist/src/telemetry/loggers.js.map +1 -1
  121. package/dist/src/telemetry/loggers.test.js +39 -3
  122. package/dist/src/telemetry/loggers.test.js.map +1 -1
  123. package/dist/src/telemetry/metrics.d.ts +1 -2
  124. package/dist/src/telemetry/metrics.js +1 -7
  125. package/dist/src/telemetry/metrics.js.map +1 -1
  126. package/dist/src/telemetry/metrics.test.js +5 -25
  127. package/dist/src/telemetry/metrics.test.js.map +1 -1
  128. package/dist/src/telemetry/types.d.ts +1 -3
  129. package/dist/src/telemetry/types.js +3 -5
  130. package/dist/src/telemetry/types.js.map +1 -1
  131. package/dist/src/telemetry/uiTelemetry.js +4 -4
  132. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  133. package/dist/src/telemetry/uiTelemetry.test.js +4 -4
  134. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  135. package/dist/src/test-utils/index.d.ts +6 -0
  136. package/dist/src/test-utils/index.js +7 -0
  137. package/dist/src/test-utils/index.js.map +1 -0
  138. package/dist/src/test-utils/mock-tool.d.ts +41 -0
  139. package/dist/src/test-utils/mock-tool.js +51 -0
  140. package/dist/src/test-utils/mock-tool.js.map +1 -0
  141. package/dist/src/tools/diffOptions.js +21 -13
  142. package/dist/src/tools/diffOptions.js.map +1 -1
  143. package/dist/src/tools/diffOptions.test.js +58 -22
  144. package/dist/src/tools/diffOptions.test.js.map +1 -1
  145. package/dist/src/tools/edit.d.ts +2 -2
  146. package/dist/src/tools/edit.js +30 -40
  147. package/dist/src/tools/edit.js.map +1 -1
  148. package/dist/src/tools/edit.test.js +50 -9
  149. package/dist/src/tools/edit.test.js.map +1 -1
  150. package/dist/src/tools/mcp-client-manager.d.ts +5 -3
  151. package/dist/src/tools/mcp-client-manager.js +30 -5
  152. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  153. package/dist/src/tools/mcp-client-manager.test.js +20 -1
  154. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  155. package/dist/src/tools/mcp-client.d.ts +5 -5
  156. package/dist/src/tools/mcp-client.js +40 -35
  157. package/dist/src/tools/mcp-client.js.map +1 -1
  158. package/dist/src/tools/mcp-client.test.js +3 -3
  159. package/dist/src/tools/mcp-client.test.js.map +1 -1
  160. package/dist/src/tools/mcp-tool.d.ts +3 -2
  161. package/dist/src/tools/mcp-tool.js +9 -9
  162. package/dist/src/tools/mcp-tool.js.map +1 -1
  163. package/dist/src/tools/mcp-tool.test.js +28 -7
  164. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  165. package/dist/src/tools/memoryTool.js +5 -33
  166. package/dist/src/tools/memoryTool.js.map +1 -1
  167. package/dist/src/tools/read-file.js +1 -1
  168. package/dist/src/tools/read-file.js.map +1 -1
  169. package/dist/src/tools/read-many-files.js +1 -1
  170. package/dist/src/tools/read-many-files.js.map +1 -1
  171. package/dist/src/tools/read-many-files.test.js +4 -4
  172. package/dist/src/tools/read-many-files.test.js.map +1 -1
  173. package/dist/src/tools/shell.js +6 -3
  174. package/dist/src/tools/shell.js.map +1 -1
  175. package/dist/src/tools/shell.test.js +3 -3
  176. package/dist/src/tools/shell.test.js.map +1 -1
  177. package/dist/src/tools/smart-edit.d.ts +73 -0
  178. package/dist/src/tools/smart-edit.js +607 -0
  179. package/dist/src/tools/smart-edit.js.map +1 -0
  180. package/dist/src/tools/smart-edit.test.d.ts +6 -0
  181. package/dist/src/tools/smart-edit.test.js +405 -0
  182. package/dist/src/tools/smart-edit.test.js.map +1 -0
  183. package/dist/src/tools/tool-registry.d.ts +2 -1
  184. package/dist/src/tools/tool-registry.js +5 -5
  185. package/dist/src/tools/tool-registry.js.map +1 -1
  186. package/dist/src/tools/tools.d.ts +6 -2
  187. package/dist/src/tools/tools.js.map +1 -1
  188. package/dist/src/tools/web-fetch.js +4 -3
  189. package/dist/src/tools/web-fetch.js.map +1 -1
  190. package/dist/src/tools/web-search.d.ts +1 -1
  191. package/dist/src/tools/web-search.js +3 -1
  192. package/dist/src/tools/web-search.js.map +1 -1
  193. package/dist/src/tools/write-file.js +11 -15
  194. package/dist/src/tools/write-file.js.map +1 -1
  195. package/dist/src/tools/write-file.test.js +5 -9
  196. package/dist/src/tools/write-file.test.js.map +1 -1
  197. package/dist/src/utils/fileUtils.d.ts +19 -3
  198. package/dist/src/utils/fileUtils.js +144 -32
  199. package/dist/src/utils/fileUtils.js.map +1 -1
  200. package/dist/src/utils/fileUtils.test.js +314 -21
  201. package/dist/src/utils/fileUtils.test.js.map +1 -1
  202. package/dist/src/utils/gitIgnoreParser.d.ts +1 -0
  203. package/dist/src/utils/gitIgnoreParser.js +101 -10
  204. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  205. package/dist/src/utils/gitIgnoreParser.test.js +66 -0
  206. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  207. package/dist/src/utils/ide-trust.d.ts +10 -0
  208. package/dist/src/utils/ide-trust.js +14 -0
  209. package/dist/src/utils/ide-trust.js.map +1 -0
  210. package/dist/src/utils/llm-edit-fixer.d.ts +25 -0
  211. package/dist/src/utils/llm-edit-fixer.js +112 -0
  212. package/dist/src/utils/llm-edit-fixer.js.map +1 -0
  213. package/dist/src/utils/memoryDiscovery.d.ts +5 -4
  214. package/dist/src/utils/memoryDiscovery.js +10 -9
  215. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  216. package/dist/src/utils/memoryDiscovery.test.js +38 -19
  217. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  218. package/dist/src/utils/nextSpeakerChecker.test.js +33 -0
  219. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -1
  220. package/dist/tsconfig.tsbuildinfo +1 -1
  221. package/package.json +3 -2
@@ -529,8 +529,8 @@ describe('UiTelemetryService', () => {
529
529
  ...structuredClone(new ToolCallEvent(toolCall)),
530
530
  'event.name': EVENT_TOOL_CALL,
531
531
  metadata: {
532
- ai_added_lines: 10,
533
- ai_removed_lines: 5,
532
+ model_added_lines: 10,
533
+ model_removed_lines: 5,
534
534
  },
535
535
  };
536
536
  service.addEvent(event);
@@ -544,8 +544,8 @@ describe('UiTelemetryService', () => {
544
544
  ...structuredClone(new ToolCallEvent(toolCall)),
545
545
  'event.name': EVENT_TOOL_CALL,
546
546
  metadata: {
547
- ai_added_lines: null,
548
- ai_removed_lines: undefined,
547
+ model_added_lines: null,
548
+ model_removed_lines: undefined,
549
549
  },
550
550
  };
551
551
  service.addEvent(event);
@@ -1 +1 @@
1
- {"version":3,"file":"uiTelemetry.test.js","sourceRoot":"","sources":["../../../src/telemetry/uiTelemetry.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uiTelemetry.test.js","sourceRoot":"","sources":["../../../src/telemetry/uiTelemetry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from './mock-tool.js';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from './mock-tool.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test-utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { ToolCallConfirmationDetails, ToolInvocation, ToolResult } from '../tools/tools.js';
7
+ import { BaseDeclarativeTool } from '../tools/tools.js';
8
+ interface MockToolOptions {
9
+ name: string;
10
+ displayName?: string;
11
+ description?: string;
12
+ canUpdateOutput?: boolean;
13
+ isOutputMarkdown?: boolean;
14
+ shouldConfirmExecute?: (params: {
15
+ [key: string]: unknown;
16
+ }, signal: AbortSignal) => Promise<ToolCallConfirmationDetails | false>;
17
+ execute?: (params: {
18
+ [key: string]: unknown;
19
+ }, signal: AbortSignal, updateOutput?: (output: string) => void) => Promise<ToolResult>;
20
+ params?: object;
21
+ }
22
+ /**
23
+ * A highly configurable mock tool for testing purposes.
24
+ */
25
+ export declare class MockTool extends BaseDeclarativeTool<{
26
+ [key: string]: unknown;
27
+ }, ToolResult> {
28
+ shouldConfirmExecute: (params: {
29
+ [key: string]: unknown;
30
+ }, signal: AbortSignal) => Promise<ToolCallConfirmationDetails | false>;
31
+ execute: (params: {
32
+ [key: string]: unknown;
33
+ }, signal: AbortSignal, updateOutput?: (output: string) => void) => Promise<ToolResult>;
34
+ constructor(options: MockToolOptions);
35
+ protected createInvocation(params: {
36
+ [key: string]: unknown;
37
+ }): ToolInvocation<{
38
+ [key: string]: unknown;
39
+ }, ToolResult>;
40
+ }
41
+ export {};
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseDeclarativeTool, BaseToolInvocation, Kind, } from '../tools/tools.js';
7
+ class MockToolInvocation extends BaseToolInvocation {
8
+ tool;
9
+ constructor(tool, params) {
10
+ super(params);
11
+ this.tool = tool;
12
+ }
13
+ execute(signal, updateOutput) {
14
+ return this.tool.execute(this.params, signal, updateOutput);
15
+ }
16
+ shouldConfirmExecute(abortSignal) {
17
+ return this.tool.shouldConfirmExecute(this.params, abortSignal);
18
+ }
19
+ getDescription() {
20
+ return `A mock tool invocation for ${this.tool.name}`;
21
+ }
22
+ }
23
+ /**
24
+ * A highly configurable mock tool for testing purposes.
25
+ */
26
+ export class MockTool extends BaseDeclarativeTool {
27
+ shouldConfirmExecute;
28
+ execute;
29
+ constructor(options) {
30
+ super(options.name, options.displayName ?? options.name, options.description ?? options.name, Kind.Other, options.params, options.isOutputMarkdown ?? false, options.canUpdateOutput ?? false);
31
+ if (options.shouldConfirmExecute) {
32
+ this.shouldConfirmExecute = options.shouldConfirmExecute;
33
+ }
34
+ else {
35
+ this.shouldConfirmExecute = () => Promise.resolve(false);
36
+ }
37
+ if (options.execute) {
38
+ this.execute = options.execute;
39
+ }
40
+ else {
41
+ this.execute = () => Promise.resolve({
42
+ llmContent: `Tool ${this.name} executed successfully.`,
43
+ returnDisplay: `Tool ${this.name} executed successfully.`,
44
+ });
45
+ }
46
+ }
47
+ createInvocation(params) {
48
+ return new MockToolInvocation(this, params);
49
+ }
50
+ }
51
+ //# sourceMappingURL=mock-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-tool.js","sourceRoot":"","sources":["../../../src/test-utils/mock-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,IAAI,GACL,MAAM,mBAAmB,CAAC;AAoB3B,MAAM,kBAAmB,SAAQ,kBAGhC;IAEoB;IADnB,YACmB,IAAc,EAC/B,MAAkC;QAElC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHG,SAAI,GAAJ,IAAI,CAAU;IAIjC,CAAC;IAED,OAAO,CACL,MAAmB,EACnB,YAAuC;QAEvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAEQ,oBAAoB,CAC3B,WAAwB;QAExB,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,cAAc;QACZ,OAAO,8BAA8B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,mBAG7B;IACC,oBAAoB,CAG8B;IAClD,OAAO,CAIkB;IAEzB,YAAY,OAAwB;QAClC,KAAK,CACH,OAAO,CAAC,IAAI,EACZ,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,EACnC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,EACnC,IAAI,CAAC,KAAK,EACV,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,gBAAgB,IAAI,KAAK,EACjC,OAAO,CAAC,eAAe,IAAI,KAAK,CACjC,CAAC;QAEF,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACjC,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,CAClB,OAAO,CAAC,OAAO,CAAC;gBACd,UAAU,EAAE,QAAQ,IAAI,CAAC,IAAI,yBAAyB;gBACtD,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,yBAAyB;aAC1D,CAAC,CAAC;QACP,CAAC;IACH,CAAC;IAES,gBAAgB,CAAC,MAE1B;QACC,OAAO,IAAI,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -9,30 +9,38 @@ export const DEFAULT_DIFF_OPTIONS = {
9
9
  ignoreWhitespace: true,
10
10
  };
11
11
  export function getDiffStat(fileName, oldStr, aiStr, userStr) {
12
- const countLines = (patch) => {
13
- let added = 0;
14
- let removed = 0;
12
+ const getStats = (patch) => {
13
+ let addedLines = 0;
14
+ let removedLines = 0;
15
+ let addedChars = 0;
16
+ let removedChars = 0;
15
17
  patch.hunks.forEach((hunk) => {
16
18
  hunk.lines.forEach((line) => {
17
19
  if (line.startsWith('+')) {
18
- added++;
20
+ addedLines++;
21
+ addedChars += line.length - 1;
19
22
  }
20
23
  else if (line.startsWith('-')) {
21
- removed++;
24
+ removedLines++;
25
+ removedChars += line.length - 1;
22
26
  }
23
27
  });
24
28
  });
25
- return { added, removed };
29
+ return { addedLines, removedLines, addedChars, removedChars };
26
30
  };
27
- const patch = Diff.structuredPatch(fileName, fileName, oldStr, aiStr, 'Current', 'Proposed', DEFAULT_DIFF_OPTIONS);
28
- const { added: aiAddedLines, removed: aiRemovedLines } = countLines(patch);
31
+ const modelPatch = Diff.structuredPatch(fileName, fileName, oldStr, aiStr, 'Current', 'Proposed', DEFAULT_DIFF_OPTIONS);
32
+ const modelStats = getStats(modelPatch);
29
33
  const userPatch = Diff.structuredPatch(fileName, fileName, aiStr, userStr, 'Proposed', 'User', DEFAULT_DIFF_OPTIONS);
30
- const { added: userAddedLines, removed: userRemovedLines } = countLines(userPatch);
34
+ const userStats = getStats(userPatch);
31
35
  return {
32
- ai_added_lines: aiAddedLines,
33
- ai_removed_lines: aiRemovedLines,
34
- user_added_lines: userAddedLines,
35
- user_removed_lines: userRemovedLines,
36
+ model_added_lines: modelStats.addedLines,
37
+ model_removed_lines: modelStats.removedLines,
38
+ model_added_chars: modelStats.addedChars,
39
+ model_removed_chars: modelStats.removedChars,
40
+ user_added_lines: userStats.addedLines,
41
+ user_removed_lines: userStats.removedLines,
42
+ user_added_chars: userStats.addedChars,
43
+ user_removed_chars: userStats.removedChars,
36
44
  };
37
45
  }
38
46
  //# sourceMappingURL=diffOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diffOptions.js","sourceRoot":"","sources":["../../../src/tools/diffOptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,OAAO,EAAE,CAAC;IACV,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,MAAc,EACd,KAAa,EACb,OAAe;IAEf,MAAM,UAAU,GAAG,CAAC,KAAsB,EAAE,EAAE;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBAClC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,KAAK,EAAE,CAAC;gBACV,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAChC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,SAAS,EACT,UAAU,EACV,oBAAoB,CACrB,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAE3E,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,oBAAoB,CACrB,CAAC;IACF,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,EAAE,GACxD,UAAU,CAAC,SAAS,CAAC,CAAC;IAExB,OAAO;QACL,cAAc,EAAE,YAAY;QAC5B,gBAAgB,EAAE,cAAc;QAChC,gBAAgB,EAAE,cAAc;QAChC,kBAAkB,EAAE,gBAAgB;KACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"diffOptions.js","sourceRoot":"","sources":["../../../src/tools/diffOptions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,CAAC,MAAM,oBAAoB,GAAsB;IACrD,OAAO,EAAE,CAAC;IACV,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,UAAU,WAAW,CACzB,QAAgB,EAChB,MAAc,EACd,KAAa,EACb,OAAe;IAEf,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAE,EAAE;QAC1C,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAe,EAAE,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAY,EAAE,EAAE;gBAClC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACzB,UAAU,EAAE,CAAC;oBACb,UAAU,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChC,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,YAAY,EAAE,CAAC;oBACf,YAAY,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CACrC,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,KAAK,EACL,SAAS,EACT,UAAU,EACV,oBAAoB,CACrB,CAAC;IACF,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CACpC,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,OAAO,EACP,UAAU,EACV,MAAM,EACN,oBAAoB,CACrB,CAAC;IACF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IAEtC,OAAO;QACL,iBAAiB,EAAE,UAAU,CAAC,UAAU;QACxC,mBAAmB,EAAE,UAAU,CAAC,YAAY;QAC5C,iBAAiB,EAAE,UAAU,CAAC,UAAU;QACxC,mBAAmB,EAAE,UAAU,CAAC,YAAY;QAC5C,gBAAgB,EAAE,SAAS,CAAC,UAAU;QACtC,kBAAkB,EAAE,SAAS,CAAC,YAAY;QAC1C,gBAAgB,EAAE,SAAS,CAAC,UAAU;QACtC,kBAAkB,EAAE,SAAS,CAAC,YAAY;KAC3C,CAAC;AACJ,CAAC"}
@@ -13,46 +13,62 @@ describe('getDiffStat', () => {
13
13
  const userStr = 'line1\nline2\n';
14
14
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
15
15
  expect(diffStat).toEqual({
16
- ai_added_lines: 0,
17
- ai_removed_lines: 0,
16
+ model_added_lines: 0,
17
+ model_removed_lines: 0,
18
+ model_added_chars: 0,
19
+ model_removed_chars: 0,
18
20
  user_added_lines: 0,
19
21
  user_removed_lines: 0,
22
+ user_added_chars: 0,
23
+ user_removed_chars: 0,
20
24
  });
21
25
  });
22
- it('should correctly report AI additions', () => {
26
+ it('should correctly report model additions', () => {
23
27
  const oldStr = 'line1\nline2\n';
24
28
  const aiStr = 'line1\nline2\nline3\n';
25
29
  const userStr = 'line1\nline2\nline3\n';
26
30
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
27
31
  expect(diffStat).toEqual({
28
- ai_added_lines: 1,
29
- ai_removed_lines: 0,
32
+ model_added_lines: 1,
33
+ model_removed_lines: 0,
34
+ model_added_chars: 5,
35
+ model_removed_chars: 0,
30
36
  user_added_lines: 0,
31
37
  user_removed_lines: 0,
38
+ user_added_chars: 0,
39
+ user_removed_chars: 0,
32
40
  });
33
41
  });
34
- it('should correctly report AI removals', () => {
42
+ it('should correctly report model removals', () => {
35
43
  const oldStr = 'line1\nline2\nline3\n';
36
44
  const aiStr = 'line1\nline3\n';
37
45
  const userStr = 'line1\nline3\n';
38
46
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
39
47
  expect(diffStat).toEqual({
40
- ai_added_lines: 0,
41
- ai_removed_lines: 1,
48
+ model_added_lines: 0,
49
+ model_removed_lines: 1,
50
+ model_added_chars: 0,
51
+ model_removed_chars: 5,
42
52
  user_added_lines: 0,
43
53
  user_removed_lines: 0,
54
+ user_added_chars: 0,
55
+ user_removed_chars: 0,
44
56
  });
45
57
  });
46
- it('should correctly report AI modifications', () => {
58
+ it('should correctly report model modifications', () => {
47
59
  const oldStr = 'line1\nline2\nline3\n';
48
60
  const aiStr = 'line1\nline_two\nline3\n';
49
61
  const userStr = 'line1\nline_two\nline3\n';
50
62
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
51
63
  expect(diffStat).toEqual({
52
- ai_added_lines: 1,
53
- ai_removed_lines: 1,
64
+ model_added_lines: 1,
65
+ model_removed_lines: 1,
66
+ model_added_chars: 8,
67
+ model_removed_chars: 5,
54
68
  user_added_lines: 0,
55
69
  user_removed_lines: 0,
70
+ user_added_chars: 0,
71
+ user_removed_chars: 0,
56
72
  });
57
73
  });
58
74
  it('should correctly report user additions', () => {
@@ -61,10 +77,14 @@ describe('getDiffStat', () => {
61
77
  const userStr = 'line1\nline2\nline3\nline4\n';
62
78
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
63
79
  expect(diffStat).toEqual({
64
- ai_added_lines: 1,
65
- ai_removed_lines: 0,
80
+ model_added_lines: 1,
81
+ model_removed_lines: 0,
82
+ model_added_chars: 5,
83
+ model_removed_chars: 0,
66
84
  user_added_lines: 1,
67
85
  user_removed_lines: 0,
86
+ user_added_chars: 5,
87
+ user_removed_chars: 0,
68
88
  });
69
89
  });
70
90
  it('should correctly report user removals', () => {
@@ -73,10 +93,14 @@ describe('getDiffStat', () => {
73
93
  const userStr = 'line1\nline2\n';
74
94
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
75
95
  expect(diffStat).toEqual({
76
- ai_added_lines: 1,
77
- ai_removed_lines: 0,
96
+ model_added_lines: 1,
97
+ model_removed_lines: 0,
98
+ model_added_chars: 5,
99
+ model_removed_chars: 0,
78
100
  user_added_lines: 0,
79
101
  user_removed_lines: 1,
102
+ user_added_chars: 0,
103
+ user_removed_chars: 5,
80
104
  });
81
105
  });
82
106
  it('should correctly report user modifications', () => {
@@ -85,22 +109,30 @@ describe('getDiffStat', () => {
85
109
  const userStr = 'line1\nline2\nline_three\n';
86
110
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
87
111
  expect(diffStat).toEqual({
88
- ai_added_lines: 1,
89
- ai_removed_lines: 0,
112
+ model_added_lines: 1,
113
+ model_removed_lines: 0,
114
+ model_added_chars: 5,
115
+ model_removed_chars: 0,
90
116
  user_added_lines: 1,
91
117
  user_removed_lines: 1,
118
+ user_added_chars: 10,
119
+ user_removed_chars: 5,
92
120
  });
93
121
  });
94
- it('should handle complex changes from both AI and user', () => {
122
+ it('should handle complex changes from both model and user', () => {
95
123
  const oldStr = 'line1\nline2\nline3\nline4\n';
96
124
  const aiStr = 'line_one\nline2\nline_three\nline4\n';
97
125
  const userStr = 'line_one\nline_two\nline_three\nline4\nline5\n';
98
126
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
99
127
  expect(diffStat).toEqual({
100
- ai_added_lines: 2,
101
- ai_removed_lines: 2,
128
+ model_added_lines: 2,
129
+ model_removed_lines: 2,
130
+ model_added_chars: 18,
131
+ model_removed_chars: 10,
102
132
  user_added_lines: 2,
103
133
  user_removed_lines: 1,
134
+ user_added_chars: 13,
135
+ user_removed_chars: 5,
104
136
  });
105
137
  });
106
138
  it('should report a single line modification as one addition and one removal', () => {
@@ -109,10 +141,14 @@ describe('getDiffStat', () => {
109
141
  const userStr = 'hello universe';
110
142
  const diffStat = getDiffStat(fileName, oldStr, aiStr, userStr);
111
143
  expect(diffStat).toEqual({
112
- ai_added_lines: 1,
113
- ai_removed_lines: 1,
144
+ model_added_lines: 1,
145
+ model_removed_lines: 1,
146
+ model_added_chars: 14,
147
+ model_removed_chars: 11,
114
148
  user_added_lines: 0,
115
149
  user_removed_lines: 0,
150
+ user_added_chars: 0,
151
+ user_removed_chars: 0,
116
152
  });
117
153
  });
118
154
  });
@@ -1 +1 @@
1
- {"version":3,"file":"diffOptions.test.js","sourceRoot":"","sources":["../../../src/tools/diffOptions.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diffOptions.test.js","sourceRoot":"","sources":["../../../src/tools/diffOptions.test.ts"],"names":[],"mappings":"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"}
@@ -34,9 +34,9 @@ export interface EditToolParams {
34
34
  */
35
35
  modified_by_user?: boolean;
36
36
  /**
37
- * Initially proposed string.
37
+ * Initially proposed content.
38
38
  */
39
- ai_proposed_string?: string;
39
+ ai_proposed_content?: string;
40
40
  }
41
41
  /**
42
42
  * Implementation of the Edit tool logic
@@ -14,12 +14,12 @@ import { ApprovalMode } from '../config/config.js';
14
14
  import { ensureCorrectEdit } from '../utils/editCorrector.js';
15
15
  import { DEFAULT_DIFF_OPTIONS, getDiffStat } from './diffOptions.js';
16
16
  import { ReadFileTool } from './read-file.js';
17
- import { IDEConnectionStatus } from '../ide/ide-client.js';
18
- import { FileOperation } from '../telemetry/metrics.js';
19
17
  import { logFileOperation } from '../telemetry/loggers.js';
20
18
  import { FileOperationEvent } from '../telemetry/types.js';
21
- import { getProgrammingLanguage } from '../telemetry/telemetry-utils.js';
19
+ import { FileOperation } from '../telemetry/metrics.js';
22
20
  import { getSpecificMimeType } from '../utils/fileUtils.js';
21
+ import { getLanguageFromFilePath } from '../utils/language-detection.js';
22
+ import { IdeClient, IDEConnectionStatus } from '../ide/ide-client.js';
23
23
  export function applyReplacement(currentContent, oldString, newString, isNewFile) {
24
24
  if (isNewFile) {
25
25
  return newString;
@@ -172,7 +172,7 @@ class EditToolInvocation {
172
172
  }
173
173
  const fileName = path.basename(this.params.file_path);
174
174
  const fileDiff = Diff.createPatch(fileName, editData.currentContent ?? '', editData.newContent, 'Current', 'Proposed', DEFAULT_DIFF_OPTIONS);
175
- const ideClient = this.config.getIdeClient();
175
+ const ideClient = await IdeClient.getInstance();
176
176
  const ideConfirmation = this.config.getIdeMode() &&
177
177
  ideClient?.getConnectionStatus().status === IDEConnectionStatus.Connected
178
178
  ? ideClient.openDiff(this.params.file_path, editData.newContent)
@@ -253,26 +253,26 @@ class EditToolInvocation {
253
253
  await this.config
254
254
  .getFileSystemService()
255
255
  .writeTextFile(this.params.file_path, editData.newContent);
256
- let displayResult;
257
256
  const fileName = path.basename(this.params.file_path);
258
- const originallyProposedContent = this.params.ai_proposed_string || this.params.new_string;
259
- const diffStat = getDiffStat(fileName, editData.currentContent ?? '', originallyProposedContent, this.params.new_string);
260
- if (editData.isNewFile) {
261
- displayResult = `Created ${shortenPath(makeRelative(this.params.file_path, this.config.getTargetDir()))}`;
262
- }
263
- else {
264
- // Generate diff for display, even though core logic doesn't technically need it
265
- // The CLI wrapper will use this part of the ToolResult
266
- const fileDiff = Diff.createPatch(fileName, editData.currentContent ?? '', // Should not be null here if not isNewFile
267
- editData.newContent, 'Current', 'Proposed', DEFAULT_DIFF_OPTIONS);
268
- displayResult = {
269
- fileDiff,
270
- fileName,
271
- originalContent: editData.currentContent,
272
- newContent: editData.newContent,
273
- diffStat,
274
- };
275
- }
257
+ const originallyProposedContent = this.params.ai_proposed_content || editData.newContent;
258
+ const diffStat = getDiffStat(fileName, editData.currentContent ?? '', originallyProposedContent, editData.newContent);
259
+ const fileDiff = Diff.createPatch(fileName, editData.currentContent ?? '', // Should not be null here if not isNewFile
260
+ editData.newContent, 'Current', 'Proposed', DEFAULT_DIFF_OPTIONS);
261
+ const displayResult = {
262
+ fileDiff,
263
+ fileName,
264
+ originalContent: editData.currentContent,
265
+ newContent: editData.newContent,
266
+ diffStat,
267
+ };
268
+ // Log file operation for telemetry (without diff_stat to avoid double-counting)
269
+ const mimetype = getSpecificMimeType(this.params.file_path);
270
+ const programmingLanguage = getLanguageFromFilePath(this.params.file_path);
271
+ const extension = path.extname(this.params.file_path);
272
+ const operation = editData.isNewFile
273
+ ? FileOperation.CREATE
274
+ : FileOperation.UPDATE;
275
+ logFileOperation(this.config, new FileOperationEvent(EditTool.Name, operation, editData.newContent.split('\n').length, mimetype, extension, programmingLanguage));
276
276
  const llmSuccessMessageParts = [
277
277
  editData.isNewFile
278
278
  ? `Created new file: ${this.params.file_path} with provided content.`
@@ -281,13 +281,6 @@ class EditToolInvocation {
281
281
  if (this.params.modified_by_user) {
282
282
  llmSuccessMessageParts.push(`User modified the \`new_string\` content to be: ${this.params.new_string}.`);
283
283
  }
284
- const lines = editData.newContent.split('\n').length;
285
- const mimetype = getSpecificMimeType(this.params.file_path);
286
- const extension = path.extname(this.params.file_path);
287
- const programming_language = getProgrammingLanguage({
288
- file_path: this.params.file_path,
289
- });
290
- logFileOperation(this.config, new FileOperationEvent(EditTool.Name, editData.isNewFile ? FileOperation.CREATE : FileOperation.UPDATE, lines, mimetype, extension, diffStat, programming_language));
291
284
  return {
292
285
  llmContent: llmSuccessMessageParts.join(' '),
293
286
  returnDisplay: displayResult,
@@ -407,16 +400,13 @@ Expectation for required parameters:
407
400
  return '';
408
401
  }
409
402
  },
410
- createUpdatedParams: (oldContent, modifiedProposedContent, originalParams) => {
411
- const content = originalParams.new_string;
412
- return {
413
- ...originalParams,
414
- ai_proposed_string: content,
415
- old_string: oldContent,
416
- new_string: modifiedProposedContent,
417
- modified_by_user: true,
418
- };
419
- },
403
+ createUpdatedParams: (oldContent, modifiedProposedContent, originalParams) => ({
404
+ ...originalParams,
405
+ ai_proposed_content: oldContent,
406
+ old_string: oldContent,
407
+ new_string: modifiedProposedContent,
408
+ modified_by_user: true,
409
+ }),
420
410
  };
421
411
  }
422
412
  }