MCPcopy
hub / github.com/vercel/chatbot / compareMessages

Function compareMessages

tests/prompts/utils.ts:5–41  ·  view source on GitHub ↗
(
  firstMessage: ModelMessage,
  secondMessage: ModelMessage,
)

Source from the content-addressed store, hash-verified

3import type { LanguageModelV2StreamPart } from '@ai-sdk/provider';
4
5export function compareMessages(
6 firstMessage: ModelMessage,
7 secondMessage: ModelMessage,
8): boolean {
9 if (firstMessage.role !== secondMessage.role) return false;
10
11 if (
12 !Array.isArray(firstMessage.content) ||
13 !Array.isArray(secondMessage.content)
14 ) {
15 return false;
16 }
17
18 if (firstMessage.content.length !== secondMessage.content.length) {
19 return false;
20 }
21
22 for (let i = 0; i < firstMessage.content.length; i++) {
23 const item1 = firstMessage.content[i];
24 const item2 = secondMessage.content[i];
25
26 if (item1.type !== item2.type) return false;
27
28 if (item1.type === 'file' && item2.type === 'file') {
29 // if (item1.image.toString() !== item2.image.toString()) return false;
30 // if (item1.mimeType !== item2.mimeType) return false;
31 } else if (item1.type === 'text' && item2.type === 'text') {
32 if (item1.text !== item2.text) return false;
33 } else if (item1.type === 'tool-result' && item2.type === 'tool-result') {
34 if (item1.toolCallId !== item2.toolCallId) return false;
35 } else {
36 return false;
37 }
38 }
39
40 return true;
41}
42
43const textToDeltas = (text: string): LanguageModelV2StreamPart[] => {
44 const id = generateId();

Callers 1

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…