978 lines
73 KiB
Dart
978 lines
73 KiB
Dart
import '../models/culture_branch.dart';
|
||
import '../models/syncretic_session_model.dart';
|
||
import '../models/history_entry_model.dart';
|
||
import 'words_repository.dart';
|
||
import '../models/houses_session_model.dart';
|
||
import '../models/word_model.dart';
|
||
import 'traditions_repository.dart';
|
||
import 'lenormand_pairs_repository.dart';
|
||
|
||
class OracleMasterPromptGenerator {
|
||
/// Generates the Grand Cross-System Comparison Master Prompt for Grok, Claude 3.5 Sonnet, GPT-4o, and Gemini 1.5 Pro.
|
||
static String generateCrossSystemComparison(SyncreticSession session) {
|
||
final buffer = StringBuffer();
|
||
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln('ВЕЛИКИЙ МЕТА-МАСТЕР-ПРОМПТ: СРАВНИТЕЛЬНЫЙ СИНХРОНИСТИЧЕСКИЙ АНАЛИЗ');
|
||
buffer.writeln('МУЛЬТИСИСТЕМНЫЙ СИНТЕЗ ТРАДИЦИЙ И САМОСОГЛАСОВАННОСТИ ЗНАКОВ');
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('### СИСТЕМНАЯ РОЛЬ:');
|
||
buffer.writeln('Ты — архимагистр синкретической герменевтики, мастер сравнительного мистицизма и глубинной юнгианской психологии.');
|
||
buffer.writeln('Перед тобой единый протокол СИНХРОНИСТИЧЕСКОЙ СЕССИИ ДНЯ. Вопрошающий исследовал один вопрос через несколько независимых мантических систем древности и современности.');
|
||
buffer.writeln('Твоя миссия — провести мета-анализ: сопоставить язык каждой системы, выявить скрытые узлы схождения, обнаружить противоречия и выдать монолитный синтез высшего порядка.');
|
||
buffer.writeln();
|
||
|
||
// 1. Querent Question & Context
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('1. ФОКУС ВОПРОШАНИЯ (КВЕРЕНТ И КОНТЕКСТ ДНЯ):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('• Дата сессии: ' + session.formattedDate);
|
||
if (session.mainQuestion != null && session.mainQuestion!.trim().isNotEmpty) {
|
||
buffer.writeln('• Ключевой вопрос/тема: «' + session.mainQuestion!.trim() + '»');
|
||
} else {
|
||
buffer.writeln('• Ключевой вопрос/тема: Общий срез судьбы, скрытые подводные течения и фазовый переход кверента.');
|
||
}
|
||
buffer.writeln('• Число независимых гаданий в сессии: ' + session.readings.length.toString());
|
||
buffer.writeln();
|
||
|
||
// 2. Protocols of all readings
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('2. ПРОТОКОЛЫ ПОЛУЧЕННЫХ РАСКЛАДОВ ПО СИСТЕМАМ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
|
||
final allMentionedWords = <WordItem>[];
|
||
|
||
for (int i = 0; i < session.readings.length; i++) {
|
||
final r = session.readings[i];
|
||
buffer.writeln('ВХОДНОЙ РАСКЛАД #' + (i + 1).toString() + ': ' + r.systemIcon + ' ' + r.systemName.toUpperCase());
|
||
buffer.writeln(' Время проведения: ' + r.formattedTime + ' | Метод ввода: ' + (r.inputMethod == 'dice' ? 'Жребий костей' : 'Прямой ввод со стола'));
|
||
buffer.writeln(' Формат расклада: ' + r.layoutTitle);
|
||
if (r.question != null && r.question!.trim().isNotEmpty && r.question != session.mainQuestion) {
|
||
buffer.writeln(' Уточняющий аспект: «' + r.question!.trim() + '»');
|
||
}
|
||
|
||
if (r.systemId == 'geomancy') {
|
||
final isShield = r.items.any((it) => it.title.toUpperCase().contains('СУДЬЯ') || it.title.toLowerCase().contains('мать'));
|
||
if (isShield) {
|
||
buffer.writeln(' 📐 СВЯЩЕННАЯ АРХИТЕКТУРА ВЕЛИКОГО ГЕОМАНТИЧЕСКОГО ЩИТА (16 САКРАЛЬНЫХ ФИГУР):');
|
||
buffer.writeln(' (Тетраграммная пирамида: Матери ➔ Дочери ➔ Племянники ➔ Свидетели ➔ Судья ➔ Примиритель)');
|
||
buffer.writeln();
|
||
|
||
void writeShieldItem(String roleHeader, ReadingSignItem it) {
|
||
buffer.writeln(' ' + roleHeader);
|
||
buffer.writeln(' • ' + (it.symbol != null ? it.symbol! + ' ' : '') + '«' + it.title.toUpperCase() + '»');
|
||
if (it.subtitle != null && it.subtitle!.isNotEmpty) {
|
||
buffer.writeln(' Атрибут: ' + it.subtitle!);
|
||
}
|
||
if (it.lore != null && it.lore!.isNotEmpty) {
|
||
buffer.writeln(' Канонический закон/значение: ' + it.lore!);
|
||
}
|
||
if (it.linkedWord != null) {
|
||
allMentionedWords.add(it.linkedWord!);
|
||
buffer.writeln(' 🔗 Связанный сакральный знак 999: #' + it.linkedWord!.formattedSessionNumber + ' «' + it.linkedWord!.word.toUpperCase() + '» (' + it.linkedWord!.category + ')');
|
||
if (it.linkedWord!.core.isNotEmpty) {
|
||
buffer.writeln(' Формула знака: ' + it.linkedWord!.core);
|
||
}
|
||
}
|
||
}
|
||
|
||
ReadingSignItem? findFirst(bool Function(ReadingSignItem) predicate) {
|
||
for (final it in r.items) {
|
||
if (predicate(it)) return it;
|
||
}
|
||
return null;
|
||
}
|
||
|
||
final judge = findFirst((it) => it.title.toUpperCase().contains('СУДЬЯ'));
|
||
final reconciler = findFirst((it) => it.title.toUpperCase().contains('ПРИМИРИТЕЛЬ'));
|
||
final rightWitness = findFirst((it) => it.title.toUpperCase().contains('ПРАВЫЙ СВИДЕТЕЛЬ'));
|
||
final leftWitness = findFirst((it) => it.title.toUpperCase().contains('ЛЕВЫЙ СВИДЕТЕЛЬ'));
|
||
final mothers = r.items.where((it) => it.title.toLowerCase().contains('мать')).toList();
|
||
final daughters = r.items.where((it) => it.title.toLowerCase().contains('дочь')).toList();
|
||
final nephews = r.items.where((it) => it.title.toLowerCase().contains('племянник')).toList();
|
||
|
||
if (judge != null) {
|
||
writeShieldItem('👑 ВЕРХОВНЫЙ СУДЬЯ (AL-QADI / JUDEX — ИТОГОВЫЙ ПРИГОВОР И ИСХОД СИТУАЦИИ):', judge);
|
||
buffer.writeln();
|
||
}
|
||
|
||
if (reconciler != null) {
|
||
writeShieldItem("🕊️ ПРИМИРИТЕЛЬ (AL-MUJAMMI' / 16-Я ФИГУРА — СНЯТИЕ ПРОТИВОРЕЧИЯ ИСТОКА И СУДА):", reconciler);
|
||
buffer.writeln();
|
||
}
|
||
|
||
if (rightWitness != null || leftWitness != null) {
|
||
buffer.writeln(' ⚖️ ДВА СВИДЕТЕЛЯ (SHAHIDAYN — ДИАЛЕКТИКА ВНЕШНЕГО И ВНУТРЕННЕГО):');
|
||
if (rightWitness != null) {
|
||
writeShieldItem(' [ПРАВЫЙ СВИДЕТЕЛЬ / ВНЕШНИЙ МИР И ОБСТОЯТЕЛЬСТВА]:', rightWitness);
|
||
}
|
||
if (leftWitness != null) {
|
||
writeShieldItem(' [ЛЕВЫЙ СВИДЕТЕЛЬ / ВНУТРЕННЕЕ СОСТОЯНИЕ И ДУША КВЕРЕНТА]:', leftWitness);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
if (mothers.isNotEmpty) {
|
||
buffer.writeln(' 🏛️ ЧЕТЫРЕ МАТЕРИ (UMMAHAAT — КОРНИ И ПЕРВИЧНЫЙ СТИХИЙНЫЙ ИМПУЛЬС):');
|
||
for (final m in mothers) {
|
||
writeShieldItem(' [МАТЬ]:', m);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
if (daughters.isNotEmpty) {
|
||
buffer.writeln(' 🌿 ЧЕТЫРЕ ДОЧЕРИ (BANAAT — РАЗВЁРТЫВАНИЕ В ПРОСТРАНСТВЕ И ВНЕШНЕЙ СРЕДЕ):');
|
||
for (final d in daughters) {
|
||
writeShieldItem(' [ДОЧЬ]:', d);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
if (nephews.isNotEmpty) {
|
||
buffer.writeln(' ⚡ ЧЕТЫРЕ ПЛЕМЯННИКА (ABNAA — СОБЫТИЙНЫЙ СРЕЗ И ПСИХОЛОГИЯ ОКРУЖЕНИЯ):');
|
||
for (final n in nephews) {
|
||
writeShieldItem(' [ПЛЕМЯННИК]:', n);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
buffer.writeln();
|
||
continue;
|
||
}
|
||
}
|
||
|
||
for (final item in r.items) {
|
||
final rev = item.isReversed ? ' [ПЕРЕВЁРНУТОЕ ПОЛОЖЕНИЕ / МЕРКСТЕЙВ]' : '';
|
||
buffer.writeln(' • ' + (item.symbol != null ? item.symbol! + ' ' : '') + '«' + item.title.toUpperCase() + '»' + rev);
|
||
if (item.subtitle != null && item.subtitle!.isNotEmpty) {
|
||
buffer.writeln(' Атрибут: ' + item.subtitle!);
|
||
}
|
||
if (item.lore != null && item.lore!.isNotEmpty) {
|
||
buffer.writeln(' Канонический закон/значение: ' + item.lore!);
|
||
}
|
||
if (item.linkedWord != null) {
|
||
allMentionedWords.add(item.linkedWord!);
|
||
buffer.writeln(' 🔗 Связанный сакральный знак 999: #' + item.linkedWord!.formattedSessionNumber + ' «' + item.linkedWord!.word.toUpperCase() + '» (' + item.linkedWord!.category + ')');
|
||
if (item.linkedWord!.core.isNotEmpty) {
|
||
buffer.writeln(' Формула знака: ' + item.linkedWord!.core);
|
||
}
|
||
}
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
// 3. Cross-system Resonances
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('3. КРОСС-СИСТЕМНЫЕ СВЯЗИ И СТИХИЙНЫЙ РЕЗОНАНС:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
var hasResonances = false;
|
||
for (final r in session.readings) {
|
||
if (r.systemId == 'geomancy') {
|
||
for (final it in r.items) {
|
||
if (it.title.toUpperCase().contains('СУДЬЯ')) {
|
||
buffer.writeln('• Геомантический вектор: Итоговый вердикт выносит Верховный Судья «' + it.title + '» (' + (it.subtitle ?? '') + '). Его стихийный закон является фокусом разрешения всей сессии.');
|
||
hasResonances = true;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (allMentionedWords.isNotEmpty) {
|
||
final resonances = _detectSyncreticResonances(allMentionedWords);
|
||
if (resonances.isNotEmpty) {
|
||
for (final res in resonances) {
|
||
buffer.writeln('• ' + res);
|
||
hasResonances = true;
|
||
}
|
||
}
|
||
}
|
||
if (!hasResonances) {
|
||
buffer.writeln('• Прямой полифонический диалог традиций: системы дополняют друг друга через разные уровни восприятия (ментальный, событийный, бессознательный).');
|
||
}
|
||
buffer.writeln();
|
||
|
||
// 4. Instructions for Comparative Synthesis
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('4. ТРЕБОВАНИЯ К ТВОЕМУ СРАВНИТЕЛЬНОМУ МЕТА-АНАЛИЗУ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('Составь исчерпывающий, структурированный и философски безупречный отчёт:');
|
||
buffer.writeln('1. ТОЧКА КОНВЕРГЕНЦИИ (В ЧЁМ ВСЕ СИСТЕМЫ ЕДИНОГЛАСНЫ): Какая центральная истина повторяется на разных символических языках (в рунах, арканах, гексаграммах, знаках Оракула 999 и сакральных фигурах Арабской Геомантии)?');
|
||
buffer.writeln('2. ТОЧКИ ДИВЕРГЕНЦИИ И ПОЛЯРНОСТИ (СКРЫТЫЙ ДИАЛОГ СИСТЕМ): Где одна система предостерегает, а другая указывает на возможность? Какое диалектическое противоречие вскрыто?');
|
||
buffer.writeln('3. ПОУРОВНЕВАЯ КАРТА РЕАЛЬНОСТИ:');
|
||
buffer.writeln(' - Каузальный план (причины и судьба),');
|
||
buffer.writeln(' - Психологический план (состояние ума и тени кверента),');
|
||
buffer.writeln(' - Событийный план (ближайшая материя и динамика).');
|
||
buffer.writeln('4. ПРИГОВОР И ВЕРХОВНЫЙ СИНТЕЗ: К какому единственному выводу неизбежно подводят все проведённые расклады? Обязательно сопоставь вердикт Верховного Судьи Геомантии (Аль-Кади) и гармонизацию Примирителя с результирующими картами/рунами сессии.');
|
||
buffer.writeln('5. ТОЧНЫЙ НЕОБРАТИМЫЙ ЖЕСТ: Какое конкретное действие или внутреннее решение вопрошающий должен совершить прямо сейчас?');
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
|
||
return buffer.toString();
|
||
}
|
||
|
||
/// Generates a Master Prompt for a standard Cleromancy Oracle Session (any number of words drawn).
|
||
static String generateForSession(OracleSession session) {
|
||
final buffer = StringBuffer();
|
||
final repo = WordsRepository();
|
||
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln('СВЯЩЕННЫЙ РАСКЛАД КЛЕРОМАНТИИ — СИСТЕМА «ОРАКУЛ»');
|
||
buffer.writeln('МАСТЕР-ПРОМПТ ДЛЯ ГЛУБИННОЙ ИНТЕРПРЕТАЦИИ НЕЙРОСЕТЬЮ');
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('### СИСТЕМНАЯ РОЛЬ:');
|
||
buffer.writeln('Ты — верховный толкователь Оракула, мастер герметического синкретизма, онтологической семантики и глубинной психологии.');
|
||
buffer.writeln('Перед тобой полный протокол сакрального расклада Клеромантии (гадания по жребию знаков из канонической тысячи 000–999).');
|
||
buffer.writeln('Наша система включает канонические соответствия Таро, Старшего Футарка, Огама, Ленорман, Каббалы (Сефирот), Алхимии, Геомантии, И Цзин, Классического и Китайского Зодиака, а также Септенера (7 Дней Недели) и Додекады (12 Месяцев Года).');
|
||
buffer.writeln('Твоя задача — дать бескомпромиссный, психологически точный и эзотерически глубокий анализ ситуации, без клише, размытых фраз и банальностей.');
|
||
buffer.writeln();
|
||
|
||
// 1. Context and Question
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('1. КОНТЕКСТ И ЗАПРОС ВОПРОШАЮЩЕГО (КВЕРЕНТА):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('• Дата и время сессии: ' + session.formattedDate);
|
||
if (session.question != null && session.question!.trim().isNotEmpty) {
|
||
buffer.writeln('• Фокус вопроса: «' + session.question!.trim() + '»');
|
||
} else {
|
||
buffer.writeln('• Фокус вопроса: Общее прорицание узлов судьбы, скрытых напряжений и грядущего вектора.');
|
||
}
|
||
buffer.writeln('• Количество выпавших знаков в цепи: ' + session.words.length.toString());
|
||
buffer.writeln();
|
||
|
||
// 2. The Chain of Signs
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('2. ЦЕПЬ ВЫПАВШИХ САКРАЛЬНЫХ ЗНАКОВ (ПОЛНОЕ ДОСЬЕ И СЛОИ):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
|
||
final fullWords = <WordItem>[];
|
||
|
||
for (int i = 0; i < session.words.length; i++) {
|
||
final sw = session.words[i];
|
||
final fw = repo.getWordByName(sw.word) ??
|
||
repo.getWordBySessionNumber(sw.sessionNumber) ??
|
||
WordItem(
|
||
id: sw.sessionNumber,
|
||
word: sw.word,
|
||
partOfSpeech: sw.partOfSpeech,
|
||
frequency: 0,
|
||
category: sw.category,
|
||
description: sw.symbolicMeaning,
|
||
);
|
||
fullWords.add(fw);
|
||
|
||
final posTitle = sw.positionTitle != null ? ' [' + sw.positionTitle! + ']' : '';
|
||
buffer.writeln('ЗНАК #' + (i + 1).toString() + ': #' + sw.formattedSessionNumber + ' «' + fw.word.toUpperCase() + '»' + posTitle);
|
||
buffer.writeln(' Часть речи: ' + fw.partOfSpeech + ' | Категория: ' + fw.category + ' | Оператор: ' + fw.localizedOperator + ' | Валентность: ' + fw.localizedValence);
|
||
|
||
if (fw.core.isNotEmpty) {
|
||
buffer.writeln(' ⚡ [ЯДРО ЗНАКА]: ' + fw.core);
|
||
}
|
||
|
||
final cleanDesc = fw.description.replaceAll(RegExp(r'\[.*?\]\s*'), '').trim();
|
||
if (cleanDesc.isNotEmpty) {
|
||
buffer.writeln(' 📖 [КАНОНИЧЕСКИЙ СМЫСЛ]: ' + cleanDesc);
|
||
}
|
||
|
||
if (fw.oracle.isNotEmpty) {
|
||
buffer.writeln(' 🔮 [ТОЛКОВАНИЕ ОРАКУЛА]: ' + fw.oracle);
|
||
}
|
||
|
||
if (fw.shadow.isNotEmpty) {
|
||
buffer.writeln(' 🌑 [ТЕНЬ И ИСКУШЕНИЕ]: ' + fw.shadow);
|
||
}
|
||
|
||
if (fw.asks.isNotEmpty) {
|
||
buffer.writeln(' ❓ [ДИАГНОСТИЧЕСКИЙ ВОПРОС]: ' + fw.asks);
|
||
}
|
||
|
||
if (fw.step.isNotEmpty) {
|
||
buffer.writeln(' ✨ [НЕОБРАТИМЫЙ ЖЕСТ / ДЕЙСТВИЕ]: ' + fw.step);
|
||
}
|
||
|
||
if (fw.binds.isNotEmpty) {
|
||
buffer.writeln(' 🔗 [СОЗВУЧНЫЕ СВЯЗКИ]: ' + fw.binds.join(', '));
|
||
}
|
||
|
||
final trad = _formatTraditions(fw, prefix: ' ');
|
||
if (trad.isNotEmpty) {
|
||
buffer.write(trad);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
// 3. Syncretic Resonances and Geometry of Signs
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('3. МЕЖСИСТЕМНЫЕ РЕЗОНАНСЫ И ПАРНЫЕ СВЯЗИ В ЦЕПИ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
final resonances = _detectSyncreticResonances(fullWords);
|
||
if (resonances.isNotEmpty) {
|
||
for (final r in resonances) {
|
||
buffer.writeln('• ' + r);
|
||
}
|
||
} else {
|
||
buffer.writeln('• Прямых полярных пар не обнаружено; знаки образуют распределённую волну смыслов.');
|
||
}
|
||
|
||
// Valence balance
|
||
final activeCount = fullWords.where((w) => w.valence.toLowerCase() == 'active' || w.valence.toLowerCase() == 'light').length;
|
||
final receptiveCount = fullWords.where((w) => w.valence.toLowerCase() == 'receptive' || w.valence.toLowerCase() == 'dark').length;
|
||
final neutralCount = fullWords.length - activeCount - receptiveCount;
|
||
buffer.writeln('• Энергетический баланс цепи: Активных (Ян/Огонь-Воздух) = ' + activeCount.toString() + ', Восприимчивых (Инь/Вода-Земля) = ' + receptiveCount.toString() + ', Нейтральных = ' + neutralCount.toString());
|
||
buffer.writeln();
|
||
|
||
// 4. Detailed instructions for LLM
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('4. ТРЕБОВАНИЯ К ТВОЕМУ ОТВЕТУ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('Построй своё прорицание по следующим блокам:');
|
||
buffer.writeln('1. ДРАМАТУРГИЯ ЦЕПИ: Как знаки перетекают друг в друга от первого к последнему? Какой сюжет разворачивается?');
|
||
buffer.writeln('2. РАЗБОР КАЖДОГО ЗНАКА В КОНТЕКСТЕ ВОПРОСА: Проанализируй влияние каждого символа, его ядро и проявление через традиции.');
|
||
buffer.writeln('3. ТЕНЕВОЙ УЗЕЛ И ЛОВУШКА: Где вопрошающий рискует оступиться? Что скрыто за фасадом очевидного?');
|
||
buffer.writeln('4. РЕЗОНАНСЫ ТРАДИЦИЙ: Как вскрытые арканы, руны, планеты и гексаграммы обогащают понимание?');
|
||
buffer.writeln('5. ИТОГОВЫЙ ПРИГОВОР ОРАКУЛА И ТОЧНЫЙ ШАГ: Сформулируй ясный, бескомпромиссный вывод и конкретный внутренний или внешний жест для вопрошающего.');
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
|
||
return buffer.toString();
|
||
}
|
||
|
||
/// Generates a comprehensive, high-caliber Master Prompt for advanced LLMs (Grok, Claude 3.5 Sonnet, Gemini 1.5 Pro, GPT-4o).
|
||
static String generate(HousesSession session) {
|
||
final buffer = StringBuffer();
|
||
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln('СВЯЩЕННЫЙ РАСКЛАД ПОЛОТНА ДОМОВ 33×30 — СИСТЕМА «ОРАКУЛ»');
|
||
buffer.writeln('МАСТЕР-ПРОМПТ ДЛЯ ГЛУБИННОЙ ИНТЕРПРЕТАЦИИ НЕЙРОСЕТЬЮ');
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('### СИСТЕМНАЯ РОЛЬ:');
|
||
buffer.writeln('Ты — верховный толкователь Оракула, мастер герметического синкретизма, онтологической семантики и глубинной психологии.');
|
||
buffer.writeln('Перед тобой полный протокол сакрального расклада на поле 33×30 (990 земных Домов и 10 верховных Архонтов-управителей).');
|
||
buffer.writeln('Десять Архонтов — существительные, вытянутые заново для ЭТОЙ сессии. Это не закреплённые клетки 000 и 991–999.');
|
||
buffer.writeln('Наша система включает канонические соответствия Таро, Старшего Футарка, Огама, Ленорман, Каббалы (Сефирот), Алхимии, Геомантии, И Цзин, Классического и Китайского Зодиака, а также Септенера (7 Дней Недели) и Додекады (12 Месяцев Года).');
|
||
buffer.writeln('Твоя задача — дать бескомпромиссный, психологически точный и эзотерически глубокий анализ ситуации, без клише, размытых фраз и банальностей.');
|
||
buffer.writeln();
|
||
|
||
// 1. Querent (Significator)
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('1. СУБЪЕКТ ВОПРОШАНИЯ (КВЕРЕНТ / СИГНИФИКАТОР):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
if (session.querentWord != null) {
|
||
final q = session.querentWord!;
|
||
var loc = '';
|
||
if (session.querentHouseIndex != null) {
|
||
final hIdx = (session.querentHouseIndex! + 1).toString().padLeft(3, '0');
|
||
final r = session.querentHouseIndex! ~/ 30 + 1;
|
||
final c = session.querentHouseIndex! % 30 + 1;
|
||
loc = ' | Локация: Дом #' + hIdx + ' (Ряд ' + r.toString() + ', Столбец ' + c.toString() + ')';
|
||
}
|
||
buffer.writeln('• Кверент (Сигнификатор): «' + q.word.toUpperCase() + '»' + loc);
|
||
|
||
final summary = q.core.isNotEmpty
|
||
? q.core
|
||
: (q.description.isNotEmpty
|
||
? q.description.replaceAll(RegExp(r'\[.*?\]\s*'), '').trim()
|
||
: q.category);
|
||
buffer.writeln(' Краткая сводка: ' + summary);
|
||
} else {
|
||
buffer.writeln('• Кверент: Открытый фокус поля (вопрошающий без фиксированного сигнификатора).');
|
||
}
|
||
|
||
if (session.question != null && session.question!.trim().isNotEmpty) {
|
||
buffer.writeln('• Вопрос кверента: «' + session.question!.trim() + '»');
|
||
} else {
|
||
buffer.writeln('• Вопрос кверента: Общее прорицание узлов судьбы и скрытых течений ситуации.');
|
||
}
|
||
buffer.writeln();
|
||
|
||
// 2. The 3-tier hierarchy: Archon -> House -> Guest
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('2. АРХИТЕКТУРА РАСКЛАДА (ИЕРАРХИЯ: АРХОНТ ➔ ДОМ ➔ ГОСТЬ):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('В каждом открытом доме действуют 3 уровня реальности:');
|
||
buffer.writeln(' [А] Верховный Архонт — надмирный закон сектора (триады столбцов), небесный климат.');
|
||
buffer.writeln(' [Б] Земной Дом — конкретная сфера бытия, почва, материя и форма.');
|
||
buffer.writeln(' [В] Знак-Гость — импульс жребия, живая сила, вошедшая в этот дом.');
|
||
buffer.writeln();
|
||
|
||
final allGuests = <WordItem>[];
|
||
|
||
for (int i = 0; i < session.selectedHouses.length; i++) {
|
||
final house = session.selectedHouses[i];
|
||
final sector = session.sectors[house.sectorIndex];
|
||
final guest = house.guestWord ?? house.houseWord;
|
||
allGuests.add(guest);
|
||
final order = house.selectionOrder ?? (i + 1);
|
||
final hPad = (house.houseIndex + 1).toString().padLeft(3, '0');
|
||
|
||
buffer.writeln('ПОЗИЦИЯ #' + order.toString() + ' (Дом #' + hPad + ', Ряд ' + (house.row + 1).toString() + ', Столбец ' + (house.col + 1).toString() + '):');
|
||
buffer.writeln(' 👑 [АРХОНТ]: «' + sector.archonWord.word.toUpperCase() + '» (' + sector.title + ')');
|
||
if (sector.archonWord.core.isNotEmpty) {
|
||
buffer.writeln(' Закон Архонта: ' + sector.archonWord.core);
|
||
}
|
||
final archonTrad = _formatTraditions(sector.archonWord, prefix: ' ');
|
||
if (archonTrad.isNotEmpty) {
|
||
buffer.write(archonTrad);
|
||
}
|
||
|
||
buffer.writeln(' 🏛️ [ДОМ]: «' + house.houseWord.word.toUpperCase() + '» (' + house.houseWord.category + ')');
|
||
if (house.houseWord.core.isNotEmpty) {
|
||
buffer.writeln(' Ядро Дома: ' + house.houseWord.core);
|
||
}
|
||
final houseTrad = _formatTraditions(house.houseWord, prefix: ' ');
|
||
if (houseTrad.isNotEmpty) {
|
||
buffer.write(houseTrad);
|
||
}
|
||
|
||
buffer.writeln(' ⚡ [ГОСТЬ В ДОМЕ]: «' + guest.word.toUpperCase() + '» (' + guest.partOfSpeech + ', ' + guest.category + ')');
|
||
if (guest.core.isNotEmpty) {
|
||
buffer.writeln(' Суть гостя: ' + guest.core);
|
||
}
|
||
if (guest.oracle.isNotEmpty) {
|
||
buffer.writeln(' Физика действия гостя: ' + guest.oracle);
|
||
}
|
||
if (guest.shadow.isNotEmpty) {
|
||
buffer.writeln(' Тень и ловушка гостя: ' + guest.shadow);
|
||
}
|
||
if (guest.asks.isNotEmpty) {
|
||
buffer.writeln(' Диагностический вопрос: ' + guest.asks);
|
||
}
|
||
if (guest.step.isNotEmpty) {
|
||
buffer.writeln(' Конкретный шаг заземления: ' + guest.step);
|
||
}
|
||
if (guest.binds.isNotEmpty) {
|
||
buffer.writeln(' Связанные союзные знаки: ' + guest.binds.join(', '));
|
||
}
|
||
final guestTrad = _formatTraditions(guest, prefix: ' ');
|
||
if (guestTrad.isNotEmpty) {
|
||
buffer.write(guestTrad);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
// 3. Sacred Geometry of the Field
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('3. САКРАЛЬНАЯ ГЕОМЕТРИЯ МАТРИЦЫ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
final pointsCount = session.selectedHouses.length;
|
||
String figureName;
|
||
switch (pointsCount) {
|
||
case 1: figureName = 'Монада (Точка Первоистока)'; break;
|
||
case 2: figureName = 'Диада (Вектор Полярности)'; break;
|
||
case 3: figureName = 'Триада (Дельта Творения)'; break;
|
||
case 4: figureName = 'Тетрада (Земной Четверик)'; break;
|
||
case 5: figureName = 'Пентаграмма (Узел Пяти Стихий)'; break;
|
||
case 6: figureName = 'Гексаграмма (Печать Равновесия)'; break;
|
||
case 7: figureName = 'Гептада (Семизвездный Венец)'; break;
|
||
case 8: figureName = 'Октада (Роза Пространства)'; break;
|
||
case 9: figureName = 'Эннеаграмма (Девятикратное Полотно Судьбы)'; break;
|
||
default: figureName = 'Сакральный Сигил (' + pointsCount.toString() + ' точек)';
|
||
}
|
||
|
||
buffer.writeln('• Фигура расклада: ' + figureName);
|
||
final visitedSectors = session.selectedHouses.map((h) => h.sectorIndex + 1).toSet().toList()..sort();
|
||
buffer.writeln('• Задействованные Секторы Архонтов: Триады столбцов № ' + visitedSectors.join(', ') + ' из 10');
|
||
buffer.writeln('• Координаты узлов на сетке 33×30:');
|
||
for (final h in session.selectedHouses) {
|
||
buffer.writeln(' - Узел #' + (h.selectionOrder ?? 0).toString() + ': Дом «' + h.houseWord.word + '» в координатах (r: ' + (h.row + 1).toString() + ', c: ' + (h.col + 1).toString() + ')');
|
||
}
|
||
buffer.writeln();
|
||
|
||
// 3.1. Syncretic Resonances across drawn symbols
|
||
final resonances = _detectSyncreticResonances(allGuests);
|
||
if (resonances.isNotEmpty) {
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('3.1. СИНКРЕТИЧЕСКИЕ РЕЗОНАНСЫ И ПАРЫ В РАСКЛАДЕ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
for (final r in resonances) {
|
||
buffer.writeln('• ' + r);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
// 4. Chains of Houses & Fate Loops
|
||
if (session.chains.isNotEmpty) {
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('4. ЦЕПОЧКИ ДОМОВ И ПЕТЛИ СУДЬБЫ (ТРАССИРОВКА ДО 9 ЗВЕНЬЕВ):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('Энергия каждого гостя ищет свой дом на матрице, создавая цепочки перетекания силы:');
|
||
for (final chain in session.chains) {
|
||
buffer.writeln('• ЦЕПОЧКА #' + chain.chainIndex.toString() + ' [' + chain.endTypeTitle + '] (' + chain.steps.length.toString() + ' звеньев):');
|
||
buffer.writeln(' Итог: ' + chain.description);
|
||
buffer.writeln(' Маршрут импульса:');
|
||
for (int s = 0; s < chain.steps.length; s++) {
|
||
final step = chain.steps[s];
|
||
final sector = session.sectors[step.house.sectorIndex];
|
||
final sIdx = (step.house.houseIndex + 1).toString();
|
||
String stepDesc = ' ' + (s + 1).toString() + '. Дом #' + sIdx + ' «' + step.house.houseWord.word + '» [Архонт: ' + sector.archonWord.word + '] ➔ Гость «' + step.guest.word + '»';
|
||
if (step.isLoopClosing) stepDesc += ' 🔄 [ПЕТЛЯ ЗАМКНУЛАСЬ]';
|
||
if (step.leadsToArchon) stepDesc += ' 👑 [ПРЕСТОЛ АРХОНТА «' + (step.destinationArchon?.archonWord.word ?? '') + '»]';
|
||
if (step.computed) stepDesc += ' ◎ [ВЫЧИСЛЕНО ИЗ ПОЛЯ, НЕ ЖРЕБИЙ]';
|
||
buffer.writeln(stepDesc);
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
}
|
||
|
||
// 5. Instruction for the AI Interpreter
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('5. ИНСТРУКЦИЯ ДЛЯ ТОЛКОВАНИЯ (ТВОЙ ПЛАН ОТВЕТА):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('Составь исчерпывающий мета-анализ расклада, следуя структуре:');
|
||
buffer.writeln('1. СУТЬ И ЦЕНТР ТЯЖЕСТИ: Как ситуация соотносится с Кверентом? Что является главным нервом вопроса?');
|
||
buffer.writeln('2. СИНТЕЗ ДОМОВ И ГОСТЕЙ: Раскрой взаимодействие: как каждый Гость трансформирует свой Дом под волей правящего Архонта, опираясь на сакральные слои (Таро, Руны, Огам, Ленорман, Каббалу, Септенер дней недели и Додекаду месяцев).');
|
||
buffer.writeln('3. СИНКРЕТИЧЕСКИЕ СВЯЗИ И РЕЗОНАНСЫ: Учти взаимное влияние планет, дней, месяцев, пар Ленорман и стихий, проявившихся в раскладе.');
|
||
buffer.writeln('4. АНАЛИЗ ЦЕПОЧЕК И ПЕТЕЛЬ: В чем главная скрытая динамика? Куда утекает или где зацикливается энергия (петли судьбы)?');
|
||
buffer.writeln('5. ТЕНИ И СКРЫТЫЕ ЛОВУШКИ: От каких иллюзий, спешки или самообмана предостерегает жребий?');
|
||
buffer.writeln('6. ИТОГОВЫЙ ПРИГОВОР И РИТУАЛЬНОЕ ДЕЙСТВИЕ: Три честных вывода и один бескомпромиссный физический шаг, который вопрошающий должен совершить прямо сейчас.');
|
||
|
||
return buffer.toString();
|
||
}
|
||
|
||
static String _formatTraditions(WordItem item, {required String prefix}) {
|
||
final sb = StringBuffer();
|
||
// 1. Explicit layers
|
||
if (item.layers.isNotEmpty) {
|
||
for (final l in item.layers) {
|
||
sb.writeln(prefix + '🏛️ [Слой «' + WordItemLocalization.localizeSystem(l.system) + '»]: ' + l.title + ' — ' + l.law);
|
||
}
|
||
}
|
||
|
||
// 2. Traditions Repository matches
|
||
final repo = TraditionsRepository();
|
||
final matches = repo.findMatchesForWord(item.word, wordId: item.id);
|
||
if (matches.isNotEmpty) {
|
||
for (final m in matches) {
|
||
final t = m.tradition;
|
||
final st = m.station;
|
||
final status = m.isPrimary ? 'Ключевой Архетип' : 'Кластер / Эманация';
|
||
sb.writeln(prefix + '📜 [' + t.name + ']: ' + st.name + ' ' + st.symbol + ' (' + status + ')');
|
||
if (m.isPrimary && st.lore.isNotEmpty) {
|
||
final loreSnippet = st.lore.length > 220 ? st.lore.substring(0, 220).trim() + '...' : st.lore.trim();
|
||
sb.writeln(prefix + ' Мистерия: ' + loreSnippet);
|
||
}
|
||
}
|
||
}
|
||
|
||
return sb.toString();
|
||
}
|
||
|
||
static List<String> _detectSyncreticResonances(List<WordItem> words) {
|
||
final resonances = <String>[];
|
||
final wordNames = words.map((w) => w.word.trim().toLowerCase()).toSet();
|
||
|
||
// Check Day of Week & Planet alignments
|
||
const dayPlanetPairs = {
|
||
'понедельник': 'луна',
|
||
'вторник': 'марс',
|
||
'среда': 'меркурий',
|
||
'четверг': 'юпитер',
|
||
'пятница': 'венера',
|
||
'суббота': 'сатурн',
|
||
'воскресенье': 'солнце',
|
||
};
|
||
|
||
for (final entry in dayPlanetPairs.entries) {
|
||
if (wordNames.contains(entry.key) && wordNames.contains(entry.value)) {
|
||
resonances.add('Планетарный Септенер: созвучие дня «' + entry.key.toUpperCase() + '» и управляющей планеты «' + entry.value.toUpperCase() + '» — прямая манифестация космического ритма.');
|
||
}
|
||
}
|
||
|
||
// Check Month & Zodiac resonances
|
||
const monthZodiacPairs = {
|
||
'март': 'овен',
|
||
'апрель': 'телец',
|
||
'май': 'близнецы',
|
||
'июнь': 'рак',
|
||
'июль': 'лев',
|
||
'август': 'дева',
|
||
'сентябрь': 'весы',
|
||
'октябрь': 'скорпион',
|
||
'ноябрь': 'стрелец',
|
||
'декабрь': 'козерог',
|
||
'январь': 'козерог',
|
||
'февраль': 'водолей',
|
||
};
|
||
|
||
for (final entry in monthZodiacPairs.entries) {
|
||
if (wordNames.contains(entry.key) && wordNames.contains(entry.value)) {
|
||
resonances.add('Зодиакальный цикл: солнечные врата месяца «' + entry.key.toUpperCase() + '» активируют знак «' + entry.value.toUpperCase() + '».');
|
||
}
|
||
}
|
||
|
||
// Check Solstices / Equinoxes
|
||
if (wordNames.contains('март') && wordNames.contains('сентябрь')) {
|
||
resonances.add('Ось Равноденствий: в раскладе проявились врата Весны (Март) и Осени (Сентябрь) — тема великого равновесия дня и ночи.');
|
||
}
|
||
if (wordNames.contains('июнь') && wordNames.contains('декабрь')) {
|
||
resonances.add('Ось Солнцестояний: противоположности Света (Июнь) и Тьмы (Декабрь) — максимальная амплитуда года.');
|
||
}
|
||
|
||
// Check Lenormand Cards present
|
||
final lenormandRepo = LenormandPairsRepository();
|
||
if (lenormandRepo.isLoaded) {
|
||
final lenormandFound = <String>[];
|
||
for (final w in words) {
|
||
final wClean = w.word.trim().toLowerCase();
|
||
for (final c in lenormandRepo.cards) {
|
||
if (c.name.toLowerCase().contains(wClean) || c.id.toLowerCase().contains(wClean)) {
|
||
lenormandFound.add('№${c.n} ${c.name}');
|
||
}
|
||
}
|
||
}
|
||
if (lenormandFound.length >= 2) {
|
||
resonances.add('Связка Ленорман: в раскладе открылись карты ' + lenormandFound.join(' и ') + ' — их комбинаторное чтение усиливает динамику домов.');
|
||
}
|
||
}
|
||
|
||
return resonances;
|
||
}
|
||
|
||
/// Generates the Master Prompt for Deep Culturological & Mythological Enrichment of an Archetype.
|
||
static String generateArchetypeEnrichmentPrompt(
|
||
WordItem word, {
|
||
String? customCore,
|
||
String? customOracle,
|
||
String? customShadow,
|
||
String? customAsks,
|
||
String? customStep,
|
||
}) {
|
||
final buffer = StringBuffer();
|
||
|
||
buffer.writeln('ТВОЯ РОЛЬ И ЗАДАЧА:');
|
||
buffer.writeln('Ты — Архитектор Смыслов, верховный мифолог, культуролог и онтологический герменевт.');
|
||
buffer.writeln('Твоя задача — провести глубочайшее, бескомпромиссное и многомерное ОБОГАЩЕНИЕ сакрального Архетипа. Напиши захватывающую, монументальную, живую и литературную статью-эссе, которую по-настоящему интересно читать.');
|
||
buffer.writeln();
|
||
buffer.writeln('СТРОЖАЙШИЕ ПРАВИЛА:');
|
||
buffer.writeln('Абсолютный запрет на гадательную терминологию: НИКАКИХ упоминаний «оракулов», «раскладов», «карт», «вопрошающих», «гаданий» и «ответов на вопрос». Архетип описывается как фундаментальный, безжалостный закон Вселенной, физический и мистический принцип, формирующий саму реальность и событийное поле человека.');
|
||
buffer.writeln('Запрет на лень и краткость: Текст должен быть длинным, плотным, перенасыщенным фактурой. Разворачивай мысль на полную мощность.');
|
||
buffer.writeln('Обязательный мультикультурный синтез. В тексте должны быть органично сплетены:');
|
||
buffer.writeln('• Точная этимология (праиндоевропейская и др.).');
|
||
buffer.writeln('• Древние космогонии максимального спектра: Шумер/Аккад, Египет, Древняя Греция, Иудаизм, Кельты, Суфизм/Арабская традиция и Геомантия (\'Илм ар-рамл / стихийные тетраграммы), Китай (Дао), Полинезия.');
|
||
buffer.writeln('• Научный срез: квантовая механика (наблюдатель, суперпозиция, коллапс), астрофизика, биология или нейрофизиология.');
|
||
buffer.writeln('• Алхимия и герметизм (трансформация элементов).');
|
||
buffer.writeln('Метрика: В самом конце ответа ты обязан выдать точное количество символов, потраченных на генерацию текста.');
|
||
buffer.writeln('═══════════════════════════════════════');
|
||
buffer.writeln('ВХОДНЫЕ ДАННЫЕ АРХЕТИПА:');
|
||
buffer.writeln('• Знак: #' + word.formattedSessionNumber + ' «' + word.word.toUpperCase() + '» ' + word.emoji);
|
||
|
||
final coreVal = (customCore != null && customCore.trim().isNotEmpty)
|
||
? customCore.trim()
|
||
: (word.core.isNotEmpty ? word.core : word.cleanDescription);
|
||
buffer.writeln('• Ядро/Текущая формула: ' + coreVal);
|
||
|
||
if (word.partOfSpeech.isNotEmpty) buffer.writeln('• Часть речи: ' + word.partOfSpeech);
|
||
if (word.category.isNotEmpty) buffer.writeln('• Категория: ' + word.category);
|
||
if (word.operator.isNotEmpty) buffer.writeln('• Оператор: ' + word.localizedOperator);
|
||
if (word.valence.isNotEmpty) buffer.writeln('• Полярность: ' + word.localizedValence);
|
||
|
||
final oracleVal = (customOracle != null && customOracle.trim().isNotEmpty)
|
||
? customOracle.trim()
|
||
: (word.oracle.isNotEmpty ? word.oracle : '');
|
||
if (oracleVal.isNotEmpty) {
|
||
buffer.writeln('• Текущая наработка: ' + oracleVal);
|
||
}
|
||
|
||
final shadowVal = (customShadow != null && customShadow.trim().isNotEmpty)
|
||
? customShadow.trim()
|
||
: word.shadow;
|
||
if (shadowVal.isNotEmpty) {
|
||
buffer.writeln('• Текущая тень: ' + shadowVal);
|
||
}
|
||
|
||
if (word.layers.isNotEmpty) {
|
||
buffer.writeln('• Традиции и пласты:');
|
||
for (final l in word.layers) {
|
||
final sysRu = WordItemLocalization.localizeSystem(l.system);
|
||
buffer.writeln(' - [' + sysRu + ']: ' + l.title + ' — ' + l.law);
|
||
}
|
||
}
|
||
|
||
if (word.binds.isNotEmpty) {
|
||
buffer.writeln('• Созвучные узлы: ' + word.binds.join(', '));
|
||
}
|
||
|
||
buffer.writeln('═══════════════════════════════════════');
|
||
buffer.writeln('ТРЕБОВАНИЯ К ФОРМАТУ ВЫДАЧИ (СТРОГО MARKDOWN С ЗАГОЛОВКАМИ ##):');
|
||
buffer.writeln('## ЯДРО');
|
||
buffer.writeln('(1–2 чеканных, безжалостных афористичных предложения: онтологическая формула непреложного закона бытия. Никакой воды, только концентрат сути).');
|
||
buffer.writeln();
|
||
buffer.writeln('## ОРАКУЛ');
|
||
buffer.writeln('(Монолитная, развернутая статья-эссе на 5–8 глубоких абзацев.');
|
||
buffer.writeln('• Абзац 1-2: Этимология и физическая/биологическая/квантовая природа явления. Разрушение обыденного восприятия.');
|
||
buffer.writeln('• Абзац 3-5: Глубокая мифология, геомантия и космогония (Шумер, Египет, Иврит, Кельты, Арабская геомантия \'Илм ар-рамл, Дальний Восток и т.д.) — как разные цивилизации и сакральные науки описывали этот закон.');
|
||
buffer.writeln('• Абзац 6-7: Алхимия и событийное поле. Как этот закон действует как химический реагент в реальности человека, как он ломает и трансформирует ситуацию. Без эзотерической воды — суровая прикладная философия).');
|
||
buffer.writeln();
|
||
buffer.writeln('## ТЕНЬ');
|
||
buffer.writeln('(Теневая ловушка принципа. Описать искажение, избыток или дефицит, слепую зону, эскапизм, паралич или выгорание. Как человек обманывает себя, попадая в искривленное поле этого архетипа).');
|
||
buffer.writeln();
|
||
buffer.writeln('## ВОПРОС');
|
||
buffer.writeln('(Острый, как скальпель, экзистенциальный коан, бьющий в самую суть ситуации. Безжалостный вопрос для глубокой рефлексии).');
|
||
buffer.writeln();
|
||
buffer.writeln('## ЖЕСТ');
|
||
buffer.writeln('(Одно конкретное материальное, физиологическое микродействие в реальном физическом мире для закрепления осознания. Это НЕ должна быть медитация в уме — это должно быть физическое действие с материей, пространством или телом).');
|
||
buffer.writeln();
|
||
buffer.writeln('## КУЛЬТУРЫ');
|
||
buffer.writeln('(Учебный сравнительный атлас: как этот знак понимали разные ветви человечества. Для КАЖДОЙ традиции — отдельный подзаголовок ### с точным названием из списка ниже и 2–5 предложений строго фактического материала: исконное слово/иероглиф/знак с транслитерацией, божества и мифы, ритуалы, первоисточник (текст, эпос, памятник). Не выдумывай: если у традиции нет достоверного материала по этому знаку — пропусти её, а не фантазируй. В конце — подзаголовок ### Сравнение: 3–4 предложения о том, где традиции сходятся и где принципиально расходятся.');
|
||
for (final b in kCultureBranches) {
|
||
buffer.writeln('### ' + b.name);
|
||
}
|
||
buffer.writeln('### Сравнение');
|
||
|
||
return buffer.toString();
|
||
}
|
||
|
||
/// Generates the Grand Master Prompt for Arabic Geomancy ('Ilm al-Raml) & the Great Shield.
|
||
static String generateGeomancyMasterPrompt({
|
||
required String question,
|
||
required String layoutTitle,
|
||
required bool isShield,
|
||
List<GeomancyPromptFigure> figures = const [],
|
||
List<GeomancyPromptFigure> mothers = const [],
|
||
List<GeomancyPromptFigure> daughters = const [],
|
||
List<GeomancyPromptFigure> nephews = const [],
|
||
GeomancyPromptFigure? rightWitness,
|
||
GeomancyPromptFigure? leftWitness,
|
||
GeomancyPromptFigure? judge,
|
||
GeomancyPromptFigure? reconciler,
|
||
}) {
|
||
final buffer = StringBuffer();
|
||
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln("ВЕЛИКИЙ МАСТЕР-ПРОМПТ: АРАБСКАЯ ГЕОМАНТИЯ ('ИЛМ АР-РАМЛ)");
|
||
buffer.writeln('САКРАЛЬНАЯ ПУНКТУАЦИЯ ПЕСКА, ВЕЛИКИЙ ЩИТ И СТИХИЙНЫЕ ТЕТРАГРАММЫ');
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('### СИСТЕМНАЯ РОЛЬ:');
|
||
buffer.writeln("Ты — верховный геомант, хранитель традиции 'Илм ар-рамл («науки о песке») и мастер герметической астро-геомантии.");
|
||
buffer.writeln('Перед тобой священный протокол геомантического гадания. Каждая фигура представляет собой тетраграмму четырёх первоэлементов (Огонь, Воздух, Вода, Земля): нечётное число точек (1) обозначает активную проявленную силу, чётное (2) — скрытую потенциальную емкость.');
|
||
buffer.writeln('Твоя миссия — провести всесторонний, глубокий и бескомпромиссный анализ расклада песка, вскрыть динамику стихий и выдать монолитный, мудрый и прикладной вердикт.');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('1. ФОКУС И ВОПРОС КВЕРЕНТА:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
final q = question.trim().isNotEmpty ? question.trim() : 'Общий вектор судьбы, скрытые стихийные силы и неизбежный исход.';
|
||
buffer.writeln('• Вопрос кверента: «' + q + '»');
|
||
buffer.writeln('• Формат расклада: ' + layoutTitle);
|
||
buffer.writeln("• Мантическая традиция: Классическая арабская геомантия ('Илм ар-рамл) и средневековый европейский геомантический щит");
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('2. КАРТА ВЫПАВШИХ ФИГУР:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
|
||
if (isShield) {
|
||
if (judge != null) {
|
||
buffer.writeln('ВЕРХОВНЫЙ СУДЬЯ (AL-QADI / JUDEX):');
|
||
buffer.writeln('• ' + judge.name + ' (' + judge.latinName + (judge.arabicName.isNotEmpty ? ' / ' + judge.arabicName : '') + ')');
|
||
buffer.writeln(' Стихия: ' + judge.element + ' | Планета/Зодиак: ' + judge.planet);
|
||
buffer.writeln(' Тетраграмма стихий:');
|
||
buffer.writeln(judge.dotsDisplay);
|
||
buffer.writeln(' Канонический смысл: ' + judge.lore);
|
||
if (judge.linkedWord != null) {
|
||
buffer.writeln(' Связанный архетип Оракула 999: #' + judge.linkedWord!.formattedSessionNumber + ' «' + judge.linkedWord!.word.toUpperCase() + '» (' + judge.linkedWord!.core + ')');
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
if (reconciler != null) {
|
||
buffer.writeln("ПРИМИРИТЕЛЬ (AL-MUJAMMI' / RECONCILER — 16-я сакральная фигура):");
|
||
buffer.writeln('• ' + reconciler.name + ' (' + reconciler.latinName + (reconciler.arabicName.isNotEmpty ? ' / ' + reconciler.arabicName : '') + ')');
|
||
buffer.writeln(' Стихия: ' + reconciler.element + ' | Планета/Зодиак: ' + reconciler.planet);
|
||
buffer.writeln(' Тетраграмма стихий:');
|
||
buffer.writeln(reconciler.dotsDisplay);
|
||
buffer.writeln(' Связь: Сложение Судьи и 1-й Матери (разрешение конфликта между истоком и исходом)');
|
||
buffer.writeln(' Канонический смысл: ' + reconciler.lore);
|
||
if (reconciler.linkedWord != null) {
|
||
buffer.writeln(' Связанный архетип Оракула 999: #' + reconciler.linkedWord!.formattedSessionNumber + ' «' + reconciler.linkedWord!.word.toUpperCase() + '» (' + reconciler.linkedWord!.core + ')');
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
buffer.writeln('ДВА СВИДЕТЕЛЯ (SHAHIDAYN):');
|
||
if (rightWitness != null) {
|
||
buffer.writeln('• Правый Свидетель (Объективный мир, действие, прошлое): ' + rightWitness.name);
|
||
buffer.writeln(' ' + rightWitness.element + ' • ' + rightWitness.planet + ' | ' + rightWitness.lore);
|
||
if (rightWitness.linkedWord != null) {
|
||
buffer.writeln(' Связанный знак: #' + rightWitness.linkedWord!.formattedSessionNumber + ' «' + rightWitness.linkedWord!.word.toUpperCase() + '»');
|
||
}
|
||
}
|
||
if (leftWitness != null) {
|
||
buffer.writeln('• Левый Свидетель (Субъективный мир, чувства, будущее): ' + leftWitness.name);
|
||
buffer.writeln(' ' + leftWitness.element + ' • ' + leftWitness.planet + ' | ' + leftWitness.lore);
|
||
if (leftWitness.linkedWord != null) {
|
||
buffer.writeln(' Связанный знак: #' + leftWitness.linkedWord!.formattedSessionNumber + ' «' + leftWitness.linkedWord!.word.toUpperCase() + '»');
|
||
}
|
||
}
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('ЧЕТЫРЕ МАТЕРИ (UMMAHAAT — Первичный стихийный исток ситуации):');
|
||
for (int i = 0; i < mothers.length; i++) {
|
||
final m = mothers[i];
|
||
buffer.writeln('• Мать #' + (i + 1).toString() + ': ' + m.name + ' (' + m.element + ', ' + m.planet + ') — ' + m.lore);
|
||
if (m.linkedWord != null) {
|
||
buffer.writeln(' Знак 999: #' + m.linkedWord!.formattedSessionNumber + ' «' + m.linkedWord!.word.toUpperCase() + '»');
|
||
}
|
||
}
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('ЧЕТЫРЕ ДОЧЕРИ (BANAAT — Горизонтальная проекция, внешняя среда):');
|
||
for (int i = 0; i < daughters.length; i++) {
|
||
final d = daughters[i];
|
||
buffer.writeln('• Дочь #' + (i + 1).toString() + ': ' + d.name + ' (' + d.element + ', ' + d.planet + ') — ' + d.lore);
|
||
}
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('ЧЕТЫРЕ ПЛЕМЯННИКА (ABNAA — Психика кверента и окружение):');
|
||
for (int i = 0; i < nephews.length; i++) {
|
||
final n = nephews[i];
|
||
buffer.writeln('• Племянник #' + (i + 1).toString() + ': ' + n.name + ' (' + n.element + ', ' + n.planet + ') — ' + n.lore);
|
||
}
|
||
buffer.writeln();
|
||
} else {
|
||
for (final f in figures) {
|
||
buffer.writeln('• Позиция: ' + f.position);
|
||
buffer.writeln(' Фигура: ' + f.name + ' (' + f.latinName + (f.arabicName.isNotEmpty ? ' / ' + f.arabicName : '') + ')');
|
||
buffer.writeln(' Стихия: ' + f.element + ' | Планета/Зодиак: ' + f.planet);
|
||
buffer.writeln(' Тетраграмма:');
|
||
buffer.writeln(f.dotsDisplay);
|
||
buffer.writeln(' Суть: ' + f.lore);
|
||
if (f.linkedWord != null) {
|
||
buffer.writeln(' Связанный знак 999: #' + f.linkedWord!.formattedSessionNumber + ' «' + f.linkedWord!.word.toUpperCase() + '» (' + f.linkedWord!.core + ')');
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
}
|
||
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('3. ТРЕБОВАНИЯ К ИНТЕРПРЕТАЦИИ НЕЙРОСЕТЬЮ (СТРОГАЯ СТРУКТУРА):');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('Предоставь глубокое, литературное, эзотерически безупречное толкование:');
|
||
buffer.writeln('1. АНАЛИЗ СТИХИЙНОГО СУБСТРАТА:');
|
||
buffer.writeln(' Определи распределение сил четырёх стихий (Огонь, Воздух, Вода, Земля). Где происходит избыточное напряжение, а где истощение? Как стихии диктуют темп событий?');
|
||
buffer.writeln('2. ДИАЛЕКТИКА СВИДЕТЕЛЕЙ И ВЕРДИКТ СУДЬИ:');
|
||
buffer.writeln(' Как Правый Свидетель (объективные обстоятельства) взаимодействует с Левым Свидетелем (внутреннее состояние кверента)? К какому неизбежному синтезу приводит их сложение в фигуру Судьи?');
|
||
if (isShield) {
|
||
buffer.writeln('3. ТАЙНЫЙ СОВЕТ ПРИМИРИТЕЛЯ:');
|
||
buffer.writeln(" Проанализируй 16-ю фигуру Примирителя (сложение Судьи и 1-й Матери). Как она снимает конфликт между тем, «с чего всё началось», и тем, «к чему всё пришло»?");
|
||
}
|
||
buffer.writeln('4. СИНХРОНИСТИЧЕСКИЙ СИНТЕЗ С ОРАКУЛОМ:');
|
||
buffer.writeln(' Свяжи выпавшие фигуры с архетипами лексикона 999, подчеркнув ключевой закон бытия.');
|
||
buffer.writeln('5. ПРИКЛАДНАЯ СТРАТЕГИЯ И ПРЕДОСТЕРЕЖЕНИЕ:');
|
||
buffer.writeln(' Дай конкретный и кристально ясный совет кверенту: какие действия предпринять немедленно, чего категорически избегать и в чём заключается главный духовный урок.');
|
||
|
||
return buffer.toString();
|
||
}
|
||
|
||
/// Generates the Grand Master Prompt for Celtic Tree Ogham (20 Fedas of the Sacred Grove).
|
||
static String generateOghamMasterPrompt({
|
||
required String question,
|
||
required String layoutTitle,
|
||
required List<OghamPromptFeda> fedas,
|
||
}) {
|
||
final buffer = StringBuffer();
|
||
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln('ВЕЛИКИЙ МАСТЕР-ПРОМПТ: КЕЛЬТСКИЙ ДРЕВЕСНЫЙ ОГАМ');
|
||
buffer.writeln('20 ФЕД СВЯЩЕННОЙ РОЩИ ДРУИДОВ И ТАЙНОПИСЬ БОГА ОГМЫ');
|
||
buffer.writeln('═══════════════════════════════════════════════════════════════════');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('### СИСТЕМНАЯ РОЛЬ:');
|
||
buffer.writeln('Ты — верховный друид и филид, хранитель Священной Рощи, знаток тайнописи бога Огмы и древесного календаря кельтов.');
|
||
buffer.writeln('Перед тобой священный расклад древесного Огама. Каждая феда олицетворяет священное дерево или кустарник, несущий архетипическую силу духов природы и космических законов.');
|
||
buffer.writeln('Твоя миссия — истолковать шёпот деревьев, раскрыть тайный баланс прямых и теневых сил и дать кверенту глубокий, поэтичный и практический совет.');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('1. ФОКУС И ВОПРОС КВЕРЕНТА:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
final q = question.trim().isNotEmpty ? question.trim() : 'Мудрость Священной Рощи Огама и древесные силы судьбы.';
|
||
buffer.writeln('• Вопрос кверента: «' + q + '»');
|
||
buffer.writeln('• Формат расклада: ' + layoutTitle);
|
||
buffer.writeln('• Традиция: Кельтский сакральный Огам (4 Аикмы Священной Рощи)');
|
||
buffer.writeln();
|
||
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('2. ВЫПАВШИЕ ФЕДЫ РОЩИ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
for (final f in fedas) {
|
||
buffer.writeln('• Позиция «' + f.position + '»: ' + f.symbol + ' ' + f.name + ' [' + (f.isReversed ? 'ТЕНЕВОЕ ПОЛОЖЕНИЕ' : 'ПРЯМОЕ ПОЛОЖЕНИЕ') + ']');
|
||
buffer.writeln(' Семья (Аикма): ' + f.aicme);
|
||
buffer.writeln(' Древесная сила: ' + f.lore);
|
||
if (f.linkedWord != null) {
|
||
buffer.writeln(' Связанный архетип Оракула 999: #' + f.linkedWord!.formattedSessionNumber + ' «' + f.linkedWord!.word.toUpperCase() + '» (' + f.linkedWord!.core + ')');
|
||
}
|
||
buffer.writeln();
|
||
}
|
||
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('3. ТРЕБОВАНИЯ К ДРУИДИЧЕСКОМУ ТОЛКОВАНИЮ НЕЙРОСЕТЬЮ:');
|
||
buffer.writeln('───────────────────────────────────────────────────────────────────');
|
||
buffer.writeln('1. АНАЛИЗ ДРЕВЕСНЫХ СИЛ: Как сочетаются качества выпавших деревьев (например, гибкость Ивы, несгибаемость Дуба, очищение Берёзы, защита Тис)?');
|
||
buffer.writeln('2. ДИАГНОСТИКА ТЕНЕЙ: Если выпали перевёрнутые феды, вскрой их предупреждение — где заблокирован жизненный сок или где кверент проявляет гордыню / самоизоляцию?');
|
||
buffer.writeln('3. ДИНАМИКА ПОЗИЦИЙ РАСКЛАДА: Как раскладывается временная или стихийная линия вопроса?');
|
||
buffer.writeln('4. СИНТЕЗ СО ЗНАКАМИ ОРАКУЛА 999: Как символы 999 подкрепляют наставление Рощи?');
|
||
buffer.writeln('5. ДРУИДИЧЕСКИЙ НАКАЗ КВЕРЕНТУ: Точное, прикладное наставление — как поступить в материальном мире.');
|
||
|
||
return buffer.toString();
|
||
}
|
||
}
|
||
|
||
class OghamPromptFeda {
|
||
final String position;
|
||
final String name;
|
||
final String symbol;
|
||
final String aicme;
|
||
final bool isReversed;
|
||
final String lore;
|
||
final WordItem? linkedWord;
|
||
|
||
const OghamPromptFeda({
|
||
required this.position,
|
||
required this.name,
|
||
required this.symbol,
|
||
required this.aicme,
|
||
required this.isReversed,
|
||
required this.lore,
|
||
this.linkedWord,
|
||
});
|
||
}
|
||
|
||
class GeomancyPromptFigure {
|
||
final String position;
|
||
final String name;
|
||
final String latinName;
|
||
final String arabicName;
|
||
final List<int> lines;
|
||
final String element;
|
||
final String planet;
|
||
final String lore;
|
||
final WordItem? linkedWord;
|
||
|
||
const GeomancyPromptFigure({
|
||
required this.position,
|
||
required this.name,
|
||
this.latinName = '',
|
||
this.arabicName = '',
|
||
required this.lines,
|
||
required this.element,
|
||
required this.planet,
|
||
required this.lore,
|
||
this.linkedWord,
|
||
});
|
||
|
||
String get dotsDisplay {
|
||
final elements = ['Огонь', 'Воздух', 'Вода', 'Земля'];
|
||
if (lines.length != 4) return lines.join('-');
|
||
return List.generate(
|
||
4,
|
||
(i) => ' [' + elements[i] + ']: ' + (lines[i] == 1 ? '• ' : '•• ') + ' (' + (lines[i] == 1 ? 'активный импульс' : 'пассивный сосуд') + ')',
|
||
).join('\n');
|
||
}
|
||
}
|