| 112 | } |
| 113 | |
| 114 | function validatePayload(payload: ConversationSharePayload): Conversation { |
| 115 | if (payload.v !== 1 || !payload.conversation) { |
| 116 | throw new Error("Invalid share payload version."); |
| 117 | } |
| 118 | const conversation = payload.conversation; |
| 119 | if ( |
| 120 | typeof conversation.id !== "string" || |
| 121 | (conversation.client !== "cursor" && conversation.client !== "claude-code") || |
| 122 | typeof conversation.project !== "string" || |
| 123 | !Array.isArray(conversation.messages) || |
| 124 | typeof conversation.startedAt !== "string" || |
| 125 | typeof conversation.updatedAt !== "string" |
| 126 | ) { |
| 127 | throw new Error("Invalid conversation payload."); |
| 128 | } |
| 129 | return conversation; |
| 130 | } |