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

openplantif

v1.0.0

Published

Open standard for renewable energy plant data exchange — JSON Schema + SDK + CLI

Downloads

80

Readme

Zelo Platform — AI Agent for Renewable Energy Projects

v1.0.0 · Spain · Node.js · React · Supabase · Claude API

End-to-end platform for site analysis, permitting, engineering design, and financial modelling of utility-scale solar PV, wind, and BESS projects in Spain.


Overview

Zelo is a multi-agent platform that automates the full development pipeline for renewable energy projects — from raw land identification to bankable financial models. It runs on a Node.js / Express API backend, a React frontend (CDN, no build step), and a Supabase PostgreSQL database with pgvector.

Land → Environmental → Permit → Design → Finance → Export
 ↑                                                     |
 └──────────── Dashboard (13 modules unified) ─────────┘

Modules — v1.0.0

| # | Module | Description | Tests | |---|--------|-------------|-------| | 1 | Land Agent | Catastro INSPIRE + scoring engine + GIS restrictions (22 layers) | — | | 2 | Permit Agent | Rules engine, timeline calculator, Gantt critical path | — | | 3 | Finance Agent | DCF model, DSCR, IRR, NPV, LCOE (25-year) | — | | 4 | RAG Ambiental | pgvector embeddings, EIA corpus, Claude citations | — | | 5 | OpenPlantIF v1.0 | Open JSON standard for plant data exchange + CLI + SDK | — | | 6 | Parametric Design | Solar layout, strings, BoQ, CAPEX, production (6-stage cache) | 34/34 | | 7 | IFC4 BIM Export | LOD100/200/300 IFC4 geometry, IfcMappedItem instancing | 25/25 | | 8 | EPC Export Package | ZIP with IFC4 + BoQ Excel + OpenPlantIF JSON + DOCX summary | 25/25 | | 9 | Dashboard EPC Tab | Export tab integrated in Project Dashboard | 25/25 | | 10 | PVGIS Benchmark | v2 calibrated model vs PVGIS v5.2 SARAH-3, ±1.3% RMSE | 25/25 | | 11 | MultiTech Engine | BESS (LFP), Wind (Weibull + power curve), Hybrid (Solar+BESS) | 25/25 | | 12 | MultiTech UI | React UI for BESS/Wind/Hybrid at /multitech | 25/25 | | 13 | Dashboard v2 | Tab "Tecnología" with BESS/Wind/Hybrid embedded in dashboard | 25/25 |

Total validated tests: 209/209


Quick Start

# Prerequisites: Node.js 18+, npm, Supabase project

git clone https://github.com/noticiasparajaime-dev/AI-Agent
cd AI-Agent/zelo-platform

# Install dependencies
npm install

# Configure environment
cp .env.example .env
# Set: SUPABASE_URL, SUPABASE_SERVICE_KEY, ANTHROPIC_API_KEY

# Start API server
cd packages/api
node src/app.js

# Open interfaces
# http://localhost:3000/dashboard     → Project Dashboard
# http://localhost:3000/parametric    → Solar Parametric Engine
# http://localhost:3000/multitech     → BESS / Wind / Hybrid Engine

Architecture

zelo-platform/
├── packages/
│   ├── api/
│   │   └── src/
│   │       ├── app.js                    # Express entry point
│   │       ├── routes/
│   │       │   ├── dashboard.js          # Project Dashboard
│   │       │   ├── parametric-ui.js      # Solar parametric UI
│   │       │   ├── multitech.js          # MultiTech API (compute/sensitivity/optimize)
│   │       │   └── multitech-ui.js       # MultiTech static UI
│   │       └── services/
│   │           ├── multitech/
│   │           │   └── MultiTechDesign.js
│   │           ├── land/                 # Land Agent
│   │           ├── permit/               # Permit Agent
│   │           ├── finance/              # Finance Agent
│   │           └── environmental/        # RAG + OGC connectors
│   └── frontend/
│       ├── project-dashboard.html/.jsx   # Main dashboard (13 tabs)
│       ├── parametric-design.html/.jsx   # Solar engine UI
│       └── multitech-design.html/.jsx    # MultiTech engine UI
└── sql/
    ├── 003_pgvector.sql                  # Vector embeddings schema
    ├── 005_alerts.sql                    # Deadline alerts
    ├── 006_documents.sql                 # Document management
    └── 007_notifications.sql             # Notification engine

API Reference

Solar Parametric Engine

POST /api/v1/parametric/compute
POST /api/v1/parametric/sensitivity
POST /api/v1/parametric/optimize
POST /api/v1/parametric/tornado

MultiTech Engine (BESS · Wind · Hybrid)

GET  /api/v1/multitech/technologies
GET  /api/v1/multitech/defaults/:tech     # tech: bess | wind | hybrid
POST /api/v1/multitech/compute
POST /api/v1/multitech/sensitivity
POST /api/v1/multitech/tornado
POST /api/v1/multitech/optimize

Example — BESS compute:

curl -X POST http://localhost:3000/api/v1/multitech/compute \
  -H 'Content-Type: application/json' \
  -d '{
    "technology": "bess",
    "params": {
      "bess_power_mw": 20,
      "bess_duration_h": 4,
      "bess_cycles_per_day": 1.5
    }
  }'

Example — Wind sensitivity:

