| 1234567891011121314151617181920212223242526272829 |
- /**
- * 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',
- };
- }
|