Skip to content

PR #4: Input Intelligence + Sutra Context Upgrade (Engine 2.1)#4

Merged
sraphaz merged 18 commits intomainfrom
feature/sutra-context-engine
Jan 31, 2026
Merged

PR #4: Input Intelligence + Sutra Context Upgrade (Engine 2.1)#4
sraphaz merged 18 commits intomainfrom
feature/sutra-context-engine

Conversation

@sraphaz
Copy link
Copy Markdown
Owner

@sraphaz sraphaz commented Jan 31, 2026

Escopo

Consolida Engine 2.1 (PR3) + Input Intelligence + Sutra Context (PR4) em um único merge.

Incluído

  • Input Parser multi-eixos: normalização, intentParser, stateScorer; JSONs (inputNormalization, inputVerbs, inputThemes, inputQuestions, inputEmotions); texto do usuário → stateKey → Instant Light.
  • Truth Package padrão: UserRequestContext + DarshanTruthPackage; Instant Light e IA usam o mesmo payload.
  • Engine único: sacredRemedy como único truth engine; wrappers antigos removidos.
  • Sutra Context Engine: sutraContextResolver (prev/primary/next), sacred.supporting, verso anterior quando aplicável.
  • IA expansion: narrativeGateway + POST /api/ai/expand.
  • Build: prebuild (ENOENT), tipos TS (instant-light, instantLightComposer) corrigidos; npm run build passa.

Docs

  • docs/ESTADO_REAL_PR3_ENGINE_21.md atualizado com os 5 críticos e status do build.

Changes (todos os commits)

Commit Descrição
712d34e feat: Sacred Remedy Engine + GET /api/instant-light
6f39a32 feat(Engine 2.1): Ayurvedic qualities, action selector, 50 estados, corpus expandido
63b0f31 feat(Engine 2.1): P0 unificar engines, P1 cooldown server-side, P2 numerologia completa
c4b83ab docs: validação Engine 2.1 + depreciação lib/diagnosis e lib/sacred
3d8b658 feat(sacred-remedy): Engine 2.1 - numerologia, ayurveda high-end, cooldown instant-light, corpus expandido
e47f07e docs(PR3): resposta à avaliação Engine 2.1 + deprecations + ayurveda 20/20
edd9edb feat(sacred-remedy): testes Engine 2.1 + themes + Nakshatra->klesha
6138ad5 feat(engine-2.1): P0 unificar engines, P1 numerologia completa, P2 Yoga Sutras 196
cfeb300 feat(sacred-remedy): Engine 2.1 Premium - Ayurveda season/hour, sleep/routine, corpus themes, testes integração
9ec836a fix: ESLint react-hooks/exhaustive-deps e prebuild ENOENT
47f3a7d feat(corpus): ampliar Puranas (400) e Upanishads (200) com tags completas
dd344c7 feat(instant-light): cooldown server-side autônomo (7 dias)
e26f006 feat(engine-2.1): pipeline integrado, Truth Package, input parser, cooldown e IA narrativa
4fc08b0 feat(input-parser): JSONs definitivos e stateScorer fear+love
ba415fe feat(engine-2.1): TruthPackage padrão, fallback confusion, doc estado real
649de2c docs: corrige resumo ESTADO_REAL - wrappers removidos, 5 criticos
9a3199f feat(sacredRemedy): Sutra Context Engine - verso anterior e bloco contextual
b8ac06e fix(build): prebuild ENOENT, tipos TS e doc PR3 atualizado

Pronto para merge em main.

sraphaz and others added 18 commits January 31, 2026 01:03
- lib/sacredRemedy: diagnosisEngine, sacredSelector, instantLightComposer
- dictionaries/sacred: yoga_sutras, puranas, upanishads com kleshaTargets e qualities
- dictionaries/remedyMatrix.json: 30 estados (klesha, samkhya, prática, pergunta)
- GET /api/instant-light: diagnosisPersonal/Universal, resposta estruturada
- lib/diagnosis + lib/instantLight: matriz de remédios integrada ao mock /api/darshan
- SymbolicMap, engines (Jyotish, HD, numerologia), readings, APIs map/reading
- Histórico: historyStorage, APIs history, HistoryModal
- Docs: SACRED_REMEDY_ENGINE, INSTANT_LIGHT_ENGINE, SYMBOLIC_MAP_ENGINE, etc.
- /api/darshan mantido intacto (motor paralelo)

Co-authored-by: Cursor <cursoragent@cursor.com>
…orpus expandido

- types: AyurvedicQuality completo (20 gunas), diagnosis excess/deficient
- diagnosisEngine: dosha → qualities (vata/pitta/kapha), prakriti no diagnóstico
- ayurvedaActionSelector: prática e alimento por qualidade (ruksha→oleação, chala→grounding)
- instantLightComposer: usa getActionsForQualities, retorna food na resposta
- remedyMatrix: 50 estados (burnout, solitude, grief, jealousy, numbness, hypercontrol, etc.)
- yoga_sutras.json: 60 entradas; puranas.json: 40; upanishads.json: 30 (kleshaTargets + qualities)
- docs: seção Engine 2.1 em SACRED_REMEDY_ENGINE.md

