msteams: add typingIndicator config and prevent duplicate DM typing indicator (#60771)

* msteams: add typingIndicator config and avoid duplicate DM typing

* fix(msteams): validate typingIndicator config

* fix(msteams): stop streaming before Teams timeout

* fix(msteams): classify expired streams correctly

* fix(msteams): handle link text from html attachments

---------

Co-authored-by: Brad Groux <bradgroux@users.noreply.github.com>
This commit is contained in:
Brad Groux
2026-04-04 04:34:24 -05:00
committed by GitHub
parent af4e9d19cf
commit fce81fccd8
9 changed files with 193 additions and 7 deletions

View File

@@ -90,6 +90,8 @@ export type MSTeamsConfig = {
textChunkLimit?: number;
/** Chunking mode: "length" (default) splits by size; "newline" splits on every newline. */
chunkMode?: "length" | "newline";
/** Send native Teams typing indicator before replies. Default: true for groups/channels; DMs use informative stream status. */
typingIndicator?: boolean;
/** Enable progressive block-by-block message delivery instead of a single reply. */
blockStreaming?: boolean;
/** Merge streamed block replies before sending. */

View File

@@ -1534,6 +1534,7 @@ export const MSTeamsConfigSchema = z
contextVisibility: ContextVisibilityModeSchema.optional(),
textChunkLimit: z.number().int().positive().optional(),
chunkMode: z.enum(["length", "newline"]).optional(),
typingIndicator: z.boolean().optional(),
blockStreaming: z.boolean().optional(),
blockStreamingCoalesce: BlockStreamingCoalesceSchema.optional(),
mediaAllowHosts: z.array(z.string()).optional(),