import Foundation struct TemplatePrompt: Identifiable { let id: UUID let title: String let promptText: String let icon: PromptIcon let description: String func toCustomPrompt() -> CustomPrompt { CustomPrompt( id: UUID(), // Generate new UUID for custom prompt title: title, promptText: promptText, icon: icon, description: description, isPredefined: false ) } } enum PromptTemplates { static var all: [TemplatePrompt] { createTemplatePrompts() } static func createTemplatePrompts() -> [TemplatePrompt] { [ TemplatePrompt( id: UUID(), title: "System Default", promptText: """ - Clean up the text for clarity and natural flow while preserving meaning and the original tone. - Use informal, plain language unless the clearly uses a professional tone; in that case, match it. - Fix obvious grammar, remove fillers and stutters, collapse repetitions, and keep names and numbers. - Automatically detect and format lists properly: if the mentions a number (e.g., "3 things", "5 items"), uses ordinal words (first, second, third), implies sequence or steps, or has a count before it, format as an ordered list; otherwise, format as an unordered list. - Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20'). - Keep the original intent and nuance. - Organize into short paragraphs of 2–4 sentences for readability. - Do not add explanations, labels, metadata, or instructions. - Output only the cleaned text. - Don't add any information not available in the text ever. """, icon: "checkmark.seal.fill", description: "Default system prompt" ), TemplatePrompt( id: UUID(), title: "Chat", promptText: """ - Rewrite the text as a chat message: informal, concise, and conversational. - Keep emotive markers and emojis if present; don't invent new ones. - Lightly fix grammar, remove fillers and repeated words, and improve flow without changing meaning. - Keep the original tone; only be professional if the already is. - Automatically detect and format lists properly: if the mentions a number (e.g., "3 things", "5 items"), uses ordinal words (first, second, third), implies sequence or steps, or has a count before it, format as an ordered list; otherwise, format as an unordered list. - Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20'). - Format like a modern chat message - short lines, natural breaks, emoji-friendly. - Do not add greetings, sign-offs, or commentary. - Output only the chat message. - Don't add any information not available in the text ever. """, icon: "bubble.left.and.bubble.right.fill", description: "Casual chat-style formatting" ), TemplatePrompt( id: UUID(), title: "Email", promptText: """ - Rewrite the text as a complete email with proper formatting: include a greeting (Hi), body paragraphs (2-4 sentences each), and closing (Thanks). - Use clear, friendly, non-formal language unless the is clearly professional—in that case, match that tone. - Improve flow and coherence; fix grammar and spelling; remove fillers; keep all facts, names, dates, and action items. - Automatically detect and format lists properly: if the mentions a number (e.g., "3 things", "5 items"), uses ordinal words (first, second, third), implies sequence or steps, or has a count before it, format as an ordered list; otherwise, format as an unordered list. - Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20'). - Do not invent new content, but structure it as a proper email format. - Don't add any information not available in the text ever. """, icon: "envelope.fill", description: "Professional email formatting" ), TemplatePrompt( id: UUID(), title: "Rewrite", promptText: """ - Rewrite the text with enhanced clarity, improved sentence structure, and rhythmic flow while preserving the original meaning and tone. - Restructure sentences for better readability and natural progression. - Improve word choice and phrasing where appropriate, but maintain the original voice and intent. - Fix grammar and spelling errors, remove fillers and stutters, and collapse repetitions. - Format any lists as proper bullet points or numbered lists. - Write numbers as numerals (e.g., 'five' → '5', 'twenty dollars' → '$20'). - Organize content into well-structured paragraphs of 2–4 sentences for optimal readability. - Preserve all names, numbers, dates, facts, and key information exactly as they appear. - Do not add explanations, labels, metadata, or instructions. - Output only the rewritten text. - Don't add any information not available in the text ever. """, icon: "pencil.circle.fill", description: "Rewrites with better clarity." ) ] } }