Modify LM api based on feedback (#261645)

* API feedback

* Some further API cleanup

* Some API stuff

* Try more cleanup

* CI please pass

* READONLY
This commit is contained in:
Logan Ramos
2025-08-14 16:59:44 -04:00
committed by GitHub
parent 15dba1928a
commit f6b2bec410
14 changed files with 111 additions and 157 deletions

View File

@@ -15,8 +15,8 @@ suite('chat', () => {
disposables = [];
// Register a dummy default model which is required for a participant request to go through
disposables.push(lm.registerChatModelProvider('test-lm-vendor', {
async prepareLanguageModelChat(_options, _token) {
disposables.push(lm.registerLanguageModelChatProvider('test-lm-vendor', {
async prepareLanguageModelChatInformation(_options, _token) {
return [{
id: 'test-lm',
name: 'test-lm',

View File

@@ -35,12 +35,12 @@ suite('lm', function () {
test('lm request and stream', async function () {
let p: vscode.Progress<vscode.ChatResponseFragment2> | undefined;
let p: vscode.Progress<vscode.LanguageModelTextPart | vscode.LanguageModelToolCallPart | vscode.LanguageModelDataPart | vscode.LanguageModelThinkingPart> | undefined;
const defer = new DeferredPromise<void>();
try {
disposables.push(vscode.lm.registerChatModelProvider('test-lm-vendor', {
async prepareLanguageModelChat(_options, _token) {
disposables.push(vscode.lm.registerLanguageModelChatProvider('test-lm-vendor', {
async prepareLanguageModelChatInformation(_options, _token) {
return [testProviderOptions];
},
async provideLanguageModelChatResponse(_model, _messages, _options, progress, _token) {
@@ -79,7 +79,7 @@ suite('lm', function () {
assert.strictEqual(responseText, '');
assert.strictEqual(streamDone, false);
p.report({ index: 0, part: new vscode.LanguageModelTextPart('Hello') });
p.report(new vscode.LanguageModelTextPart('Hello'));
defer.complete();
await pp;
@@ -91,8 +91,8 @@ suite('lm', function () {
test('lm request fail', async function () {
disposables.push(vscode.lm.registerChatModelProvider('test-lm-vendor', {
async prepareLanguageModelChat(_options, _token) {
disposables.push(vscode.lm.registerLanguageModelChatProvider('test-lm-vendor', {
async prepareLanguageModelChatInformation(_options, _token) {
return [testProviderOptions];
},
async provideLanguageModelChatResponse(_model, _messages, _options, _progress, _token) {
@@ -118,8 +118,8 @@ suite('lm', function () {
const defer = new DeferredPromise<void>();
disposables.push(vscode.lm.registerChatModelProvider('test-lm-vendor', {
async prepareLanguageModelChat(_options, _token) {
disposables.push(vscode.lm.registerLanguageModelChatProvider('test-lm-vendor', {
async prepareLanguageModelChatInformation(_options, _token) {
return [testProviderOptions];
},
async provideLanguageModelChatResponse(_model, _messages, _options, _progress, _token) {
@@ -156,8 +156,8 @@ suite('lm', function () {
test('LanguageModelError instance is not thrown to extensions#235322 (SYNC)', async function () {
disposables.push(vscode.lm.registerChatModelProvider('test-lm-vendor', {
async prepareLanguageModelChat(_options, _token) {
disposables.push(vscode.lm.registerLanguageModelChatProvider('test-lm-vendor', {
async prepareLanguageModelChatInformation(_options, _token) {
return [testProviderOptions];
},
provideLanguageModelChatResponse(_model, _messages, _options, _progress, _token) {
@@ -182,8 +182,8 @@ suite('lm', function () {
test('LanguageModelError instance is not thrown to extensions#235322 (ASYNC)', async function () {
disposables.push(vscode.lm.registerChatModelProvider('test-lm-vendor', {
async prepareLanguageModelChat(_options, _token) {
disposables.push(vscode.lm.registerLanguageModelChatProvider('test-lm-vendor', {
async prepareLanguageModelChatInformation(_options, _token) {
return [testProviderOptions];
},
async provideLanguageModelChatResponse(_model, _messages, _options, _progress, _token) {