Files
memind/goose-message.mjs
T

25 lines
852 B
JavaScript
Raw Normal View History

import crypto from 'node:crypto';
/**
* Goosed requires user_message.metadata.userVisible/agentVisible and created on /reply.
*/
export function ensureGooseUserMessageMetadata(userMessage) {
if (!userMessage || typeof userMessage !== 'object' || Array.isArray(userMessage)) {
return userMessage;
}
const metadata =
userMessage.metadata && typeof userMessage.metadata === 'object' && !Array.isArray(userMessage.metadata)
? { ...userMessage.metadata }
: {};
if (metadata.userVisible == null) metadata.userVisible = true;
if (metadata.agentVisible == null) metadata.agentVisible = true;
const created = Number(userMessage.created ?? 0) || Math.floor(Date.now() / 1000);
return {
...userMessage,
id: userMessage.id ?? crypto.randomUUID(),
role: userMessage.role ?? 'user',
created,
metadata,
};
}