mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-07-11 10:30:46 -07:00
fix(acp): resolve agent mode disconnect and improve mode awareness (#26332)
This commit is contained in:
@@ -14,6 +14,7 @@ import type {
|
||||
KeychainAvailabilityEvent,
|
||||
} from '../telemetry/types.js';
|
||||
import { debugLogger } from './debugLogger.js';
|
||||
import type { ApprovalMode } from '../policy/types.js';
|
||||
|
||||
/**
|
||||
* Defines the severity level for user-facing feedback.
|
||||
@@ -52,6 +53,20 @@ export interface ModelChangedPayload {
|
||||
model: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Payload for the 'approval-mode-changed' event.
|
||||
*/
|
||||
export interface ApprovalModeChangedPayload {
|
||||
/**
|
||||
* The session ID associated with the mode change.
|
||||
*/
|
||||
sessionId: string;
|
||||
/**
|
||||
* The new approval mode.
|
||||
*/
|
||||
mode: ApprovalMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Payload for the 'console-log' event.
|
||||
*/
|
||||
@@ -181,6 +196,7 @@ export interface QuotaChangedPayload {
|
||||
export enum CoreEvent {
|
||||
UserFeedback = 'user-feedback',
|
||||
ModelChanged = 'model-changed',
|
||||
ApprovalModeChanged = 'approval-mode-changed',
|
||||
ConsoleLog = 'console-log',
|
||||
Output = 'output',
|
||||
MemoryChanged = 'memory-changed',
|
||||
@@ -215,6 +231,7 @@ export interface EditorSelectedPayload {
|
||||
export interface CoreEvents extends ExtensionEvents {
|
||||
[CoreEvent.UserFeedback]: [UserFeedbackPayload];
|
||||
[CoreEvent.ModelChanged]: [ModelChangedPayload];
|
||||
[CoreEvent.ApprovalModeChanged]: [ApprovalModeChangedPayload];
|
||||
[CoreEvent.ConsoleLog]: [ConsoleLogPayload];
|
||||
[CoreEvent.Output]: [OutputPayload];
|
||||
[CoreEvent.MemoryChanged]: [MemoryChangedPayload];
|
||||
@@ -327,6 +344,14 @@ export class CoreEventEmitter extends EventEmitter<CoreEvents> {
|
||||
this.emit(CoreEvent.ModelChanged, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies subscribers that the approval mode has changed.
|
||||
*/
|
||||
emitApprovalModeChanged(sessionId: string, mode: ApprovalMode): void {
|
||||
const payload: ApprovalModeChangedPayload = { sessionId, mode };
|
||||
this.emit(CoreEvent.ApprovalModeChanged, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* Notifies subscribers that settings have been modified.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user