npm.io
0.12.2 • Published 2d ago

@cuylabs/channel-teams

Licence
Apache-2.0
Version
0.12.2
Deps
0
Size
46 kB
Vulns
0
Weekly
0

@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-teams

Most 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-teams

Parse 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";

Keywords