@cuylabs/channel-teams
v0.5.1
Published
Microsoft Teams channel primitives for AI agents
Maintainers
Readme
@cuylabs/channel-teams
Teams channel primitives for parsing Microsoft Teams activities, detecting Teams invoke routes, building invoke responses, and using a curated subset of Microsoft Teams SDK helpers.
This package does not create or run an agent. Use it when your application owns the runtime but wants reusable Teams mechanics.
Install
npm install @cuylabs/channel-teamsMost hosts that use the invoke helpers also install the Microsoft activity and hosting packages:
npm install @microsoft/agents-activity @microsoft/agents-hosting @microsoft/agents-hosting-extensions-teamsParse A Teams Activity
import { parseTeamsActivity } from "@cuylabs/channel-teams";
const teams = parseTeamsActivity(turnContext, {
strictChannelData: false,
});
if (teams.kind === "message-extension-query") {
// Route the compose extension query in your own host.
}parseTeamsActivity returns normalized Teams metadata:
{
"channelId": "msteams",
"conversationId": "conversation-1",
"invokeName": "composeExtension/query",
"tenantId": "tenant-1",
"teamId": "team-1",
"channelThreadId": "channel-1",
"surface": "channel",
"kind": "message-extension-query",
"targeted": false
}Build Invoke Responses
import {
createTeamsSearchResult,
sendTeamsInvoke,
} from "@cuylabs/channel-teams";
await sendTeamsInvoke(
turnContext,
createTeamsSearchResult({
layout: "list",
text: "No matching records",
}),
);Subpaths
import { parseTeamsActivity } from "@cuylabs/channel-teams/activity";
import { TeamsInfo } from "@cuylabs/channel-teams/extensions";
import { sendTeamsInvoke } from "@cuylabs/channel-teams/invoke";
import { createTeamsDialog } from "@cuylabs/channel-teams/responses";