Metadata-Version: 2.4
Name: noetfield-gate
Version: 0.1.0
Summary: Chain tool: pre-execution gate (PASS/BLOCK) and policy decision receipts for Noetfield OS
Author: Noetfield Systems Inc.
License: Proprietary
Project-URL: Homepage, https://www.noetfield.com/gel/
Project-URL: Documentation, https://www.noetfield.com/gel/
Project-URL: Repository, https://github.com/kazemnezhadsina144-dot/noetfeld-os
Project-URL: Issues, https://github.com/kazemnezhadsina144-dot/noetfeld-os/issues
Keywords: governance,agents,policy,noetfield,gel
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: httpx>=0.28; extra == "dev"
Requires-Dist: build>=1.2; extra == "dev"
Requires-Dist: twine>=5.0; extra == "dev"
Dynamic: license-file

# noetfield-gate

Graphify-class chain tool for **Noetfield OS** — sits between your agent and execution.

## Install (PyPI)

```bash
pip install noetfield-gate
noetfield gate
```

Bundled default policies ship in the wheel. Receipts land in `~/.noetfield/gate-report-v1.json`.

## Install (dev / full runtime)

```bash
cd ~/Projects/noetfeld-os
pip install -e ".[dev]"
```

## One command: gate (PASS or BLOCK)

```bash
noetfield gate
# -> ~/.noetfield/gate-report-v1.json
# -> ~/.noetfield/gate-report-v1.md
```

Checks: policy pack · JSON valid · sqlite writable · optional API `/readiness` · PolicyRegistry when running from full repo checkout.

```bash
export NOETFIELD_API_URL=https://api.noetfield.com
noetfield gate
```

Exit code `0` = PASS, `1` = BLOCK.

## One command: decide (receipt on disk)

Hosted API default: `https://api.noetfield.com`. Local dev: `NOETFIELD_API_URL=http://127.0.0.1:8001`.

```bash
export NOETFIELD_API_KEY=your-key
noetfield decide --sample
# -> ./noetfield-decision-<id>.json
```

Or from file:

```bash
noetfield decide --file intent.json --out DECISION_RECEIPT.json
```

## Environment

| Variable | Purpose |
|----------|---------|
| `NOETFIELD_ROOT` | Full repo root (policies + PolicyRegistry) |
| `NOETFIELD_API_URL` | GEL base URL (default: `https://api.noetfield.com`) |
| `NOETFIELD_API_KEY` | `X-API-Key` for `/v1/decision` |

## Chain tool pattern

- One command in → one artifact out (JSON + optional `.md`)
- Runs at **every** execution boundary
- Open-source CLI; hosted API = `api.noetfield.com`

**Docs:** https://www.noetfield.com/gel/
