mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-21 18:44:30 -07:00
Refactor: Migrate CLI appEvents to Core coreEvents (#15737)
This commit is contained in:
@@ -42,11 +42,7 @@ import type {
|
||||
OAuthTokenResponse,
|
||||
OAuthClientRegistrationResponse,
|
||||
} from './oauth-provider.js';
|
||||
import {
|
||||
MCPOAuthProvider,
|
||||
OAUTH_DISPLAY_MESSAGE_EVENT,
|
||||
} from './oauth-provider.js';
|
||||
import { EventEmitter } from 'node:events';
|
||||
import { MCPOAuthProvider } from './oauth-provider.js';
|
||||
import type { OAuthToken } from './token-storage/types.js';
|
||||
import { MCPOAuthTokenStorage } from './oauth-token-storage.js';
|
||||
import {
|
||||
@@ -1195,20 +1191,17 @@ describe('MCPOAuthProvider', () => {
|
||||
);
|
||||
|
||||
const authProvider = new MCPOAuthProvider();
|
||||
const eventEmitter = new EventEmitter();
|
||||
const messagePromise = new Promise<string>((resolve) => {
|
||||
eventEmitter.on(OAUTH_DISPLAY_MESSAGE_EVENT, resolve);
|
||||
});
|
||||
|
||||
await authProvider.authenticate(
|
||||
'production-server',
|
||||
mockConfig,
|
||||
undefined,
|
||||
eventEmitter,
|
||||
);
|
||||
|
||||
const message = await messagePromise;
|
||||
expect(message).toContain('production-server');
|
||||
expect(coreEvents.emitFeedback).toHaveBeenCalledWith(
|
||||
'info',
|
||||
expect.stringContaining('production-server'),
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import * as http from 'node:http';
|
||||
import * as crypto from 'node:crypto';
|
||||
import type * as net from 'node:net';
|
||||
import { URL } from 'node:url';
|
||||
import type { EventEmitter } from 'node:events';
|
||||
import { openBrowserSecurely } from '../utils/secure-browser-launcher.js';
|
||||
import type { OAuthToken } from './token-storage/types.js';
|
||||
import { MCPOAuthTokenStorage } from './oauth-token-storage.js';
|
||||
@@ -744,15 +743,10 @@ export class MCPOAuthProvider {
|
||||
serverName: string,
|
||||
config: MCPOAuthConfig,
|
||||
mcpServerUrl?: string,
|
||||
events?: EventEmitter,
|
||||
): Promise<OAuthToken> {
|
||||
// Helper function to display messages through handler or fallback to console.log
|
||||
const displayMessage = (message: string) => {
|
||||
if (events) {
|
||||
events.emit(OAUTH_DISPLAY_MESSAGE_EVENT, message);
|
||||
} else {
|
||||
debugLogger.log(message);
|
||||
}
|
||||
coreEvents.emitFeedback('info', message);
|
||||
};
|
||||
|
||||
// If no authorization URL is provided, try to discover OAuth configuration
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
*/
|
||||
|
||||
import { EventEmitter } from 'node:events';
|
||||
import type { McpClient } from '../tools/mcp-client.js';
|
||||
import type { ExtensionEvents } from './extensionLoader.js';
|
||||
|
||||
/**
|
||||
* Defines the severity level for user-facing feedback.
|
||||
@@ -115,6 +117,8 @@ export enum CoreEvent {
|
||||
Output = 'output',
|
||||
MemoryChanged = 'memory-changed',
|
||||
ExternalEditorClosed = 'external-editor-closed',
|
||||
McpClientUpdate = 'mcp-client-update',
|
||||
OauthDisplayMessage = 'oauth-display-message',
|
||||
SettingsChanged = 'settings-changed',
|
||||
HookStart = 'hook-start',
|
||||
HookEnd = 'hook-end',
|
||||
@@ -123,13 +127,15 @@ export enum CoreEvent {
|
||||
RetryAttempt = 'retry-attempt',
|
||||
}
|
||||
|
||||
export interface CoreEvents {
|
||||
export interface CoreEvents extends ExtensionEvents {
|
||||
[CoreEvent.UserFeedback]: [UserFeedbackPayload];
|
||||
[CoreEvent.ModelChanged]: [ModelChangedPayload];
|
||||
[CoreEvent.ConsoleLog]: [ConsoleLogPayload];
|
||||
[CoreEvent.Output]: [OutputPayload];
|
||||
[CoreEvent.MemoryChanged]: [MemoryChangedPayload];
|
||||
[CoreEvent.ExternalEditorClosed]: never[];
|
||||
[CoreEvent.McpClientUpdate]: Array<Map<string, McpClient> | never>;
|
||||
[CoreEvent.OauthDisplayMessage]: string[];
|
||||
[CoreEvent.SettingsChanged]: never[];
|
||||
[CoreEvent.HookStart]: [HookStartPayload];
|
||||
[CoreEvent.HookEnd]: [HookEndPayload];
|
||||
|
||||
Reference in New Issue
Block a user