@oficinaia/connector
v0.1.0
Published
Conector estándar OficinaIA: expone tu sitio Node/Next.js para que tu Webmaster IA pueda gestionarlo
Maintainers
Readme
@oficinaia/connector
Conecta tu sitio Node/Next.js con tu Webmaster IA de OficinaIA: instala el paquete, define cómo se leen y guardan tus páginas, y tu agente podrá gestionarlas (cambiar textos, secciones, imágenes, crear páginas) con verificación visual y backups, igual que en WordPress.
Implementa el contrato estándar v1: API /oficinaia/v1 con
token Bearer y contenido como bloques JSON tipados. Cero dependencias; funciona en
Next.js (App Router), Node 18+, Bun y Deno.
Instalación
npm install @oficinaia/connectorUso en Next.js (App Router)
app/api/oficinaia/v1/[[...ruta]]/route.ts:
import { crearConector } from "@oficinaia/connector";
import { db } from "@/lib/db"; // tu almacenamiento: Supabase, Prisma, lo que uses
const conector = crearConector({
token: process.env.OFICINAIA_TOKEN!, // te lo da la plataforma al conectar el sitio
sitio: { nombre: "Mi sitio", url: "https://misitio.com", stack: "nextjs" },
paginas: {
listar: () => db.paginas.listar(),
leer: (id) => db.paginas.leer(id),
crear: (datos) => db.paginas.crear(datos),
actualizar: (id, datos) => db.paginas.actualizar(id, datos),
borrar: (id) => db.paginas.borrar(id),
},
ajustes: {
leer: () => db.ajustes.leer(),
actualizar: (cambios) => db.ajustes.guardar(cambios),
},
publicar: async () => {
// revalidación ISR, webhook de rebuild, etc.
},
});
export const { GET, POST, PUT, PATCH, DELETE } = conector.handlers;En la plataforma OficinaIA registras el sitio con base
https://misitio.com/api/oficinaia/v1 y el mismo token. Listo: el Webmaster IA
ya puede gestionarlo.
Los callbacks que no definas simplemente no se declaran como capacidades: si por
ejemplo omites borrar, el agente nunca intentará borrar páginas en tu sitio.
Uso en Node/Bun/Deno (cualquier server con Request/Response)
import { crearConector } from "@oficinaia/connector";
const conector = crearConector({ /* …igual que arriba… */ });
// Bun / Deno / frameworks basados en fetch:
Bun.serve({ fetch: (req) => conector.manejar(req) });Para Express u otro server de Node clásico, monta un adaptador Request↔req/res o
usa createServerAdapter de @whatwg-node/server.
Modelo de contenido
Las páginas son listas de secciones { id, tipo, props } (hero, texto,
beneficios, stats, testimonios, precios, faq, cta, imagen, galeria, contacto,
personalizado). Tu front decide cómo renderizar cada tipo; el detalle de props
está en CONECTOR.md.
