@google/gemini-cli 0.22.0 → 0.23.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.
- package/dist/package.json +3 -2
- package/dist/src/commands/extensions/disable.test.js.map +1 -1
- package/dist/src/commands/extensions/enable.test.js.map +1 -1
- package/dist/src/commands/extensions/link.test.js.map +1 -1
- package/dist/src/commands/extensions/settings.js +2 -2
- package/dist/src/commands/extensions/settings.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
- package/dist/src/commands/extensions/validate.js +1 -1
- package/dist/src/commands/extensions/validate.js.map +1 -1
- package/dist/src/commands/mcp/add.test.js +1 -1
- package/dist/src/commands/mcp/add.test.js.map +1 -1
- package/dist/src/config/config.js +12 -3
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/extension-manager.d.ts +1 -2
- package/dist/src/config/extension-manager.js +6 -6
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +4 -4
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/github.js +1 -1
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +2 -2
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/update.js +1 -1
- package/dist/src/config/extensions/update.js.map +1 -1
- package/dist/src/config/extensions/update.test.js +8 -8
- package/dist/src/config/extensions/update.test.js.map +1 -1
- package/dist/src/config/keyBindings.js +4 -1
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +30 -15
- package/dist/src/config/settingsSchema.js +38 -10
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +11 -11
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +1 -0
- package/dist/src/config/trustedFolders.js +17 -2
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/config/trustedFolders.test.js +38 -0
- package/dist/src/config/trustedFolders.test.js.map +1 -1
- package/dist/src/gemini.js +2 -13
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +20 -8
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/gemini_cleanup.test.js +1 -0
- package/dist/src/gemini_cleanup.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +2 -1
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/test-utils/render.js +1 -0
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/AppContainer.js +4 -2
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/commands/authCommand.js +30 -3
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/authCommand.test.js +72 -4
- package/dist/src/ui/commands/authCommand.test.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.js +9 -0
- package/dist/src/ui/commands/bugCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.test.js +13 -0
- package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +11 -19
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.test.js +4 -5
- package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.js +1 -1
- package/dist/src/ui/commands/copyCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.js +1 -1
- package/dist/src/ui/commands/hooksCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.test.js +8 -0
- package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +1 -1
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +13 -2
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.js +27 -1
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
- package/dist/src/ui/commands/restoreCommand.js +1 -1
- package/dist/src/ui/commands/restoreCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +8 -1
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/Composer.js +3 -1
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.js +1 -1
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +4 -1
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +49 -0
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LogoutConfirmationDialog.d.ts +15 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.js +37 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.js.map +1 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js +59 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js.map +1 -0
- package/dist/src/ui/components/ModelStatsDisplay.js +68 -14
- package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +53 -2
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.js +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js +7 -7
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +4 -4
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.test.js +4 -4
- package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/Table.d.ts +21 -0
- package/dist/src/ui/components/Table.js +7 -0
- package/dist/src/ui/components/Table.js.map +1 -0
- package/dist/src/ui/components/Table.test.js +53 -0
- package/dist/src/ui/components/Table.test.js.map +1 -0
- package/dist/src/ui/components/ThemeDialog.js +63 -17
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +65 -0
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +51 -39
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +40 -4
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +45 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +4 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +11 -10
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.js +0 -2
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/views/HooksList.d.ts +2 -0
- package/dist/src/ui/components/views/HooksList.js +5 -3
- package/dist/src/ui/components/views/HooksList.js.map +1 -1
- package/dist/src/ui/constants/tips.js +0 -2
- package/dist/src/ui/constants/tips.js.map +1 -1
- package/dist/src/ui/constants.d.ts +0 -3
- package/dist/src/ui/constants.js +0 -6
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/contexts/VimModeContext.js +1 -1
- package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +18 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +2 -2
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +2 -2
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.js +0 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +16 -16
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +22 -10
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +115 -5
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/themes/ansi-light.js +1 -1
- package/dist/src/ui/themes/ansi-light.js.map +1 -1
- package/dist/src/ui/themes/ansi.js +1 -1
- package/dist/src/ui/themes/ansi.js.map +1 -1
- package/dist/src/ui/themes/color-utils.d.ts +1 -0
- package/dist/src/ui/themes/color-utils.js +13 -0
- package/dist/src/ui/themes/color-utils.js.map +1 -1
- package/dist/src/ui/themes/color-utils.test.js +20 -1
- package/dist/src/ui/themes/color-utils.test.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +1 -1
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.d.ts +5 -0
- package/dist/src/ui/themes/theme-manager.js +7 -0
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +12 -0
- package/dist/src/ui/themes/theme.js +34 -4
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.js +23 -0
- package/dist/src/ui/themes/theme.test.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.d.ts +2 -2
- package/dist/src/ui/utils/clipboardUtils.js +50 -4
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.test.js +12 -12
- package/dist/src/ui/utils/clipboardUtils.test.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.windows.test.js +52 -0
- package/dist/src/ui/utils/clipboardUtils.windows.test.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.d.ts +38 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js +190 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.d.ts +6 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js +136 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -0
- package/dist/src/ui/utils/terminalSetup.js +2 -2
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.test.js +4 -2
- package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
- package/dist/src/utils/processUtils.d.ts +1 -1
- package/dist/src/utils/processUtils.js +1 -1
- package/dist/src/utils/processUtils.js.map +1 -1
- package/dist/src/utils/terminalTheme.d.ts +15 -0
- package/dist/src/utils/terminalTheme.js +50 -0
- package/dist/src/utils/terminalTheme.js.map +1 -0
- package/dist/src/zed-integration/fileSystemService.d.ts +3 -3
- package/dist/src/zed-integration/fileSystemService.js +5 -7
- package/dist/src/zed-integration/fileSystemService.js.map +1 -1
- package/dist/src/zed-integration/fileSystemService.test.js +11 -13
- package/dist/src/zed-integration/fileSystemService.test.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.d.ts +5 -5
- package/dist/src/zed-integration/zedIntegration.js +37 -17
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.test.js +16 -17
- package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -3
- package/dist/src/ui/utils/kittyProtocolDetector.d.ts +0 -17
- package/dist/src/ui/utils/kittyProtocolDetector.js +0 -111
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +0 -1
- package/dist/src/ui/utils/kittyProtocolDetector.test.js +0 -113
- package/dist/src/ui/utils/kittyProtocolDetector.test.js.map +0 -1
- package/dist/src/zed-integration/acp.d.ts +0 -41
- package/dist/src/zed-integration/acp.js +0 -72
- package/dist/src/zed-integration/acp.js.map +0 -1
- package/dist/src/zed-integration/acp.test.js +0 -214
- package/dist/src/zed-integration/acp.test.js.map +0 -1
- package/dist/src/zed-integration/connection.d.ts +0 -28
- package/dist/src/zed-integration/connection.js +0 -165
- package/dist/src/zed-integration/connection.js.map +0 -1
- package/dist/src/zed-integration/connection.test.js +0 -175
- package/dist/src/zed-integration/connection.test.js.map +0 -1
- package/dist/src/zed-integration/schema.d.ts +0 -11792
- package/dist/src/zed-integration/schema.js +0 -311
- package/dist/src/zed-integration/schema.js.map +0 -1
- /package/dist/src/ui/{utils/kittyProtocolDetector.test.d.ts → components/LogoutConfirmationDialog.test.d.ts} +0 -0
- /package/dist/src/{zed-integration/acp.test.d.ts → ui/components/Table.test.d.ts} +0 -0
- /package/dist/src/{zed-integration/connection.test.d.ts → ui/utils/clipboardUtils.windows.test.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminalTheme.js","sourceRoot":"","sources":["../../../src/utils/terminalTheme.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,yBAAyB,GAC1B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,OAAO,EAAe,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,QAAwB;IAExB,IAAI,kBAAkB,GAA4B,SAAS,CAAC;IAC5D,IAAI,MAAM,CAAC,aAAa,EAAE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAClD,+EAA+E;QAC/E,MAAM,yBAAyB,CAAC,kBAAkB,EAAE,CAAC;QACrD,kBAAkB,GAAG,yBAAyB,CAAC,0BAA0B,EAAE,CAAC;IAC9E,CAAC;IAED,mCAAmC;IACnC,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAEhE,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC;YAC5D,6EAA6E;YAC7E,+EAA+E;YAC/E,WAAW,CAAC,IAAI,CACd,mBAAmB,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,cAAc,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,sDAAsD;QACtD,MAAM,SAAS,GAAG,oBAAoB,CACpC,kBAAkB,EAClB,YAAY,CAAC,YAAY,EAAE,EAC3B,aAAa,CAAC,IAAI,EAClB,eAAe,CAChB,CAAC;QACF,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAEjD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,cAAc,GAClB,+BAA+B,CAAC,kBAAkB,CAAC,CAAC;YACtD,IAAI,cAAc,IAAI,YAAY,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC3D,UAAU,CAAC,YAAY,CACrB,SAAS,EACT,UAAU,YAAY,CAAC,IAAI,MAAM,YAAY,CAAC,IAAI,kCAAkC,cAAc,oDAAoD,CACvJ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { FileSystemService } from '@google/gemini-cli-core';
|
|
7
|
-
import type * as acp from '
|
|
7
|
+
import type * as acp from '@agentclientprotocol/sdk';
|
|
8
8
|
/**
|
|
9
9
|
* ACP client-based implementation of FileSystemService
|
|
10
10
|
*/
|
|
11
11
|
export declare class AcpFileSystemService implements FileSystemService {
|
|
12
|
-
private readonly
|
|
12
|
+
private readonly connection;
|
|
13
13
|
private readonly sessionId;
|
|
14
14
|
private readonly capabilities;
|
|
15
15
|
private readonly fallback;
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(connection: acp.AgentSideConnection, sessionId: string, capabilities: acp.FileSystemCapability, fallback: FileSystemService);
|
|
17
17
|
readTextFile(filePath: string): Promise<string>;
|
|
18
18
|
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
19
19
|
}
|
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
* ACP client-based implementation of FileSystemService
|
|
8
8
|
*/
|
|
9
9
|
export class AcpFileSystemService {
|
|
10
|
-
|
|
10
|
+
connection;
|
|
11
11
|
sessionId;
|
|
12
12
|
capabilities;
|
|
13
13
|
fallback;
|
|
14
|
-
constructor(
|
|
15
|
-
this.
|
|
14
|
+
constructor(connection, sessionId, capabilities, fallback) {
|
|
15
|
+
this.connection = connection;
|
|
16
16
|
this.sessionId = sessionId;
|
|
17
17
|
this.capabilities = capabilities;
|
|
18
18
|
this.fallback = fallback;
|
|
@@ -21,11 +21,9 @@ export class AcpFileSystemService {
|
|
|
21
21
|
if (!this.capabilities.readTextFile) {
|
|
22
22
|
return this.fallback.readTextFile(filePath);
|
|
23
23
|
}
|
|
24
|
-
const response = await this.
|
|
24
|
+
const response = await this.connection.readTextFile({
|
|
25
25
|
path: filePath,
|
|
26
26
|
sessionId: this.sessionId,
|
|
27
|
-
line: null,
|
|
28
|
-
limit: null,
|
|
29
27
|
});
|
|
30
28
|
return response.content;
|
|
31
29
|
}
|
|
@@ -33,7 +31,7 @@ export class AcpFileSystemService {
|
|
|
33
31
|
if (!this.capabilities.writeTextFile) {
|
|
34
32
|
return this.fallback.writeTextFile(filePath, content);
|
|
35
33
|
}
|
|
36
|
-
await this.
|
|
34
|
+
await this.connection.writeTextFile({
|
|
37
35
|
path: filePath,
|
|
38
36
|
content,
|
|
39
37
|
sessionId: this.sessionId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../src/zed-integration/fileSystemService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAEZ;IACA;IACA;IACA;IAJnB,YACmB,
|
|
1
|
+
{"version":3,"file":"fileSystemService.js","sourceRoot":"","sources":["../../../src/zed-integration/fileSystemService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAEZ;IACA;IACA;IACA;IAJnB,YACmB,UAAmC,EACnC,SAAiB,EACjB,YAAsC,EACtC,QAA2B;QAH3B,eAAU,GAAV,UAAU,CAAyB;QACnC,cAAS,GAAT,SAAS,CAAQ;QACjB,iBAAY,GAAZ,YAAY,CAA0B;QACtC,aAAQ,GAAR,QAAQ,CAAmB;IAC3C,CAAC;IAEJ,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAClD,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,OAAe;QACnD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAClC,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
7
7
|
import { AcpFileSystemService } from './fileSystemService.js';
|
|
8
8
|
describe('AcpFileSystemService', () => {
|
|
9
|
-
let
|
|
9
|
+
let mockConnection;
|
|
10
10
|
let mockFallback;
|
|
11
11
|
let service;
|
|
12
12
|
beforeEach(() => {
|
|
13
|
-
|
|
13
|
+
mockConnection = {
|
|
14
14
|
requestPermission: vi.fn(),
|
|
15
15
|
sessionUpdate: vi.fn(),
|
|
16
16
|
writeTextFile: vi.fn(),
|
|
@@ -25,16 +25,14 @@ describe('AcpFileSystemService', () => {
|
|
|
25
25
|
it.each([
|
|
26
26
|
{
|
|
27
27
|
capability: true,
|
|
28
|
-
desc: '
|
|
28
|
+
desc: 'connection if capability exists',
|
|
29
29
|
setup: () => {
|
|
30
|
-
|
|
30
|
+
mockConnection.readTextFile.mockResolvedValue({ content: 'content' });
|
|
31
31
|
},
|
|
32
32
|
verify: () => {
|
|
33
|
-
expect(
|
|
33
|
+
expect(mockConnection.readTextFile).toHaveBeenCalledWith({
|
|
34
34
|
path: '/path/to/file',
|
|
35
35
|
sessionId: 'session-1',
|
|
36
|
-
line: null,
|
|
37
|
-
limit: null,
|
|
38
36
|
});
|
|
39
37
|
expect(mockFallback.readTextFile).not.toHaveBeenCalled();
|
|
40
38
|
},
|
|
@@ -47,11 +45,11 @@ describe('AcpFileSystemService', () => {
|
|
|
47
45
|
},
|
|
48
46
|
verify: () => {
|
|
49
47
|
expect(mockFallback.readTextFile).toHaveBeenCalledWith('/path/to/file');
|
|
50
|
-
expect(
|
|
48
|
+
expect(mockConnection.readTextFile).not.toHaveBeenCalled();
|
|
51
49
|
},
|
|
52
50
|
},
|
|
53
51
|
])('should use $desc', async ({ capability, setup, verify }) => {
|
|
54
|
-
service = new AcpFileSystemService(
|
|
52
|
+
service = new AcpFileSystemService(mockConnection, 'session-1', { readTextFile: capability, writeTextFile: true }, mockFallback);
|
|
55
53
|
setup();
|
|
56
54
|
const result = await service.readTextFile('/path/to/file');
|
|
57
55
|
expect(result).toBe('content');
|
|
@@ -62,9 +60,9 @@ describe('AcpFileSystemService', () => {
|
|
|
62
60
|
it.each([
|
|
63
61
|
{
|
|
64
62
|
capability: true,
|
|
65
|
-
desc: '
|
|
63
|
+
desc: 'connection if capability exists',
|
|
66
64
|
verify: () => {
|
|
67
|
-
expect(
|
|
65
|
+
expect(mockConnection.writeTextFile).toHaveBeenCalledWith({
|
|
68
66
|
path: '/path/to/file',
|
|
69
67
|
content: 'content',
|
|
70
68
|
sessionId: 'session-1',
|
|
@@ -77,11 +75,11 @@ describe('AcpFileSystemService', () => {
|
|
|
77
75
|
desc: 'fallback if capability missing',
|
|
78
76
|
verify: () => {
|
|
79
77
|
expect(mockFallback.writeTextFile).toHaveBeenCalledWith('/path/to/file', 'content');
|
|
80
|
-
expect(
|
|
78
|
+
expect(mockConnection.writeTextFile).not.toHaveBeenCalled();
|
|
81
79
|
},
|
|
82
80
|
},
|
|
83
81
|
])('should use $desc', async ({ capability, verify }) => {
|
|
84
|
-
service = new AcpFileSystemService(
|
|
82
|
+
service = new AcpFileSystemService(mockConnection, 'session-1', { writeTextFile: capability, readTextFile: true }, mockFallback);
|
|
85
83
|
await service.writeTextFile('/path/to/file', 'content');
|
|
86
84
|
verify();
|
|
87
85
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileSystemService.test.js","sourceRoot":"","sources":["../../../src/zed-integration/fileSystemService.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAe,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,IAAI,
|
|
1
|
+
{"version":3,"file":"fileSystemService.test.js","sourceRoot":"","sources":["../../../src/zed-integration/fileSystemService.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import type { Config, GeminiChat } from '@google/gemini-cli-core';
|
|
7
|
-
import * as acp from '
|
|
7
|
+
import * as acp from '@agentclientprotocol/sdk';
|
|
8
8
|
import type { LoadedSettings } from '../config/settings.js';
|
|
9
9
|
import type { CliArgs } from '../config/config.js';
|
|
10
10
|
export declare function runZedIntegration(config: Config, settings: LoadedSettings, argv: CliArgs): Promise<void>;
|
|
@@ -12,10 +12,10 @@ export declare class GeminiAgent {
|
|
|
12
12
|
private config;
|
|
13
13
|
private settings;
|
|
14
14
|
private argv;
|
|
15
|
-
private
|
|
15
|
+
private connection;
|
|
16
16
|
private sessions;
|
|
17
17
|
private clientCapabilities;
|
|
18
|
-
constructor(config: Config, settings: LoadedSettings, argv: CliArgs,
|
|
18
|
+
constructor(config: Config, settings: LoadedSettings, argv: CliArgs, connection: acp.AgentSideConnection);
|
|
19
19
|
initialize(args: acp.InitializeRequest): Promise<acp.InitializeResponse>;
|
|
20
20
|
authenticate({ methodId }: acp.AuthenticateRequest): Promise<void>;
|
|
21
21
|
newSession({ cwd, mcpServers, }: acp.NewSessionRequest): Promise<acp.NewSessionResponse>;
|
|
@@ -28,9 +28,9 @@ export declare class Session {
|
|
|
28
28
|
private readonly id;
|
|
29
29
|
private readonly chat;
|
|
30
30
|
private readonly config;
|
|
31
|
-
private readonly
|
|
31
|
+
private readonly connection;
|
|
32
32
|
private pendingPrompt;
|
|
33
|
-
constructor(id: string, chat: GeminiChat, config: Config,
|
|
33
|
+
constructor(id: string, chat: GeminiChat, config: Config, connection: acp.AgentSideConnection);
|
|
34
34
|
cancelPendingPrompt(): Promise<void>;
|
|
35
35
|
prompt(params: acp.PromptRequest): Promise<acp.PromptResponse>;
|
|
36
36
|
private sendUpdate;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { AuthType, logToolCall, convertToFunctionResponse, ToolConfirmationOutcome, clearCachedCredentialFile, isNodeError, getErrorMessage, isWithinRoot, getErrorStatus, MCPServerConfig, DiscoveredMCPTool, StreamEventType, ToolCallEvent, debugLogger, ReadManyFilesTool, getEffectiveModel, createWorkingStdio, startupProfiler, } from '@google/gemini-cli-core';
|
|
7
|
-
import * as acp from '
|
|
7
|
+
import * as acp from '@agentclientprotocol/sdk';
|
|
8
8
|
import { AcpFileSystemService } from './fileSystemService.js';
|
|
9
9
|
import { Readable, Writable } from 'node:stream';
|
|
10
10
|
import { SettingScope } from '../config/settings.js';
|
|
@@ -17,20 +17,21 @@ export async function runZedIntegration(config, settings, argv) {
|
|
|
17
17
|
const { stdout: workingStdout } = createWorkingStdio();
|
|
18
18
|
const stdout = Writable.toWeb(workingStdout);
|
|
19
19
|
const stdin = Readable.toWeb(process.stdin);
|
|
20
|
-
|
|
20
|
+
const stream = acp.ndJsonStream(stdout, stdin);
|
|
21
|
+
new acp.AgentSideConnection((connection) => new GeminiAgent(config, settings, argv, connection), stream);
|
|
21
22
|
}
|
|
22
23
|
export class GeminiAgent {
|
|
23
24
|
config;
|
|
24
25
|
settings;
|
|
25
26
|
argv;
|
|
26
|
-
|
|
27
|
+
connection;
|
|
27
28
|
sessions = new Map();
|
|
28
29
|
clientCapabilities;
|
|
29
|
-
constructor(config, settings, argv,
|
|
30
|
+
constructor(config, settings, argv, connection) {
|
|
30
31
|
this.config = config;
|
|
31
32
|
this.settings = settings;
|
|
32
33
|
this.argv = argv;
|
|
33
|
-
this.
|
|
34
|
+
this.connection = connection;
|
|
34
35
|
}
|
|
35
36
|
async initialize(args) {
|
|
36
37
|
this.clientCapabilities = args.clientCapabilities;
|
|
@@ -61,6 +62,10 @@ export class GeminiAgent {
|
|
|
61
62
|
audio: true,
|
|
62
63
|
embeddedContext: true,
|
|
63
64
|
},
|
|
65
|
+
mcpCapabilities: {
|
|
66
|
+
http: true,
|
|
67
|
+
sse: true,
|
|
68
|
+
},
|
|
64
69
|
},
|
|
65
70
|
};
|
|
66
71
|
}
|
|
@@ -94,12 +99,12 @@ export class GeminiAgent {
|
|
|
94
99
|
throw acp.RequestError.authRequired();
|
|
95
100
|
}
|
|
96
101
|
if (this.clientCapabilities?.fs) {
|
|
97
|
-
const acpFileSystemService = new AcpFileSystemService(this.
|
|
102
|
+
const acpFileSystemService = new AcpFileSystemService(this.connection, sessionId, this.clientCapabilities.fs, config.getFileSystemService());
|
|
98
103
|
config.setFileSystemService(acpFileSystemService);
|
|
99
104
|
}
|
|
100
105
|
const geminiClient = config.getGeminiClient();
|
|
101
106
|
const chat = await geminiClient.startChat();
|
|
102
|
-
const session = new Session(sessionId, chat, config, this.
|
|
107
|
+
const session = new Session(sessionId, chat, config, this.connection);
|
|
103
108
|
this.sessions.set(sessionId, session);
|
|
104
109
|
return {
|
|
105
110
|
sessionId,
|
|
@@ -107,12 +112,27 @@ export class GeminiAgent {
|
|
|
107
112
|
}
|
|
108
113
|
async newSessionConfig(sessionId, cwd, mcpServers) {
|
|
109
114
|
const mergedMcpServers = { ...this.settings.merged.mcpServers };
|
|
110
|
-
for (const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
115
|
+
for (const server of mcpServers) {
|
|
116
|
+
if ('type' in server &&
|
|
117
|
+
(server.type === 'sse' || server.type === 'http')) {
|
|
118
|
+
// HTTP or SSE MCP server
|
|
119
|
+
const headers = Object.fromEntries(server.headers.map(({ name, value }) => [name, value]));
|
|
120
|
+
mergedMcpServers[server.name] = new MCPServerConfig(undefined, // command
|
|
121
|
+
undefined, // args
|
|
122
|
+
undefined, // env
|
|
123
|
+
undefined, // cwd
|
|
124
|
+
server.type === 'sse' ? server.url : undefined, // url (sse)
|
|
125
|
+
server.type === 'http' ? server.url : undefined, // httpUrl
|
|
126
|
+
headers);
|
|
127
|
+
}
|
|
128
|
+
else if ('command' in server) {
|
|
129
|
+
// Stdio MCP server
|
|
130
|
+
const env = {};
|
|
131
|
+
for (const { name: envName, value } of server.env) {
|
|
132
|
+
env[envName] = value;
|
|
133
|
+
}
|
|
134
|
+
mergedMcpServers[server.name] = new MCPServerConfig(server.command, server.args, env, cwd);
|
|
114
135
|
}
|
|
115
|
-
mergedMcpServers[name] = new MCPServerConfig(command, args, env, cwd);
|
|
116
136
|
}
|
|
117
137
|
const settings = { ...this.settings.merged, mcpServers: mergedMcpServers };
|
|
118
138
|
const config = await loadCliConfig(settings, sessionId, this.argv, cwd);
|
|
@@ -139,13 +159,13 @@ export class Session {
|
|
|
139
159
|
id;
|
|
140
160
|
chat;
|
|
141
161
|
config;
|
|
142
|
-
|
|
162
|
+
connection;
|
|
143
163
|
pendingPrompt = null;
|
|
144
|
-
constructor(id, chat, config,
|
|
164
|
+
constructor(id, chat, config, connection) {
|
|
145
165
|
this.id = id;
|
|
146
166
|
this.chat = chat;
|
|
147
167
|
this.config = config;
|
|
148
|
-
this.
|
|
168
|
+
this.connection = connection;
|
|
149
169
|
}
|
|
150
170
|
async cancelPendingPrompt() {
|
|
151
171
|
if (!this.pendingPrompt) {
|
|
@@ -231,7 +251,7 @@ export class Session {
|
|
|
231
251
|
sessionId: this.id,
|
|
232
252
|
update,
|
|
233
253
|
};
|
|
234
|
-
await this.
|
|
254
|
+
await this.connection.sessionUpdate(params);
|
|
235
255
|
}
|
|
236
256
|
async runTool(abortSignal, promptId, fc) {
|
|
237
257
|
const callId = fc.id ?? `${fc.name}-${Date.now()}`;
|
|
@@ -285,7 +305,7 @@ export class Session {
|
|
|
285
305
|
kind: tool.kind,
|
|
286
306
|
},
|
|
287
307
|
};
|
|
288
|
-
const output = await this.
|
|
308
|
+
const output = await this.connection.requestPermission(params);
|
|
289
309
|
const outcome = output.outcome.outcome === 'cancelled'
|
|
290
310
|
? ToolConfirmationOutcome.Cancel
|
|
291
311
|
: z
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zedIntegration.js","sourceRoot":"","sources":["../../../src/zed-integration/zedIntegration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zedIntegration.js","sourceRoot":"","sources":["../../../src/zed-integration/zedIntegration.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
|
|
7
7
|
import { GeminiAgent, Session } from './zedIntegration.js';
|
|
8
|
-
import * as acp from '
|
|
8
|
+
import * as acp from '@agentclientprotocol/sdk';
|
|
9
9
|
import { AuthType, ToolConfirmationOutcome, StreamEventType, isWithinRoot, ReadManyFilesTool, } from '@google/gemini-cli-core';
|
|
10
10
|
import { SettingScope } from '../config/settings.js';
|
|
11
11
|
import { loadCliConfig } from '../config/config.js';
|
|
@@ -56,7 +56,7 @@ describe('GeminiAgent', () => {
|
|
|
56
56
|
let mockConfig;
|
|
57
57
|
let mockSettings;
|
|
58
58
|
let mockArgv;
|
|
59
|
-
let
|
|
59
|
+
let mockConnection;
|
|
60
60
|
let agent;
|
|
61
61
|
beforeEach(() => {
|
|
62
62
|
mockConfig = {
|
|
@@ -76,11 +76,11 @@ describe('GeminiAgent', () => {
|
|
|
76
76
|
setValue: vi.fn(),
|
|
77
77
|
};
|
|
78
78
|
mockArgv = {};
|
|
79
|
-
|
|
79
|
+
mockConnection = {
|
|
80
80
|
sessionUpdate: vi.fn(),
|
|
81
81
|
};
|
|
82
82
|
loadCliConfig.mockResolvedValue(mockConfig);
|
|
83
|
-
agent = new GeminiAgent(mockConfig, mockSettings, mockArgv,
|
|
83
|
+
agent = new GeminiAgent(mockConfig, mockSettings, mockArgv, mockConnection);
|
|
84
84
|
});
|
|
85
85
|
it('should initialize correctly', async () => {
|
|
86
86
|
const response = await agent.initialize({
|
|
@@ -89,7 +89,7 @@ describe('GeminiAgent', () => {
|
|
|
89
89
|
});
|
|
90
90
|
expect(response.protocolVersion).toBe(acp.PROTOCOL_VERSION);
|
|
91
91
|
expect(response.authMethods).toHaveLength(3);
|
|
92
|
-
expect(response.agentCapabilities
|
|
92
|
+
expect(response.agentCapabilities?.loadSession).toBe(false);
|
|
93
93
|
});
|
|
94
94
|
it('should authenticate correctly', async () => {
|
|
95
95
|
await agent.authenticate({
|
|
@@ -144,7 +144,7 @@ describe('GeminiAgent', () => {
|
|
|
144
144
|
debugSpy.mockRestore();
|
|
145
145
|
});
|
|
146
146
|
it('should initialize file system service if client supports it', async () => {
|
|
147
|
-
agent = new GeminiAgent(mockConfig, mockSettings, mockArgv,
|
|
147
|
+
agent = new GeminiAgent(mockConfig, mockSettings, mockArgv, mockConnection);
|
|
148
148
|
await agent.initialize({
|
|
149
149
|
clientCapabilities: { fs: { readTextFile: true, writeTextFile: true } },
|
|
150
150
|
protocolVersion: 1,
|
|
@@ -185,7 +185,7 @@ describe('GeminiAgent', () => {
|
|
|
185
185
|
describe('Session', () => {
|
|
186
186
|
let mockChat;
|
|
187
187
|
let mockConfig;
|
|
188
|
-
let
|
|
188
|
+
let mockConnection;
|
|
189
189
|
let session;
|
|
190
190
|
let mockToolRegistry;
|
|
191
191
|
let mockTool;
|
|
@@ -207,7 +207,6 @@ describe('Session', () => {
|
|
|
207
207
|
getTool: vi.fn().mockReturnValue(mockTool),
|
|
208
208
|
};
|
|
209
209
|
mockConfig = {
|
|
210
|
-
isInFallbackMode: vi.fn().mockReturnValue(false),
|
|
211
210
|
getModel: vi.fn().mockReturnValue('gemini-pro'),
|
|
212
211
|
getPreviewFeatures: vi.fn().mockReturnValue({}),
|
|
213
212
|
getToolRegistry: vi.fn().mockReturnValue(mockToolRegistry),
|
|
@@ -219,12 +218,12 @@ describe('Session', () => {
|
|
|
219
218
|
getEnableRecursiveFileSearch: vi.fn().mockReturnValue(false),
|
|
220
219
|
getDebugMode: vi.fn().mockReturnValue(false),
|
|
221
220
|
};
|
|
222
|
-
|
|
221
|
+
mockConnection = {
|
|
223
222
|
sessionUpdate: vi.fn(),
|
|
224
223
|
requestPermission: vi.fn(),
|
|
225
224
|
sendNotification: vi.fn(),
|
|
226
225
|
};
|
|
227
|
-
session = new Session('session-1', mockChat, mockConfig,
|
|
226
|
+
session = new Session('session-1', mockChat, mockConfig, mockConnection);
|
|
228
227
|
});
|
|
229
228
|
afterEach(() => {
|
|
230
229
|
vi.clearAllMocks();
|
|
@@ -244,7 +243,7 @@ describe('Session', () => {
|
|
|
244
243
|
prompt: [{ type: 'text', text: 'Hi' }],
|
|
245
244
|
});
|
|
246
245
|
expect(mockChat.sendMessageStream).toHaveBeenCalled();
|
|
247
|
-
expect(
|
|
246
|
+
expect(mockConnection.sessionUpdate).toHaveBeenCalledWith({
|
|
248
247
|
sessionId: 'session-1',
|
|
249
248
|
update: {
|
|
250
249
|
sessionUpdate: 'agent_message_chunk',
|
|
@@ -279,13 +278,13 @@ describe('Session', () => {
|
|
|
279
278
|
});
|
|
280
279
|
expect(mockToolRegistry.getTool).toHaveBeenCalledWith('test_tool');
|
|
281
280
|
expect(mockTool.build).toHaveBeenCalledWith({ foo: 'bar' });
|
|
282
|
-
expect(
|
|
281
|
+
expect(mockConnection.sessionUpdate).toHaveBeenCalledWith(expect.objectContaining({
|
|
283
282
|
update: expect.objectContaining({
|
|
284
283
|
sessionUpdate: 'tool_call',
|
|
285
284
|
status: 'in_progress',
|
|
286
285
|
}),
|
|
287
286
|
}));
|
|
288
|
-
expect(
|
|
287
|
+
expect(mockConnection.sessionUpdate).toHaveBeenCalledWith(expect.objectContaining({
|
|
289
288
|
update: expect.objectContaining({
|
|
290
289
|
sessionUpdate: 'tool_call_update',
|
|
291
290
|
status: 'completed',
|
|
@@ -304,7 +303,7 @@ describe('Session', () => {
|
|
|
304
303
|
shouldConfirmExecute: vi.fn().mockResolvedValue(confirmationDetails),
|
|
305
304
|
execute: vi.fn().mockResolvedValue({ llmContent: 'Tool Result' }),
|
|
306
305
|
});
|
|
307
|
-
|
|
306
|
+
mockConnection.requestPermission.mockResolvedValue({
|
|
308
307
|
outcome: {
|
|
309
308
|
outcome: 'selected',
|
|
310
309
|
optionId: ToolConfirmationOutcome.ProceedOnce,
|
|
@@ -331,7 +330,7 @@ describe('Session', () => {
|
|
|
331
330
|
sessionId: 'session-1',
|
|
332
331
|
prompt: [{ type: 'text', text: 'Call tool' }],
|
|
333
332
|
});
|
|
334
|
-
expect(
|
|
333
|
+
expect(mockConnection.requestPermission).toHaveBeenCalled();
|
|
335
334
|
expect(confirmationDetails.onConfirm).toHaveBeenCalledWith(ToolConfirmationOutcome.ProceedOnce);
|
|
336
335
|
});
|
|
337
336
|
it('should handle tool call cancellation by user', async () => {
|
|
@@ -345,7 +344,7 @@ describe('Session', () => {
|
|
|
345
344
|
shouldConfirmExecute: vi.fn().mockResolvedValue(confirmationDetails),
|
|
346
345
|
execute: vi.fn().mockResolvedValue({ llmContent: 'Tool Result' }),
|
|
347
346
|
});
|
|
348
|
-
|
|
347
|
+
mockConnection.requestPermission.mockResolvedValue({
|
|
349
348
|
outcome: { outcome: 'cancelled' },
|
|
350
349
|
});
|
|
351
350
|
const stream1 = createMockStream([
|
|
@@ -508,7 +507,7 @@ describe('Session', () => {
|
|
|
508
507
|
sessionId: 'session-1',
|
|
509
508
|
prompt: [{ type: 'text', text: 'Call tool' }],
|
|
510
509
|
});
|
|
511
|
-
expect(
|
|
510
|
+
expect(mockConnection.sessionUpdate).toHaveBeenCalledWith(expect.objectContaining({
|
|
512
511
|
update: expect.objectContaining({
|
|
513
512
|
sessionUpdate: 'tool_call_update',
|
|
514
513
|
status: 'failed',
|