feat(core): add support for MCP progress updates (#19046)

This commit is contained in:
N. Taylor Mullen
2026-02-18 12:46:12 -08:00
committed by GitHub
parent 1cf05b0375
commit 14415316c0
14 changed files with 270 additions and 14 deletions
+21
View File
@@ -124,6 +124,18 @@ export interface ConsentRequestPayload {
onConfirm: (confirmed: boolean) => void;
}
/**
* Payload for the 'mcp-progress' event.
*/
export interface McpProgressPayload {
serverName: string;
callId: string;
progressToken: string | number;
progress: number;
total?: number;
message?: string;
}
/**
* Payload for the 'agents-discovered' event.
*/
@@ -167,6 +179,7 @@ export enum CoreEvent {
AdminSettingsChanged = 'admin-settings-changed',
RetryAttempt = 'retry-attempt',
ConsentRequest = 'consent-request',
McpProgress = 'mcp-progress',
AgentsDiscovered = 'agents-discovered',
RequestEditorSelection = 'request-editor-selection',
EditorSelected = 'editor-selected',
@@ -200,6 +213,7 @@ export interface CoreEvents extends ExtensionEvents {
[CoreEvent.AdminSettingsChanged]: never[];
[CoreEvent.RetryAttempt]: [RetryAttemptPayload];
[CoreEvent.ConsentRequest]: [ConsentRequestPayload];
[CoreEvent.McpProgress]: [McpProgressPayload];
[CoreEvent.AgentsDiscovered]: [AgentsDiscoveredPayload];
[CoreEvent.RequestEditorSelection]: never[];
[CoreEvent.EditorSelected]: [EditorSelectedPayload];
@@ -335,6 +349,13 @@ export class CoreEventEmitter extends EventEmitter<CoreEvents> {
this._emitOrQueue(CoreEvent.ConsentRequest, payload);
}
/**
* Notifies subscribers that progress has been made on an MCP tool call.
*/
emitMcpProgress(payload: McpProgressPayload): void {
this.emit(CoreEvent.McpProgress, payload);
}
/**
* Notifies subscribers that new unacknowledged agents have been discovered.
*/