Skip to content

Cespial/tribai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

316 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tribai.co
trib·ai·.co = tributaria + AI + Colombia

tribai — Plataforma Tributaria IA de Colombia

La plataforma tributaria mas completa de Colombia. 40 calculadoras fiscales, los 1,294 articulos del Estatuto Tributario (ET) indexados y navegables, asistente IA con RAG avanzado de 12 modulos sobre ~36,000 vectores, doctrina DIAN, jurisprudencia, decretos, resoluciones, leyes, calendario fiscal 2026, indicadores economicos, guias interactivas, glosario tributario, sistema de planificacion fiscal y herramientas de productividad profesional.

Produccion: superapp-tributaria-colombia.vercel.app


Indice


Stack Tecnologico

Capa Tecnologia Version
Framework Next.js (App Router, Turbopack) 16.1.6
UI React 19.2.3
Estilos Tailwind CSS v4 (CSS-first, @theme inline) 4.x
Lenguaje TypeScript (strict mode) 5.x
IA — LLM Claude Sonnet 4.5 via Vercel AI SDK @ai-sdk/anthropic 3.0.44
IA — Query rewrite Claude Haiku 4.5 claude-haiku-4-5-20251001
IA — Fallback OpenAI GPT-4o @ai-sdk/openai 3.0.33
IA — Embeddings multilingual-e5-large (1024d) Pinecone Inference
Vector DB Pinecone (7 namespaces, ~36,000 vectores) SDK 7.x
Auth Clerk @clerk/nextjs 7.0.4
Pagos Stripe 20.4.1
KV / Rate Limit Vercel KV (Redis) @vercel/kv 3.0.0
Graficas Recharts 3.7
Grafos react-force-graph-2d + Cytoscape + graphology
Markdown react-markdown + remark-gfm 10.1.0
Sanitizacion isomorphic-dompurify 3.0.0
Precision financiera decimal.js 10.6.0
Validacion Zod v4 4.3.6
Documentos pdf-parse + mammoth (DOCX) + xlsx
Iconos lucide-react 0.564.0
Temas next-themes (dark mode) 0.4.6
Analytics Vercel Analytics 1.6.1
PWA Service Worker + manifest.json
iOS SwiftUI (Xcode, Swift Package Manager)
E2E Playwright 1.58.2
Deploy Vercel (auto-deploy on push to main)

46 dependencias de produccion, 10 de desarrollo.


Asistente IA — Pipeline RAG

Pipeline RAG de 12 modulos con recuperacion multi-hop en 7 namespaces, confidence scoring, deteccion de contradicciones, formato dictamen auditado y preferencias de tono.

Flujo del Pipeline (8 etapas)

Query del usuario
    |
[0] Cache Check — LRU (500 entries, 24h TTL, normalized key)
    | (miss)
[1] Query Enhancement (Haiku 4.5)
    |-- Early-exit: queries directas (Art. X) saltan LLM calls (<100ms)
    |-- Rewrite: reformula con terminologia legal colombiana
    |-- HyDE: genera respuesta hipotetica para embedding
    |-- Decomposition: descompone queries complejas en sub-queries
    |-- Query expansion: sinonimos y terminos legales
    |
[2] Query Routing (namespace-router.ts)
    |-- classifyQueryType: factual | comparative | procedural | temporal | doctrina | sanctions
    |-- getQueryRoutingConfig: topK, maxReranked, namespaces dinamicos por tipo
    |-- Detect article slugs para multi-hop
    |
[3] Retrieval (Pinecone — 7 namespaces)
    |-- Ronda 1: ET (namespace default) — topK: 20, threshold: 0.28
    |-- Ronda 1b: 6 namespaces externos — topK: 15, umbrales especificos
    |-- Ronda 2 (Multi-hop): busca fuentes que citen articulos recuperados
    |-- Speculative retrieval: threshold 0.80 para fast-path
    |-- Cross-namespace normalization (min-max scaling)
    |
[4] Heuristic Reranking (2 pipelines paralelos)
    |-- ET Reranking: chunk_type boost, article mention, title overlap, derogated penalty
    |-- Multi-Source Reranking: PageRank, community, doctrina vigente, sentencia SU/C
    |
