Feature/quota visibility 16795 (#18203)

This commit is contained in:
Spencer
2026-02-09 21:53:10 -05:00
committed by GitHub
parent 0a3ecf3a75
commit 6dae3a5402
43 changed files with 1315 additions and 317 deletions

View File

@@ -1,6 +1,6 @@
/**
* @license
* Copyright 2025 Google LLC
* Copyright 2026 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
@@ -127,6 +127,15 @@ export interface AgentsDiscoveredPayload {
agents: AgentDefinition[];
}
/**
* Payload for the 'quota-changed' event.
*/
export interface QuotaChangedPayload {
remaining: number | undefined;
limit: number | undefined;
resetTime?: string;
}
export enum CoreEvent {
UserFeedback = 'user-feedback',
ModelChanged = 'model-changed',
@@ -146,6 +155,7 @@ export enum CoreEvent {
AgentsDiscovered = 'agents-discovered',
RequestEditorSelection = 'request-editor-selection',
EditorSelected = 'editor-selected',
QuotaChanged = 'quota-changed',
}
/**
@@ -161,6 +171,7 @@ export interface CoreEvents extends ExtensionEvents {
[CoreEvent.ConsoleLog]: [ConsoleLogPayload];
[CoreEvent.Output]: [OutputPayload];
[CoreEvent.MemoryChanged]: [MemoryChangedPayload];
[CoreEvent.QuotaChanged]: [QuotaChangedPayload];
[CoreEvent.ExternalEditorClosed]: never[];
[CoreEvent.McpClientUpdate]: Array<Map<string, McpClient> | never>;
[CoreEvent.OauthDisplayMessage]: string[];
@@ -311,6 +322,18 @@ export class CoreEventEmitter extends EventEmitter<CoreEvents> {
this._emitOrQueue(CoreEvent.AgentsDiscovered, payload);
}
/**
* Notifies subscribers that the quota has changed.
*/
emitQuotaChanged(
remaining: number | undefined,
limit: number | undefined,
resetTime?: string,
): void {
const payload: QuotaChangedPayload = { remaining, limit, resetTime };
this.emit(CoreEvent.QuotaChanged, payload);
}
/**
* Flushes buffered messages. Call this immediately after primary UI listener
* subscribes.