Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vscode-dts/vscode.proposed.chatProvider.d.ts
3290 views
1
/*---------------------------------------------------------------------------------------------
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
// version: 4
7
8
declare module 'vscode' {
9
10
/**
11
* The provider version of {@linkcode LanguageModelChatRequestOptions}
12
*/
13
export interface ProvideLanguageModelChatResponseOptions {
14
15
/**
16
* What extension initiated the request to the language model
17
*/
18
readonly requestInitiator: string;
19
}
20
21
/**
22
* All the information representing a single language model contributed by a {@linkcode LanguageModelChatProvider}.
23
*/
24
export interface LanguageModelChatInformation {
25
26
/**
27
* When present, this gates the use of `requestLanguageModelAccess` behind an authorization flow where
28
* the user must approve of another extension accessing the models contributed by this extension.
29
* Additionally, the extension can provide a label that will be shown in the UI.
30
* A common example of a label is an account name that is signed in.
31
*
32
*/
33
requiresAuthorization?: true | { label: string };
34
35
/**
36
* Whether or not this will be selected by default in the model picker
37
* NOT BEING FINALIZED
38
*/
39
readonly isDefault?: boolean;
40
41
/**
42
* Whether or not the model will show up in the model picker immediately upon being made known via {@linkcode LanguageModelChatProvider.provideLanguageModelChatInformation}.
43
* NOT BEING FINALIZED
44
*/
45
readonly isUserSelectable?: boolean;
46
47
/**
48
* Optional category to group models by in the model picker.
49
* The lower the order, the higher the category appears in the list.
50
* Has no effect if `isUserSelectable` is `false`.
51
*
52
* WONT BE FINALIZED
53
*/
54
readonly category?: { label: string; order: number };
55
56
readonly statusIcon?: ThemeIcon;
57
}
58
59
export type LanguageModelResponsePart2 = LanguageModelResponsePart | LanguageModelDataPart | LanguageModelThinkingPart;
60
61
export interface LanguageModelChatProvider<T extends LanguageModelChatInformation = LanguageModelChatInformation> {
62
provideLanguageModelChatResponse(model: T, messages: readonly LanguageModelChatRequestMessage[], options: ProvideLanguageModelChatResponseOptions, progress: Progress<LanguageModelResponsePart2>, token: CancellationToken): Thenable<void>;
63
}
64
}
65
66