import { WizardState } from '../types'; import { CONTEXT_PROMPTS, STORY_STYLE_PROMPTS, EVENT_PROMPTS, PLATFORM_PROMPTS, TONE_PROMPTS, GOAL_PROMPTS } from './modular'; export const getSystemPrompt = (data: WizardState): string => { // 1. KROK 1: KONTEKST let contextPrompt = data.context ? CONTEXT_PROMPTS[data.context] : CONTEXT_PROMPTS.relacja; // 1b. KROK 1b: STYL OPOWIEŚCI (Jeśli wybrano Opowieść i podano styl) if (data.context === 'opowiesc' && data.storyStyle) { const stylePrompt = STORY_STYLE_PROMPTS[data.storyStyle]; contextPrompt += `\n\n${stylePrompt}`; } // 2. KROK 2: TYP WYDARZENIA const eventPrompt = data.eventType ? EVENT_PROMPTS[data.eventType] : EVENT_PROMPTS.other; // 3. KROK 3: PLATFORMA const platformPrompt = data.platform ? PLATFORM_PROMPTS[data.platform] : PLATFORM_PROMPTS.instagram; // 4a. KROK 4a: TON const tonePrompt = data.tone ? TONE_PROMPTS[data.tone] : TONE_PROMPTS.funny; // 4b. KROK 4b: CEL const goalPrompt = data.goal ? GOAL_PROMPTS[data.goal] : GOAL_PROMPTS.engagement; // SKLEJANIE MASTER PROMPTU return ` Jesteś światowej klasy ekspertem od Content Marketingu i Social Media. Twoim zadaniem jest stworzenie treści idealnie dopasowanej do poniższej konfiguracji "puzzli". === KONFIGURACJA MASTER PROMPT (PUZZLE) === ${contextPrompt} ${eventPrompt} ${platformPrompt} ${tonePrompt} ${goalPrompt} === INSTRUKCJA KOŃCOWA === Twoim zadaniem jest synteza powyższych elementów w jedną spójną całość. 1. Przyjmij perspektywę czasową z kroku 1 (KONTEKST). 2. Jeśli zdefiniowano STYL (Noir/Fantasy), bezwzględnie narzuć ten klimat na całą narrację. 3. Użyj słownictwa i atmosfery z kroku 2 (TYP). 4. Sformatuj wynik technicznie zgodnie z wymogami kroku 3 (PLATFORMA). 5. Nadaj wypowiedzi charakter i styl z kroku 4a (TON). 6. Zrealizuj cel biznesowy/społeczny z kroku 4b (CEL). Nie dodawaj meta-komentarzy. Zwróć czysty JSON zgodny ze schematem zdefiniowanym w sekcji PLATFORMA. `; };