@google/gemini-cli 0.21.0-nightly.20251213.977248e09 → 0.21.0-nightly.20251217.db643e916

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 (144) hide show
  1. package/dist/google-gemini-cli-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
  2. package/dist/package.json +3 -2
  3. package/dist/src/commands/extensions/disable.js.map +1 -1
  4. package/dist/src/commands/extensions/disable.test.js.map +1 -1
  5. package/dist/src/commands/extensions/enable.js.map +1 -1
  6. package/dist/src/commands/extensions/enable.test.js.map +1 -1
  7. package/dist/src/commands/extensions/examples/mcp-server/example.test.js +1 -1
  8. package/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +1 -1
  9. package/dist/src/commands/extensions/examples/mcp-server/example.test.ts +4 -12
  10. package/dist/src/commands/extensions/link.test.js.map +1 -1
  11. package/dist/src/commands/extensions/list.test.js +0 -1
  12. package/dist/src/commands/extensions/list.test.js.map +1 -1
  13. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  14. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  15. package/dist/src/commands/extensions/update.test.js.map +1 -1
  16. package/dist/src/config/config.test.js.map +1 -1
  17. package/dist/src/config/extension-manager.js +8 -9
  18. package/dist/src/config/extension-manager.js.map +1 -1
  19. package/dist/src/config/extension.test.js +4 -4
  20. package/dist/src/config/extension.test.js.map +1 -1
  21. package/dist/src/config/extensions/github_fetch.js.map +1 -1
  22. package/dist/src/config/settings-validation.js.map +1 -1
  23. package/dist/src/config/settings.js +11 -1
  24. package/dist/src/config/settings.js.map +1 -1
  25. package/dist/src/config/settings.test.js +23 -0
  26. package/dist/src/config/settings.test.js.map +1 -1
  27. package/dist/src/config/settingsSchema.test.js.map +1 -1
  28. package/dist/src/config/settings_repro.test.js +162 -0
  29. package/dist/src/config/settings_repro.test.js.map +1 -0
  30. package/dist/src/generated/git-commit.d.ts +2 -2
  31. package/dist/src/generated/git-commit.js +2 -2
  32. package/dist/src/nonInteractiveCli.js +3 -3
  33. package/dist/src/nonInteractiveCli.js.map +1 -1
  34. package/dist/src/nonInteractiveCli.test.js +0 -2
  35. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  36. package/dist/src/services/FileCommandLoader.test.js.map +1 -1
  37. package/dist/src/ui/AppContainer.js +6 -0
  38. package/dist/src/ui/AppContainer.js.map +1 -1
  39. package/dist/src/ui/auth/ApiAuthDialog.js +36 -3
  40. package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -1
  41. package/dist/src/ui/auth/ApiAuthDialog.test.js +26 -2
  42. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
  43. package/dist/src/ui/auth/AuthDialog.js +1 -2
  44. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  45. package/dist/src/ui/auth/AuthDialog.test.js +11 -2
  46. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  47. package/dist/src/ui/auth/useAuth.js +7 -4
  48. package/dist/src/ui/auth/useAuth.js.map +1 -1
  49. package/dist/src/ui/auth/useAuth.test.js +2 -2
  50. package/dist/src/ui/auth/useAuth.test.js.map +1 -1
  51. package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
  52. package/dist/src/ui/commands/ideCommand.test.js.map +1 -1
  53. package/dist/src/ui/commands/mcpCommand.js +1 -2
  54. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  55. package/dist/src/ui/commands/restoreCommand.js +1 -3
  56. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  57. package/dist/src/ui/components/DialogManager.js +1 -1
  58. package/dist/src/ui/components/DialogManager.js.map +1 -1
  59. package/dist/src/ui/components/ModelStatsDisplay.js +1 -1
  60. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  61. package/dist/src/ui/components/ModelStatsDisplay.test.js +7 -0
  62. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  63. package/dist/src/ui/components/QuittingDisplay.test.js.map +1 -1
  64. package/dist/src/ui/components/SessionSummaryDisplay.test.js +1 -0
  65. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  66. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  67. package/dist/src/ui/components/StatsDisplay.js +4 -7
  68. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  69. package/dist/src/ui/components/StatsDisplay.test.js +5 -0
  70. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  71. package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
  72. package/dist/src/ui/components/messages/Todo.js.map +1 -1
  73. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  74. package/dist/src/ui/components/shared/VirtualizedList.js.map +1 -1
  75. package/dist/src/ui/constants/tips.js +0 -1
  76. package/dist/src/ui/constants/tips.js.map +1 -1
  77. package/dist/src/ui/contexts/SessionContext.d.ts +1 -0
  78. package/dist/src/ui/contexts/SessionContext.js +2 -1
  79. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  80. package/dist/src/ui/contexts/SessionContext.test.js +3 -0
  81. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  82. package/dist/src/ui/hooks/atCommandProcessor.d.ts +1 -1
  83. package/dist/src/ui/hooks/atCommandProcessor.js +25 -14
  84. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  85. package/dist/src/ui/hooks/atCommandProcessor.test.js +42 -33
  86. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  87. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +1 -1
  88. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  89. package/dist/src/ui/hooks/useGeminiStream.js +2 -1
  90. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  91. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  92. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -1
  93. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  94. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  95. package/dist/src/ui/hooks/useToolScheduler.test.js +14 -4
  96. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  97. package/dist/src/ui/themes/ansi-light.js +1 -1
  98. package/dist/src/ui/themes/ansi-light.js.map +1 -1
  99. package/dist/src/ui/themes/ansi.js +1 -1
  100. package/dist/src/ui/themes/ansi.js.map +1 -1
  101. package/dist/src/ui/themes/theme.js +3 -3
  102. package/dist/src/ui/themes/theme.js.map +1 -1
  103. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  104. package/dist/src/ui/utils/computeStats.js +2 -0
  105. package/dist/src/ui/utils/computeStats.js.map +1 -1
  106. package/dist/src/ui/utils/computeStats.test.js +9 -0
  107. package/dist/src/ui/utils/computeStats.test.js.map +1 -1
  108. package/dist/src/utils/deepMerge.js +7 -2
  109. package/dist/src/utils/deepMerge.js.map +1 -1
  110. package/dist/src/utils/deepMerge.test.js +21 -0
  111. package/dist/src/utils/deepMerge.test.js.map +1 -1
  112. package/dist/src/utils/envVarResolver.js.map +1 -1
  113. package/dist/src/utils/envVarResolver.test.js.map +1 -1
  114. package/dist/src/utils/errors.test.js +9 -1
  115. package/dist/src/utils/errors.test.js.map +1 -1
  116. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  117. package/dist/src/zed-integration/fileSystemService.d.ts +3 -3
  118. package/dist/src/zed-integration/fileSystemService.js +5 -7
  119. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  120. package/dist/src/zed-integration/fileSystemService.test.js +11 -13
  121. package/dist/src/zed-integration/fileSystemService.test.js.map +1 -1
  122. package/dist/src/zed-integration/zedIntegration.d.ts +5 -5
  123. package/dist/src/zed-integration/zedIntegration.js +39 -19
  124. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  125. package/dist/src/zed-integration/zedIntegration.test.js +16 -16
  126. package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
  127. package/dist/tsconfig.tsbuildinfo +1 -1
  128. package/package.json +4 -3
  129. package/dist/google-gemini-cli-0.21.0-nightly.20251212.54de67536.tgz +0 -0
  130. package/dist/src/zed-integration/acp.d.ts +0 -41
  131. package/dist/src/zed-integration/acp.js +0 -72
  132. package/dist/src/zed-integration/acp.js.map +0 -1
  133. package/dist/src/zed-integration/acp.test.js +0 -222
  134. package/dist/src/zed-integration/acp.test.js.map +0 -1
  135. package/dist/src/zed-integration/connection.d.ts +0 -28
  136. package/dist/src/zed-integration/connection.js +0 -165
  137. package/dist/src/zed-integration/connection.js.map +0 -1
  138. package/dist/src/zed-integration/connection.test.d.ts +0 -6
  139. package/dist/src/zed-integration/connection.test.js +0 -175
  140. package/dist/src/zed-integration/connection.test.js.map +0 -1
  141. package/dist/src/zed-integration/schema.d.ts +0 -11792
  142. package/dist/src/zed-integration/schema.js +0 -311
  143. package/dist/src/zed-integration/schema.js.map +0 -1
  144. /package/dist/src/{zed-integration/acp.test.d.ts → config/settings_repro.test.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google/gemini-cli",
3
- "version": "0.21.0-nightly.20251213.977248e09",
3
+ "version": "0.21.0-nightly.20251217.db643e916",
4
4
  "description": "Gemini CLI",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -26,10 +26,11 @@
26
26
  "dist"
27
27
  ],
