[build-system] requires = ["setuptools>=77", "wheel"] build-backend = "setuptools.build_meta" [project] name = "actenon-kernel" version = "1.3.0" description = "Open proof-required execution kernel for consequential actions." readme = "README.md" requires-python = ">=3.10" license = "Apache-2.0" license-files = ["LICENSE"] authors = [{ name = "Ross Buckley" }] keywords = ["execution", "proof", "verification", "policy", "receipts"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Security", "Topic :: Software Development :: Libraries :: Python Modules", ] dependencies = [ "actenon-protocol>=1.6.0,<2", "pyyaml>=6.0,<7", # The reference broker (actenon-permit) mints Ed25519 proofs in # production. A verifier whose default install cannot verify those # artifacts undercuts the core claim that any party can verify without # trusting Actenon — so Ed25519 support is part of the base install, # not an extra (1.1.0; previously the [asymmetric] extra). "cryptography>=50", ] [project.optional-dependencies] # Retained for backward compatibility: actenon-permit and other consumers # declare `actenon-kernel[asymmetric]`, and removing the extra would break # those specs. Since 1.1.0 it restates the base cryptography dependency. asymmetric = ["cryptography>=50"] aws = ["boto3>=1.34"] # for actenon.proof.signers.aws_kms (AWS KMS signing backend) dev = ["build", "ruff>=0.8", "pytest>=8.0", "httpx>=0.27", "boto3>=1.34", "tomli>=2; python_version<'3.11'"] fastapi = ["fastapi>=0.115,<1"] langchain = ["langchain-core>=0.3,<2"] mcp = ["mcp>=1.9,<2; python_version>='3.10'"] postgres = ["psycopg[binary]>=3.1"] [tool.uv.sources] # Coordinated source testing only; remove before registry publication. actenon-protocol = { git = "https://github.com/Actenon/actenon-protocol", rev = "d79af481be6badc99b13e15118026b96883fa171" } [project.scripts] # The kernel's CLI is `actenon-kernel`. The unified developer CLI `actenon` # is owned by `actenon-permit` (which depends on this package). Previously # both repos registered `actenon` as a console script, which produced an # install-order-dependent binary collision (Fable 5 Part 3A). # Permit owns `actenon` because it is the documented hero CLI; the kernel # is the lower-level verifier and its CLI is `actenon-kernel`. actenon-kernel = "actenon.cli:main" # WO-7 (kernel as a plugin host for the `actenon` command) has not merged, so # this ships as its own console script rather than an actenon.commands plugin. actenon-mcp = "actenon.mcp_server:main" actenon-local-proof = "actenon.demo.local_proof:main" actenon-portable-local-proof = "actenon.demo.portable_local_proof:main" [tool.setuptools] include-package-data = false [tool.setuptools.packages.find] where = ["."] include = ["actenon*", "conformance*", "examples*", "schemas*"] [tool.setuptools.package-data] "actenon" = ["scanner_capability_registry.v1.json"] "actenon.conformance" = ["vectors/verifier_sdk_v1/*", "vectors/canonicalization_strict_v1/*"] "conformance" = [ "CHANGELOG.md", "MATRIX.md", "README.md", "VERSION", "suite.json", "vector-lock.json", "vectors/*/*.json", "vectors/*/README.md", "vectors/*/mutations/*.json", ] "actenon.ui.trace_viewer" = ["static/*"] "schemas" = ["*.json"] [tool.pytest.ini_options] # The only pytest configuration. A root pytest.ini used to take precedence and # silently disabled testpaths/norecursedirs here, so pytest recursed from the # repository root and imported scripts/ (CI failed on Python 3.10 because of it). testpaths = ["actenon", "tests"] filterwarnings = [ "ignore:urllib3 v2 only supports OpenSSL.*:Warning", "ignore:ACTENON LOCAL HMAC SIGNER IS FOR LOCAL/DEV/DEMO ONLY.*:RuntimeWarning", ] norecursedirs = [ ".git", ".pytest_cache", ".ruff_cache", ".venv", "AI Agent Execution Control Layer", "__pycache__", "build", "dist", ]