Implement Open Source edition limits and feature restrictions

- Add 5 mutation types (paraphrase, noise, tone_shift, prompt_injection, custom)
- Cap mutations at 50 per test run
- Force sequential execution only
- Disable GitHub Actions integration (Cloud feature)
- Add upgrade prompts throughout CLI
- Update README with feature comparison
- Add limits.py module for centralized limit management
- Add cloud and limits CLI commands
- Update all documentation with Cloud upgrade messaging
This commit is contained in:
Entropix 2025-12-29 00:11:02 +08:00
parent 2016be238d
commit 7b75fc9530
47 changed files with 3560 additions and 1012 deletions

View file

@ -56,6 +56,7 @@ dev = [
"ruff>=0.1.0",
"mypy>=1.0.0",
"pre-commit>=3.0.0",
"maturin>=1.4.0",
]
semantic = [
"sentence-transformers>=2.2.0",
@ -96,6 +97,8 @@ include = '\.pyi?$'
[tool.ruff]
line-length = 88
target-version = "py310"
[tool.ruff.lint]
select = [
"E", # pycodestyle errors
"W", # pycodestyle warnings
@ -108,20 +111,38 @@ select = [
ignore = [
"E501", # line too long (handled by black)
"B008", # do not perform function calls in argument defaults
"B904", # exception chaining (too strict for CLI apps)
]
[tool.ruff.isort]
[tool.ruff.lint.isort]
known-first-party = ["entropix"]
[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_return_any = false
warn_unused_configs = true
disallow_untyped_defs = true
disallow_untyped_defs = false
ignore_missing_imports = true
plugins = ["pydantic.mypy"]
[[tool.mypy.overrides]]
module = [
"ollama.*",
"httpx.*",
"typer.*",
"rich.*",
"jinja2.*",
"sentence_transformers.*",
"numpy.*",
"huggingface_hub.*",
]
ignore_missing_imports = true
[tool.bandit]
exclude_dirs = ["tests", "examples"]
skips = ["B101"] # Skip assert warnings (used in tests)
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
addopts = "-v --cov=src/entropix --cov-report=term-missing"