npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@osrcmap/riesgo-punto

v0.2.1

Published

Para un punto del Perú: zonas críticas cercanas (INGEMMET) y avisos vigentes (SENAMHI) en una sola respuesta, con los cruces que importan y un mensaje listo para enviar. CLI agent-first.

Downloads

568

Readme

riesgo-punto

Para un punto del Perú, en una sola respuesta:

  • Zonas críticas y peligros cercanos del inventario del INGEMMET (peligros-pe).
  • Avisos del SENAMHI que cubren el punto, día por día, incluido el de posible activación de quebradas (avisos-pe).
  • Cruces: cuando un aviso de lluvia o de quebradas coincide con una zona crítica cercana que la lluvia puede activar.
  • Un mensaje corto listo para enviar por WhatsApp o SMS.

Es el núcleo para bots de alerta, paneles municipales y agentes durante El Niño 2026-2027.

Información de referencia, no una alerta propia. riesgo-punto no inventa niveles: solo combina y cita fuentes oficiales. No es una orden de evacuación. Ante una emergencia sigue a INDECI, SENAMHI y tu municipalidad.

Uso

npm i -g @osrcmap/riesgo-punto        # instala también peligros-pe y avisos-pe

riesgo-punto consultar --lat -4.654 --lon -79.8539
riesgo-punto consultar --lat -11.9437 --lon -76.7036 --radio 1000 --momento 2026-10-18T15:00-05:00
riesgo-punto doctor
📍 -4.654, -79.8539 · 17/10 10:00

⚠️ ATENCIÓN: hay aviso de lluvias del SENAMHI para esta zona y a 288 m hay una zona crítica por huaico (flujo de detritos, deslizamiento).

🌧️ Lluvias y huaicos
Aviso N° 421: Precipitaciones en la sierra norte y costa norte.
Hoy amarillo · mañana naranja · lun 19 amarillo.
Nivel naranja: prepárate y sigue las indicaciones de las autoridades.

⛰️ Zonas de peligro cerca (INGEMMET)
La más cercana, a 288 m: huaico (flujo de detritos, deslizamiento) en Pueblo Nuevo-Las Viudas, Montero.

🌡️ Otros avisos del SENAMHI: calor (rojo hoy).

Fuentes: SENAMHI e INGEMMET. No es una orden de evacuación: ante una emergencia sigue las indicaciones de INDECI y de tu municipalidad.

Ejecútalo desde el Perú. El SENAMHI no responde a servidores en el extranjero o en la nube. Fuera del Perú, consultar devuelve las zonas del INGEMMET y marca los avisos como no disponibles.

Respuesta (--json)

| Campo | Contenido | |---|---| | completo | true si ambas fuentes respondieron | | resumen | cruces, zonas críticas y peligros cercanos, avisos, nivel máximo en curso y próximo, si hay aviso de quebradas y cuáles avisos son de lluvia (avisos_de_lluvia). null si la fuente no respondió | | cruces[] | { tipo, descripcion, aviso, zonas[] } (ver abajo) | | mensaje | Texto corto en orden de importancia: coincidencias, lluvias y huaicos, zonas de peligro cercanas, los demás avisos en una línea, fuentes y aviso general | | peligros | Salida completa de peligros-pe cerca, o null | | avisos | Salida completa de avisos-pe punto, o null | | fuentes | { peligros, avisos }: { ok } o { ok: false, error: { code, message, hint } } |

Si una fuente falla, la respuesta sigue siendo útil pero explícita: su campo es null (nunca []), completo es false y el mensaje dice que no se puede afirmar que no haya avisos. Si fallan ambas, el error es FUENTES_NO_DISPONIBLES.

Cruces

| Tipo | Cuándo | |---|---| | activacion_quebradas_y_zona_critica | El punto está en una zona del aviso de posible activación de quebradas y hay una zona crítica por flujo (huaico) dentro del radio | | lluvia_y_zona_critica | El punto está en un aviso de lluvia (título con precipitación, lluvia, granizo, nevada, tormenta o chubasco) de nivel amarillo o mayor y hay una zona crítica por flujo, inundación, deslizamiento, caída o erosión dentro del radio |

Avisos de temperatura o viento no generan cruces. Los cruces son hechos verificables con sus fuentes, no un nivel de riesgo nuevo.

Para agentes

  • schema consultar da el JSON Schema de la entrada; --params @consulta.json en lugar de flags.
  • Errores: { "ok": false, "code", "error", "hint" }; salida 2 uso incorrecto, 1 fuentes o internos.
  • Ver SKILL.md.

Cómo funciona

riesgo-punto ejecuta peligros-pe y avisos-pe (dependencias npm) y valida su JSON contra el contrato que usa: si una pieza cambia de forma, esa fuente se marca FORMATO_INESPERADO en vez de adivinar. Variables RIESGO_PUNTO_PELIGROS_CLI / RIESGO_PUNTO_AVISOS_CLI permiten usar otras instalaciones, y RIESGO_PUNTO_TIMEOUT_MS acota la espera (por defecto 30 s para peligros-pe y 150 s para avisos-pe).

Desarrollo

bun install
bun test                   # fuentes reales capturadas + CLIs falsos para cada falla
bun run typecheck && bun run lint
bun run build && node scripts/humo.mjs

Bloques de cligentic (MIT) en src/agent, src/foundation y src/platform.

Licencia

Código: MIT. Los datos son del SENAMHI y del INGEMMET; atribúyelos siempre a su fuente.