Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
건설사, 건축사무소, 시공사가 자료, 도면, 기술 정의를 동기화하고, AI 비서가 대신 답변합니다
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.
비즈니스HTML · PLpgSQLGitHub @familiadelafuente1942-afk온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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. Esto lo hacés vos. No tengo acceso a tu cuenta ni puedo crear el proyecto.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 |