import { CancellationToken } from "../../../../base/common/cancellation.js"; import { IStringDictionary } from "../../../../base/common/collections.js"; import { Event } from "../../../../base/common/event.js"; import { IDisposable } from "../../../../base/common/lifecycle.js"; import { IObservable } from "../../../../base/common/observable.js"; import { ExtensionIdentifier } from "../../../../platform/extensions/common/extensions.js"; import { ILanguageModelProviderDescriptor, ILanguageModelChatMetadata, ILanguageModelChatMetadataAndIdentifier, ILanguageModelsGroup, ILanguageModelChatSelector, ILanguageModelChatProvider, IUserFriendlyLanguageModel, IChatMessage, ILanguageModelChatResponse, IModelsControlManifest } from "./languageModels.js"; import { ILanguageModelsProviderGroup } from "./languageModelsConfiguration.js"; export declare const ILanguageModelsService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier; export interface ILanguageModelsService { readonly _serviceBrand: undefined; readonly onDidChangeLanguageModelVendors: Event; readonly onDidChangeLanguageModels: Event; updateModelPickerPreference(modelIdentifier: string, showInModelPicker: boolean): void; getLanguageModelIds(): string[]; getVendors(): ILanguageModelProviderDescriptor[]; lookupLanguageModel(modelId: string): ILanguageModelChatMetadata | undefined; /** * Find a model by its qualified name. The qualified name is what is used in prompt and agent files and is in the format "Model Name (Vendor)". */ lookupLanguageModelByQualifiedName(qualifiedName: string): ILanguageModelChatMetadataAndIdentifier | undefined; getLanguageModelGroups(vendor: string): ILanguageModelsGroup[]; /** * Given a selector, returns a list of model identifiers * @param selector The selector to lookup for language models. If the selector is empty, all language models are returned. */ selectLanguageModels(selector: ILanguageModelChatSelector): Promise; registerLanguageModelProvider(vendor: string, provider: ILanguageModelChatProvider): IDisposable; deltaLanguageModelChatProviderDescriptors(added: IUserFriendlyLanguageModel[], removed: IUserFriendlyLanguageModel[]): void; sendChatRequest(modelId: string, from: ExtensionIdentifier | undefined, messages: IChatMessage[], options: { [name: string]: any; }, token: CancellationToken): Promise; computeTokenLength(modelId: string, message: string | IChatMessage, token: CancellationToken): Promise; addLanguageModelsProviderGroup(name: string, vendorId: string, configuration: IStringDictionary | undefined): Promise; removeLanguageModelsProviderGroup(vendorId: string, providerGroupName: string): Promise; configureLanguageModelsProviderGroup(vendorId: string, name?: string): Promise; migrateLanguageModelsProviderGroup(languageModelsProviderGroup: ILanguageModelsProviderGroup): Promise; /** * Returns the most recently used model identifiers, ordered by most-recent-first. * @param maxCount Maximum number of entries to return (default 7). */ getRecentlyUsedModelIds(): string[]; /** * Records that a model was used, updating the recently used list. */ addToRecentlyUsedList(modelIdentifier: string): void; /** * Clears the recently used model list. */ clearRecentlyUsedList(): void; /** * Returns the models from the control manifest, * separated into free and paid tiers. */ getModelsControlManifest(): IModelsControlManifest; /** * Fires when models control manifest changes. */ readonly onDidChangeModelsControlManifest: Event; /** * Observable map of restricted chat participant names to allowed extension publisher/IDs. * Fetched from the chat control manifest. */ readonly restrictedChatParticipants: IObservable<{ [name: string]: string[]; }>; }