Co-authored-by: Cursor <cursoragent@cursor.com>
…merologia completa

P0 — Engine único:
- /api/darshan (mock) usa apenas @/lib/sacredRemedy
- lib/instantLight vira re-export/adaptador (compatibilidade)

P1 — Cooldown autônomo:
- getRecentInstantLightIds(userEmail), recordInstantLightUse(userEmail, { sacredId, stateKey })
- Tabela instant_light_uses (migração)
- Mock: se usuário logado, busca ids no servidor e registra uso

P2 — Numerologia completa:
- getSoulUrgeNumber(fullName) (vogais), getPersonalityNumber(fullName) (consoantes)
- SymbolicMap: soulUrgeNumber, personalityNumber

Docs: SACRED_REMEDY_ENGINE.md seção 8 e 9
Co-authored-by: Cursor <cursoragent@cursor.com>
- ENGINE_2.1_VALIDATION.md: status P0/P1/P2 implementados, módulos legados
- SACRED_REMEDY_ENGINE: matriz 50 estados, darshan mock usa sacredRemedy + cooldown
- lib/diagnosis e lib/sacred: comentários apontando engine oficial sacredRemedy

Co-authored-by: Cursor <cursoragent@cursor.com>
…ldown instant-light, corpus expandido

- diagnosisEngine: numerologyFromMap no ConsciousDiagnosis; seed em diagnosisPersonal influenciado por lifePath/soulUrge
- ayurvedaActionSelector: getActionsForQualitiesWithDosha (prioridade por dosha, até 3 práticas/alimentos)
- GET /api/instant-light: cooldown server-side com sessão (getRecentInstantLightIds + recordInstantLightUse)
- Corpus: Yoga Sutras 100+, Puranas 80+, Upanishads 50+
- docs: SACRED_REMEDY_ENGINE.md atualizado com seção Engine 2.1 concluído

Co-authored-by: Cursor <cursoragent@cursor.com>
…20/20

- docs/PR3_ENGINE_21_STATUS.md: mapeamento GAP #1-#5 (resolvido/parcial/pendente)
- lib/instantLight: @deprecated (usar lib/sacredRemedy)
- lib/sacred: @deprecated para Instant Light medicinal
- ayurvedaActionSelector: antídotos completos para shlakshna e sthula (20/20 gunas)

Co-authored-by: Cursor <cursoragent@cursor.com>
- Testes: diagnosisEngine, sacredSelector, ayurvedaActionSelector, instantLightComposer (31 testes)
- SacredCorpusEntry: themes?: string[] opcional para corpus premium
- diagnosisEngine: NAKSHATRA_KLESHA_TENDENCY + refinamento em diagnosisPersonal
- Docs: PR3_ENGINE_21_STATUS e SACRED_REMEDY_ENGINE atualizados

Co-authored-by: Cursor <cursoragent@cursor.com>
…ga Sutras 196

P0 - Unificar Instant Light:
- Remover lib/instantLight, lib/sacred, lib/diagnosis
- Motor unico: lib/sacredRemedy (api/instant-light + darshan mock)

P1 - Numerologia completa:
- numerologyEngine: lifePathNumber, expressionNumber, soulUrgeNumber, personalityNumber
- Usa lib/knowledge/numerology como fonte

P2 - Yoga Sutras completos:
- yoga_sutras_full.json 196 entradas (kleshaTargets, qualities, themes)
- sacredSelector usa yoga_sutras_full.json
- scripts/generate-yoga-sutras-full.js para gerar corpus

Docs: ENGINE_21_GAPS_FECHADOS.md, SACRED_REMEDY_ENGINE atualizado
Co-authored-by: Cursor <cursoragent@cursor.com>
…/routine, corpus themes, testes integração

