diff --git a/src/vs/workbench/contrib/chat/browser/chatElicitationRequestPart.ts b/src/vs/workbench/contrib/chat/browser/chatElicitationRequestPart.ts index 2302742a68497..42c1f86b0efeb 100644 --- a/src/vs/workbench/contrib/chat/browser/chatElicitationRequestPart.ts +++ b/src/vs/workbench/contrib/chat/browser/chatElicitationRequestPart.ts @@ -17,6 +17,7 @@ export class ChatElicitationRequestPart extends Disposable implements IChatElici private readonly _isHiddenValue = observableValue('isHidden', false); public readonly isHidden: IObservable = this._isHiddenValue; + public reject?: (() => Promise) | undefined; constructor( public readonly title: string | IMarkdownString, @@ -25,13 +26,20 @@ export class ChatElicitationRequestPart extends Disposable implements IChatElici public readonly acceptButtonLabel: string, public readonly rejectButtonLabel: string | undefined, // True when the primary action is accepted, otherwise the action that was selected - public readonly _accept: (value: IAction | true) => Promise, - public readonly _reject?: () => Promise, + private readonly _accept: (value: IAction | true) => Promise, + reject?: () => Promise, public readonly source?: ToolDataSource, public readonly moreActions?: IAction[], public readonly onHide?: () => void, ) { super(); + + if (reject) { + this.reject = async () => { + const state = await reject!(); + this.state.set(state, undefined); + }; + } } accept(value: IAction | true): Promise {