* PilotDeck-flavored chat message helper.
*
* Replaces the legacy `providers/types.js` module. The shape on the wire
* is unchanged (frontend reads `kind`, `sessionId`, `provider`, `timestamp`,
* etc.) so we keep the public name `createNormalizedMessage`. Existing
* imports point at this file via `./pilotdeck-message.js`.
*
* Allowed `kind` values mirror what the chat UI's reducer recognises:
* text | tool_use | tool_result | thinking | stream_delta | stream_end
* error | complete | status | permission_request | permission_cancelled
* session_created | interactive_prompt | task_notification | interrupted
*/
import crypto from 'node:crypto';
export function generateMessageId(prefix = 'msg') {
return `${prefix}_${crypto.randomUUID()}`;
}
export function createNormalizedMessage(fields) {
return {
...fields,
id: fields.id || generateMessageId(fields.kind),
sessionId: fields.sessionId || '',
timestamp: fields.timestamp || new Date().toISOString(),
provider: fields.provider || 'pilotdeck',
};
}