Javis OS
Javis OS is an Agentic AI that assists entrepreneurs in business tasks, helping them grow their work.
AI translation
Asistente de compras con SAP simulado – Reto 3 Periferia IT Group
Translation pending
BusinessTypeScript · CSSGitHub @sebaslacoOnlineOwner 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
Agente conversacional de órdenes de compra – Prueba IA Periferia
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗Agente conversacional de órdenes de compra – Prueba IA Periferia (Reto 3).
Chat web en español que conversa con Claude, llama herramientas tipadas con zod y crea órdenes de compra en un SAP simulado, siempre con confirmación humana antes de crear la OC.
Link de prueba: https://agente-oc-periferia.vercel.app (público, sin clave de acceso) · Diseño y decisiones: SOLUCION.md
cp .env.example .env.local # escribe tu ANTHROPIC_API_KEY en .env.local
bun install && bun run dev # http://localhost:3000
Demo sin modelo de IA (no necesita clave): bun install && bun run demo.ts
| Ruta | Qué es |
|---|---|
app/page.tsx | Chat web: historial, tarjetas de herramientas (nombre, argumentos, resultado resumido), markdown y botones Confirmar / Cancelar. |
app/api/* | API HTTP: /api/chat, /api/sessions/:id, /api/health. |
src/agent/ | Ciclo del agente (loop.ts), registro de herramientas, sesiones, detección de confirmaciones y carga del prompt. |
src/llm/ | Interfaz propia del proveedor (adapter.ts) e implementación Anthropic (anthropic.ts). |
agent/prompt.md | System prompt (comportamiento). Se envía junto con src/knowledge/ordenes-compra.md. |
src/tools/oc.ts | Herramientas oc_leer_paquete, oc_validar, oc_construir_payload, oc_generar_evidencia, oc_crear (contrato PRD 6.2). |
src/domain/ | Reglas RC1–RC10, parseo, payload y evidencia como funciones puras. |
src/sap/adapter.ts, src/sap/mock.ts | Interfaz SapAdapter y SAP simulado sobre archivos (out/sap/ordenes.jsonl). |
src/knowledge/ordenes-compra.md | Conocimiento del proceso: reglas, maestros y qué hacer en cada excepción. |
demo.ts | Procesa sol-001 a sol-006 llamando las herramientas sin modelo de IA; verifica el resultado esperado. |
fixtures/reto-03/ | Maestros y casos del reto (sol-001 a sol-006), solo lectura. |
modulo/ | Bonus PRD 9.4: el agente empaquetado (agent.md, tools/oc.ts, skill/ordenes-compra/SKILL.md) sin depender del servidor. |
scripts/modulo.ts | Genera y verifica modulo/ desde las fuentes de la app. |
SOLUCION.md | Documento de la solución (arquitectura, controles, adaptador SAP, análisis). |
bun install
cp .env.example .env.local # y escribe tu ANTHROPIC_API_KEY en .env.local
.env.local está en .gitignore: la clave nunca se sube al repositorio.
bun run dev # abre http://localhost:3000
bun run demo.ts # demo sin IA: procesa sol-001 a sol-006 y verifica el resultado esperado
bun run typecheck # revisa tipos
bun run build # verifica modulo/ y compila como en producción
bun run modulo # regenera modulo/ desde agent/prompt.md y src/knowledge/
Salidas en out/ (configurable con OUT_DIR; en Vercel se usa /tmp/out): sap/ordenes.jsonl, control.csv, log.jsonl y, por caso, trazabilidad.json, aprobacion.txt y aprobacion.pdf.
modulo/)El agente empaquetado para otras plataformas de agentes (PRD 9.4), sin depender del servidor:
| Archivo | Contenido | Fuente única |
|---|---|---|
modulo/agent.md | Frontmatter (description, mode: primary, permission: { edit: deny, bash: deny }) + system prompt | agent/prompt.md |
modulo/tools/oc.ts | Re-exporta las herramientas (leer_paquete, validar, construir_payload, generar_evidencia, crear) | src/tools/oc.ts |
modulo/skill/ordenes-compra/SKILL.md | Frontmatter (name, description) + conocimiento del proceso | src/knowledge/ordenes-compra.md |
bun run modulo # regenera agent.md y SKILL.md tras cambiar el prompt o el conocimiento
bun run modulo --verificar # falla si modulo/ difiere de las fuentes
La verificación corre en bun run build (y por tanto en cada despliegue de Vercel) y en demo.ts: no puede quedar una copia divergente.
| Método | Ruta | Cuerpo / respuesta |
|---|---|---|
POST | /api/chat | { sessionId, message } → { sessionId, reply, toolCalls[], needsConfirmation } |
GET | /api/sessions/:id | { sessionId, creada, tokens, pendientes, historial[] } |
GET | /api/health | { ok, provider, model } (ok = hay clave configurada; nunca expone la clave) |
sessionId: 8 a 64 caracteres [A-Za-z0-9_-]; el chat lo genera y lo guarda en el navegador.toolCalls[]: { nombre, args, ok, resumen, resultado, nota? } por cada herramienta ejecutada en el turno.needsConfirmation: true cuando un caso quedó con confirmación humana pendiente. Para confirmar se envía un mensaje como «confirmo»; para cancelar, «cancelar».{ error: "No pude procesar la solicitud, intenta de nuevo" }; el detalle técnico queda solo en los logs del servidor.Ejemplo:
curl -s -X POST http://localhost:3000/api/chat -H 'content-type: application/json' \
-d '{"sessionId":"prueba-0001","message":"Procesa la solicitud sol-004"}'
Todas están en .env.example, sin valores.
| Variable | Obligatoria | Por defecto |
|---|---|---|
ANTHROPIC_API_KEY | Sí (solo para el chat; la demo no la usa) | — |
ANTHROPIC_MODEL | No | claude-sonnet-5-5 |
MAX_ITERACIONES | No | 25 |
MAX_TOKENS_SESION | No | 300000 |
LLM_TIMEOUT_MS | No | 60000 |
OUT_DIR | No | ./out (en Vercel /tmp/out) |
agente-oc-periferia.bun.lock y usa Bun para instalar.ANTHROPIC_API_KEY (y, si quieres, las variables opcionales de la tabla anterior).main publica una nueva versión automáticamente.En Vercel el disco es de solo lectura: las salidas van a
/tmp/outy se pierden cuando la función se recicla. Es suficiente para la demo; en producción se reemplaza por un adaptador SAP real.