CHANGELOG.md
LICENSE
MANIFEST.in
README.md
pyproject.toml
docs/00-five-whys.md
docs/01-span-contract.md
docs/02-first-principles.md
docs/03-ai-engineering.md
docs/04-research-landscape.md
docs/05-model-catalog.md
docs/06-library-api.md
docs/07-architecture.md
docs/08-implementation-plan.md
docs/09-evaluation.md
docs/10-taxonomy.md
docs/11-examples.md
docs/12-public-corpora.md
docs/13-first-public-score.md
docs/14-assessment-2026-11.md
docs/15-research-update-2026-11.md
docs/16-grounded-improvement-plan.md
docs/17-next-stage-ai-engineering.md
docs/18-protection-and-model-results.md
docs/19-release-0.4.0.md
docs/README.md
docs/glossary.md
docs/adr/0001-locate-spans.md
docs/adr/0002-two-default-lanes.md
docs/adr/0003-local-weights.md
docs/adr/0004-secrets-irreversible.md
docs/adr/0005-overlap-and-coverage.md
docs/adr/0006-protection-plan.md
docs/e2e/README.md
docs/eval/gretel-finance-en__en-closed-400.json
docs/eval/gretel-finance-en__rules-full.json
docs/eval/nemotron-pii__en-closed-500.json
docs/eval/nemotron-pii__rules-2000.json
docs/eval/modal/spy-legal__en-closed-50.json
docs/eval/modal/spy-legal__multi-open-50.json
docs/eval/modal/spy-legal__rules-50.json
docs/eval/modal/gretel-finance-en-50-86e9aa29/gretel-finance-en__en-closed-50.json
docs/eval/modal/gretel-finance-en-50-86e9aa29/gretel-finance-en__multi-boundary-50.json
docs/eval/modal/gretel-finance-en-50-86e9aa29/gretel-finance-en__multi-encoder-50.json
docs/eval/modal/gretel-finance-en-50-86e9aa29/gretel-finance-en__multi-open-50.json
docs/eval/modal/gretel-finance-en-50-86e9aa29/gretel-finance-en__opf-native-50.json
docs/eval/modal/gretel-finance-en-50-86e9aa29/gretel-finance-en__rules-50.json
docs/eval/modal/gretel-finance-en-50-86e9aa29/run.json
docs/eval/modal/gretel-finance-en-50-a1c0ba80/run.json
docs/eval/modal/gretel-finance-en-50-eceb01f7/gretel-finance-en__minilm-native-50.json
docs/eval/modal/gretel-finance-en-50-eceb01f7/gretel-finance-en__multi-encoder-50.json
docs/eval/modal/gretel-finance-en-50-eceb01f7/gretel-finance-en__multi-encoder-base-50.json
docs/eval/modal/gretel-finance-en-50-eceb01f7/gretel-finance-en__multi-open-50.json
docs/eval/modal/gretel-finance-en-50-eceb01f7/gretel-finance-en__tracer-native-50.json
docs/eval/modal/gretel-finance-en-50-eceb01f7/run.json
docs/eval/modal/nemotron-pii-25-a9d52b9f/nemotron-pii__en-closed-25.json
docs/eval/modal/nemotron-pii-25-a9d52b9f/nemotron-pii__multi-boundary-25.json
docs/eval/modal/nemotron-pii-25-a9d52b9f/nemotron-pii__multi-encoder-25.json
docs/eval/modal/nemotron-pii-25-a9d52b9f/nemotron-pii__multi-open-25.json
docs/eval/modal/nemotron-pii-25-a9d52b9f/nemotron-pii__opf-native-25.json
docs/eval/modal/nemotron-pii-25-a9d52b9f/nemotron-pii__rules-25.json
docs/eval/modal/nemotron-pii-25-a9d52b9f/run.json
docs/eval/modal/spy-legal-50-0e100240/run.json
docs/eval/modal/spy-legal-50-0e100240/spy-legal__en-closed-50.json
docs/eval/modal/spy-legal-50-0e100240/spy-legal__multi-boundary-50.json
docs/eval/modal/spy-legal-50-0e100240/spy-legal__multi-encoder-50.json
docs/eval/modal/spy-legal-50-0e100240/spy-legal__multi-open-50.json
docs/eval/modal/spy-legal-50-0e100240/spy-legal__opf-native-50.json
docs/eval/modal/spy-legal-50-0e100240/spy-legal__rules-50.json
docs/eval/modal/spy-legal-50-835c8e36/run.json
docs/eval/modal/spy-legal-50-835c8e36/spy-legal__multi-encoder-50.json
docs/eval/modal/spy-legal-50-9cbb4e97/run.json
docs/eval/modal/spy-legal-50-9cbb4e97/spy-legal__en-closed-50.json
docs/eval/modal/spy-legal-50-9cbb4e97/spy-legal__minilm-native-50.json
docs/eval/modal/spy-legal-50-9cbb4e97/spy-legal__multi-encoder-50.json
docs/eval/modal/spy-legal-50-9cbb4e97/spy-legal__multi-encoder-base-50.json
docs/eval/modal/spy-legal-50-9cbb4e97/spy-legal__tracer-native-50.json
docs/eval/modal/spy-legal-50-e29f487e/run.json
docs/eval/modal/spy-legal-50-e29f487e/spy-legal__en-closed-50.json
docs/eval/modal/spy-legal-50-e29f487e/spy-legal__multi-boundary-50.json
docs/eval/modal/spy-legal-50-e29f487e/spy-legal__multi-encoder-50.json
docs/eval/modal/spy-legal-50-e29f487e/spy-legal__multi-open-50.json
docs/eval/modal/spy-legal-50-e29f487e/spy-legal__rules-50.json
docs/eval/modal/spy-medical-50-7515b1aa/run.json
docs/eval/modal/spy-medical-50-7515b1aa/spy-medical__en-closed-50.json
docs/eval/modal/spy-medical-50-7515b1aa/spy-medical__minilm-native-50.json
docs/eval/modal/spy-medical-50-7515b1aa/spy-medical__multi-encoder-50.json
docs/eval/modal/spy-medical-50-7515b1aa/spy-medical__multi-encoder-base-50.json
docs/eval/modal/spy-medical-50-7515b1aa/spy-medical__multi-encoder-us-50.json
docs/eval/modal/spy-medical-50-7515b1aa/spy-medical__tracer-native-50.json
docs/eval/modal/spy-medical-50-e42b5910/run.json
docs/eval/modal/spy-medical-50-e42b5910/spy-medical__en-closed-50.json
docs/eval/modal/spy-medical-50-e42b5910/spy-medical__multi-boundary-50.json
docs/eval/modal/spy-medical-50-e42b5910/spy-medical__multi-encoder-50.json
docs/eval/modal/spy-medical-50-e42b5910/spy-medical__multi-open-50.json
docs/eval/modal/spy-medical-50-e42b5910/spy-medical__opf-native-50.json
docs/eval/modal/spy-medical-50-e42b5910/spy-medical__rules-50.json
docs/eval/validation/2026-11-05-final/validation.json
docs/eval/validation/2026-11-05-next-stage-site/validation.json
docs/eval/validation/2026-11-05-protection-final/validation.json
docs/eval/validation/2026-11-05-protection-full/validation.json
docs/eval/validation/2026-11-05-protection-release/validation.json
docs/eval/validation/2026-11-05-protection-site-release/validation.json
docs/eval/validation/2026-11-05-pypi-0-4-0/validation.json
docs/eval/validation/2026-11-05-site-final/validation.json
docs/eval/validation/c4fac454/validation.json
docs/eval/validation/e5f6eb1a/validation.json
docs/research/model-manifest-2026-11-05.json
docs/research/model-manifest-phase2-2026-11-05.json
docs/research/phase2-baseline-analysis-2026-11-05.json
src/edgepii/__init__.py
src/edgepii/_version.py
src/edgepii/check.py
src/edgepii/errors.py
src/edgepii/labelmap.py
src/edgepii/locator.py
src/edgepii/merge.py
src/edgepii/normalize.py
src/edgepii/presets.py
src/edgepii/protection.py
src/edgepii/protocol.py
src/edgepii/py.typed
src/edgepii/quasi.py
src/edgepii/redact.py
src/edgepii/restore.py
src/edgepii/span.py
src/edgepii/toolcall.py
src/edgepii/windows.py
src/edgepii.egg-info/PKG-INFO
src/edgepii.egg-info/SOURCES.txt
src/edgepii.egg-info/dependency_links.txt
src/edgepii.egg-info/requires.txt
src/edgepii.egg-info/top_level.txt
src/edgepii/bridges/__init__.py
src/edgepii/bridges/presidio.py
src/edgepii/detectors/__init__.py
src/edgepii/detectors/gliner.py
src/edgepii/detectors/gliner2.py
src/edgepii/detectors/hf_token.py
src/edgepii/detectors/rules.py
src/edgepii/detectors/uie.py
src/edgepii/eval/__init__.py
src/edgepii/eval/cli.py
src/edgepii/eval/corpora.py
src/edgepii/eval/corpora.yaml
src/edgepii/eval/coverage.py
src/edgepii/eval/gates.py
src/edgepii/eval/runner.py
src/edgepii/eval/score.py
src/edgepii/taxonomies/2026.11.yaml
tests/test_acceptance.py
tests/test_country_profile.py
tests/test_demo_api.py
tests/test_demo_e2e.py
tests/test_eval_corpora.py
tests/test_eval_gates.py
tests/test_first_principles.py
tests/test_hardening.py
tests/test_model_runtime.py
tests/test_native_candidates.py
tests/test_principles.py
tests/test_protection.py
tests/test_quasi.py
tests/test_restore.py
tests/test_site.py
tests/test_site_e2e.py