28
28
  "config": {
29
- "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.21.0-nightly.20251213.977248e09"
29
+ "sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.21.0-nightly.20251217.db643e916"
30
30
  },
31
31
  "dependencies": {
32
- "@google/gemini-cli-core": "0.21.0-nightly.20251213.977248e09",
32
+ "@agentclientprotocol/sdk": "^0.11.0",
33
+ "@google/gemini-cli-core": "0.21.0-nightly.20251217.db643e916",
33
34
  "@google/genai": "1.30.0",
34
35
  "@iarna/toml": "^2.2.5",
35
36
  "@modelcontextprotocol/sdk": "^1.23.0",
@@ -1,41 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import * as schema from './schema.js';
7
- export * from './schema.js';
8
- import type { WritableStream, ReadableStream } from 'node:stream/web';
9
- import { RequestError } from './connection.js';
10
- export { RequestError };
11
- export declare class AgentSideConnection implements Client {
12
- #private;
13
- constructor(toAgent: (conn: Client) => Agent, input: WritableStream<Uint8Array>, output: ReadableStream<Uint8Array>);
14
- /**
15
- * Streams new content to the client including text, tool calls, etc.
16
- */
17
- sessionUpdate(params: schema.SessionNotification): Promise<void>;
18
- /**
19
- * Request permission before running a tool
20
- *
21
- * The agent specifies a series of permission options with different granularity,
22
- * and the client returns the chosen one.
23
- */
24
- requestPermission(params: schema.RequestPermissionRequest): Promise<schema.RequestPermissionResponse>;
25
- readTextFile(params: schema.ReadTextFileRequest): Promise<schema.ReadTextFileResponse>;
26
- writeTextFile(params: schema.WriteTextFileRequest): Promise<schema.WriteTextFileResponse>;
27
- }
28
- export interface Client {
29
- requestPermission(params: schema.RequestPermissionRequest): Promise<schema.RequestPermissionResponse>;
30
- sessionUpdate(params: schema.SessionNotification): Promise<void>;
31
- writeTextFile(params: schema.WriteTextFileRequest): Promise<schema.WriteTextFileResponse>;
32
- readTextFile(params: schema.ReadTextFileRequest): Promise<schema.ReadTextFileResponse>;
33
- }
34
- export interface Agent {
35
- initialize(params: schema.InitializeRequest): Promise<schema.InitializeResponse>;
36
- newSession(params: schema.NewSessionRequest): Promise<schema.NewSessionResponse>;
37
- loadSession?(params: schema.LoadSessionRequest): Promise<schema.LoadSessionResponse>;
38
- authenticate(params: schema.AuthenticateRequest): Promise<void>;
39
- prompt(params: schema.PromptRequest): Promise<schema.PromptResponse>;
40
- cancel(params: schema.CancelNotification): Promise<void>;
41
- }
@@ -1,72 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- /* ACP defines a schema for a simple (experimental) JSON-RPC protocol that allows GUI applications to interact with agents. */
7
- import * as schema from './schema.js';
8
- export * from './schema.js';
9
- import { Connection, RequestError } from './connection.js';
10
- export { RequestError };
11
- export class AgentSideConnection {
12
- #connection;
13
- constructor(toAgent, input, output) {
14
- const agent = toAgent(this);
15
- const handler = async (method, params) => {
16
- switch (method) {
17
- case schema.AGENT_METHODS.initialize: {
18
- const validatedParams = schema.initializeRequestSchema.parse(params);
19
- return agent.initialize(validatedParams);
20
- }
21
- case schema.AGENT_METHODS.session_new: {
22
- const validatedParams = schema.newSessionRequestSchema.parse(params);
23
- return agent.newSession(validatedParams);
24
- }
25
- case schema.AGENT_METHODS.session_load: {
26
- if (!agent.loadSession) {
27
- throw RequestError.methodNotFound();
28
- }
29
- const validatedParams = schema.loadSessionRequestSchema.parse(params);
30
- return agent.loadSession(validatedParams);
31
- }
32
- case schema.AGENT_METHODS.authenticate: {
33
- const validatedParams = schema.authenticateRequestSchema.parse(params);
34
- return agent.authenticate(validatedParams);
35
- }
36
- case schema.AGENT_METHODS.session_prompt: {
37
- const validatedParams = schema.promptRequestSchema.parse(params);
38
- return agent.prompt(validatedParams);
39
- }
40
- case schema.AGENT_METHODS.session_cancel: {
41
- const validatedParams = schema.cancelNotificationSchema.parse(params);
42
- return agent.cancel(validatedParams);
43
- }
44
- default:
45
- throw RequestError.methodNotFound(method);
46
- }
47
- };
48
- this.#connection = new Connection(handler, input, output);
49
- }
50
- /**
51
- * Streams new content to the client including text, tool calls, etc.
52
- */
53
- async sessionUpdate(params) {
54
- return this.#connection.sendNotification(schema.CLIENT_METHODS.session_update, params);
55
- }
56
- /**
57
- * Request permission before running a tool
58
- *
59
- * The agent specifies a series of permission options with different granularity,
60
- * and the client returns the chosen one.
61
- */
62
- async requestPermission(params) {
63
- return this.#connection.sendRequest(schema.CLIENT_METHODS.session_request_permission, params);
64
- }
65
- async readTextFile(params) {
66
- return this.#connection.sendRequest(schema.CLIENT_METHODS.fs_read_text_file, params);
67
- }
68
- async writeTextFile(params) {
69
- return this.#connection.sendRequest(schema.CLIENT_METHODS.fs_write_text_file, params);
70
- }
71
- }
72
- //# sourceMappingURL=acp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acp.js","sourceRoot":"","sources":["../../../src/zed-integration/acp.ts"],"names":[],"mappings":"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"}
@@ -1,222 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { vi, describe, it, expect, beforeEach } from 'vitest';
7
- import { AgentSideConnection, RequestError, } from './acp.js';
8
- import {} from './schema.js';
9
- import {} from './connection.js';
10
- import { ReadableStream, WritableStream } from 'node:stream/web';
11
- const mockConnectionConstructor = vi.hoisted(() => vi.fn(() => ({
12
- sendRequest: vi.fn(),
13
- sendNotification: vi.fn(),
14
- })));
15
- vi.mock('./connection.js', async (importOriginal) => {
16
- const actual = await importOriginal();
17
- return {
18
- ...actual,
19
- Connection: mockConnectionConstructor,
20
- };
21
- });
22
- describe('acp', () => {
23
- describe('RequestError', () => {
24
- it('should create a parse error', () => {
25
- const error = RequestError.parseError('details');
26
- expect(error.code).toBe(-32700);
27
- expect(error.message).toBe('Parse error');
28
- expect(error.data?.details).toBe('details');
29
- });
30
- it('should create a method not found error', () => {
31
- const error = RequestError.methodNotFound('details');
32
- expect(error.code).toBe(-32601);
33
- expect(error.message).toBe('Method not found');
34
- expect(error.data?.details).toBe('details');
35
- });
36
- it('should convert to a result', () => {
37
- const error = RequestError.internalError('details');
38
- const result = error.toResult();
39
- expect(result.error.code).toBe(-32603);
40
- expect(result.error.message).toBe('Internal error');
41
- expect(result.error.data).toEqual({ details: 'details' });
42
- });
43
- });
44
- describe('AgentSideConnection', () => {
45
- let mockAgent;
46
- let toAgent;
47
- let fromAgent;
48
- let agentSideConnection;
49
- let connectionInstance;
50
- beforeEach(() => {
51
- vi.clearAllMocks();
52
- const initializeResponse = {
53
- agentCapabilities: { loadSession: true },
54
- authMethods: [],
55
- protocolVersion: 1,
56
- };
57
- const newSessionResponse = { sessionId: 'session-1' };
58
- const loadSessionResponse = { sessionId: 'session-1' };
59
- mockAgent = {
60
- initialize: vi.fn().mockResolvedValue(initializeResponse),
61
- newSession: vi.fn().mockResolvedValue(newSessionResponse),
62
- loadSession: vi.fn().mockResolvedValue(loadSessionResponse),
63
- authenticate: vi.fn(),
64
- prompt: vi.fn(),
65
- cancel: vi.fn(),
66
- };
67
- toAgent = new WritableStream();
68
- fromAgent = new ReadableStream();
69
- agentSideConnection = new AgentSideConnection((_client) => mockAgent, toAgent, fromAgent);
70
- // Get the mocked Connection instance
71
- connectionInstance = mockConnectionConstructor.mock.results[0].value;
72
- });
73
- it('should initialize Connection with the correct handler and streams', () => {
74
- expect(mockConnectionConstructor).toHaveBeenCalledTimes(1);
75
- expect(mockConnectionConstructor).toHaveBeenCalledWith(expect.any(Function), toAgent, fromAgent);
76
- });
77
- it('should call agent.initialize when Connection handler receives initialize method', async () => {
78
- const initializeParams = {
79
- clientCapabilities: { fs: { readTextFile: true, writeTextFile: true } },
80
- protocolVersion: 1,
81
- };
82
- const initializeResponse = {
83
- agentCapabilities: { loadSession: true },
84
- authMethods: [],
85
- protocolVersion: 1,
86
- };
87
- const handler = mockConnectionConstructor.mock
88
- .calls[0][0];
89
- const result = await handler('initialize', initializeParams);
90
- expect(mockAgent.initialize).toHaveBeenCalledWith(initializeParams);
91
- expect(result).toEqual(initializeResponse);
92
- });
93
- it('should call agent.newSession when Connection handler receives session_new method', async () => {
94
- const newSessionParams = { cwd: '/tmp', mcpServers: [] };
95
- const newSessionResponse = { sessionId: 'session-1' };
96
- const handler = mockConnectionConstructor.mock
97
- .calls[0][0];
98
- const result = await handler('session/new', newSessionParams);
99
- expect(mockAgent.newSession).toHaveBeenCalledWith(newSessionParams);
100
- expect(result).toEqual(newSessionResponse);
101
- });
102
- it('should call agent.loadSession when Connection handler receives session_load method', async () => {
103
- const loadSessionParams = {
104
- cwd: '/tmp',
105
- mcpServers: [],
106
- sessionId: 'session-1',
107
- };
108
- const loadSessionResponse = { sessionId: 'session-1' };
109
- const handler = mockConnectionConstructor.mock
110
- .calls[0][0];
111
- const result = await handler('session/load', loadSessionParams);
112
- expect(mockAgent.loadSession).toHaveBeenCalledWith(loadSessionParams);
113
- expect(result).toEqual(loadSessionResponse);
114
- });
115
- it('should throw methodNotFound if agent.loadSession is not implemented', async () => {
116
- mockAgent.loadSession = undefined; // Simulate not implemented
117
- const loadSessionParams = {
118
- cwd: '/tmp',
119
- mcpServers: [],
120
- sessionId: 'session-1',
121
- };
122
- const handler = mockConnectionConstructor.mock
123
- .calls[0][0];
124
- await expect(handler('session/load', loadSessionParams)).rejects.toThrow(RequestError.methodNotFound().message);
125
- });
126
- it('should call agent.authenticate when Connection handler receives authenticate method', async () => {
127
- const authenticateParams = {
128
- methodId: 'test-auth-method',
129
- };
130
- const handler = mockConnectionConstructor.mock
131
- .calls[0][0];
132
- const result = await handler('authenticate', authenticateParams);
133
- expect(mockAgent.authenticate).toHaveBeenCalledWith(authenticateParams);
134
- expect(result).toBeUndefined();
135
- });
136
- it('should call agent.prompt when Connection handler receives session_prompt method', async () => {
137
- const promptParams = {
138
- prompt: [{ type: 'text', text: 'hi' }],
139
- sessionId: 'session-1',
140
- };
141
- const promptResponse = {
142
- response: [{ type: 'text', text: 'hello' }],
143
- traceId: 'trace-1',
144
- };
145
- mockAgent.prompt.mockResolvedValue(promptResponse);
146
- const handler = mockConnectionConstructor.mock
147
- .calls[0][0];
148
- const result = await handler('session/prompt', promptParams);
149
- expect(mockAgent.prompt).toHaveBeenCalledWith(promptParams);
150
- expect(result).toEqual(promptResponse);
151
- });
152
- it('should call agent.cancel when Connection handler receives session_cancel method', async () => {
153
- const cancelParams = { sessionId: 'session-1' };
154
- const handler = mockConnectionConstructor.mock
155
- .calls[0][0];
156
- const result = await handler('session/cancel', cancelParams);
157
- expect(mockAgent.cancel).toHaveBeenCalledWith(cancelParams);
158
- expect(result).toBeUndefined();
159
- });
160
- it('should throw methodNotFound for unknown methods', async () => {
161
- const handler = mockConnectionConstructor.mock
162
- .calls[0][0];
163
- await expect(handler('unknown_method', {})).rejects.toThrow(RequestError.methodNotFound().message);
164
- });
165
- it('should send sessionUpdate notification via connection', async () => {
166
- const params = {
167
- sessionId: '123',
168
- update: {
169
- sessionUpdate: 'user_message_chunk',
170
- content: { type: 'text', text: 'hello' },
171
- },
172
- };
173
- await agentSideConnection.sessionUpdate(params);
174
- });
175
- it('should send requestPermission request via connection', async () => {
176
- const params = {
177
- sessionId: '123',
178
- toolCall: {
179
- toolCallId: 'tool-1',
180
- title: 'Test Tool',
181
- kind: 'other',
182
- status: 'pending',
183
- },
184
- options: [
185
- {
186
- optionId: 'option-1',
187
- name: 'Allow',
188
- kind: 'allow_once',
189
- },
190
- ],
191
- };
192
- const response = {
193
- outcome: { outcome: 'selected', optionId: 'option-1' },
194
- };
195
- connectionInstance.sendRequest.mockResolvedValue(response);
196
- const result = await agentSideConnection.requestPermission(params);
197
- expect(connectionInstance.sendRequest).toHaveBeenCalledWith('session/request_permission', params);
198
- expect(result).toEqual(response);
199
- });
200
- it('should send readTextFile request via connection', async () => {
201
- const params = { path: '/a/b.txt', sessionId: 'session-1' };
202
- const response = { content: 'file content' };
203
- connectionInstance.sendRequest.mockResolvedValue(response);
204
- const result = await agentSideConnection.readTextFile(params);
205
- expect(connectionInstance.sendRequest).toHaveBeenCalledWith('fs/read_text_file', params);
206
- expect(result).toEqual(response);
207
- });
208
- it('should send writeTextFile request via connection', async () => {
209
- const params = {
210
- path: '/a/b.txt',
211
- content: 'new content',
212
- sessionId: 'session-1',
213
- };
214
- const response = { success: true };
215
- connectionInstance.sendRequest.mockResolvedValue(response);
216
- const result = await agentSideConnection.writeTextFile(params);
217
- expect(connectionInstance.sendRequest).toHaveBeenCalledWith('fs/write_text_file', params);
218
- expect(result).toEqual(response);
219
- });
220
- });
221
- });
222
- //# sourceMappingURL=acp.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acp.test.js","sourceRoot":"","sources":["../../../src/zed-integration/acp.test.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { type Result } from './schema.js';
7
- import type { WritableStream, ReadableStream } from 'node:stream/web';
8
- export declare class RequestError extends Error {
9
- code: number;
10
- data?: {
11
- details?: string;
12
- };
13
- constructor(code: number, message: string, details?: string);
14
- static parseError(details?: string): RequestError;
15
- static invalidRequest(details?: string): RequestError;
16
- static methodNotFound(details?: string): RequestError;
17
- static invalidParams(details?: string): RequestError;
18
- static internalError(details?: string): RequestError;
19
- static authRequired(details?: string): RequestError;
20
- toResult<T>(): Result<T>;
21
- }
22
- export type MethodHandler = (method: string, params: unknown) => Promise<unknown>;
23
- export declare class Connection {
24
- #private;
25
- constructor(handler: MethodHandler, peerInput: WritableStream<Uint8Array>, peerOutput: ReadableStream<Uint8Array>);
26
- sendRequest<Req, Resp>(method: string, params?: Req): Promise<Resp>;
27
- sendNotification<N>(method: string, params?: N): Promise<void>;
28
- }
@@ -1,165 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { z } from 'zod';
7
- import { coreEvents } from '@google/gemini-cli-core';
8
- import {} from './schema.js';
9
- export class RequestError extends Error {
10
- code;
11
- data;
12
- constructor(code, message, details) {
13
- super(message);
14
- this.code = code;
15
- this.name = 'RequestError';
16
- if (details) {
17
- this.data = { details };
18
- }
19
- }
20
- static parseError(details) {
21
- return new RequestError(-32700, 'Parse error', details);
22
- }
23
- static invalidRequest(details) {
24
- return new RequestError(-32600, 'Invalid request', details);
25
- }
26
- static methodNotFound(details) {
27
- return new RequestError(-32601, 'Method not found', details);
28
- }
29
- static invalidParams(details) {
30
- return new RequestError(-32602, 'Invalid params', details);
31
- }
32
- static internalError(details) {
33
- return new RequestError(-32603, 'Internal error', details);
34
- }
35
- static authRequired(details) {
36
- return new RequestError(-32000, 'Authentication required', details);
37
- }
38
- toResult() {
39
- return {
40
- error: {
41
- code: this.code,
42
- message: this.message,
43
- data: this.data,
44
- },
45
- };
46
- }
47
- }
48
- export class Connection {
49
- #pendingResponses = new Map();
50
- #nextRequestId = 0;
51
- #handler;
52
- #peerInput;
53
- #writeQueue = Promise.resolve();
54
- #textEncoder;
55
- constructor(handler, peerInput, peerOutput) {
56
- this.#handler = handler;
57
- this.#peerInput = peerInput;
58
- this.#textEncoder = new TextEncoder();
59
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
60
- this.#receive(peerOutput);
61
- }
62
- async #receive(output) {
63
- let content = '';
64
- const decoder = new TextDecoder();
65
- for await (const chunk of output) {
66
- content += decoder.decode(chunk, { stream: true });
67
- const lines = content.split('\n');
68
- content = lines.pop() || '';
69
- for (const line of lines) {
70
- const trimmedLine = line.trim();
71
- if (trimmedLine) {
72
- const message = JSON.parse(trimmedLine);
73
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
74
- this.#processMessage(message);
75
- }
76
- }
77
- }
78
- }
79
- async #processMessage(message) {
80
- if ('method' in message && 'id' in message) {
81
- // It's a request
82
- const response = await this.#tryCallHandler(message.method, message.params);
83
- await this.#sendMessage({
84
- jsonrpc: '2.0',
85
- id: message.id,
86
- ...response,
87
- });
88
- }
89
- else if ('method' in message) {
90
- // It's a notification
91
- await this.#tryCallHandler(message.method, message.params);
92
- }
93
- else if ('id' in message) {
94
- // It's a response
95
- this.#handleResponse(message);
96
- }
97
- }
98
- async #tryCallHandler(method, params) {
99
- try {
100
- const result = await this.#handler(method, params);
101
- return { result: result ?? null };
102
- }
103
- catch (error) {
104
- if (error instanceof RequestError) {
105
- return error.toResult();
106
- }
107
- if (error instanceof z.ZodError) {
108
- return RequestError.invalidParams(JSON.stringify(error.format(), undefined, 2)).toResult();
109
- }
110
- let details;
111
- if (error instanceof Error) {
112
- details = error.message;
113
- }
114
- else if (typeof error === 'object' &&
115
- error != null &&
116
- 'message' in error &&
117
- typeof error.message === 'string') {
118
- details = error.message;
119
- }
120
- return RequestError.internalError(details).toResult();
121
- }
122
- }
123
- #handleResponse(response) {
124
- const pendingResponse = this.#pendingResponses.get(response.id);
125
- if (pendingResponse) {
126
- if ('result' in response) {
127
- pendingResponse.resolve(response.result);
128
- }
129
- else if ('error' in response) {
130
- pendingResponse.reject(response.error);
131
- }
132
- this.#pendingResponses.delete(response.id);
133
- }
134
- }
135
- async sendRequest(method, params) {
136
- const id = this.#nextRequestId++;
137
- const responsePromise = new Promise((resolve, reject) => {
138
- this.#pendingResponses.set(id, { resolve, reject });
139
- });
140
- await this.#sendMessage({ jsonrpc: '2.0', id, method, params });
141
- return responsePromise;
142
- }
143
- async sendNotification(method, params) {
144
- await this.#sendMessage({ jsonrpc: '2.0', method, params });
145
- }
146
- async #sendMessage(json) {
147
- const content = JSON.stringify(json) + '\n';
148
- this.#writeQueue = this.#writeQueue
149
- .then(async () => {
150
- const writer = this.#peerInput.getWriter();
151
- try {
152
- await writer.write(this.#textEncoder.encode(content));
153
- }
154
- finally {
155
- writer.releaseLock();
156
- }
157
- })
158
- .catch((error) => {
159
- // Continue processing writes on error
160
- coreEvents.emitFeedback('error', 'ACP write error.', error);
161
- });
162
- return this.#writeQueue;
163
- }
164
- }
165
- //# sourceMappingURL=connection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../../src/zed-integration/connection.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};