Metadata-Version: 2.5
Name: recast-engine
Version: 0.0.1
Summary: An agentic engine for modernizing legacy scientific software
Project-URL: Homepage, https://github.com/a85tract/RecastEngine
Project-URL: Ecosystem, https://github.com/a85tract/SciRecast
Author-email: Yueqi Chen <yueqi.chen@colorado.edu>
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: fortran,hpc,llm-agents,modernization,verification
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Provides-Extra: dev
Requires-Dist: mypy>=1.11; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: ruff>=0.6; extra == 'dev'
Provides-Extra: fortran
Requires-Dist: fparser>=0.2; extra == 'fortran'
Provides-Extra: translate
Requires-Dist: numpy>=1.26; extra == 'translate'
Provides-Extra: verify
Requires-Dist: meson>=1.1; extra == 'verify'
Requires-Dist: mpmath>=1.3; extra == 'verify'
Requires-Dist: ninja>=1.11; extra == 'verify'
Requires-Dist: numpy>=1.26; extra == 'verify'
Requires-Dist: sympy>=1.12; extra == 'verify'
Description-Content-Type: text/markdown

# RecastEngine

**The modernization engine of [SciRecast](https://a85tract.github.io/SciRecast/).**

LLM agents do the labor of modernizing legacy scientific software; RecastEngine
is the part that is reusable across every such effort, and the part that refuses
to let anything through that has not been checked against the original.

## Install

Python 3.11 or newer. Activate the environment once and every command after
that is a bare `recast`.

```bash
uv venv --python 3.11                              # fetches a 3.11 if you have none
source .venv/bin/activate                          # Windows: .venv\Scripts\activate
uv pip install -e ".[fortran,translate,verify]"
```

Without `uv`: `python3 -m venv .venv` and `pip install -e` with the same
extras. The core itself has zero dependencies and stays importable without a
compiler, a GPU, or a model provider — `fortran`, `translate` and `verify`
are the extras.

RecastEngine translates and gates Fortran with flat interfaces end to end;
the corpus of numerical libraries under `corpus/` is what it is proven on.

```console
$ recast doctor
recast 0.0.1  python 3.11.16
```

The remaining `doctor` output is a live plugin count and registry inventory;
installing an out-of-tree plugin changes it without changing RecastEngine.

First time? [`docs/getting-started.md`](docs/getting-started.md) walks from
an empty machine to a verified translation of your own module, with what
every command prints.

## The commands

| | |
|---|---|
| `recast doctor` | version, interpreter, how much is registered |
| `recast recipes` | the six shipped recipes |
| `recast plugins` | what is registered, by kind |
| `recast engines [--json]` | immutable translation-engine manifests for an outer pipeline builder |
| `recast plan <recipe>` | the stages a run would walk, and which slots nothing fills |
| `recast run <recipe> <tree>` | walk them over a source tree |
| `recast version` | the version alone |

The recipes, the config keys, the flags on `run` and what its exit codes
mean: [`docs/cli.md`](docs/cli.md).

## Documentation

| | |
|---|---|
| [`docs/`](docs/) | the CLI, the architecture, writing a plugin, the roadmap |
| [`corpus/`](corpus/) | twelve third-party Fortran libraries the engine alone is held to, the record of how far it gets, and the two small trees the shipped recipes run over end to end |
| [`conformance/`](conformance/) | what a plugin must satisfy, as a suite that runs |

## Contact

| | |
|---|---|
| Bugs, features | issues in this repository |
| Vulnerabilities | [`SECURITY.md`](SECURITY.md) — private advisory, never a public issue |
| Collaboration, licensing | **Yueqi Chen** — <yueqi.chen@colorado.edu> |

## License

Apache License 2.0 — see [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE).
