Metadata-Version: 2.4
Name: parseforge
Version: 0.2.1
Summary: LLM-driven pipeline that forges, validates, and promotes TextFSM templates from network CLI output
Author-email: Tuyen Mathew Duong <tuyen@geekstrident.com>
Maintainer-email: Tuyen Mathew Duong <tuyen@geekstrident.com>
License: MIT
Keywords: textfsm,network automation,cli parsing,template generator,ai,llm,netmiko,device output parsing
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Text Processing
Classifier: Topic :: Utilities
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1
Requires-Dist: PyYAML>=6.0
Requires-Dist: textfsm>=1.1.0
Provides-Extra: sampling
Requires-Dist: netmiko>=4.0; extra == "sampling"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"
Requires-Dist: black>=24.0.0; extra == "dev"
Requires-Dist: mypy>=1.10.0; extra == "dev"
Dynamic: license-file

# ParseForge

LLM-driven pipeline that forges, cross-validates, and promotes [TextFSM](https://github.com/google/textfsm)
templates from network device CLI output.

Full design plan: [SPEC.md](SPEC.md).

## Layout

```
parseforge/
  naming.py       CLI command -> canonical cli-name (SPEC §2)
  paths.py        trials/integration/authoritative path resolution (SPEC §3)
  sampling.py     device connection + command capture (SPEC §5 step 4)
  generation.py   LLM call + template extraction (SPEC §5 steps 5-6)
  validation.py   self-validation + cross-validation scoring (SPEC §5 steps 7-8)
  promotion.py    authoritative promotion gate + drift status (SPEC §3.3, §5 steps 9-10)
  pipeline.py     orchestrates the above; Mode LOOP (MVP) vs Mode BATCH (SPEC §4)
  cli/            `parseforge` command-line entry point

store/            runtime template tree: trials/ -> integration/ -> authoritative/
                  (generated at runtime, not checked in — see .gitignore)
```

`naming.py` and `paths.py` are implemented and tested. `sampling.py`, `generation.py`,
`validation.py`, `promotion.py`, and `pipeline.py` are stub interfaces — the SPEC.md
section cited in each docstring is the next thing to implement.

## Development

```
pip install -e ".[dev,sampling]"
pytest
```

## CLI

```
parseforge name show interface GE1.1 status
# -> show-interface-var1-status
```