- Ayurveda: prioridade por estação (getSeasonFromDate) e hora (getHourPeriodFromDate); orderByDosha usa season/hour; composer passa ao getFullActionsForQualitiesWithDosha
- Resposta Instant Light: campos sleep e routine (getFullActionsForQualitiesWithDosha); tipos InstantLightResponse atualizados
- Corpus: themes em todas as entradas de puranas (~106) e upanishads (~64); 25 novas entradas puranas + 10 upanishads
- Testes: integração GET /api/instant-light (anon, personal, cooldown sessão, food/sleep/routine); ayurveda season/hour (getSeasonFromDate, getHourPeriodFromDate, getActionsForQualitiesWithDosha com season/hour)
- Docs: SACRED_REMEDY_ENGINE (resposta food/sleep/routine, Ayurveda implementado, corpus com themes); PR3_ENGINE_21_STATUS (GAP #1 sem linha redundante); ENGINE_21_GAPS_FECHADOS
- Export: getSeasonFromDate, getHourPeriodFromDate em lib/sacredRemedy/index

Testes: 160 passando (20 suites). Build: validar localmente (npm run build).
Co-authored-by: Cursor <cursoragent@cursor.com>
- app/config/page.tsx: save useCallback usa header inline (X-Config-Key) em vez de headers() para evitar dep faltando
- app/monitor/page.tsx: fetchData usa objeto local de headers; remove headers() nao usado
- app/page.tsx: useEffect inclui creditsPerRevelation no array de dependencias
- package.json: prebuild ignora ENOENT quando pasta build nao existe (evita falha no build)

Co-authored-by: Cursor <cursoragent@cursor.com>
…etas

- Puranas: 106 -> 400 entradas; corrigir IDs duplicados e klesha em BP.nature1
- Upanishads: 62 -> 200 entradas; todas com kleshaTargets, qualities, themes
- Script scripts/expand-sacred-corpus.js para expansão futura
- docs/ENGINE_21_PREMIUM_STATUS.md: P2 corpus marcado completo (796 entradas)

Co-authored-by: Cursor <cursoragent@cursor.com>
- historyStorage: getRecentInstantLightIds aceita sinceDays (7 dias)
- route /api/instant-light: preenche recentSacredIds/recentStateKeys e grava uso para sessão
- Testes de integração para modo anônimo, pessoal e anti-repetição

Co-authored-by: Cursor <cursoragent@cursor.com>
…oldown e IA narrativa

- Tipos: UserRequestContext, DarshanTruthPackage (lib/core)
- Input offline: normalizeInput, intentParser (multi-eixo), stateScorer; dicionários inputNormalization/Verbs/Themes/Emotions/Questions
- instant-light: retorna DarshanTruthPackage; recebe userText/question/theme; parseIntent + pickBestState; cooldown via historyAdapter
- instantLightComposer: retorna DarshanTruthPackage (diagnosis, sacred, practice.steps, food.do, question.text); theme, questionType, inputConfidence
- historyAdapter: getRecentSacredIds, getRecentStateKeys, recordInstantLight (cooldown server-side)
- sacredSelector: balanceamento de corpora (evita repetir mesmo corpus)
- IA: narrativeGateway + POST /api/ai/expand (expansão narrativa com guardrails)
- darshan route: usa historyAdapter no mock; compatível com practice/food/question em objeto
- Script validateSacredCorpus.ts; exports em lib/input e lib/ai
- Testes atualizados (instant-light, composer, intentParser)

Co-authored-by: Cursor <cursoragent@cursor.com>
- inputNormalization: tava, mds, cê, aff→frustração, mano/tipo vazio
- inputVerbs: feel/seek/fear/conflict/reflect (remove want)
- inputThemes: general com keywords; love (crush, ex, apego); career (grana, projeto)
- inputQuestions: frases do prompt (como lidar, até quando, etc)
- inputEmotions: formato stateKey→keywords (anxiety, burnout, grief, solitude, emotional_attachment, relational_insecurity, lack_of_purpose, etc)
- intentParser: aceita ambos formatos de inputEmotions (array ou {keywords,stateKeys}); theme general no matching; VerbClassKey sem want
- stateScorer: peso fear+love para emotional_attachment/relational_insecurity/anxiety

Co-authored-by: Cursor <cursoragent@cursor.com>
… real

- DarshanTruthPackage: contemplativeQuestion, meta.generatedAt, food.avoid obrigatório, sacred.tags
- instantLightComposer: contemplativeQuestion + question (compat), meta.generatedAt, toFoodStruct com avoid
- narrativeGateway: usa contemplativeQuestion ?? question
- normalizeInput: comentário do pipeline (lowercase, acentos, abreviações, ruído)
- stateScorer: fallback confusion (0.3) quando sem candidatos
- instant-light: pipeline no comentário, themeFromIntent (tema do parser)
- Testes: contemplativeQuestion e meta.generatedAt em instant-light e composer; scoreState fallback confusion
- docs/ESTADO_REAL_PR3_ENGINE_21.md: estado real (tudo implementado, wrappers removidos)

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…textual

- sutraContextResolver: resolve prev/primary/next por indice
- DarshanTruthPackage e types: sacred.supporting + SacredContextBlock
- instantLightComposer: inclui verso anterior quando aplicavel
- testes sutraContextResolver e atualizacao diagnosisEngine
- docs SACRED_REMEDY_ENGINE atualizado

Co-authored-by: Cursor <cursoragent@cursor.com>
- prebuild: remove build apenas se existir (evita ENOENT)
- instant-light/route: parseTheme(themeParam ?? null)
- instantLightComposer: corpus purana, meta.generatedAt, guard meta
- ESTADO_REAL: linha Build com status npm run build

Co-authored-by: Cursor <cursoragent@cursor.com>
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@sraphaz sraphaz merged commit 4453ce5 into main Jan 31, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant