Metadata-Version: 2.4
Name: fieldworks-core
Version: 1.0.4
Summary: Fieldworks industrial AI framework — core components
Author-email: Sean Slavin <slavin.sean@gmail.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/fieldworks-build/fieldworks-core
Project-URL: Repository, https://github.com/fieldworks-build/fieldworks-core
Project-URL: Issues, https://github.com/fieldworks-build/fieldworks-core/issues
Keywords: industrial,ai,agents,mcp,scada,iot
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic>=2.0
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Provides-Extra: memory
Requires-Dist: ladybug; extra == "memory"
Requires-Dist: duckdb; extra == "memory"
Requires-Dist: influxdb-client; extra == "memory"
Requires-Dist: pytz; extra == "memory"
Provides-Extra: adapters
Requires-Dist: mcp>=1.0; extra == "adapters"
Provides-Extra: trust
Requires-Dist: cryptography>=41.0; extra == "trust"
Dynamic: license-file

# fieldworks-core

Core components for the Fieldworks industrial AI framework.

- `fieldworks.topology` — load and validate `topology.yaml` (plant model schema, Part II)
- `fieldworks.agents` — `build_specialist_prompt()`, `build_specialists()`, `build_orchestrator_system()`
- `fieldworks.aggregator` — load and validate `aggregator.json` (connection model, Part II)

## Install

```bash
pip install fieldworks-core
```

## Usage

```python
from fieldworks.topology import load, validate
from fieldworks.agents import build_specialist_prompt, build_specialists

topology = load("topology.yaml")
result = validate(topology)
if result.warnings:
    for w in result.warnings:
        print(f"warning: {w}")

specialists = build_specialists(topology)
```

## CLI

```bash
fieldworks validate topology.yaml
fieldworks validate topology.yaml --aggregator aggregator.json
```
