2
>
* Copyright (c) Microsoft Corporation. All rights reserved.
3
>
* Licensed under the MIT License. See License.txt in the project root for license information.
4
>
*--------------------------------------------------------------------------------------------*/
5
>
6
>
import { CancellationToken } from '../../../../../../base/common/cancellation.js';
7
>
import { Codicon } from '../../../../../../base/common/codicons.js';
8
>
import { Emitter, Event } from '../../../../../../base/common/event.js';
9
>
import { Disposable, IDisposable } from '../../../../../../base/common/lifecycle.js';
10
>
import { constObservable, IObservable, IReader } from '../../../../../../base/common/observable.js';
11
>
import { ThemeIcon } from '../../../../../../base/common/themables.js';
12
>
import { URI } from '../../../../../../base/common/uri.js';
13
>
import { MockContextKeyService } from '../../../../../../platform/keybinding/test/common/mockKeybindingService.js';
14
>
import { IProgressStep } from '../../../../../../platform/progress/common/progress.js';
15
>
import { ChatRequestToolReferenceEntry } from '../../../common/attachments/chatVariableEntries.js';
16
>
import { IVariableReference } from '../../../common/chatModes.js';
17
>
import { IChatToolInvocation } from '../../../common/chatService/chatService.js';
18
>
import { ILanguageModelChatMetadata } from '../../../common/languageModels.js';
19
>
import { CountTokensCallback, IBeginToolCallOptions, ILanguageModelToolsService, ToolAndToolSetEnablementMap, IToolData, IToolImpl, IToolInvocation, IToolInvokedEvent, IToolResult, IToolSet, ToolDataSource, ToolSet } from '../../../common/tools/languageModelToolsService.js';
20
>
21
>
export class MockLanguageModelToolsService extends Disposable implements ILanguageModelToolsService {
22
>
_serviceBrand: undefined;
23
>
vscodeToolSet: ToolSet = new ToolSet('vscode', 'vscode', ThemeIcon.fromId(Codicon.code.id), ToolDataSource.Internal, undefined, undefined, undefined, undefined, undefined, new MockContextKeyService());
24
>
executeToolSet: ToolSet = new ToolSet('execute', 'execute', ThemeIcon.fromId(Codicon.terminal.id), ToolDataSource.Internal, undefined, undefined, undefined, undefined, undefined, new MockContextKeyService());
25
>
readToolSet: ToolSet = new ToolSet('read', 'read', ThemeIcon.fromId(Codicon.book.id), ToolDataSource.Internal, undefined, undefined, undefined, undefined, undefined, new MockContextKeyService());
26
>
agentToolSet: ToolSet = new ToolSet('agent', 'agent', ThemeIcon.fromId(Codicon.agent.id), ToolDataSource.Internal, undefined, undefined, undefined, undefined, undefined, new MockContextKeyService());
27
>
28
>
private readonly _onDidInvokeTool = this._register(new Emitter<IToolInvokedEvent>());
29
>
30
>
private readonly _registeredToolIds = new Set<string>();
31
>
private readonly _registeredToolSetNames = new Set<string>();
32
>
private readonly _toolSetTools = new Map<string, IToolData[]>();
33
>
34
>
constructor() {
35
super();
36
}