[5] Context Assembly
    |-- Sibling retrieval: todos los chunks del mismo articulo
    |-- Token budget: 13,000 tokens max
    |-- Namespace diversity: round-robin + greedy fill
    |
[6] Evidence Check (heuristic, <5ms)
    |-- Confidence: high (>= 0.75 + 3 sources) | medium (>= 0.55) | low
    |-- Contradiction detection: derogated+vigente conflicts
    |-- Namespace contribution tracking
    |
[7] Prompt Building
    |-- System prompt con constantes 2026 + tone preset inyectado
    |-- 40 sugerencias de calculadoras (dinamicas por keyword)
    |-- Contexto RAG en XML: <context>, <evidence>, <contradiction_warning>
    |-- <obsolete_norms> block: normas derogadas
    |
[8] Streaming Response (Sonnet 4.5)
    |-- Metadata on finish: sources, ragMetadata, timestamp
    |-- smoothStream (10ms delay, word chunking)
    |-- Multi-provider fallback: Anthropic -> OpenAI

Configuracion RAG

topK: 20                      similarityThreshold: 0.28
maxContextTokens: 13,000      maxRerankedResults: 10
useHyDE: true                 useQueryExpansion: true
useSiblingRetrieval: true      useMultiNamespace: true
speculativeThreshold: 0.80     externalSourceBudgetRatio: 0.30

Namespaces: "", doctrina, jurisprudencia, decretos, resoluciones, leyes, procedimientos
Embedding: multilingual-e5-large (1024d, cache 2,000 entries)

Metricas RAG (Post v3.1 Sprint)

Metrica Valor Target
P@5 adj 0.884 >= 0.85
Recall@5 0.558 >= 0.55
MRR 0.383 >= 0.38
Completeness 0.913 >= 0.90
Ext Src Retrieved 0.993 >= 0.99
Ext Src in Context 0.886 >= 0.88
Abstention Quality 0.574 >= 0.57
Avg Latency 1,094ms <= 1,200
P95 Latency 1,549ms <= 1,600
Complex P@5 0.290 >= 0.29

Modos de Respuesta

Modo LLM Descripcion
Rapido Haiku 4.5 Respuestas agiles, sin deep retrieval
Profundo Sonnet 4.5 Analisis completo con RAG + Chain of Thought
Agente Opus 4.6 + herramientas Investigacion agentica multi-step

Tonos de Respuesta (Phase 3 — User Preferences)

Tono Descripcion
Profesional Formal, terminologia tecnica precisa, citacion completa
Didactico Paso a paso, ejemplos practicos, analogias claras
Tecnico Conciso, solo citas normativas y tablas numericas
Ejecutivo Bullet points, resumen arriba, max 2 parrafos

40 Calculadoras Tributarias

Categoria Calculadoras
Renta (11) Renta PN, Renta PJ, Dividendos PN, Dividendos PJ, Anticipo de Renta, Beneficio Auditoria, Descuentos Tributarios, Zonas Francas, Comparador Regimenes, Residencia Fiscal, Limites de Beneficios
Laboral (9) Nomina Completa, Comparador Contratacion, Seguridad Social, Retencion Salarios Proc. 1, Liquidacion Laboral, Horas Extras, Licencia Maternidad/Paternidad, Pension, Utilidades Gravadas
Patrimonio (4) Impuesto al Patrimonio, Ganancias Ocasionales (Inmuebles), Herencias y Donaciones, Comparacion Patrimonial
Sanciones (3) Extemporaneidad, Sanciones Ampliadas, Intereses Moratorios DIAN
IVA (2) Referencia IVA, Impuesto al Consumo
Otros (11) Conversor UVT, GMF (4x1000), Timbre, ICA Municipal, Ganancias Loterias, Depreciacion Fiscal, Debo Declarar?, SIMPLE (RST), Descuento Exterior

Top 5 destacadas: Retencion en la Fuente, Renta PN, Comparador Contratacion, Debo Declarar?, Nomina Completa.

Cada calculadora incluye: articulos del ET vinculados, badges ("Actualizado 2026", "Incluye reforma", "Nuevo"), calculadoras relacionadas, tags de busqueda e intents para el command palette.


