diff --git a/packages/ai/src/dialect/minimax.ts b/packages/ai/src/dialect/minimax.ts index c813d65bd..2d5dd51cd 100644 --- a/packages/ai/src/dialect/minimax.ts +++ b/packages/ai/src/dialect/minimax.ts @@ -19,6 +19,8 @@ const MINIMAX_WRAPPER_TAGS: Readonly> = { tool_call: true } const MINIMAX_BASE_TAG_PREFIXES = [ " { expect(calls[0]?.arguments).not.toHaveProperty('parameter name="count"'); }); + it("buffers unprefixed MiniMax wrappers across streaming tag splits", () => { + const raw = + '\n\nsrc/a.ts\n2\n\n'; + const events = feedText("minimax", raw); + const calls = toolEnds(events); + const visibleText = events + .filter((event): event is Extract => event.type === "text") + .map(event => event.text) + .join(""); + + expect(calls).toHaveLength(1); + expect(calls[0]?.name).toBe("read"); + expect(calls[0]?.arguments).toEqual({ path: "src/a.ts", count: 2 }); + expect(visibleText).toBe(""); + }); + it("stops before hallucinated Anthropic function results", () => { const parsed = parseInbandToolMessage( assistant([