Dibuja mi repo

Ver un módulo

GET https://seerepo.com/api/v1/repos/:repo/world

Devuelve un módulo del mapa: qué hace, sus partes (cada una con su frase de una línea y, si se abre, la ruta para entrar), los módulos con los que se conecta y los servicios de fuera. Empieza en / y sigue las rutas. Nunca devuelve código.

En / dice además cómo corre el producto, leído de su código: un import que nunca se llama no cuenta, y un enlace para una persona no es una llamada. Lo que el repo no dice no se inventa.

Petición

Parámetro Dónde Descripción
repo path El id del repo, o owner/name con la barra escrita %2F.
path query La ruta del módulo, como /checkout. Por defecto, /.
curl "https://seerepo.com/api/v1/repos/6ad79fd8e89233277ded17c9/world?path=/checkout" \
  -H "Authorization: Bearer $SEEREPO_KEY"

Respuesta

Campo Tipo Descripción
data.repo object El repo: su id y su owner/name.
data.parent string|null El módulo de arriba; null en /.
data.cables[] object Los lazos entre sus partes: de dónde, a dónde, el verbo y cuántos.
data.path string La ruta del módulo.
data.name string Su nombre.
data.phrase string Qué hace, en una frase.
data.crumbs[] object Los módulos de arriba, desde /.
data.parts[].name string El nombre de una parte.
data.parts[].type string Qué es: world, screen, action, machine, scheduled, data, people, machines, clock…
data.parts[].phrase string Qué hace, en una línea. Vacío en un repo gratis, salvo en la parte que más cambia, cuya ficha viene entera.
data.parts[].path string Solo si se abre: la ruta para entrar.
data.parts[].file string Solo para una parte que es un archivo: su ruta.
data.tests.byUrl object Solo en /: las rutas que las pruebas llaman por su dirección, routes y called. Es un piso, y no es cobertura. No viene si no se leyeron rutas en el repo.
data.tests object Lo que importan los archivos de prueba aquí: files, named (importados directamente), reached (a través de esos) y parts[] con path, name, files, named y reached de cada módulo, los menos primero. En /, también folders: tests, los archivos de prueba frente al código por carpeta (thinnest[], con path, tests y files, los más flojos primero) y los que viven en una carpeta aparte (apart[]). No es cobertura: una prueba que solo llama a una URL no se sigue. No está en un repo gratis.
data.comesFrom[] / data.goesTo[] object Los módulos con los que se conecta, con el verbo (enters, uses, reads, writes to, calls, triggers: entra a, usa, lee, guarda en, llama a, dispara), cuántos lazos y su ruta.
data.services[] object Los servicios de fuera (Stripe, Supabase…), en /.
data.halfMade object Solo en /, y solo cuando más del ceiling % (30) de los archivos del mapa queda en cajas que no diseñó («+N más», lo que hay dentro, una caja por letras): files, under y share. El mapa está a medias: sus nombres son la parte diseñada. Llega con el próximo escaneo de cada repo.
data.runs object Solo en /: cómo corre el producto. Vacío en una librería, que no corre.
data.runs.traced boolean True si los servicios de cada proceso se siguieron por lo que de verdad nombra; false en un lenguaje que aún no lo tiene, donde van por archivos enteros.
data.runs.entries[] object Quién entra: personas, agentes, avisos o tareas programadas, con cuántos y a qué proceso.
data.runs.processes[] object Qué corre: su id, su tipo (web, app, worker, job, edge), el archivo que lo dice, su nombre y qué hace.
data.runs.homes[] object Dónde viven, si el repo lo dice: Docker, Vercel, Cloudflare…
data.runs.deploys[] object Qué los despliega, si el repo lo dice.
data.runs.services[] object Qué usa: su nombre, cómo se sabe (how), qué procesos lo usan (usedBy), el archivo y la línea, qué hace y solid: false si el código solo lo sugiere.
data.moduleRuns object Solo dentro de un módulo: quién entra (entries) y qué usa (uses), con la ruta de cada módulo vecino.

Ejemplo

{
  "status": "success",
  "data": {
    "repo": {
      "id": "6ad79fd8e89233277ded17c9",
      "fullName": "ana/tienda"
    },
    "path": "/checkout",
    "parent": "/",
    "name": "Checkout",
    "phrase": "Takes the payment.",
    "parts": [
      {
        "id": "pay",
        "name": "Pricing page",
        "type": "screen",
        "side": "product",
        "phrase": "Where the plans are picked.",
        "file": "app/pricing/page.tsx",
        "webRoute": "/pricing"
      },
      {
        "id": "hook",
        "name": "Stripe webhook",
        "type": "action",
        "side": "product",
        "phrase": "Turns the plan on once Stripe confirms.",
        "file": "app/api/stripe/route.ts"
      }
    ],
    "comesFrom": [
      {
        "world": "Engine",
        "verb": "uses",
        "n": 2,
        "path": "/engine"
      }
    ],
    "goesTo": [],
    "services": []
  }
}

Autenticación

Una clave de API como Authorization: Bearer sr_…. Ver Autenticación.

Errores

Código code Cuándo
400 bad_path La ruta no empieza por /.
402 plan_required Un módulo dentro de un repo del vistazo gratis: solo su primer nivel.
404 no_world No hay módulo en esa ruta, o el repo no tiene mapa (por ejemplo, SeeRepo no encontró código que pueda leer en él).

Además de los de todos los endpoints (401, 404, 429), ver Errores.