-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAIChatDataProvider.js
More file actions
35 lines (29 loc) · 862 Bytes
/
AIChatDataProvider.js
File metadata and controls
35 lines (29 loc) · 862 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import * as vscode from 'vscode';
export class AIChatDataProvider {
_onDidChangeTreeData = new vscode.EventEmitter();
onDidChangeTreeData = this._onDidChangeTreeData.event;
constructor() {
this.messages = [];
}
refresh(messages = []) {
this.messages = messages;
this._onDidChangeTreeData.fire(undefined);
}
getTreeItem(element) {
return element;
}
getChildren() {
return this.messages.map(msg => {
const prefix = msg.role === "user" ? "🧑" : "🤖";
const item = new vscode.TreeItem(
`${prefix} ${msg.text}`,
vscode.TreeItemCollapsibleState.None
);
return item;
});
}
addMessage(role, text) {
this.messages.push({ role, text });
this.refresh(this.messages);
}
}