curl -X POST http://localhost:3000/api/v1/multitech/sensitivity \
  -H 'Content-Type: application/json' \
  -d '{
    "technology": "wind",
    "param_name": "wind_v_mean_ms",
    "range_min": 5,
    "range_max": 12,
    "range_steps": 8
  }'

Land Agent

POST /api/v1/land/analyze            # Full land analysis (score + restrictions + catastro)
POST /api/v1/land/score              # Viability score only
GET  /api/v1/land/restrictions/:lat/:lng

Permit Agent

POST /api/v1/permit/timeline         # Gantt + critical path
POST /api/v1/permit/rules            # Applicable permit rules by CCAA
POST /api/v1/permit/rag              # RAG query on permit corpus

Key Technical Decisions

PVGIS Calibration (Module 10)

The parametric solar engine uses an OLS-calibrated GHI formula validated against PVGIS v5.2 SARAH-3 for 5 Spanish reference plants:

GHI = 3809 - 51.7 × lat + 4.68 × lng   [kWh/m²/year]
  • Valid domain: lat 36–43°N, lng −9 to +4°E
  • RMSE: 1.33% (vs 6.25% pre-calibration)
  • All 5 reference plants within ±3% tolerance

Wind Production Model (Module 11)

Weibull distribution with numerical integration over cubic power curve:

c = v_mean / Γ(1 + 1/k)        # scale parameter
P(v) = P_rated × ((v-v_ci)/(v_r-v_ci))³   # for v_ci ≤ v ≤ v_r
AEP = ∫₀³⁰ P(v) × f_weibull(v) × 8760 dv

BESS Revenue Model (Module 11)

Three revenue streams with degradation-adjusted DCF:

Revenue = arbitrage + capacity_market + ancillary_services
LCOS    = PV(costs) / Σ energy_out(t) × (1-deg)^t

IFC4 Export LOD Matrix (Module 7)

| LOD | Elements | File size | Use case | |-----|----------|-----------|----------| | LOD100 | Site boundary + plant footprint | ~8 KB | GIS, Land Agent | | LOD200 | Tracker rows + equipment boxes | ~2 MB | Navisworks, clash detection | | LOD300 | Panel-level (IfcMappedItem) | ~1.5 MB | Digital twin, BIM |


Dashboard Navigation

http://localhost:3000/dashboard

Tabs: Overview · Terreno · Solar · Diseño · Permisos · Finanzas · Tecnología · Exportar
                                                                       ↑
                                                          BESS / Eólica / Híbrido
                                                          (links to /multitech for full engine)

Reference Plants — Validation

| Plant | Location | Capacity | GHI (PVGIS) | Yield (PVGIS) | Model error | |-------|----------|----------|-------------|---------------|-------------| | Carmona | Sevilla, 37.47°N | 50 MW | 1820 kWh/m² | 1880 kWh/kWp | +0.4% ✅ | | Mérida | Badajoz, 38.92°N | 50 MW | 1785 kWh/m² | 1840 kWh/kWp | −1.7% ✅ | | Lleida | 41.62°N | 50 MW | 1648 kWh/m² | 1720 kWh/kWp | −1.2% ✅ | | Murcia | 37.98°N | 50 MW | 1862 kWh/m² | 1920 kWh/kWp | −1.9% ✅ | | Almería | 36.84°N | 50 MW | 1884 kWh/m² | 1950 kWh/kWp | −0.7% ✅ |

All within ±3% bankable tolerance.


OpenPlantIF v1.0

Open JSON standard for plant data exchange across tools (SCADA, EPC, GIS, BIM).

# CLI usage
node cli.js validate plant.json          # validate against JSON Schema
node cli.js build --tech solar_pv        # scaffold new plant file
node cli.js export --format ifc4         # export to IFC4

Schema: openplantif-v1_0.json


Environment Variables

# Required
SUPABASE_URL=https://xxxx.supabase.co
SUPABASE_SERVICE_KEY=eyJhbGc...
ANTHROPIC_API_KEY=sk-ant-...

# Optional
PORT=3000
NODE_ENV=production
PVGIS_API_URL=https://re.jrc.ec.europa.eu/api/v5_2

Test Coverage

# Run all test suites
node src/tests/validate-parametric.js       # 34 tests — Solar engine
node src/tests/validate-ifc4.js             # 25 tests — IFC4 BIM
node src/tests/validate-multitech.js        # 25 tests — BESS/Wind/Hybrid
node src/tests/validate-multitech-ui.js     # 25 tests — MultiTech UI
node src/tests/benchmark/validate-benchmark.js  # 25 tests — PVGIS accuracy
node src/tests/validate-dashboard-v2.js     # 25 tests — Dashboard v2
# ... + 50 additional tests across Land, Permit, Finance, EPC modules

Roadmap — v1.1

  • [ ] Shading Engine — inter-row shading with real backtracking (dynamic PR vs GCR curve)
  • [ ] FLORIS Wake Model — Python microservice for bankable wind wake loss
  • [ ] Real-time prices — OMIE day-ahead market prices via API
  • [ ] Multi-CCAA permit expansion — all 17 autonomous communities
  • [ ] PDF Validation Report — automated due diligence report

License

MIT — see LICENSE


Repository

GitHub: https://github.com/noticiasparajaime-dev/AI-Agent
Last commit: 0f259d6