diff --git a/js/packages/teams-ai/src/Application.ts b/js/packages/teams-ai/src/Application.ts index 23977335c..2dd9b59f0 100644 --- a/js/packages/teams-ai/src/Application.ts +++ b/js/packages/teams-ai/src/Application.ts @@ -585,8 +585,12 @@ export class Application { context.activity.value?.action === 'accept' ); }; - const handlerWrapper = (context: TurnContext, state: TState) => { - return handler(context, state, context.activity.value as FileConsentCardResponse); + const handlerWrapper = async (context: TurnContext, state: TState) => { + await handler(context, state, context.activity.value as FileConsentCardResponse); + await context.sendActivity({ + type: ActivityTypes.InvokeResponse, + value: { status: 200 } + }); }; this.addRoute(selector, handlerWrapper, true); return this; @@ -607,8 +611,12 @@ export class Application { context.activity.value?.action === 'decline' ); }; - const handlerWrapper = (context: TurnContext, state: TState) => { - return handler(context, state, context.activity.value as FileConsentCardResponse); + const handlerWrapper = async (context: TurnContext, state: TState) => { + await handler(context, state, context.activity.value as FileConsentCardResponse); + await context.sendActivity({ + type: ActivityTypes.InvokeResponse, + value: { status: 200 } + }); }; this.addRoute(selector, handlerWrapper, true); return this; diff --git a/js/packages/teams-ai/src/StreamingResponse.spec.ts b/js/packages/teams-ai/src/StreamingResponse.spec.ts index a0057d316..b1f348cae 100644 --- a/js/packages/teams-ai/src/StreamingResponse.spec.ts +++ b/js/packages/teams-ai/src/StreamingResponse.spec.ts @@ -129,11 +129,7 @@ describe('StreamingResponse', function () { const activity = adapter.getNextReply(); assert.equal(activity.type, 'message', 'activity.type should be "message"'); assert.equal(activity.text, '', 'activity.text should be ""'); - assert.deepEqual( - activity.channelData, - { streamType: 'final' }, - 'activity.channelData should match' - ); + assert.deepEqual(activity.channelData, { streamType: 'final' }, 'activity.channelData should match'); }); }); diff --git a/js/packages/teams-ai/src/StreamingResponse.ts b/js/packages/teams-ai/src/StreamingResponse.ts index 6282d3fa7..1505554f0 100644 --- a/js/packages/teams-ai/src/StreamingResponse.ts +++ b/js/packages/teams-ai/src/StreamingResponse.ts @@ -123,7 +123,7 @@ export class StreamingResponse { /** * Queues the next chunk of text to be sent to the client. - * @private + * @private */ private queueNextChunk(): void { // Are we already waiting to send a chunk? @@ -187,7 +187,7 @@ export class StreamingResponse { // Send activity await this.sendActivity(activity); } - + resolve(); } finally { // Queue is empty, mark as idle @@ -216,7 +216,7 @@ export class StreamingResponse { if (!this._streamId) { this._streamId = response?.id; } - } + } } /** diff --git a/js/packages/teams-ai/src/models/OpenAIModel.ts b/js/packages/teams-ai/src/models/OpenAIModel.ts index 91f3512ee..cecc98a5f 100644 --- a/js/packages/teams-ai/src/models/OpenAIModel.ts +++ b/js/packages/teams-ai/src/models/OpenAIModel.ts @@ -587,7 +587,7 @@ export class OpenAIModel implements PromptCompletionModel { if (!Array.isArray(params.tools) || params.tools.length == 0) { if (params.tool_choice) { delete params.tool_choice; - } + } } return params; diff --git a/js/packages/teams-ai/src/validators/ActionResponseValidator.ts b/js/packages/teams-ai/src/validators/ActionResponseValidator.ts index 61b9689d2..b1c158f63 100644 --- a/js/packages/teams-ai/src/validators/ActionResponseValidator.ts +++ b/js/packages/teams-ai/src/validators/ActionResponseValidator.ts @@ -109,7 +109,7 @@ export class ActionResponseValidator implements PromptResponseValidator