Six live version surfaces bumped by hand (no sed -- provenance is never bumped): pyproject.toml, __init__.__version__, README badge + Status + the pinned pip install tag, docs/BRIEF.md, docs/ADOPTION-BRIEF.md Status, and CLAUDE.md. ADOPTION-BRIEF's test count 792 -> 802. NOT bumped, and deliberately: SECURITY.md's two `1.0.0` references name the freeze BASELINE, not the current version -- "a payload that disposes WARN on 1.0.0 may dispose FAIL_SECURE on a later 1.x" is the promise this release instantiates, so rewriting it to 1.1.0 would erase what it promised. The GATE-G and PLAN-v1 numbers are the 1.0.0 gate record. The Forge repo description carries no version (verified against the API last session). This is the case SECURITY.md and the 1.0.0 CHANGELOG entry described in advance: the exported surface is frozen, detection behaviour is not. No exported name moved. A document that disposed WARN on 1.0.0 may dispose FAIL_SECURE here; a consumer whose frontmatter carries an unquoted ": " in a value will see those concepts refused at import, and quoting it parses. Re-measured after the bump, alone: 802 passed, 129/129 classes, 6/6 gaps hold, 35 limitations.
38 lines
1.6 KiB
TOML
38 lines
1.6 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "llm-ingestion-guard"
|
|
version = "1.1.0"
|
|
description = "Write-time defensive layer for Python pipelines that persist LLM output: sanitize, fence, tool-less quarantined transform, capability isolation, scan before persist, fail-secure."
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = { file = "LICENSE" }
|
|
authors = [{ name = "Kjell Tore Guttormsen" }]
|
|
keywords = ["llm", "security", "prompt-injection", "rag", "ingestion", "guardrails", "write-time"]
|
|
classifiers = [
|
|
"Development Status :: 5 - Production/Stable",
|
|
"Intended Audience :: Developers",
|
|
"License :: OSI Approved :: MIT License",
|
|
"Programming Language :: Python :: 3",
|
|
"Topic :: Security",
|
|
]
|
|
dependencies = [] # stdlib-only core — see design principle 1
|
|
|
|
[project.optional-dependencies]
|
|
ml = [] # pluggable embedding/classifier detectors (placeholder)
|
|
judge = [] # LLM-judge / source-grounding implementation (placeholder)
|
|
# Showcase-only extraction parsers for the two-stage OKF inbox demo (docs/PLAN.md
|
|
# §247). Deliberately in `dev`, NOT the core `dependencies` (which stays []) and
|
|
# NOT a public `[extract]` extra — the front-end is an in-repo demonstration, not
|
|
# v1 shipped code. They pull lxml/Pillow transitively; that footprint is dev-only.
|
|
dev = ["pytest>=8", "python-docx>=1.2", "python-pptx>=1.0", "openpyxl>=3.1"]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/llm_ingestion_guard"]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
pythonpath = ["src"]
|
|
addopts = "-q"
|