| 3 | // ============================================================================ |
| 4 | |
| 5 | export interface MessageAttachment { |
| 6 | type: 'image' | 'audio' | 'video' | 'file' |
| 7 | name: string |
| 8 | url: string |
| 9 | mimeType: string |
| 10 | /** |
| 11 | * Decoded byte count when known. Omitted for path / URL / scheme-prefixed |
| 12 | * values (e.g. `/api/media?path=...`) where the value is a reference, not |
| 13 | * the payload, so its string length would be meaningless. |
| 14 | */ |
| 15 | size?: number |
| 16 | file?: File |
| 17 | /** Backend piece ID — preserved so remix/copy can trace back to the original piece */ |
| 18 | pieceId?: string |
| 19 | /** Backend prompt_metadata — preserved so video_id etc. carry over on remix/copy */ |
| 20 | metadata?: Record<string, unknown> |
| 21 | } |
| 22 | |
| 23 | export interface Message { |
| 24 | role: 'user' | 'assistant' | 'simulated_assistant' | 'system' |
nothing calls this directly
no outgoing calls
no test coverage detected