Files
openchamber/packages/ui/src/components/chat/message/messageRole.ts
T
Bohdan Triapitsyn f2507d58cf feat: migrate to OpenCode SDK v2
Update all import statements to use @opencode-ai/sdk/v2
Modify Vite configurations to alias new SDK path
Update API client method signatures for SDK v2 compatibility
2026-01-03 13:39:59 +02:00

35 lines
927 B
TypeScript

import type { Message } from '@opencode-ai/sdk/v2';
export interface MessageRoleInfo {
role: string;
isUser: boolean;
}
export const deriveMessageRole = (
messageInfo: Message | (Message & { clientRole?: string; userMessageMarker?: boolean })
): MessageRoleInfo => {
const info = messageInfo as Message & { clientRole?: string; userMessageMarker?: boolean; origin?: string; source?: string };
const clientRole = info?.clientRole;
const serverRole = info?.role;
const userMarker = info?.userMessageMarker === true;
const isUser =
userMarker ||
clientRole === 'user' ||
serverRole === 'user' ||
info?.origin === 'user' ||
info?.source === 'user';
if (isUser) {
return {
role: 'user',
isUser: true,
};
}
return {
role: clientRole || serverRole || 'assistant',
isUser: false,
};
};