Modulos de Referencia

Modulo Ruta Descripcion
Calendario Tributario 2026 /calendario Vencimientos con filtros por obligacion y digito NIT, integracion calendario personal (ICS)
Tabla de Retencion /tablas/retencion Conceptos, bases y tarifas de retencion con calculadora inline
Indicadores Economicos /indicadores UVT, SMLMV, inflacion, tasa de usura con graficas historicas (Recharts)
Glosario Tributario /glosario Terminos clave del derecho tributario colombiano A-Z
Doctrina DIAN /doctrina Conceptos y oficios curados de la DIAN
Novedades Normativas /novedades Timeline de cambios legislativos y reformas tributarias
Guias Interactivas /guias Arboles de decision para procesos tributarios comunes
Declaracion de Renta /declaracion-renta Wizard de planificacion fiscal PN
Declaracion Renta PJ /declaracion-renta-juridicas Wizard de planificacion fiscal PJ
Planes y Precios /planes Suscripciones con Stripe

Explorador del Estatuto Tributario

  • 1,294 articulos del ET navegables con SSG (build-time)
  • Busqueda por numero, titulo o contenido
  • Clasificacion por 7 libros y titulos
  • Comparador de articulos (diff entre versiones)
  • Knowledge graph interactivo con 540 nodos (react-force-graph-2d)
  • Metricas por articulo: PageRank, community detection (Louvain), degree centrality
  • Dashboard analitico con estadisticas del corpus
  • Sistema de favoritos con notas y workspaces de productividad
  • Cross-references bidireccionales entre articulos
  • Concordancias: DUR 1625, Resolucion Unica, CDIs

Sistema de Chat — Workspace Profesional

Funcionalidades Core (P0)

  • Sidebar workspace con historial de conversaciones
  • Busqueda full-text con trigrams + substring matching
  • Mobile drawer responsivo
  • Conversation header con titulo editable, metadatos y badges
  • Separadores temporales entre mensajes (>30 min gap)
  • URL deep-linking (?conv=<id>)
  • Panel de evidencia RAG (confidence + pipeline details)
  • Lead capture funnel (3 free → lead → 8 free → auth)

Funcionalidades Avanzadas (10-Phase Plan)

Fase Feature Descripcion
1 Cmd+K Unificado Command palette federado con 4 fuentes: navegacion, conversaciones, 40 calculadoras, 1,294 articulos. Filtros: art:, #, mode:
2 Starter Packs 5 packs de prompts por categoria (Renta PN, IVA, Retencion, Planificacion, Litigio) en el empty state
3 User Preferences + Tono Preferencias persistentes (localStorage) con 4 tonos inyectados en system prompt
4 ChatContainer Decomp Monolito de 1,265 lineas reducido a 681 extrayendo 8 modulos
5 Cmd+F In-Conversation Busqueda dentro de mensajes con highlighting, conteo de matches, navegacion
6 Keyboard Navigation j/k mensajes, n nuevo chat, / focus composer
7 Share Conversation Export markdown con Web Share API, fallback clipboard
8 Pinned Messages Panel colapsable de mensajes fijados con scroll-to-message
9 Auto-Summary Resumen heuristico: articulos citados, terminos fiscales, montos, tipo persona
10 Batch Actions Multi-select en sidebar con archivar/eliminar masivo

Export

  • PDF — HTML formateado con print dialog
  • JSON — Datos crudos de la conversacion
  • CSV — Resultados de simulacion o chat plano
  • Clipboard — Texto completo
  • Share — Markdown con Web Share API

App Nativa iOS (SwiftUI)

  • 40 calculadoras portadas a SwiftUI nativo
  • Explorador del Estatuto Tributario offline
  • Chat RAG conectado al backend
  • Navegacion con 5 tabs (Home, Calculadoras, ET, Chat, Mas)
  • 8 features de contenido (calendario, glosario, indicadores, doctrina, guias, novedades, favoritos, tablas)
  • Widget de escritorio
  • Screenshots para App Store

Normograma DIAN

