@microsoft/agents-hosting-extensions-teams 0.5.1-g2e246ff274
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/activity-extensions/channelInfo.d.ts +38 -0
- package/dist/src/activity-extensions/channelInfo.js +17 -0
- package/dist/src/activity-extensions/channelInfo.js.map +1 -0
- package/dist/src/activity-extensions/index.d.ts +15 -0
- package/dist/src/activity-extensions/index.js +25 -0
- package/dist/src/activity-extensions/index.js.map +1 -0
- package/dist/src/activity-extensions/notificationInfo.d.ts +38 -0
- package/dist/src/activity-extensions/notificationInfo.js +17 -0
- package/dist/src/activity-extensions/notificationInfo.js.map +1 -0
- package/dist/src/activity-extensions/onBehalfOf.d.ts +45 -0
- package/dist/src/activity-extensions/onBehalfOf.js +18 -0
- package/dist/src/activity-extensions/onBehalfOf.js.map +1 -0
- package/dist/src/activity-extensions/teamInfo.d.ts +38 -0
- package/dist/src/activity-extensions/teamInfo.js +17 -0
- package/dist/src/activity-extensions/teamInfo.js.map +1 -0
- package/dist/src/activity-extensions/teamsChannelAccount.d.ts +34 -0
- package/dist/src/activity-extensions/teamsChannelAccount.js +7 -0
- package/dist/src/activity-extensions/teamsChannelAccount.js.map +1 -0
- package/dist/src/activity-extensions/teamsChannelData.d.ts +230 -0
- package/dist/src/activity-extensions/teamsChannelData.js +39 -0
- package/dist/src/activity-extensions/teamsChannelData.js.map +1 -0
- package/dist/src/activity-extensions/teamsChannelDataParser.d.ts +12 -0
- package/dist/src/activity-extensions/teamsChannelDataParser.js +19 -0
- package/dist/src/activity-extensions/teamsChannelDataParser.js.map +1 -0
- package/dist/src/activity-extensions/teamsChannelDataSettings.d.ts +49 -0
- package/dist/src/activity-extensions/teamsChannelDataSettings.js +16 -0
- package/dist/src/activity-extensions/teamsChannelDataSettings.js.map +1 -0
- package/dist/src/activity-extensions/teamsConversationUpdateEvents.d.ts +58 -0
- package/dist/src/activity-extensions/teamsConversationUpdateEvents.js +7 -0
- package/dist/src/activity-extensions/teamsConversationUpdateEvents.js.map +1 -0
- package/dist/src/activity-extensions/teamsMeetingInfo.d.ts +24 -0
- package/dist/src/activity-extensions/teamsMeetingInfo.js +15 -0
- package/dist/src/activity-extensions/teamsMeetingInfo.js.map +1 -0
- package/dist/src/activity-extensions/teamsMessageEvents.d.ts +5 -0
- package/dist/src/activity-extensions/teamsMessageEvents.js +7 -0
- package/dist/src/activity-extensions/teamsMessageEvents.js.map +1 -0
- package/dist/src/activity-extensions/tenantInfo.d.ts +24 -0
- package/dist/src/activity-extensions/tenantInfo.js +15 -0
- package/dist/src/activity-extensions/tenantInfo.js.map +1 -0
- package/dist/src/client/index.d.ts +6 -0
- package/dist/src/client/index.js +23 -0
- package/dist/src/client/index.js.map +1 -0
- package/dist/src/client/teamsConnectorClient.d.ts +146 -0
- package/dist/src/client/teamsConnectorClient.js +313 -0
- package/dist/src/client/teamsConnectorClient.js.map +1 -0
- package/dist/src/client/teamsConnectorClient.types.d.ts +157 -0
- package/dist/src/client/teamsConnectorClient.types.js +7 -0
- package/dist/src/client/teamsConnectorClient.types.js.map +1 -0
- package/dist/src/compat/readReceipInfo.d.ts +31 -0
- package/dist/src/compat/readReceipInfo.js +48 -0
- package/dist/src/compat/readReceipInfo.js.map +1 -0
- package/dist/src/compat/teamsActivityHandler.d.ts +423 -0
- package/dist/src/compat/teamsActivityHandler.js +911 -0
- package/dist/src/compat/teamsActivityHandler.js.map +1 -0
- package/dist/src/file/fileConsentCardResponse.d.ts +26 -0
- package/dist/src/file/fileConsentCardResponse.js +7 -0
- package/dist/src/file/fileConsentCardResponse.js.map +1 -0
- package/dist/src/file/fileUploadInfo.d.ts +29 -0
- package/dist/src/file/fileUploadInfo.js +7 -0
- package/dist/src/file/fileUploadInfo.js.map +1 -0
- package/dist/src/file/index.d.ts +6 -0
- package/dist/src/file/index.js +23 -0
- package/dist/src/file/index.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.js +27 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/meeting/index.d.ts +22 -0
- package/dist/src/meeting/index.js +39 -0
- package/dist/src/meeting/index.js.map +1 -0
- package/dist/src/meeting/meeting.d.ts +115 -0
- package/dist/src/meeting/meeting.js +257 -0
- package/dist/src/meeting/meeting.js.map +1 -0
- package/dist/src/meeting/meetingDetails.d.ts +18 -0
- package/dist/src/meeting/meetingDetails.js +7 -0
- package/dist/src/meeting/meetingDetails.js.map +1 -0
- package/dist/src/meeting/meetingDetailsBase.d.ts +15 -0
- package/dist/src/meeting/meetingDetailsBase.js +7 -0
- package/dist/src/meeting/meetingDetailsBase.js.map +1 -0
- package/dist/src/meeting/meetingEndEventDetails.d.ts +12 -0
- package/dist/src/meeting/meetingEndEventDetails.js +7 -0
- package/dist/src/meeting/meetingEndEventDetails.js.map +1 -0
- package/dist/src/meeting/meetingEventDetails.d.ts +12 -0
- package/dist/src/meeting/meetingEventDetails.js +7 -0
- package/dist/src/meeting/meetingEventDetails.js.map +1 -0
- package/dist/src/meeting/meetingInfo.d.ts +24 -0
- package/dist/src/meeting/meetingInfo.js +7 -0
- package/dist/src/meeting/meetingInfo.js.map +1 -0
- package/dist/src/meeting/meetingNotification.d.ts +9 -0
- package/dist/src/meeting/meetingNotification.js +7 -0
- package/dist/src/meeting/meetingNotification.js.map +1 -0
- package/dist/src/meeting/meetingNotificationBase.d.ts +14 -0
- package/dist/src/meeting/meetingNotificationBase.js +7 -0
- package/dist/src/meeting/meetingNotificationBase.js.map +1 -0
- package/dist/src/meeting/meetingNotificationChannelData.d.ts +12 -0
- package/dist/src/meeting/meetingNotificationChannelData.js +7 -0
- package/dist/src/meeting/meetingNotificationChannelData.js.map +1 -0
- package/dist/src/meeting/meetingNotificationRecipientFailureInfo.d.ts +15 -0
- package/dist/src/meeting/meetingNotificationRecipientFailureInfo.js +7 -0
- package/dist/src/meeting/meetingNotificationRecipientFailureInfo.js.map +1 -0
- package/dist/src/meeting/meetingNotificationResponse.d.ts +14 -0
- package/dist/src/meeting/meetingNotificationResponse.js +7 -0
- package/dist/src/meeting/meetingNotificationResponse.js.map +1 -0
- package/dist/src/meeting/meetingParticipantsEventDetails.d.ts +12 -0
- package/dist/src/meeting/meetingParticipantsEventDetails.js +7 -0
- package/dist/src/meeting/meetingParticipantsEventDetails.js.map +1 -0
- package/dist/src/meeting/meetingStageSurface.d.ts +16 -0
- package/dist/src/meeting/meetingStageSurface.js +7 -0
- package/dist/src/meeting/meetingStageSurface.js.map +1 -0
- package/dist/src/meeting/meetingStartEventDetails.d.ts +14 -0
- package/dist/src/meeting/meetingStartEventDetails.js +7 -0
- package/dist/src/meeting/meetingStartEventDetails.js.map +1 -0
- package/dist/src/meeting/meetingSurface.d.ts +10 -0
- package/dist/src/meeting/meetingSurface.js +7 -0
- package/dist/src/meeting/meetingSurface.js.map +1 -0
- package/dist/src/meeting/meetingTabIconSurface.d.ts +17 -0
- package/dist/src/meeting/meetingTabIconSurface.js +7 -0
- package/dist/src/meeting/meetingTabIconSurface.js.map +1 -0
- package/dist/src/meeting/targetedMeetingNotification.d.ts +20 -0
- package/dist/src/meeting/targetedMeetingNotification.js +7 -0
- package/dist/src/meeting/targetedMeetingNotification.js.map +1 -0
- package/dist/src/meeting/targetedMeetingNotificationValue.d.ts +18 -0
- package/dist/src/meeting/targetedMeetingNotificationValue.js +7 -0
- package/dist/src/meeting/targetedMeetingNotificationValue.js.map +1 -0
- package/dist/src/meeting/teamsMeetingMember.d.ts +19 -0
- package/dist/src/meeting/teamsMeetingMember.js +7 -0
- package/dist/src/meeting/teamsMeetingMember.js.map +1 -0
- package/dist/src/meeting/teamsMeetingParticipant.d.ts +25 -0
- package/dist/src/meeting/teamsMeetingParticipant.js +7 -0
- package/dist/src/meeting/teamsMeetingParticipant.js.map +1 -0
- package/dist/src/meeting/userMeetingDetails.d.ts +17 -0
- package/dist/src/meeting/userMeetingDetails.js +7 -0
- package/dist/src/meeting/userMeetingDetails.js.map +1 -0
- package/dist/src/message-actions-payload/index.d.ts +13 -0
- package/dist/src/message-actions-payload/index.js +30 -0
- package/dist/src/message-actions-payload/index.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayload.d.ts +90 -0
- package/dist/src/message-actions-payload/messageActionsPayload.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayload.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadApp.d.ts +25 -0
- package/dist/src/message-actions-payload/messageActionsPayloadApp.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadApp.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadAttachment.d.ts +33 -0
- package/dist/src/message-actions-payload/messageActionsPayloadAttachment.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadAttachment.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadBody.d.ts +25 -0
- package/dist/src/message-actions-payload/messageActionsPayloadBody.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadBody.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadConversation.d.ts +25 -0
- package/dist/src/message-actions-payload/messageActionsPayloadConversation.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadConversation.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadFrom.d.ts +24 -0
- package/dist/src/message-actions-payload/messageActionsPayloadFrom.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadFrom.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadMention.d.ts +22 -0
- package/dist/src/message-actions-payload/messageActionsPayloadMention.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadMention.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadReaction.d.ts +26 -0
- package/dist/src/message-actions-payload/messageActionsPayloadReaction.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadReaction.js.map +1 -0
- package/dist/src/message-actions-payload/messageActionsPayloadUser.d.ts +29 -0
- package/dist/src/message-actions-payload/messageActionsPayloadUser.js +7 -0
- package/dist/src/message-actions-payload/messageActionsPayloadUser.js.map +1 -0
- package/dist/src/messageExtension/appBasedLinkQuery.d.ts +19 -0
- package/dist/src/messageExtension/appBasedLinkQuery.js +7 -0
- package/dist/src/messageExtension/appBasedLinkQuery.js.map +1 -0
- package/dist/src/messageExtension/index.d.ts +14 -0
- package/dist/src/messageExtension/index.js +29 -0
- package/dist/src/messageExtension/index.js.map +1 -0
- package/dist/src/messageExtension/messageExtension.d.ts +88 -0
- package/dist/src/messageExtension/messageExtension.js +283 -0
- package/dist/src/messageExtension/messageExtension.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionAction.d.ts +40 -0
- package/dist/src/messageExtension/messagingExtensionAction.js +7 -0
- package/dist/src/messageExtension/messagingExtensionAction.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionActionResponse.d.ts +23 -0
- package/dist/src/messageExtension/messagingExtensionActionResponse.js +7 -0
- package/dist/src/messageExtension/messagingExtensionActionResponse.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionAttachment.d.ts +14 -0
- package/dist/src/messageExtension/messagingExtensionAttachment.js +7 -0
- package/dist/src/messageExtension/messagingExtensionAttachment.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionParameter.d.ts +31 -0
- package/dist/src/messageExtension/messagingExtensionParameter.js +16 -0
- package/dist/src/messageExtension/messagingExtensionParameter.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionQuery.d.ts +84 -0
- package/dist/src/messageExtension/messagingExtensionQuery.js +31 -0
- package/dist/src/messageExtension/messagingExtensionQuery.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionQueryOptions.d.ts +31 -0
- package/dist/src/messageExtension/messagingExtensionQueryOptions.js +16 -0
- package/dist/src/messageExtension/messagingExtensionQueryOptions.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionResponse.d.ts +18 -0
- package/dist/src/messageExtension/messagingExtensionResponse.js +7 -0
- package/dist/src/messageExtension/messagingExtensionResponse.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionResult.d.ts +50 -0
- package/dist/src/messageExtension/messagingExtensionResult.js +7 -0
- package/dist/src/messageExtension/messagingExtensionResult.js.map +1 -0
- package/dist/src/messageExtension/messagingExtensionSuggestedAction.d.ts +14 -0
- package/dist/src/messageExtension/messagingExtensionSuggestedAction.js +7 -0
- package/dist/src/messageExtension/messagingExtensionSuggestedAction.js.map +1 -0
- package/dist/src/messages/messages.d.ts +40 -0
- package/dist/src/messages/messages.js +82 -0
- package/dist/src/messages/messages.js.map +1 -0
- package/dist/src/taskModule/index.d.ts +11 -0
- package/dist/src/taskModule/index.js +28 -0
- package/dist/src/taskModule/index.js.map +1 -0
- package/dist/src/taskModule/taskModule.d.ts +72 -0
- package/dist/src/taskModule/taskModule.js +210 -0
- package/dist/src/taskModule/taskModule.js.map +1 -0
- package/dist/src/taskModule/taskModuleContinueResponse.d.ts +15 -0
- package/dist/src/taskModule/taskModuleContinueResponse.js +7 -0
- package/dist/src/taskModule/taskModuleContinueResponse.js.map +1 -0
- package/dist/src/taskModule/taskModuleMessageResponse.d.ts +14 -0
- package/dist/src/taskModule/taskModuleMessageResponse.js +7 -0
- package/dist/src/taskModule/taskModuleMessageResponse.js.map +1 -0
- package/dist/src/taskModule/taskModuleRequest.d.ts +22 -0
- package/dist/src/taskModule/taskModuleRequest.js +7 -0
- package/dist/src/taskModule/taskModuleRequest.js.map +1 -0
- package/dist/src/taskModule/taskModuleRequestContext.d.ts +13 -0
- package/dist/src/taskModule/taskModuleRequestContext.js +7 -0
- package/dist/src/taskModule/taskModuleRequestContext.js.map +1 -0
- package/dist/src/taskModule/taskModuleResponse.d.ts +19 -0
- package/dist/src/taskModule/taskModuleResponse.js +7 -0
- package/dist/src/taskModule/taskModuleResponse.js.map +1 -0
- package/dist/src/taskModule/taskModuleResponseBase.d.ts +17 -0
- package/dist/src/taskModule/taskModuleResponseBase.js +7 -0
- package/dist/src/taskModule/taskModuleResponseBase.js.map +1 -0
- package/dist/src/taskModule/taskModuleTaskInfo.d.ts +38 -0
- package/dist/src/taskModule/taskModuleTaskInfo.js +7 -0
- package/dist/src/taskModule/taskModuleTaskInfo.js.map +1 -0
- package/dist/src/teamsAgentExtension.d.ts +30 -0
- package/dist/src/teamsAgentExtension.js +184 -0
- package/dist/src/teamsAgentExtension.js.map +1 -0
- package/dist/src/teamsAttachmentDownloader.d.ts +27 -0
- package/dist/src/teamsAttachmentDownloader.js +80 -0
- package/dist/src/teamsAttachmentDownloader.js.map +1 -0
- package/dist/src/teamsInfo.d.ts +174 -0
- package/dist/src/teamsInfo.js +387 -0
- package/dist/src/teamsInfo.js.map +1 -0
- package/package.json +37 -0
- package/src/activity-extensions/channelInfo.ts +33 -0
- package/src/activity-extensions/index.ts +16 -0
- package/src/activity-extensions/notificationInfo.ts +33 -0
- package/src/activity-extensions/onBehalfOf.ts +38 -0
- package/src/activity-extensions/teamInfo.ts +33 -0
- package/src/activity-extensions/teamsChannelAccount.ts +36 -0
- package/src/activity-extensions/teamsChannelData.ts +75 -0
- package/src/activity-extensions/teamsChannelDataParser.ts +17 -0
- package/src/activity-extensions/teamsChannelDataSettings.ts +28 -0
- package/src/activity-extensions/teamsConversationUpdateEvents.ts +61 -0
- package/src/activity-extensions/teamsMeetingInfo.ts +23 -0
- package/src/activity-extensions/teamsMessageEvents.ts +6 -0
- package/src/activity-extensions/tenantInfo.ts +23 -0
- package/src/client/index.ts +7 -0
- package/src/client/teamsConnectorClient.ts +340 -0
- package/src/client/teamsConnectorClient.types.ts +168 -0
- package/src/compat/readReceipInfo.ts +54 -0
- package/src/compat/teamsActivityHandler.ts +1140 -0
- package/src/file/fileConsentCardResponse.ts +31 -0
- package/src/file/fileUploadInfo.ts +34 -0
- package/src/file/index.ts +7 -0
- package/src/index.ts +10 -0
- package/src/meeting/index.ts +23 -0
- package/src/meeting/meeting.ts +307 -0
- package/src/meeting/meetingDetails.ts +20 -0
- package/src/meeting/meetingDetailsBase.ts +16 -0
- package/src/meeting/meetingEndEventDetails.ts +14 -0
- package/src/meeting/meetingEventDetails.ts +14 -0
- package/src/meeting/meetingInfo.ts +26 -0
- package/src/meeting/meetingNotification.ts +11 -0
- package/src/meeting/meetingNotificationBase.ts +15 -0
- package/src/meeting/meetingNotificationChannelData.ts +14 -0
- package/src/meeting/meetingNotificationRecipientFailureInfo.ts +16 -0
- package/src/meeting/meetingNotificationResponse.ts +16 -0
- package/src/meeting/meetingParticipantsEventDetails.ts +14 -0
- package/src/meeting/meetingStageSurface.ts +17 -0
- package/src/meeting/meetingStartEventDetails.ts +16 -0
- package/src/meeting/meetingSurface.ts +12 -0
- package/src/meeting/meetingTabIconSurface.ts +19 -0
- package/src/meeting/targetedMeetingNotification.ts +23 -0
- package/src/meeting/targetedMeetingNotificationValue.ts +21 -0
- package/src/meeting/teamsMeetingMember.ts +22 -0
- package/src/meeting/teamsMeetingParticipant.ts +29 -0
- package/src/meeting/userMeetingDetails.ts +19 -0
- package/src/message-actions-payload/index.ts +14 -0
- package/src/message-actions-payload/messageActionsPayload.ts +93 -0
- package/src/message-actions-payload/messageActionsPayloadApp.ts +27 -0
- package/src/message-actions-payload/messageActionsPayloadAttachment.ts +34 -0
- package/src/message-actions-payload/messageActionsPayloadBody.ts +27 -0
- package/src/message-actions-payload/messageActionsPayloadConversation.ts +27 -0
- package/src/message-actions-payload/messageActionsPayloadFrom.ts +26 -0
- package/src/message-actions-payload/messageActionsPayloadMention.ts +24 -0
- package/src/message-actions-payload/messageActionsPayloadReaction.ts +29 -0
- package/src/message-actions-payload/messageActionsPayloadUser.ts +31 -0
- package/src/messageExtension/appBasedLinkQuery.ts +20 -0
- package/src/messageExtension/index.ts +15 -0
- package/src/messageExtension/messageExtension.ts +324 -0
- package/src/messageExtension/messagingExtensionAction.ts +44 -0
- package/src/messageExtension/messagingExtensionActionResponse.ts +25 -0
- package/src/messageExtension/messagingExtensionAttachment.ts +16 -0
- package/src/messageExtension/messagingExtensionParameter.ts +28 -0
- package/src/messageExtension/messagingExtensionQuery.ts +51 -0
- package/src/messageExtension/messagingExtensionQueryOptions.ts +28 -0
- package/src/messageExtension/messagingExtensionResponse.ts +21 -0
- package/src/messageExtension/messagingExtensionResult.ts +60 -0
- package/src/messageExtension/messagingExtensionSuggestedAction.ts +16 -0
- package/src/messages/messages.ts +91 -0
- package/src/taskModule/index.ts +12 -0
- package/src/taskModule/taskModule.ts +241 -0
- package/src/taskModule/taskModuleContinueResponse.ts +17 -0
- package/src/taskModule/taskModuleMessageResponse.ts +16 -0
- package/src/taskModule/taskModuleRequest.ts +24 -0
- package/src/taskModule/taskModuleRequestContext.ts +14 -0
- package/src/taskModule/taskModuleResponse.ts +21 -0
- package/src/taskModule/taskModuleResponseBase.ts +19 -0
- package/src/taskModule/taskModuleTaskInfo.ts +40 -0
- package/src/teamsAgentExtension.ts +201 -0
- package/src/teamsAttachmentDownloader.ts +78 -0
- package/src/teamsInfo.ts +430 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { Activity, ActivityTypes } from '@microsoft/agents-activity'
|
|
2
|
+
import { AgentApplication, RouteHandler, RouteSelector, TurnContext, TurnState } from '@microsoft/agents-hosting'
|
|
3
|
+
import { z } from 'zod'
|
|
4
|
+
import { TaskModuleResponse } from '../taskModule'
|
|
5
|
+
import { MessagingExtensionActionResponse } from './messagingExtensionActionResponse'
|
|
6
|
+
import { MessagingExtensionQuery, messagingExtensionQueryZodSchema } from './messagingExtensionQuery'
|
|
7
|
+
import { MessagingExtensionResponse } from './messagingExtensionResponse'
|
|
8
|
+
import { MessagingExtensionResult } from './messagingExtensionResult'
|
|
9
|
+
import { MessagingExtensionAction } from './messagingExtensionAction'
|
|
10
|
+
|
|
11
|
+
export type RouteQueryHandler<TState extends TurnState> = (context: TurnContext, state: TState, query: MessagingExtensionQuery) => Promise<MessagingExtensionResult>
|
|
12
|
+
export type SelectItemHandler<TState extends TurnState> = (context: TurnContext, state: TState, item: unknown) => Promise<MessagingExtensionResult>
|
|
13
|
+
export type QueryLinkHandler<TState extends TurnState> = (context: TurnContext, state: TState, url: string) => Promise<MessagingExtensionResult>
|
|
14
|
+
export type FetchTaskHanlder<TState extends TurnState> = (context: TurnContext, state: TState) => Promise<TaskModuleResponse>
|
|
15
|
+
export type SubmitActionHanlder<TState extends TurnState> = (context: TurnContext, state: TState, data: unknown) => Promise<MessagingExtensionActionResponse>
|
|
16
|
+
export type MessagePreviewEditHandler<TState extends TurnState> = (context: TurnContext, state: TState, activity: Activity) => Promise<MessagingExtensionActionResponse>
|
|
17
|
+
export type MessagePreviewSendHandler<TState extends TurnState> = (context: TurnContext, state: TState, activity: Activity) => Promise<void>
|
|
18
|
+
export type ConfigureSettingsHandler<TState extends TurnState> = (context: TurnContext, state: TState, settings: unknown) => Promise<void>
|
|
19
|
+
export type CardButtonClickedHandler<TState extends TurnState> = (context: TurnContext, state: TState, cardData: unknown) => Promise<void>
|
|
20
|
+
/**
|
|
21
|
+
* Class that exposes Teams messaging extension-related events.
|
|
22
|
+
* Provides an organized way to handle messaging extension operations in Microsoft Teams.
|
|
23
|
+
*/
|
|
24
|
+
export class MessageExtension<TState extends TurnState> {
|
|
25
|
+
_app: AgentApplication<TState>
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new instance of the MessageExtension class.
|
|
29
|
+
* @param app - The agent application
|
|
30
|
+
*/
|
|
31
|
+
constructor (app: AgentApplication<TState>) {
|
|
32
|
+
this._app = app
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Handles queries from messaging extensions.
|
|
37
|
+
* @param handler - The handler to call when a query is received
|
|
38
|
+
* @returns this (for method chaining)
|
|
39
|
+
*/
|
|
40
|
+
onQuery (handler: RouteQueryHandler<TState>) {
|
|
41
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
42
|
+
return Promise.resolve(
|
|
43
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
44
|
+
context.activity.channelId === 'msteams' &&
|
|
45
|
+
context.activity.name === 'composeExtension/query'
|
|
46
|
+
)
|
|
47
|
+
}
|
|
48
|
+
const routeHandler : RouteHandler<TState> = async (context: TurnContext, state: TState) => {
|
|
49
|
+
const messageExtensionQuery: MessagingExtensionQuery = messagingExtensionQueryZodSchema.parse(context.activity.value)
|
|
50
|
+
const parameters: Record<string, unknown> = {}
|
|
51
|
+
messageExtensionQuery.parameters?.forEach((param) => {
|
|
52
|
+
parameters[param.name!] = param.value
|
|
53
|
+
})
|
|
54
|
+
const result : MessagingExtensionResult = await handler(context, state, messageExtensionQuery)
|
|
55
|
+
const response: MessagingExtensionResponse = { composeExtension: result }
|
|
56
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
57
|
+
invokeResponse.value = {
|
|
58
|
+
status: 200,
|
|
59
|
+
body: response
|
|
60
|
+
}
|
|
61
|
+
context.sendActivity(invokeResponse)
|
|
62
|
+
}
|
|
63
|
+
this._app.addRoute(routeSel, routeHandler, true) // Invoke requires true
|
|
64
|
+
return this
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
onSelectItem (handler: SelectItemHandler<TurnState>) {
|
|
68
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
69
|
+
return Promise.resolve(
|
|
70
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
71
|
+
context.activity.channelId === 'msteams' &&
|
|
72
|
+
context.activity.name === 'composeExtension/selectItem'
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
const routeHandler : RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
76
|
+
const result : MessagingExtensionResult = await handler(context, state, context.activity.value)
|
|
77
|
+
const response: MessagingExtensionResponse = { composeExtension: result }
|
|
78
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
79
|
+
invokeResponse.value = {
|
|
80
|
+
status: 200,
|
|
81
|
+
body: response
|
|
82
|
+
}
|
|
83
|
+
await context.sendActivity(invokeResponse)
|
|
84
|
+
}
|
|
85
|
+
this._app.addRoute(routeSel, routeHandler, true) // Invoke requires true
|
|
86
|
+
return this
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Handles link queries from messaging extensions.
|
|
91
|
+
* @param handler - The handler to call when a link query is received
|
|
92
|
+
* @returns this (for method chaining)
|
|
93
|
+
*/
|
|
94
|
+
onQueryLink (handler: QueryLinkHandler<TurnState>) {
|
|
95
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
96
|
+
return Promise.resolve(
|
|
97
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
98
|
+
context.activity.channelId === 'msteams' &&
|
|
99
|
+
context.activity.name === 'composeExtension/queryLink'
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
const routeHandler : RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
103
|
+
const appBasedLinkQuerySchema = z.object({
|
|
104
|
+
url: z.string().url()
|
|
105
|
+
})
|
|
106
|
+
const query = appBasedLinkQuerySchema.parse(context.activity.value)
|
|
107
|
+
const res = await handler(context, state, query.url)
|
|
108
|
+
const response: MessagingExtensionResponse = { composeExtension: res }
|
|
109
|
+
const invokeResponse = Activity.fromObject({ type: ActivityTypes.InvokeResponse, value: { status: 200, body: response } })
|
|
110
|
+
await context.sendActivity(invokeResponse)
|
|
111
|
+
}
|
|
112
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
113
|
+
return this
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Handles anonymous link queries (for public access) from messaging extensions.
|
|
118
|
+
* @param handler - The handler to call when an anonymous link query is received
|
|
119
|
+
* @returns this (for method chaining)
|
|
120
|
+
*/
|
|
121
|
+
onAnonymousQueryLink (handler: QueryLinkHandler<TurnState>) {
|
|
122
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
123
|
+
return Promise.resolve(
|
|
124
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
125
|
+
context.activity.channelId === 'msteams' &&
|
|
126
|
+
context.activity.name === 'composeExtension/anonymousQueryLink'
|
|
127
|
+
)
|
|
128
|
+
}
|
|
129
|
+
const routeHandler : RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
130
|
+
const appBasedLinkQuerySchema = z.object({
|
|
131
|
+
url: z.string().url()
|
|
132
|
+
})
|
|
133
|
+
const query = appBasedLinkQuerySchema.parse(context.activity.value)
|
|
134
|
+
const res = await handler(context, state, query.url)
|
|
135
|
+
const response: MessagingExtensionResponse = { composeExtension: res }
|
|
136
|
+
const invokeResponse = Activity.fromObject({ type: ActivityTypes.InvokeResponse, value: { status: 200, body: response } })
|
|
137
|
+
await context.sendActivity(invokeResponse)
|
|
138
|
+
}
|
|
139
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
140
|
+
return this
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Handles fetch task requests from messaging extensions.
|
|
145
|
+
* @param handler - The handler to call when a fetch task is requested
|
|
146
|
+
* @returns this (for method chaining)
|
|
147
|
+
*/
|
|
148
|
+
onFetchTask (handler: FetchTaskHanlder<TurnState>) {
|
|
149
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
150
|
+
return Promise.resolve(
|
|
151
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
152
|
+
context.activity.channelId === 'msteams' &&
|
|
153
|
+
context.activity.name === 'composeExtension/fetchTask'
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
const routeHandler: RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
157
|
+
const taskModuleResponse: TaskModuleResponse = await handler(context, state)
|
|
158
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
159
|
+
invokeResponse.value = {
|
|
160
|
+
status: 200,
|
|
161
|
+
body: taskModuleResponse
|
|
162
|
+
}
|
|
163
|
+
await context.sendActivity(invokeResponse)
|
|
164
|
+
}
|
|
165
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
166
|
+
return this
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Handles action submissions from messaging extensions.
|
|
171
|
+
* @param handler - The handler to call when an action is submitted
|
|
172
|
+
* @returns this (for method chaining)
|
|
173
|
+
*/
|
|
174
|
+
onSubmitAction (handler: SubmitActionHanlder<TurnState>) {
|
|
175
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
176
|
+
return Promise.resolve(
|
|
177
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
178
|
+
context.activity.channelId === 'msteams' &&
|
|
179
|
+
context.activity.name === 'composeExtension/submitAction' // && TODO
|
|
180
|
+
// (!context.activity.value || !('botMessagePreviewAction' in context.activity.value.))
|
|
181
|
+
)
|
|
182
|
+
}
|
|
183
|
+
const routeHandler: RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
184
|
+
const data = context.activity.value
|
|
185
|
+
const response: MessagingExtensionActionResponse = await handler(context, state, data)
|
|
186
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
187
|
+
invokeResponse.value = {
|
|
188
|
+
status: 200,
|
|
189
|
+
body: response
|
|
190
|
+
}
|
|
191
|
+
await context.sendActivity(invokeResponse)
|
|
192
|
+
}
|
|
193
|
+
this._app.addRoute(routeSel, routeHandler, true) // Invoke requires true
|
|
194
|
+
return this
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* Handles message preview edit actions from messaging extensions.
|
|
199
|
+
* @param handler - The handler to call when a message preview edit action is received
|
|
200
|
+
* @returns this (for method chaining)
|
|
201
|
+
*/
|
|
202
|
+
onMessagePreviewEdit (handler: MessagePreviewEditHandler<TurnState>) {
|
|
203
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
204
|
+
return Promise.resolve(!!(
|
|
205
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
206
|
+
context.activity.channelId === 'msteams' &&
|
|
207
|
+
context.activity.name === 'composeExtension/submitAction' &&
|
|
208
|
+
context.activity.value &&
|
|
209
|
+
// @ts-ignore
|
|
210
|
+
context.activity.value['botMessagePreviewAction'] === 'edit'))
|
|
211
|
+
}
|
|
212
|
+
const routeHandler: RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
213
|
+
const activity = context.activity.value as Activity
|
|
214
|
+
const response: MessagingExtensionActionResponse = await handler(context, state, activity)
|
|
215
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
216
|
+
invokeResponse.value = {
|
|
217
|
+
status: 200,
|
|
218
|
+
body: response
|
|
219
|
+
}
|
|
220
|
+
await context.sendActivity(invokeResponse)
|
|
221
|
+
}
|
|
222
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
223
|
+
return this
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Handles message preview send actions from messaging extensions.
|
|
228
|
+
* @param handler - The handler to call when a message preview send action is received
|
|
229
|
+
* @returns this (for method chaining)
|
|
230
|
+
*/
|
|
231
|
+
onMessagePreviewSend (handler: MessagePreviewSendHandler<TurnState>) {
|
|
232
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
233
|
+
return Promise.resolve(!!(
|
|
234
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
235
|
+
context.activity.channelId === 'msteams' &&
|
|
236
|
+
context.activity.name === 'composeExtension/submitAction' &&
|
|
237
|
+
context.activity.value &&
|
|
238
|
+
// @ts-ignore
|
|
239
|
+
context.activity.value['botMessagePreviewAction'] === 'send'))
|
|
240
|
+
}
|
|
241
|
+
const routeHandler: RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
242
|
+
const msgExtensionAction: MessagingExtensionAction = context.activity.value as MessagingExtensionAction
|
|
243
|
+
const activityPreview : Activity = msgExtensionAction.activityPreview?.length! > 0 ? Activity.fromObject(msgExtensionAction.activityPreview![0]) : new Activity(ActivityTypes.Message)
|
|
244
|
+
await handler(context, state, activityPreview)
|
|
245
|
+
}
|
|
246
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
247
|
+
return this
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Handles configuration query setting URL requests from messaging extensions.
|
|
252
|
+
* @param handler - The handler to call when a config query setting URL is requested
|
|
253
|
+
* @returns this (for method chaining)
|
|
254
|
+
*/
|
|
255
|
+
onConfigurationQuerySettingUrl (handler: ConfigureSettingsHandler<TurnState>) {
|
|
256
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
257
|
+
return Promise.resolve(
|
|
258
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
259
|
+
context.activity.channelId === 'msteams' &&
|
|
260
|
+
context.activity.name === 'composeExtension/querySettingUrl'
|
|
261
|
+
)
|
|
262
|
+
}
|
|
263
|
+
const routeHandler: RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
264
|
+
await handler(context, state, context.activity.value)
|
|
265
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
266
|
+
invokeResponse.value = {
|
|
267
|
+
status: 200
|
|
268
|
+
}
|
|
269
|
+
await context.sendActivity(invokeResponse)
|
|
270
|
+
}
|
|
271
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
272
|
+
return this
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/**
|
|
276
|
+
* Handles configuration setting updates from messaging extensions.
|
|
277
|
+
* @param handler - The handler to call when configuration settings are updated
|
|
278
|
+
* @returns this (for method chaining)
|
|
279
|
+
*/
|
|
280
|
+
onConfigurationSetting (handler: ConfigureSettingsHandler<TurnState>) {
|
|
281
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
282
|
+
return Promise.resolve(
|
|
283
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
284
|
+
context.activity.channelId === 'msteams' &&
|
|
285
|
+
context.activity.name === 'composeExtension/setting'
|
|
286
|
+
)
|
|
287
|
+
}
|
|
288
|
+
const routeHandler: RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
289
|
+
await handler(context, state, context.activity.value)
|
|
290
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
291
|
+
invokeResponse.value = {
|
|
292
|
+
status: 200
|
|
293
|
+
}
|
|
294
|
+
await context.sendActivity(invokeResponse)
|
|
295
|
+
}
|
|
296
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
297
|
+
return this
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/**
|
|
301
|
+
* Handles card button click events from messaging extensions.
|
|
302
|
+
* @param handler - The handler to call when a card button is clicked
|
|
303
|
+
* @returns this (for method chaining)
|
|
304
|
+
*/
|
|
305
|
+
onCardButtonClicked (handler: CardButtonClickedHandler<TurnState>) {
|
|
306
|
+
const routeSel: RouteSelector = (context: TurnContext) => {
|
|
307
|
+
return Promise.resolve(
|
|
308
|
+
context.activity.type === ActivityTypes.Invoke &&
|
|
309
|
+
context.activity.channelId === 'msteams' &&
|
|
310
|
+
context.activity.name === 'composeExtension/onCardButtonClicked'
|
|
311
|
+
)
|
|
312
|
+
}
|
|
313
|
+
const routeHandler: RouteHandler<TurnState> = async (context: TurnContext, state: TurnState) => {
|
|
314
|
+
await handler(context, state, context.activity.value)
|
|
315
|
+
const invokeResponse = new Activity(ActivityTypes.InvokeResponse)
|
|
316
|
+
invokeResponse.value = {
|
|
317
|
+
status: 200
|
|
318
|
+
}
|
|
319
|
+
await context.sendActivity(invokeResponse)
|
|
320
|
+
}
|
|
321
|
+
this._app.addRoute(routeSel, routeHandler, true)
|
|
322
|
+
return this
|
|
323
|
+
}
|
|
324
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { Activity } from '@microsoft/agents-activity'
|
|
7
|
+
import { MessageActionsPayload } from '../message-actions-payload/messageActionsPayload'
|
|
8
|
+
import { TaskModuleRequest } from '../taskModule'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Contexts for messaging extension commands.
|
|
12
|
+
*/
|
|
13
|
+
export type CommandContext = 'message' | 'compose' | 'commandbox'
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Types of actions for message previews.
|
|
17
|
+
*/
|
|
18
|
+
export type MessagePreviewActionType = 'edit' | 'send'
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Represents an action for a messaging extension.
|
|
22
|
+
*/
|
|
23
|
+
export interface MessagingExtensionAction extends TaskModuleRequest {
|
|
24
|
+
/**
|
|
25
|
+
* The ID of the command.
|
|
26
|
+
*/
|
|
27
|
+
commandId?: string
|
|
28
|
+
/**
|
|
29
|
+
* The context of the command.
|
|
30
|
+
*/
|
|
31
|
+
commandContext?: CommandContext
|
|
32
|
+
/**
|
|
33
|
+
* The type of action for the agent message preview.
|
|
34
|
+
*/
|
|
35
|
+
messagePreviewAction?: MessagePreviewActionType
|
|
36
|
+
/**
|
|
37
|
+
* A list of activities for the agent activity preview.
|
|
38
|
+
*/
|
|
39
|
+
activityPreview?: Activity[]
|
|
40
|
+
/**
|
|
41
|
+
* The payload of the message actions.
|
|
42
|
+
*/
|
|
43
|
+
messagePayload?: MessageActionsPayload
|
|
44
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { TaskModuleContinueResponse, TaskModuleMessageResponse } from '../taskModule'
|
|
7
|
+
import { MessagingExtensionResult } from './messagingExtensionResult'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents the response of a messaging extension action.
|
|
11
|
+
*/
|
|
12
|
+
export interface MessagingExtensionActionResponse {
|
|
13
|
+
/**
|
|
14
|
+
* The task module response.
|
|
15
|
+
*/
|
|
16
|
+
task?: TaskModuleContinueResponse | TaskModuleMessageResponse
|
|
17
|
+
/**
|
|
18
|
+
* The result of the compose extension.
|
|
19
|
+
*/
|
|
20
|
+
composeExtension?: MessagingExtensionResult
|
|
21
|
+
/**
|
|
22
|
+
* Cache information for the response.
|
|
23
|
+
*/
|
|
24
|
+
cacheInfo?: unknown // CacheInfo TODO: Define the type for CacheInfo
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { Attachment } from '@microsoft/agents-activity'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents an attachment for a messaging extension.
|
|
10
|
+
*/
|
|
11
|
+
export interface MessagingExtensionAttachment extends Attachment {
|
|
12
|
+
/**
|
|
13
|
+
* A preview of the attachment.
|
|
14
|
+
*/
|
|
15
|
+
preview?: Attachment
|
|
16
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents a parameter for a messaging extension query.
|
|
10
|
+
*/
|
|
11
|
+
export interface MessagingExtensionParameter {
|
|
12
|
+
/**
|
|
13
|
+
* The name of the parameter.
|
|
14
|
+
*/
|
|
15
|
+
name?: string
|
|
16
|
+
/**
|
|
17
|
+
* The value of the parameter.
|
|
18
|
+
*/
|
|
19
|
+
value?: any
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Zod schema for validating MessagingExtensionParameter.
|
|
24
|
+
*/
|
|
25
|
+
export const messagingExtensionParameterZodSchema = z.object({
|
|
26
|
+
name: z.string().min(1).optional(),
|
|
27
|
+
value: z.any().optional()
|
|
28
|
+
})
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod'
|
|
7
|
+
import { MessagingExtensionParameter, messagingExtensionParameterZodSchema } from './messagingExtensionParameter'
|
|
8
|
+
import { MessagingExtensionQueryOptions, messagingExtensionQueryOptionsZodSchema } from './messagingExtensionQueryOptions'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Represents a query for a messaging extension.
|
|
12
|
+
*/
|
|
13
|
+
export interface MessagingExtensionQuery {
|
|
14
|
+
/**
|
|
15
|
+
* The ID of the command.
|
|
16
|
+
*/
|
|
17
|
+
commandId?: string
|
|
18
|
+
/**
|
|
19
|
+
* A list of parameters for the query.
|
|
20
|
+
*/
|
|
21
|
+
parameters?: MessagingExtensionParameter[]
|
|
22
|
+
/**
|
|
23
|
+
* Options for the query.
|
|
24
|
+
*/
|
|
25
|
+
queryOptions?: MessagingExtensionQueryOptions
|
|
26
|
+
/**
|
|
27
|
+
* The state of the query.
|
|
28
|
+
*/
|
|
29
|
+
state?: string
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Zod schema for validating MessagingExtensionQuery.
|
|
34
|
+
*/
|
|
35
|
+
export const messagingExtensionQueryZodSchema = z.object({
|
|
36
|
+
commandId: z.string().min(1).optional(),
|
|
37
|
+
parameters: z.array(messagingExtensionParameterZodSchema).optional(),
|
|
38
|
+
queryOptions: messagingExtensionQueryOptionsZodSchema.optional(),
|
|
39
|
+
state: z.string().min(1).optional()
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Parses the given value as a messaging extension query.
|
|
44
|
+
*
|
|
45
|
+
* @param {unknown} value - The value to parse.
|
|
46
|
+
* @returns {MessagingExtensionQuery} - The parsed messaging extension query.
|
|
47
|
+
*/
|
|
48
|
+
export function parseValueMessagingExtensionQuery (value: unknown): MessagingExtensionQuery {
|
|
49
|
+
messagingExtensionQueryZodSchema.passthrough().parse(value)
|
|
50
|
+
return value as MessagingExtensionQuery
|
|
51
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents query options for a messaging extension.
|
|
10
|
+
*/
|
|
11
|
+
export interface MessagingExtensionQueryOptions {
|
|
12
|
+
/**
|
|
13
|
+
* The number of items to skip.
|
|
14
|
+
*/
|
|
15
|
+
skip?: number
|
|
16
|
+
/**
|
|
17
|
+
* The number of items to retrieve.
|
|
18
|
+
*/
|
|
19
|
+
count?: number
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Zod schema for validating MessagingExtensionQueryOptions.
|
|
24
|
+
*/
|
|
25
|
+
export const messagingExtensionQueryOptionsZodSchema = z.object({
|
|
26
|
+
skip: z.number().optional(),
|
|
27
|
+
count: z.number().optional()
|
|
28
|
+
})
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// import { CacheInfo } from '../agent-config/cacheInfo'
|
|
7
|
+
import { MessagingExtensionResult } from './messagingExtensionResult'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Represents the response of a messaging extension.
|
|
11
|
+
*/
|
|
12
|
+
export interface MessagingExtensionResponse {
|
|
13
|
+
/**
|
|
14
|
+
* The result of the compose extension.
|
|
15
|
+
*/
|
|
16
|
+
composeExtension?: MessagingExtensionResult
|
|
17
|
+
/**
|
|
18
|
+
* Cache information for the response.
|
|
19
|
+
*/
|
|
20
|
+
cacheInfo?: unknown // TODO: CacheInfo
|
|
21
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { Activity } from '@microsoft/agents-activity'
|
|
7
|
+
import { MessagingExtensionAttachment } from './messagingExtensionAttachment'
|
|
8
|
+
import { MessagingExtensionSuggestedAction } from './messagingExtensionSuggestedAction'
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Layout options for attachments.
|
|
12
|
+
*/
|
|
13
|
+
export type AttachmentLayout = 'list' | 'grid'
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Types of messaging extension results.
|
|
17
|
+
* - `result`: Represents a standard result.
|
|
18
|
+
* - `auth`: Represents an authentication request.
|
|
19
|
+
* - `config`: Represents a configuration request.
|
|
20
|
+
* - `message`: Represents a message result.
|
|
21
|
+
* - `botMessagePreview`: Represents a bot message preview.
|
|
22
|
+
* - `silentAuth`: Represents a silent authentication request.
|
|
23
|
+
*/
|
|
24
|
+
export type MessagingExtensionResultType =
|
|
25
|
+
| 'result'
|
|
26
|
+
| 'auth'
|
|
27
|
+
| 'config'
|
|
28
|
+
| 'message'
|
|
29
|
+
| 'botMessagePreview'
|
|
30
|
+
| 'silentAuth'
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Represents the result of a messaging extension.
|
|
34
|
+
*/
|
|
35
|
+
export interface MessagingExtensionResult {
|
|
36
|
+
/**
|
|
37
|
+
* The layout of the attachments.
|
|
38
|
+
*/
|
|
39
|
+
attachmentLayout?: AttachmentLayout
|
|
40
|
+
/**
|
|
41
|
+
* The type of the result.
|
|
42
|
+
*/
|
|
43
|
+
type?: MessagingExtensionResultType
|
|
44
|
+
/**
|
|
45
|
+
* A list of attachments.
|
|
46
|
+
*/
|
|
47
|
+
attachments?: MessagingExtensionAttachment[]
|
|
48
|
+
/**
|
|
49
|
+
* Suggested actions for the result.
|
|
50
|
+
*/
|
|
51
|
+
suggestedActions?: MessagingExtensionSuggestedAction
|
|
52
|
+
/**
|
|
53
|
+
* Text content of the result.
|
|
54
|
+
*/
|
|
55
|
+
text?: string
|
|
56
|
+
/**
|
|
57
|
+
* Preview of the activity.
|
|
58
|
+
*/
|
|
59
|
+
activityPreview?: Activity
|
|
60
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright(c) Microsoft Corporation.All rights reserved.
|
|
3
|
+
* Licensed under the MIT License.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { CardAction } from '@microsoft/agents-activity'
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Represents suggested actions for a messaging extension.
|
|
10
|
+
*/
|
|
11
|
+
export interface MessagingExtensionSuggestedAction {
|
|
12
|
+
/**
|
|
13
|
+
* A list of card actions.
|
|
14
|
+
*/
|
|
15
|
+
actions?: CardAction[]
|
|
16
|
+
}
|