Path: blob/main/src/vs/workbench/contrib/chat/browser/chatElicitationRequestPart.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { IAction } from '../../../../base/common/actions.js';6import { Emitter } from '../../../../base/common/event.js';7import { IMarkdownString } from '../../../../base/common/htmlContent.js';8import { Disposable } from '../../../../base/common/lifecycle.js';9import { IChatElicitationRequest } from '../common/chatService.js';10import { ToolDataSource } from '../common/languageModelToolsService.js';1112export class ChatElicitationRequestPart extends Disposable implements IChatElicitationRequest {13public readonly kind = 'elicitation';14public state: 'pending' | 'accepted' | 'rejected' = 'pending';15public acceptedResult?: Record<string, unknown>;1617private _onDidRequestHide = this._register(new Emitter<void>());18public readonly onDidRequestHide = this._onDidRequestHide.event;1920constructor(21public readonly title: string | IMarkdownString,22public readonly message: string | IMarkdownString,23public readonly subtitle: string | IMarkdownString,24public readonly acceptButtonLabel: string,25public readonly rejectButtonLabel: string,26// True when the primary action is accepted, otherwise the action that was selected27public readonly accept: (value: IAction | true) => Promise<void>,28public readonly reject: () => Promise<void>,29public readonly source?: ToolDataSource,30public readonly moreActions?: IAction[],31) {32super();33}3435hide(): void {36this._onDidRequestHide.fire();37}3839public toJSON() {40return {41kind: 'elicitation',42title: this.title,43message: this.message,44state: this.state === 'pending' ? 'rejected' : this.state,45acceptedResult: this.acceptedResult,46} satisfies Partial<IChatElicitationRequest>;47}48}495051