Initial public release
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import type { Message } from '@opencode-ai/sdk';
|
||||
|
||||
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,
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user