gridforge-low-code-platform.../AGENTS.md

2.2 KiB

AGENTS: GridForge Architecture & Guidelines

Overview

  • GridForge is a production-ready, low-code platform for composing cross-domain energy optimization apps using a visual DSL concept (Objects, Morphisms, Functors, Limits/Colimits, Time Monoid).
  • This repository implements a robust Python-based core with a FastAPI server to prototype end-to-end workflows, including DSL modelling, adapter generation, a toy distributed solver (ADMM-lite), simulation sandbox, and governance scaffolding.

Tech Stack (Current)

  • Language: Python 3.11+
  • Server: FastAPI (uvicorn for dev server)
  • Persistence: SQLite via SQLAlchemy (lightweight local storage)
  • DSL & Validation: Pydantic models
  • Solver: Simple ADMM-lite placeholder for distributed optimization
  • Adapters: Auto-generated skeletons in adapters/ for plug-and-play deployment
  • Simulation: Sandbox module to validate end-to-end flows
  • Governance: RBAC scaffold and audit-friendly event logging

How to Run (dev)

  • Install: python -m pip install -e .
  • Run server: uvicorn gridforge.server:app --reload
  • Tests: pytest

Project Structure (high level)

  • gridforge/
    • init.py: Package initialization
    • dsl.py: Core DSL data models (Object, Morphism, Functor, Limits, TimeMonoid)
    • core.py: Canonicalization and transformations of DSL into a canonical representation
    • adapters.py: Skeleton adapter generation and registry logic
    • contract.py: Versioned adapter contracts, conformance testing stubs
    • solver.py: ADMM-lite solver implementation for toy problems
    • simulation.py: Sandbox environment for end-to-end validation
    • governance.py: RBAC and policy scaffolding
    • server.py: FastAPI app exposing a basic API for prototyping tests/
  • test_basic.py: Basic DSL and adapter generation tests
  • test_solver.py: Simple solver behavior tests (toy problem) AGENTS.md is the canonical place to document architectural decisions and contribution rules. If you introduce major architectural changes, update this file accordingly.

Contributing

  • Keep changes small and well-scoped. Prefer incremental improvements that can be validated with tests.
  • Add tests for any new behavior. Ensure test.sh passes locally.
  • Document any public API changes in AGENTS.md and README.md.