Modulo independiente de scraping y gestion del marco regulatorio colombiano.

  • Scraper de normativa DIAN
  • Clasificacion de vigencia con IA
  • Concordancias: DUR 1625, Resolucion Unica DIAN, CDIs
  • Export a Excel completo
  • Actualizaciones semanales automatizadas (GitHub Actions)
  • 17 scripts de procesamiento (Python)

Arquitectura de Archivos

tribai/
|-- src/                                    # 450 archivos TypeScript
|   |-- app/                                # 67 paginas (App Router)
|   |   |-- api/chat/route.ts               # Streaming RAG chat endpoint
|   |   |-- api/chat/agent/route.ts         # Agent mode endpoint (Opus + tools)
|   |   |-- api/declaracion/                # Declaracion de renta endpoints
|   |   |-- api/health/route.ts             # Health check + circuit breaker
|   |   |-- api/feedback/route.ts           # User feedback endpoint
|   |   |-- api/documents/route.ts          # Document upload + parsing
|   |   |-- articulo/[slug]/page.tsx        # 1,294 articulos SSG
|   |   |-- calculadoras/                   # 40 calculadoras (client components)
|   |   |-- asistente/page.tsx              # Chat IA standalone
|   |   |-- planificacion/page.tsx          # Tax planning workspace
|   |   `-- ...                             # 18 modulos de referencia
|   |
|   |-- components/                         # 206 componentes en 24 directorios
|   |   |-- chat/                           # Chat container, bubbles, citations
|   |   |   |-- canvas/                     # Header, toolbar, empty-state, simulation
|   |   |   |-- sidebar/                    # Workspace sidebar, groups, items, actions
|   |   |   |-- hooks/                      # useKeyboardNavigation
|   |   |   |-- conversation-search.tsx     # Cmd+F in-conversation
|   |   |   |-- pinned-messages-panel.tsx   # Pinned messages
|   |   |   `-- preferences-panel.tsx       # User preferences slide-out
|   |   |-- calculators/                    # Cards, results, inputs, charts
|   |   |-- article/                        # Content, header, sidebar, timeline
|   |   |-- explorer/                       # Grid, filters, search, graph
|   |   |-- dashboard/                      # Stats, charts, tables
|   |   |-- workspace/                      # Bookmarks, notes, productivity
|   |   |-- landing/                        # Hero, sections, social proof
|   |   |-- auth/                           # Sign-in, sign-up, gates
|   |   `-- ui/                             # Reveal, skeleton, spinner, toast, command-palette
|   |
|   |-- config/                             # 24 archivos de datos estaticos
|   |   |-- calculators-catalog.ts          # 40 calculadoras con metadata
|   |   |-- starter-packs.ts               # 5 packs de prompts
|   |   |-- calendar-data.ts               # Calendario fiscal 2026
|   |   |-- glosario-data.ts               # Glosario A-Z
|   |   |-- guias-data.ts                  # Arboles de decision
|   |   |-- tax-data*.ts                   # UVT, tarifas, retencion
|   |   |-- constants.ts                   # RAG config, Pinecone host
|   |   `-- obsolete-norms.ts              # Normas derogadas
|   |
|   |-- lib/                                # 162 modulos en 32 subdirectorios
|   |   |-- rag/                            # Pipeline RAG (12 modulos)
|   |   |   |-- pipeline.ts                 # Orchestrador master
|   |   |   |-- query-enhancer.ts           # Rewrite + HyDE + decompose
|   |   |   |-- namespace-router.ts         # Query classification + routing
|   |   |   |-- retriever.ts               # Multi-namespace + multi-hop
|   |   |   |-- graph-retriever.ts          # PageRank + community boost
|   |   |   |-- reranker.ts                # Heuristic scoring
|   |   |   |-- context-assembler.ts        # Sibling + token budget + diversity
|   |   |   |-- evidence-checker.ts         # Confidence + contradictions
|   |   |   |-- prompt-builder.ts           # XML context + tone injection
|   |   |   |-- bm25-search.ts             # Lexical fallback search
|   |   |   |-- keyword-retriever.ts        # Keyword fallback
|   |   |   `-- current-regime-choice.ts    # Regime selection logic
|   |   |-- chat/                           # Chat utilities (12 modulos)
|   |   |   |-- system-prompt.ts            # Dynamic system prompt + tone presets
|   |   |   |-- export-helpers.ts           # PDF, CSV, JSON, clipboard
|   |   |   |-- share-conversation.ts       # Web Share API + markdown
|   |   |   |-- conversation-summary.ts     # Auto-summary heuristic
|   |   |   |-- conversation-metadata.ts    # Meta extraction + search index
|   |   |   |-- history-storage.ts          # localStorage (30 conv, 80 msgs)
|   |   |   |-- search-engine.ts            # Full-text search (trigrams)
|   |   |   |-- session-memory.ts           # 5-turn context
|   |   |   |-- message-content.ts          # Text extraction + follow-up parsing
|   |   |   |-- calculator-context.ts       # Calculator suggestions by keyword
|   |   |   |-- chat-error.ts              # Error classification
|   |   |   `-- timestamps.ts              # Message timestamp utils
|   |   |-- cache/                          # LRU response cache (500 entries)
|   |   |-- pinecone/                       # Client singleton + embedder (2K cache)
|   |   |-- ai/                             # Provider fallback logic
|   |   |-- api/                            # Rate limiter + Zod validation
|   |   |-- auth/                           # Plans, query counters, free-use gates
|   |   |-- command-palette/                # Federated search sources
|   |   `-- ...                             # export, documents, calculators, utils
|   |
|   |-- types/                              # Type definitions
|   |   |-- rag.ts                          # EnhancedQuery, SourceCitation, RAGConfig
|   |   |-- chat-history.ts                 # ChatConversation, ChatMessageFeedback
|   |   |-- user-preferences.ts             # TonePreset, UserPreferences
|   |   `-- pinecone.ts                     # ChunkMetadata (14+ campos)
|   |
|   |-- hooks/                              # Custom React hooks
|   |   |-- useChatHistory.ts               # useSyncExternalStore for conversations
|   |   |-- useUserPreferences.ts           # Persistent user preferences
|   |   `-- useDocumentUpload.ts            # File upload hook
|   |
|   `-- contexts/                           # React contexts
|       `-- chat-layout-context.tsx         # Sidebar width, collapsed, mobile drawer
|
|-- public/data/                            # Static data assets
|   |-- articles/                           # 1,294 JSON individuales
|   |-- articles-index.json                 # 443 KB — indice rapido
|   |-- articles-index.enriched.json        # 1.4 MB — indice con metadata
|   |-- bm25-index.json                     # 1.3 MB — indice lexical
|   |-- graph-data.json                     # 376 KB — 540 nodos
|   |-- graph-metrics.json                  # 292 KB — PageRank + communities
|   |-- dashboard-stats.json                # Estadisticas del ET
|   `-- explorer-facets.json                # Facetas de filtros
|
|-- ios/                                    # App nativa SwiftUI
|   |-- SuperAppTributaria/                 # Source code (16 subdirs)
|   |-- SuperAppTributariaTests/            # Unit tests
|   |-- SuperAppTributariaUITests/          # UI tests
|   |-- SuperAppTributariaWidget/           # Widget
|   `-- Package.swift                       # SPM manifest
|
|-- normograma/                             # Normograma DIAN
|   |-- data/                               # Datos regulatorios (11 subdirs)
|   |-- scripts/                            # 17 scripts Python
|   `-- .github/workflows/                  # Actualizacion semanal
|
|-- eval/                                   # Suite de evaluacion RAG
|   |-- run_eval.ts                         # 350 queries, 17 metricas
|   |-- smoke-test.ts                       # 15 smoke tests (pass/fail)
|   |-- dataset.json                        # 300 standard + 40 complex
|   |-- baseline-results.json               # Resultados de referencia
|   |-- experiments/config-grid.ts          # Grid para sweeps
|   |-- metrics/                            # retrieval, answer-quality, faithfulness
|   `-- results/                            # Historial por timestamp
|
|-- tests/                                  # 46 archivos de test
|   |-- unit/                               # 34 unit tests
|   |-- integration/                        # 3 integration tests
|   |-- security/                           # 4 security tests
|   |-- e2e/                                # 5 Playwright specs
|   |-- load/                               # k6 load test
|   `-- helpers/                            # Mocks, fixtures
|
|-- scripts/                                # 8 build scripts
|   |-- orchestrator.ts                     # Master pipeline: scrape -> embed -> upsert
|   |-- build-analytics-datasets.mjs        # Graph, stats, facets
|   |-- build-bm25-index.mjs               # BM25 inverted index
|   `-- verify-data-integrity.mjs           # Data validation
|
|-- docs/                                   # 7 documentos operativos
|   |-- RAG-PERFECTION-PLAN.md
|   |-- RAG-V3-OPERATIONAL-PLAN.md
|   |-- V3.1-SPRINT-OPERATIONAL-PLAN.md
|   |-- release-runbook.md
|   `-- vercel-environment-matrix.md
|
`-- .github/workflows/ci.yml               # CI: lint + typecheck + build + test + e2e

Base de Conocimiento

~36,000 vectores en Pinecone distribuidos en 7 namespaces:

Namespace Fuente Documentos Chunks Threshold
"" (default) Estatuto Tributario 1,294 articulos ~5,000 0.28
doctrina DIAN + CIJUF ~15,495 conceptos ~30,000 0.20
jurisprudencia Corte Constitucional ~175 sentencias ~700 0.20
decretos DUR 1625/2016 (SUIN) ~2,793 articulos ~3,500 0.23
resoluciones DIAN Resoluciones ~626 resoluciones ~1,300 0.23
leyes Senado (Leyes tributarias) ~8 leyes ~60 0.23
procedimientos Procedimientos DIAN Var. Var. 0.22

Esquema de Chunk (Pinecone metadata)

id_articulo, titulo, libro, estado, chunk_type, chunk_index,
total_chunks, complexity_score, total_mods, has_normas, vigente,
cross_references, pagerank, community, degree, articulos_slugs

Pipeline de Datos (scripts/)

Scraping (7 scrapers) -> Parsing (3 parsers) -> Chunking (512 tokens, legal-aware)
-> Metadata enrichment (PageRank, community, cross-refs) -> Embedding (multilingual-e5-large)
-> Batch upsert (96/batch, 16s delay, exponential backoff) -> Validation

Evaluacion RAG

Comandos

npm run smoke-test   # 15 tests, ~20s, pass/fail con exit code
npm run eval         # 350 queries, 17 metricas, ~6 min
npm run eval:judge   # + LLM Judge: 30 sample con Haiku evaluador + Sonnet respuestas (~15 min)

Dataset

  • 350 queries (300 standard + 40 complejas + 10 derogation)
  • Categorias: factual, comparative, procedural, temporal, edge_case, negative, sanctions, doctrina, multi_source
  • Dificultad: easy (28), medium (99), hard (223)

17 Metricas

Metrica Descripcion
P@5 adj Precision@5 ajustada
Recall@5 Cobertura de articulos esperados
MRR Mean Reciprocal Rank
NDCG@5 Normalized DCG
Citation Accuracy Articulos citados correctos
Source Presence Fuentes esperadas presentes
Contains Expected Contenido esperado presente
Error Rate Tasa de errores
Ext Src Retrieved Fuentes externas recuperadas
Ext Src in Context Fuentes externas en contexto
Abstention Quality Calidad de abstencion
Completeness Cobertura de aspectos
Avg Latency Latencia promedio (ms)
P95 Latency Percentil 95 latencia
Complex P@5 Precision para queries complejas
Complex Completeness Completeness queries complejas
Judge Composite* LLM Judge: faithfulness + completeness + relevance + citation + clarity

Testing

46 archivos de test en 5 categorias:

Tipo Archivos Herramienta
Unit 34 Vitest / Node test runner
Integration 3 API route testing
Security 4 XSS, injection, rate-limit abuse, cron auth
E2E 5 Playwright (Chromium)
Load 1 k6

Cobertura de Unit Tests

  • Calculadoras: renta, patrimonio, ICA, dividendos, comparador, formato, popularidad, busqueda, URL state
  • RAG: evidence-checker, namespace-router, reranker, regime-choice, keyword-retriever, obsolete-norms, semantic-cache
  • Chat: session-memory, contextual-questions, error, message-content, search-engine, conversation-metadata, calculator-context
  • Calendario: ICS export, NIT parsing, status
  • API: rate-limiter, validation, feedback
  • Storage: history, productivity, anonymous-query-counter
  • Utils: data-integrity, comparison-diff, normalization

E2E Specs (Playwright)

  • article-navigation.spec.ts — Navegacion del ET
  • calculadora-flow.spec.ts — Flujo completo de calculadora
  • dark-mode.spec.ts — Toggle de tema
  • landing-page.spec.ts — Landing page load + sections
  • responsive-mobile.spec.ts — Layout mobile
npm test                        # Unit + security
npx playwright test             # E2E (requires build)
npm run smoke-test              # RAG smoke tests

CI/CD

GitHub Actions (.github/workflows/ci.yml)

3 jobs con concurrency control:

  1. Verify (30 min timeout)

    • npm run lint:strict — 0 warnings max
    • npm run typecheck — full TS validation
    • npm run build:ci — production build
  2. Test (10 min timeout)

    • npm test — unit + security tests
  3. E2E (20 min timeout, depends on Verify)

    • Install Playwright Chromium
    • npm run build:ci
    • npx playwright test

Deploy

Auto-deploy via Vercel en push a main. Cada PR genera preview deployment.


Desarrollo Local

git clone https://github.com/Cespial/tribai.git
cd tribai

npm install

cp .env.example .env.local
# Configurar variables requeridas (ver seccion abajo)

npm run dev          # Dev server con Turbopack (http://localhost:3000)

Comandos Utiles

npm run dev              # Dev server (Turbopack)
npm run build            # Production build (1,300+ paginas SSG)
npm run lint             # ESLint
npm run lint:strict      # Falla con warnings
npm run typecheck        # TypeScript check
npm run verify           # lint + typecheck + build

npm run smoke-test       # 15 smoke tests RAG
npm run eval             # 350 queries, 17 metricas
npm run eval:judge       # + LLM Judge

npm run data:build       # Rebuild analytics datasets
npm run data:verify      # Verificar integridad de datos

Variables de Entorno

Requeridas

Variable Descripcion
ANTHROPIC_API_KEY API key de Anthropic (Claude)
PINECONE_API_KEY API key de Pinecone
PINECONE_INDEX_NAME Nombre del indice (default: estatuto-tributario)

Opcionales — LLM

Variable Descripcion
CHAT_MODEL Modelo del chat (default: claude-sonnet-4-5-20250929)
OPENAI_API_KEY Fallback de enhancement/reranking
OPENAI_CHAT_MODEL Modelo OpenAI fallback (default: gpt-4o)

Opcionales — Auth y Pagos

Variable Descripcion
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY Clerk publishable key
CLERK_SECRET_KEY Clerk secret key
STRIPE_SECRET_KEY Stripe secret key
STRIPE_WEBHOOK_SECRET Stripe webhook secret
NEXT_PUBLIC_STRIPE_PRO_PRICE_ID Stripe price ID

Opcionales — Rate Limiting

Variable Descripcion
KV_REST_API_URL Vercel KV (Redis) URL
KV_REST_API_TOKEN Vercel KV token

Constantes Tributarias 2026

UVT 2026:               $52,374 COP (Resolucion DIAN)
SMLMV 2026:             $1,750,905 COP (Decreto 0025 de 2025)
Auxilio de transporte:   $249,095 COP (Decreto 1470 de 2025)
Tarifa renta PJ:         35% (Art. 240 ET)
Tarifa renta PN:         progresiva 0%-39% (Art. 241 ET)
IVA general:             19% (Art. 468 ET)
GMF:                     4x1000 (Art. 871 ET)
Reforma vigente:         Ley 2277 de 2022

Licencia

Proyecto privado. Todos los derechos reservados.

tribai.co — inplux

About

tribai.co — Plataforma tributaria IA de Colombia — 40 calculadoras fiscales, asistente RAG de 12 módulos sobre 36K vectores (ET 1,294 arts + doctrina DIAN + jurisprudencia + decretos), 4 tonos, Cmd+K federado, workspace profesional — Next.js 16 + Claude Sonnet 4.5 + Pinecone + Tailwind v4 + SwiftUI

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors