diff --git a/extensions/zalouser/src/channel.test.ts b/extensions/zalouser/src/channel.test.ts index 6fa838a9690..47097e3d99b 100644 --- a/extensions/zalouser/src/channel.test.ts +++ b/extensions/zalouser/src/channel.test.ts @@ -110,6 +110,17 @@ describe("zalouser outbound", () => { }); }); +describe("zalouser outbound chunking", () => { + it("chunks outbound text without requiring Zalouser runtime initialization", () => { + const chunker = zalouserPlugin.outbound?.chunker; + if (!chunker) { + throw new Error("zalouser outbound.chunker unavailable"); + } + + expect(chunker("alpha beta", 5)).toEqual(["alpha", "beta"]); + }); +}); + describe("zalouser channel policies", () => { beforeEach(() => { mockSendReaction.mockClear(); diff --git a/extensions/zalouser/src/channel.ts b/extensions/zalouser/src/channel.ts index f4ce1ac0474..efe5367dc80 100644 --- a/extensions/zalouser/src/channel.ts +++ b/extensions/zalouser/src/channel.ts @@ -23,6 +23,7 @@ import type { } from "../runtime-api.js"; import { DEFAULT_ACCOUNT_ID, + chunkTextForOutbound, isDangerousNameMatchingEnabled, isNumericTargetId, normalizeAccountId, @@ -509,7 +510,7 @@ export const zalouserPlugin: ChannelPlugin getZalouserRuntime().channel.text.chunkMarkdownText(text, limit), + chunker: chunkTextForOutbound, chunkerMode: "markdown", sendPayload: async (ctx) => await sendPayloadWithChunkedTextAndMedia({