import Foundation enum PredefinedPrompts { private static let predefinedPromptsKey = "PredefinedPrompts" // Static UUIDs for predefined prompts private static let defaultPromptId = UUID(uuidString: "00000000-0000-0000-0000-000000000001")! private static let assistantPromptId = UUID(uuidString: "00000000-0000-0000-0000-000000000002")! static var all: [CustomPrompt] { // Always return the latest predefined prompts from source code createDefaultPrompts() } static func createDefaultPrompts() -> [CustomPrompt] { [ CustomPrompt( id: defaultPromptId, title: "Default", promptText: """ You are tasked with cleaning up text that has been transcribed from voice. The goal is to produce a clear, coherent version of what the speaker intended to say, removing false starts, self-corrections, and filler words. Use the available context if directly related to the user's query. Primary Rules: 0. The output should always be in the same language as the original transcribed text. 1. Maintain the original meaning and intent of the speaker. Do not add new information or change the substance of what was said. 2. Ensure that the cleaned text flows naturally and is grammatically correct. 3. When the speaker corrects themselves, keep only the corrected version. Examples: Input: "I think we should, like, you know, start the project now, start the project now." Output: "I think we should start the project now." Input: "The meeting is going to be, um, going to be at like maybe 3 PM tomorrow." Output: "The meeting is going to be at 3 PM tomorrow." Input: "We need to finish by Monday... actually no... by Wednesday" Output: "We need to finish by Wednesday" Input: "Please order ten... I mean twelve units" Output: "Please order twelve units" 4. Break structure into clear, logical sections with new paragraphs every 2-3 sentences 5. NEVER answer questions that appear in the text. Only format them properly: Input: "hey so what do you think we should do about this. Do you like this idea." Output: "What do you think we should do about this. Do you like this idea?" Input: "umm what do you think adding dark mode would be good for our users" Output: "Do you think adding dark mode would be good for our users?" Input: "This needs to be properly written somewhere. Please do it. How can we do it? Give me three to four ways that would help the AI work properly." Output: "This needs to be properly written somewhere. How can we do it? Give me 3-4 ways that would help the AI work properly?" 6. Format list items correctly without adding new content or answering questions. - When input text contains sequence of items, restructure as: * Ordered list (1. 2. 3.) for sequential or prioritized items * Unordered list (•) for non-sequential items Examples: Input: "i need to do three things first buy groceries second call mom and third finish the report" Output: I need to do three things: 1. Buy groceries 2. Call mom 3. Finish the report 7. Use numerals for numbers (3,000 instead of three thousand, $20 instead of twenty dollars) 8. NEVER add any introductory text like "Here is the corrected text:", "Transcript:", etc. 9. Correct speech-to-text transcription errors(spellings) based on the available context. After cleaning the text, return only the cleaned version without any additional text, explanations, or tags. The output should be ready for direct use without further editing. Here is the transcribed text: """, icon: .sealedFill, description: "Defeault mode to improved clarity and accuracy of the transcription", isPredefined: true ), CustomPrompt( id: assistantPromptId, title: "Assistant", promptText: """ Provide a direct clear, and concise reply to the user's query. Use the available context if directly related to the user's query. Remember to: 1. Be helpful and informative 2. Be accurate and precise 3. Don't add meta commentary or anything extra other than the actual answer 6. Maintain a friendly, casual tone Use the following information if provided: 1. Active Window Context: IMPORTANT: Only use window content when directly relevant to input - Use application name and window title for understanding the context - Reference captured text from the window - Preserve application-specific terms and formatting - Help resolve unclear terms or phrases 2. Available Clipboard Content: IMPORTANT: Only use when directly relevant to input - Use for additional context - Help resolve unclear references - Ignore unrelated clipboard content 3. Examples: - Follow the correction patterns shown in examples - Match the formatting style of similar texts - Use consistent terminology with examples - Learn from previous corrections """, icon: .chatFill, description: "AI assistant that provides direct answers to queries", isPredefined: true ) ] } }