¿Qué hace Canvas?
canvas.n3wth.com alberga markdown interactivo más una previsualización renderizada, identificada por un slug público. Las vistas abiertas en la URL compartida se actualizan cuando se escribe la fuente.
Esta skill se comunica con la API del agente autenticada por HTTP. No requiere navegador. No contiene secretos en este archivo — el invocador proporciona CANVAS_AGENT_TOKEN y la URL base del sitio Convex desde su propio entorno.
Cuándo usar
- Crear una superficie de trabajo colaborativa que otro humano o agente pueda abrir
- Enviar markdown y devolver un enlace estable
- Actualizar un lienzo existente en su lugar para que las pestañas abiertas se vuelvan a renderizar
- Leer la fuente actual antes de editar
Variables de entorno que el invocador debe tener
| Variable | Significado |
|---|---|
CANVAS_SITE_URL | Base HTTP de Convex, p. ej. https://.convex.site (sin barra inclinada final) |
CANVAS_AGENT_TOKEN | Token compartido de tipo bearer, cuando el despliegue tiene uno configurado |
Los enlaces públicos compartidos siempre usan https://canvas.n3wth.com/c/{slug} (no el host del sitio Convex).
Autenticación: Si CANVAS_AGENT_TOKEN está configurado en el despliegue de Convex, cada ruta del agente a continuación requiere Authorization: Bearer $CANVAS_AGENT_TOKEN. Si el token no está configurado (local/desarrollo), las mismas rutas funcionan sin encabezado — configure el token en producción.
API
Autenticación en cada ruta mutante/lectura del agente:
Authorization: Bearer $CANVAS_AGENT_TOKEN
Content-Type: application/json
Descubrimiento (sin autenticación):
curl -sS "$CANVAS_SITE_URL/agent/v1"
1. Crear
curl -sS -X POST "$CANVAS_SITE_URL/agent/v1/canvases" \
-H "Authorization: Bearer $CANVAS_AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "Mi lienzo",
"source": "# Hola\n\nEsto es **markdown**."
}'
La respuesta incluye slug, url, version. Devuelva url al usuario — ese es el lienzo que abrirá en https://canvas.n3wth.com/c/{slug}.
2. Escribir fuente
curl -sS -X PUT "$CANVAS_SITE_URL/agent/v1/canvases/$SLUG/source" \
-H "Authorization: Bearer $CANVAS_AGENT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"source":"# Actualizado\n\nNuevo contenido aquí."}'
Las pestañas abiertas en https://canvas.n3wth.com/c/$SLUG se vuelven a renderizar sin recargar.
3. Leer fuente actual
curl -sS "$CANVAS_SITE_URL/agent/v1/canvases/$SLUG" \
-H "Authorization: Bearer $CANVAS_AGENT_TOKEN"
4. Listar
curl -sS "$CANVAS_SITE_URL/agent/v1/canvases" \
-H "Authorization: Bearer $CANVAS_AGENT_TOKEN"
Devuelve solo metadatos (sin los cuerpos de la fuente).
Flujo de trabajo del agente
- Confirme que
CANVAS_SITE_URLyCANVAS_AGENT_TOKENestán configurados en su entorno (nunca los confirme). POST /agent/v1/canvasescontitle/sourceopcionales.- Informe al humano/otro agente de la
urlde la respuesta (https://canvas.n3wth.com/c/{slug}). - Itere con
PUT .../sourcea medida que refine. GET .../canvases/{slug}si necesita la fuente actual antes de editar.
Errores
| Estado | Significado |
|---|---|
| 401 | Token bearer faltante o incorrecto (solo cuando el despliegue tiene configurado CANVAS_AGENT_TOKEN) |
| 404 | Slug desconocido |
| 400 | Validación (tamaño de fuente, JSON) |
Límite estricto de fuente: 512 KiB caracteres.
Fuera de alcance
Ninguna pizarra de dibujo, ningún producto de lienzo de terceros. Esta API es solo crear / escribir fuente / leer / listar.
Instalación portátil
Copie esta carpeta en skills.n3wth.com o en cualquier raíz de skills de agente doméstico como canvas/SKILL.md. Apunte los agentes a ella desde AGENTS.md. Contacto: [email protected]. GitHub: https://github.com/n3wth.