Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Avances, certificados, pedidos de materiales, planos y definiciones técnicas — sincronizados entre constructora, estudio de arquitectura y contratistas, con un asistente de IA que responde por vos.
Translation pending
BusinessHTML · PLpgSQLGitHub @familiadelafuente1942-afkOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Todo lo que sigue vive en carpetas nuevas. No se modifica ningún archivo de las cinco aplicaciones existentes. El único cambio que van a necesitar más adelante es apuntar a la base nueva, y eso se hace en una etapa posterior con tu autorización explícita. Esto lo hacés vos. No tengo acceso a tu cuenta ni puedo crear el proyecto.Read the full README ↗
Todo lo que sigue vive en carpetas nuevas. No se modifica ningún archivo de las cinco aplicaciones existentes. El único cambio que van a necesitar más adelante es apuntar a la base nueva, y eso se hace en una etapa posterior con tu autorización explícita.
etapa-a/
├── .env.example plantilla de variables
├── README.md este archivo
├── docs/
│ └── GEOGRAFIA.md de dónde salen los datos geográficos
├── scripts/
│ ├── cargar_geografia.mjs ingiere el dataset oficial
│ └── migrar_indexeddb.mjs sube tus prospectos actuales
└── supabase/
├── migrations/ se ejecutan en orden
│ ├── 001_extensiones_y_tipos.sql
│ ├── 002_geografia.sql
│ ├── 003_empresas.sql
│ ├── 004_misiones.sql
│ ├── 005_hallazgos_evidencias.sql
│ ├── 006_senales.sql
│ ├── 007_costos_presupuestos.sql
│ ├── 008_auditoria_aprobaciones.sql
│ ├── 009_funciones_triggers.sql
│ └── 010_rls.sql
├── seed/
│ └── 011_semillas.sql país, 24 provincias, configuración
├── rollback/
│ └── down_001 … down_011 uno por migración
└── tests/
└── rls_pruebas.sql 12 pruebas de seguridad y reglas
Esto lo hacés vos. No tengo acceso a tu cuenta ni puedo crear el proyecto.
supabase.com y creá una cuenta si no tenésconstruiaVITE_SUPABASE_URL y SUPABASE_URLanon public → VITE_SUPABASE_ANON_KEYservice_role secret → SUPABASE_SERVICE_ROLE_KEYservice_roleSalta toda la seguridad de RLS. Con ella se puede leer, modificar y borrar cualquier fila de cualquier tabla.
Authentication → Providers → Email: dejalo activado y desactivá "Enable email signups". Los usuarios los creás vos a mano desde Authentication → Users → Add user. Así nadie se registra por su cuenta.
En SQL Editor → New query, pegá y ejecutá uno por uno, en este orden. Cada archivo es una transacción: si algo falla, no queda a medias.
| # | Archivo | Qué crea | Si falla, revertir con |
|---|---|---|---|
| 1 | migrations/001_extensiones_y_tipos.sql | Extensiones y 8 tipos enum | rollback/down_001_... |
| 2 | migrations/002_geografia.sql | Jerarquía geográfica y denominadores | down_002_... |
| 3 | migrations/003_empresas.sql | Empresas, contactos, historial, obras | down_003_... |
| 4 | migrations/004_misiones.sql | Estrategias, misiones, config por tipo | down_004_... |
| 5 | migrations/005_hallazgos_evidencias.sql | Hallazgos y evidencias | down_005_... |
| 6 | migrations/006_senales.sql | Señales del Radar | down_006_... |
| 7 | migrations/007_costos_presupuestos.sql | Costos, precios, topes y vistas | down_007_... |
| 8 | migrations/008_auditoria_aprobaciones.sql | Auditoría, aprobaciones, interruptor | down_008_... |
| 9 | migrations/009_funciones_triggers.sql | Reglas, tomar_mision, vistas | down_009_... |
| 10 | migrations/010_rls.sql | Todas las políticas de seguridad | down_010_... |
| 11 | seed/011_semillas.sql | País, 24 provincias, configuración | down_011_... |
Para revertir varias: ejecutar los down_ en orden inverso. Para
deshacer todo: down_011 → down_010 → … → down_001.
Antes de empezar: Database → Backups → tomá una copia manual. Con el proyecto vacío no cuesta nada y te deja un punto de retorno limpio.
cd etapa-a
npm install @supabase/supabase-js
export SUPABASE_URL=https://xxxx.supabase.co
export SUPABASE_SERVICE_ROLE_KEY=eyJhb...
# Opción A · subconjunto verificado, para probar ya
node scripts/cargar_geografia.mjs --subconjunto
# Opción B · carga oficial completa (ver docs/GEOGRAFIA.md)
node scripts/cargar_geografia.mjs --dir ./datos-geo
Empezá por la A. Te deja el mapa funcionando en minutos con las zonas donde más vas a operar. La B la corrés cuando bajes los archivos oficiales.
Ejecutar supabase/tests/rls_pruebas.sql completo en el SQL Editor.
Las doce pruebas verifican:
| # | Qué comprueba |
|---|---|
| 1 | RLS activada en las 21 tablas |
| 2 | audit_logs no admite modificación ni borrado |
| 3 | El agente no puede cambiar la configuración del sistema |
| 4 | Un hallazgo sin evidencia no puede aceptarse |
| 5 | Con evidencia sí se acepta |
| 6 | Una evidencia sin URL ni identificador es rechazada |
| 7 | El Radar no puede vincular empresa sin hallazgo |
| 8 | El CUIT verificado es único |
| 9 | Los dominios genéricos no bloquean altas legítimas |
| 10 | Sin denominador, la cobertura es null y no un número |
| 11 | El interruptor de emergencia frena tomar_mision |
| 12 | Resumen de conteos |
Si alguna falla, no avances. Cada una corresponde a una regla que aprobaste.
Tus prospectos actuales viven en IndexedDB del navegador, en la tabla
prospectos, con el formato que veníamos usando.
| Campo actual | Destino |
|---|---|
empresa | empresas.nombre |
nombre | empresa_contactos.nombre |
rol | empresas.tipo |
mail | empresas.email |
tel | empresas.telefono |
web | empresas.web → genera dominio |
zona | se resuelve contra localidades |
dolor | empresas.observaciones |
estado | empresas.estado (equivalencia abajo) |
historial[] | empresa_historial |
Equivalencia de estados:
nuevo → no_investigada
contactado → investigada
reunión → calificada
propuesta → calificada
cerrado → cliente
perdido → descartada
construia-backup-AAAA-MM-DD.jsonnode scripts/migrar_indexeddb.mjs --archivo construia-backup-2026-08-05.json --simular--simularorigen_hallazgo_id = null y un asiento en
empresa_historial que dice que vino de la migraciónMarcá cada punto antes de dar la Etapa A por terminada.
service_role no aparece en ningún archivo del repositorioselect count(*) from provincias devuelve 24select * from mission_type_config devuelve 6 filasselect * from presupuestos muestra tope diario 2 y mensual 50docs/GEOGRAFIA.md da números razonablescobertura_pct da null donde no hay denominadortomar_misionPara que quede explícito:
La Etapa A deja la base lista y vacía. La primera misión se ejecuta en la Etapa I, de a una y con vos mirando.
| Pendiente | Bloquea |
|---|---|
| Crear el proyecto Supabase y pasarme las credenciales | Todo |
| Bajar los archivos oficiales de geografía | La carga completa; el subconjunto no |
| Padrones de IERIC y cámaras | El cálculo de cobertura |
| Dominio propio | Solo el envío de correo, más adelante |