lemming-cli 0.5.0__tar.gz → 0.5.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lemming_cli-0.5.0/README.md → lemming_cli-0.5.2/PKG-INFO +39 -5
- lemming_cli-0.5.0/PKG-INFO → lemming_cli-0.5.2/README.md +16 -28
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/SKILL.md +6 -2
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/docs/HOOKS.md +20 -5
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/pyproject.toml +3 -3
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/conftest.py +4 -8
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/context_test.py +9 -6
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/exec_cli.py +1 -1
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/hooks_test.py +1 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/models_test.py +3 -1
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/lifecycle_test.py +1 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/queries_test.py +1 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/uv.lock +9 -9
- lemming_cli-0.5.0/pyrefly.toml +0 -21
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/.dockerignore +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/.github/workflows/ci.yml +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/.github/workflows/publish.yml +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/.github/workflows/screenshots.yml +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/.gitignore +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/.prettierignore +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/.prettierrc +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/Dockerfile +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/LICENSE +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/biome.json +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/docker-compose.yml +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/docs/EVALS.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/docs/screenshots/dashboard-desktop.png +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/docs/screenshots/dashboard-mobile.png +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/docs/screenshots/task-log-desktop.png +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/docs/screenshots/task-log-mobile.png +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/package-lock.json +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/package.json +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/playwright.config.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/auth.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/auth_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/config.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/config_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/context.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/directories.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/directories_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/files.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/files_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/hooks.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/hooks_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/logging.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/logging_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/loop.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/loop_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/main.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/main_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/tasks.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api/tasks_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/api_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/brief_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/brief.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/config.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/config_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/exec_cli_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/goal.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/goal_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/hooks.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/hooks_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/machine_output_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/main.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/main_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/operations.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/operations_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/progress.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/progress_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/readability_cli.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/readability_cli_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/skill.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/skill_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/stop_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/tasks.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli/tasks_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/cli_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/conftest.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/__main__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/cli.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/cli_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/container.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/container_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/fixtures.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/fixtures_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/harness.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/harness_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/metrics.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/metrics_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/README.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/legacy.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/clean/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/clean/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/dead-code/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/dead-code/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/duplicated-behavior/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/duplicated-behavior/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/false-reuse/calc/limits.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/false-reuse/calc/limits_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/lint-debt/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/lint-debt/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/README.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/calc/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/buggy-subtract/README.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/buggy-subtract/calc/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/buggy-subtract/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/buggy-subtract/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/README.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/calc/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/README.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/calc/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/calc/cli.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/calc/cli_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/calc/ops.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/calc/ops_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/task/hidden/stats/summary_hidden_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/task/summary/README.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/task/summary/stats/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/task/summary/stats/summary.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/task/summary/stats/summary_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/readability.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/readability_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/report.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/report_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/roadmap.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/roadmap_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/scenarios.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/scenarios_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/suites.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/task.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/task_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/trial.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/trial_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/hooks.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/integration_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/main.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/main_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/models.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/orchestrator.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/orchestrator_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/paths.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/paths_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/persistence.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/persistence_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/prompts/hooks/50-readability.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/prompts/hooks/60-testing.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/prompts/hooks/70-ux.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/prompts/hooks/90-roadmap.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/prompts/taskrunner.md +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/prompts.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/prompts_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/providers.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/providers_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/runner.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/runner_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/scope.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/scope_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/shutdown.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/shutdown_integration_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/shutdown_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/__init__.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/lifecycle.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/limits.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/operations.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/operations_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/progress.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/progress_test.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/tasks/queries.py +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/dashboard.spec.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/dashboard.test.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/favicon.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/favicon.spec.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/files.html +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/files.spec.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/index.html +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/index.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/logs.html +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/logs.test.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/mancha.js +0 -0
- {lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/web/screenshots.spec.js +0 -0
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: lemming-cli
|
|
3
|
+
Version: 0.5.2
|
|
4
|
+
Summary: An autonomous, iterative task runner for AI coding agents.
|
|
5
|
+
Project-URL: Homepage, https://github.com/owahltinez/lemming
|
|
6
|
+
Project-URL: Repository, https://github.com/owahltinez/lemming
|
|
7
|
+
Author: Lemming Contributors
|
|
8
|
+
License: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: agents,ai,antigravity,automation,claude,opencode
|
|
11
|
+
Requires-Python: >=3.12
|
|
12
|
+
Requires-Dist: beautifulsoup4>=4.13.3
|
|
13
|
+
Requires-Dist: click-agentcli>=0.4.1
|
|
14
|
+
Requires-Dist: click>=8.0.0
|
|
15
|
+
Requires-Dist: fastapi>=0.124.4
|
|
16
|
+
Requires-Dist: markdownify>=0.14.1
|
|
17
|
+
Requires-Dist: pydantic>=2.12.5
|
|
18
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
19
|
+
Requires-Dist: readability-cli>=0.10.0
|
|
20
|
+
Requires-Dist: requests>=2.32.3
|
|
21
|
+
Requires-Dist: uvicorn>=0.33.0
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
1
24
|
# Lemming 🐹
|
|
2
25
|
|
|
3
26
|
**The transparent, tool-agnostic orchestrator for autonomous AI coding agents.**
|
|
@@ -121,6 +144,14 @@ lemming exec "Add pagination to the tasks API" --review all
|
|
|
121
144
|
which is resolved to the files it changed. It defaults to uncommitted work, or
|
|
122
145
|
to the whole tree outside a git repository.
|
|
123
146
|
|
|
147
|
+
Reviews may edit the working directory. The built-in readability review
|
|
148
|
+
intentionally applies fixes, and testing may repair production code or tests.
|
|
149
|
+
UX is instructed to remain advisory, but its prompt and `--no-yolo` do not
|
|
150
|
+
enforce filesystem isolation. A global review override may perform any actions
|
|
151
|
+
its prompt requests. When isolation is required, follow the working-copy
|
|
152
|
+
guidance below and pass a separate VCS-managed working copy with
|
|
153
|
+
`lemming -C <working-copy> exec --review ...`.
|
|
154
|
+
|
|
124
155
|
Each run is self-contained: nothing is read from the project's roadmap or its
|
|
125
156
|
local hooks, it runs only the requested task and reviews, and its state
|
|
126
157
|
directory is removed unless it failed — in which case it is kept, and its path
|
|
@@ -261,13 +292,15 @@ Lemming comes with several built-in hooks to help manage your project:
|
|
|
261
292
|
unnecessary complexity and duplicate implementations, then reviews changes for
|
|
262
293
|
adherence to the Google Style Guide and general readability using the
|
|
263
294
|
[readability](https://github.com/owahltinez/readability) tool (exposed as
|
|
264
|
-
`lemming readability`). It
|
|
265
|
-
|
|
295
|
+
`lemming readability`). It intentionally applies automated and targeted fixes
|
|
296
|
+
in the working directory and records broader findings as task progress.
|
|
266
297
|
- **`testing`**: Verifies that changed behavior has focused test coverage and
|
|
267
|
-
that the relevant tests pass.
|
|
298
|
+
that the relevant tests pass. It may repair small, targeted problems in
|
|
299
|
+
production code or tests and may add, merge, or remove tests.
|
|
268
300
|
- **`ux`**: Reviews at most one critical user journey affected by a user-visible
|
|
269
301
|
change. It reports only concrete, reproducible continuity gaps and exits
|
|
270
|
-
immediately for non-user-facing tasks.
|
|
302
|
+
immediately for non-user-facing tasks. Its prompt instructs the agent to stay
|
|
303
|
+
advisory, but this is not sandbox-enforced.
|
|
271
304
|
|
|
272
305
|
### Custom and Global Hooks
|
|
273
306
|
|
|
@@ -409,7 +442,8 @@ These come before the subcommand and apply to all of them.
|
|
|
409
442
|
`add`, there is no length cap.
|
|
410
443
|
- `--review <names>`: Reviews to run after the task, comma-separated or
|
|
411
444
|
repeated; `all` selects every one. With no description, only the reviews
|
|
412
|
-
run. Hooks that revise the roadmap
|
|
445
|
+
run. Reviews may edit the working directory. Hooks that revise the roadmap
|
|
446
|
+
cannot be selected.
|
|
413
447
|
- `--scope <path|range>`: What the reviews look at. Paths pass through; a git
|
|
414
448
|
revision range is resolved to the files it changed. Defaults to uncommitted
|
|
415
449
|
work, or the whole tree outside a repository.
|
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
Metadata-Version: 2.5
|
|
2
|
-
Name: lemming-cli
|
|
3
|
-
Version: 0.5.0
|
|
4
|
-
Summary: An autonomous, iterative task runner for AI coding agents.
|
|
5
|
-
Project-URL: Homepage, https://github.com/owahltinez/lemming
|
|
6
|
-
Project-URL: Repository, https://github.com/owahltinez/lemming
|
|
7
|
-
Author: Lemming Contributors
|
|
8
|
-
License: MIT
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Keywords: agents,ai,antigravity,automation,claude,opencode
|
|
11
|
-
Requires-Python: >=3.12
|
|
12
|
-
Requires-Dist: beautifulsoup4>=4.13.3
|
|
13
|
-
Requires-Dist: click-agentcli>=0.3.0
|
|
14
|
-
Requires-Dist: click>=8.0.0
|
|
15
|
-
Requires-Dist: fastapi>=0.124.4
|
|
16
|
-
Requires-Dist: markdownify>=0.14.1
|
|
17
|
-
Requires-Dist: pydantic>=2.12.5
|
|
18
|
-
Requires-Dist: pyyaml>=6.0.3
|
|
19
|
-
Requires-Dist: readability-cli>=0.9.0
|
|
20
|
-
Requires-Dist: requests>=2.32.3
|
|
21
|
-
Requires-Dist: uvicorn>=0.33.0
|
|
22
|
-
Description-Content-Type: text/markdown
|
|
23
|
-
|
|
24
1
|
# Lemming 🐹
|
|
25
2
|
|
|
26
3
|
**The transparent, tool-agnostic orchestrator for autonomous AI coding agents.**
|
|
@@ -144,6 +121,14 @@ lemming exec "Add pagination to the tasks API" --review all
|
|
|
144
121
|
which is resolved to the files it changed. It defaults to uncommitted work, or
|
|
145
122
|
to the whole tree outside a git repository.
|
|
146
123
|
|
|
124
|
+
Reviews may edit the working directory. The built-in readability review
|
|
125
|
+
intentionally applies fixes, and testing may repair production code or tests.
|
|
126
|
+
UX is instructed to remain advisory, but its prompt and `--no-yolo` do not
|
|
127
|
+
enforce filesystem isolation. A global review override may perform any actions
|
|
128
|
+
its prompt requests. When isolation is required, follow the working-copy
|
|
129
|
+
guidance below and pass a separate VCS-managed working copy with
|
|
130
|
+
`lemming -C <working-copy> exec --review ...`.
|
|
131
|
+
|
|
147
132
|
Each run is self-contained: nothing is read from the project's roadmap or its
|
|
148
133
|
local hooks, it runs only the requested task and reviews, and its state
|
|
149
134
|
directory is removed unless it failed — in which case it is kept, and its path
|
|
@@ -284,13 +269,15 @@ Lemming comes with several built-in hooks to help manage your project:
|
|
|
284
269
|
unnecessary complexity and duplicate implementations, then reviews changes for
|
|
285
270
|
adherence to the Google Style Guide and general readability using the
|
|
286
271
|
[readability](https://github.com/owahltinez/readability) tool (exposed as
|
|
287
|
-
`lemming readability`). It
|
|
288
|
-
|
|
272
|
+
`lemming readability`). It intentionally applies automated and targeted fixes
|
|
273
|
+
in the working directory and records broader findings as task progress.
|
|
289
274
|
- **`testing`**: Verifies that changed behavior has focused test coverage and
|
|
290
|
-
that the relevant tests pass.
|
|
275
|
+
that the relevant tests pass. It may repair small, targeted problems in
|
|
276
|
+
production code or tests and may add, merge, or remove tests.
|
|
291
277
|
- **`ux`**: Reviews at most one critical user journey affected by a user-visible
|
|
292
278
|
change. It reports only concrete, reproducible continuity gaps and exits
|
|
293
|
-
immediately for non-user-facing tasks.
|
|
279
|
+
immediately for non-user-facing tasks. Its prompt instructs the agent to stay
|
|
280
|
+
advisory, but this is not sandbox-enforced.
|
|
294
281
|
|
|
295
282
|
### Custom and Global Hooks
|
|
296
283
|
|
|
@@ -432,7 +419,8 @@ These come before the subcommand and apply to all of them.
|
|
|
432
419
|
`add`, there is no length cap.
|
|
433
420
|
- `--review <names>`: Reviews to run after the task, comma-separated or
|
|
434
421
|
repeated; `all` selects every one. With no description, only the reviews
|
|
435
|
-
run. Hooks that revise the roadmap
|
|
422
|
+
run. Reviews may edit the working directory. Hooks that revise the roadmap
|
|
423
|
+
cannot be selected.
|
|
436
424
|
- `--scope <path|range>`: What the reviews look at. Paths pass through; a git
|
|
437
425
|
revision range is resolved to the files it changed. Defaults to uncommitted
|
|
438
426
|
work, or the whole tree outside a repository.
|
|
@@ -136,8 +136,12 @@ lemming -C /tmp/pr-123 exec --review testing --scope main...HEAD
|
|
|
136
136
|
which is resolved to the files it changed. It defaults to uncommitted work, and
|
|
137
137
|
a clean tree stops the run rather than reviewing everything.
|
|
138
138
|
|
|
139
|
-
Reviews
|
|
140
|
-
|
|
139
|
+
Reviews may edit the working directory. Readability intentionally applies fixes,
|
|
140
|
+
and testing may repair production code or tests. UX is instructed to remain
|
|
141
|
+
advisory, but its prompt and `--no-yolo` do not enforce filesystem isolation. A
|
|
142
|
+
global review override may perform any actions its prompt requests. When
|
|
143
|
+
isolation is required, use a separate VCS-managed working copy and pass it with
|
|
144
|
+
the global `-C` option, as in the example above.
|
|
141
145
|
|
|
142
146
|
## Drive a roadmap
|
|
143
147
|
|
|
@@ -54,20 +54,34 @@ a broad task).
|
|
|
54
54
|
A code quality and simplification hook that challenges unnecessary complexity,
|
|
55
55
|
indirection, and duplicated implementations before reviewing changes for
|
|
56
56
|
adherence to the Google Style Guide and general readability using the bundled
|
|
57
|
-
`lemming readability` tool. It
|
|
58
|
-
|
|
57
|
+
`lemming readability` tool. It intentionally applies automated and targeted
|
|
58
|
+
fixes in the working directory and records broader findings as task progress.
|
|
59
59
|
|
|
60
60
|
### `testing`
|
|
61
61
|
|
|
62
62
|
Checks that changed behavior has focused test coverage and runs the relevant
|
|
63
|
-
tests. It
|
|
63
|
+
tests. It may repair small, targeted problems in production code or tests and
|
|
64
|
+
may add, merge, or remove tests. It records larger testing gaps as task progress
|
|
65
|
+
for the roadmap hook.
|
|
64
66
|
|
|
65
67
|
### `ux`
|
|
66
68
|
|
|
67
69
|
A lightweight journey-continuity review for user-visible changes. It considers
|
|
68
70
|
at most one affected critical journey, reports only concrete and reproducible
|
|
69
71
|
gaps, and exits immediately when the task did not change user-facing behavior.
|
|
70
|
-
|
|
72
|
+
Its prompt instructs the agent to stay advisory, but this is not
|
|
73
|
+
sandbox-enforced. It runs after `testing` and before `roadmap`.
|
|
74
|
+
|
|
75
|
+
### Reviews Are Not Read-Only
|
|
76
|
+
|
|
77
|
+
When selected with `lemming exec --review`, the hooks above may edit the working
|
|
78
|
+
directory. Prompt instructions and `--no-yolo` do not enforce filesystem
|
|
79
|
+
isolation. When isolation is required, create a separate VCS-managed working
|
|
80
|
+
copy and pass it through the global option:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
lemming -C <working-copy> exec --review <name>
|
|
84
|
+
```
|
|
71
85
|
|
|
72
86
|
### Editing Built-in Hook Prompts
|
|
73
87
|
|
|
@@ -104,7 +118,8 @@ Because of this precedence order, overriding a built-in hook only requires
|
|
|
104
118
|
creating a Markdown file with the same logical name in the project or global
|
|
105
119
|
directory (e.g. `~/.local/lemming/hooks/90-roadmap.md`); delete the file to
|
|
106
120
|
restore the built-in version. Global hooks are available to all Lemming projects
|
|
107
|
-
on the system.
|
|
121
|
+
on the system. A global review override selected by `lemming exec --review` may
|
|
122
|
+
perform any actions its prompt requests.
|
|
108
123
|
|
|
109
124
|
### Example: `lint` hook
|
|
110
125
|
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "lemming-cli"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.2"
|
|
8
8
|
description = "An autonomous, iterative task runner for AI coding agents."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -16,12 +16,12 @@ keywords = ["ai", "agents", "automation", "antigravity", "claude", "opencode"]
|
|
|
16
16
|
dependencies = [
|
|
17
17
|
"beautifulsoup4>=4.13.3",
|
|
18
18
|
"click>=8.0.0",
|
|
19
|
-
"click-agentcli>=0.
|
|
19
|
+
"click-agentcli>=0.4.1",
|
|
20
20
|
"fastapi>=0.124.4",
|
|
21
21
|
"markdownify>=0.14.1",
|
|
22
22
|
"pydantic>=2.12.5",
|
|
23
23
|
"pyyaml>=6.0.3",
|
|
24
|
-
"readability-cli>=0.
|
|
24
|
+
"readability-cli>=0.10.0",
|
|
25
25
|
"requests>=2.32.3",
|
|
26
26
|
"uvicorn>=0.33.0",
|
|
27
27
|
]
|
|
@@ -86,8 +86,7 @@ def git_repo():
|
|
|
86
86
|
api.app.state.root = pathlib.Path(test_dir).resolve()
|
|
87
87
|
|
|
88
88
|
# Clear cached git repo check from previous tests
|
|
89
|
-
|
|
90
|
-
del paths.in_git_repo._result
|
|
89
|
+
paths.in_git_repo.cache_clear()
|
|
91
90
|
|
|
92
91
|
subprocess.run(["git", "init"], check=True)
|
|
93
92
|
subprocess.run(
|
|
@@ -113,8 +112,7 @@ def git_repo():
|
|
|
113
112
|
yield pathlib.Path(test_dir)
|
|
114
113
|
|
|
115
114
|
# Clear cached git repo check and restore cwd
|
|
116
|
-
|
|
117
|
-
del paths.in_git_repo._result
|
|
115
|
+
paths.in_git_repo.cache_clear()
|
|
118
116
|
os.chdir(orig_cwd)
|
|
119
117
|
api.app.state.root = original_root
|
|
120
118
|
shutil.rmtree(test_dir)
|
|
@@ -130,8 +128,7 @@ def non_git_dir():
|
|
|
130
128
|
api.app.state.root = pathlib.Path(test_dir).resolve()
|
|
131
129
|
|
|
132
130
|
# Clear cached git repo check
|
|
133
|
-
|
|
134
|
-
del paths.in_git_repo._result
|
|
131
|
+
paths.in_git_repo.cache_clear()
|
|
135
132
|
|
|
136
133
|
# Create files (including one that would be "ignored" if git were present)
|
|
137
134
|
(pathlib.Path(test_dir) / "file1.txt").write_text("content1")
|
|
@@ -139,8 +136,7 @@ def non_git_dir():
|
|
|
139
136
|
|
|
140
137
|
yield pathlib.Path(test_dir)
|
|
141
138
|
|
|
142
|
-
|
|
143
|
-
del paths.in_git_repo._result
|
|
139
|
+
paths.in_git_repo.cache_clear()
|
|
144
140
|
os.chdir(orig_cwd)
|
|
145
141
|
api.app.state.root = original_root
|
|
146
142
|
shutil.rmtree(test_dir)
|
|
@@ -6,10 +6,13 @@ import pytest
|
|
|
6
6
|
from lemming.api import context
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
def _app_state(
|
|
10
|
+
root: pathlib.Path, tasks_file: pathlib.Path
|
|
11
|
+
) -> fastapi.datastructures.State:
|
|
12
|
+
"""The real state object, since it is just an attribute bag."""
|
|
13
|
+
return fastapi.datastructures.State(
|
|
14
|
+
{"root": root, "tasks_file": tasks_file}
|
|
15
|
+
)
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
def test_resolve_project_dir(tmp_path):
|
|
@@ -18,7 +21,7 @@ def test_resolve_project_dir(tmp_path):
|
|
|
18
21
|
project = root / "project"
|
|
19
22
|
project.mkdir()
|
|
20
23
|
|
|
21
|
-
app_state =
|
|
24
|
+
app_state = _app_state(root, root / "tasks.yml")
|
|
22
25
|
|
|
23
26
|
# Default (no project)
|
|
24
27
|
assert context.resolve_project_dir(app_state) == root
|
|
@@ -46,7 +49,7 @@ def test_resolve_tasks_file(tmp_path):
|
|
|
46
49
|
project.mkdir()
|
|
47
50
|
|
|
48
51
|
default_tasks = root / "tasks.yml"
|
|
49
|
-
app_state =
|
|
52
|
+
app_state = _app_state(root, default_tasks)
|
|
50
53
|
|
|
51
54
|
# Default
|
|
52
55
|
assert context.resolve_tasks_file(app_state) == default_tasks
|
|
@@ -223,7 +223,7 @@ def _task_status(
|
|
|
223
223
|
help=(
|
|
224
224
|
"Reviews to run after the task, comma-separated or repeated. "
|
|
225
225
|
"Use 'all' for every review. With no description, only the "
|
|
226
|
-
"reviews run."
|
|
226
|
+
"reviews run. Reviews may edit the working directory."
|
|
227
227
|
),
|
|
228
228
|
)
|
|
229
229
|
@click.option(
|
|
@@ -103,6 +103,7 @@ def test_disable_hooks_keeps_priority_in_mask(tmp_path, monkeypatch):
|
|
|
103
103
|
# The mask filename carries the hook's priority so listings still
|
|
104
104
|
# report the priority it would run at if re-enabled
|
|
105
105
|
mask = results["roadmap"]
|
|
106
|
+
assert mask is not None
|
|
106
107
|
assert mask.name == "90-roadmap.md"
|
|
107
108
|
assert mask.read_text(encoding="utf-8") == ""
|
|
108
109
|
|
|
@@ -27,12 +27,14 @@ def test_task_model_defaults():
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def test_task_model_validation():
|
|
30
|
-
# description is required
|
|
30
|
+
# description is required; the omission is the assertion, not a mistake
|
|
31
31
|
with pytest.raises(pydantic.ValidationError):
|
|
32
|
+
# pyrefly: ignore[missing-argument]
|
|
32
33
|
models.Task(id="123")
|
|
33
34
|
|
|
34
35
|
# id is required
|
|
35
36
|
with pytest.raises(pydantic.ValidationError):
|
|
37
|
+
# pyrefly: ignore[missing-argument]
|
|
36
38
|
models.Task(description="Test")
|
|
37
39
|
|
|
38
40
|
|
|
@@ -169,6 +169,7 @@ def test_finish_task_attempt(tmp_path):
|
|
|
169
169
|
persistence.save_tasks(tasks_file, data)
|
|
170
170
|
|
|
171
171
|
finished = lifecycle.finish_task_attempt(tasks_file, "1")
|
|
172
|
+
assert finished is not None
|
|
172
173
|
assert finished.status == models.TaskStatus.PENDING
|
|
173
174
|
assert finished.pid is None
|
|
174
175
|
|
|
@@ -204,14 +204,14 @@ wheels = [
|
|
|
204
204
|
|
|
205
205
|
[[package]]
|
|
206
206
|
name = "click-agentcli"
|
|
207
|
-
version = "0.
|
|
207
|
+
version = "0.4.1"
|
|
208
208
|
source = { registry = "https://pypi.org/simple" }
|
|
209
209
|
dependencies = [
|
|
210
210
|
{ name = "click" },
|
|
211
211
|
]
|
|
212
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
212
|
+
sdist = { url = "https://files.pythonhosted.org/packages/5f/f3/38a4a99f28121e48e848681dd80b54e490ec32a86d09a2d33f5c1a5d22cc/click_agentcli-0.4.1.tar.gz", hash = "sha256:f8bef4e82b2d61957764af3d806bc377eaba43bbd363552a966a04aecf05e9bb", size = 25736, upload-time = "2026-08-29T01:11:34.368Z" }
|
|
213
213
|
wheels = [
|
|
214
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
214
|
+
{ url = "https://files.pythonhosted.org/packages/e5/81/e50bd1adf77cc31283b642b729f9aefc002b0a5e1338dec19539b902c39d/click_agentcli-0.4.1-py3-none-any.whl", hash = "sha256:a39bc96c364970225ddbede45bc4307b4f73013f32c2744e6a02807b1aee27c6", size = 26364, upload-time = "2026-08-29T01:11:32.949Z" },
|
|
215
215
|
]
|
|
216
216
|
|
|
217
217
|
[[package]]
|
|
@@ -307,7 +307,7 @@ wheels = [
|
|
|
307
307
|
|
|
308
308
|
[[package]]
|
|
309
309
|
name = "lemming-cli"
|
|
310
|
-
version = "0.5.
|
|
310
|
+
version = "0.5.2"
|
|
311
311
|
source = { editable = "." }
|
|
312
312
|
dependencies = [
|
|
313
313
|
{ name = "beautifulsoup4" },
|
|
@@ -338,12 +338,12 @@ evals = [
|
|
|
338
338
|
requires-dist = [
|
|
339
339
|
{ name = "beautifulsoup4", specifier = ">=4.13.3" },
|
|
340
340
|
{ name = "click", specifier = ">=8.0.0" },
|
|
341
|
-
{ name = "click-agentcli", specifier = ">=0.
|
|
341
|
+
{ name = "click-agentcli", specifier = ">=0.4.1" },
|
|
342
342
|
{ name = "fastapi", specifier = ">=0.124.4" },
|
|
343
343
|
{ name = "markdownify", specifier = ">=0.14.1" },
|
|
344
344
|
{ name = "pydantic", specifier = ">=2.12.5" },
|
|
345
345
|
{ name = "pyyaml", specifier = ">=6.0.3" },
|
|
346
|
-
{ name = "readability-cli", specifier = ">=0.
|
|
346
|
+
{ name = "readability-cli", specifier = ">=0.10.0" },
|
|
347
347
|
{ name = "requests", specifier = ">=2.32.3" },
|
|
348
348
|
{ name = "uvicorn", specifier = ">=0.33.0" },
|
|
349
349
|
]
|
|
@@ -573,7 +573,7 @@ wheels = [
|
|
|
573
573
|
|
|
574
574
|
[[package]]
|
|
575
575
|
name = "readability-cli"
|
|
576
|
-
version = "0.
|
|
576
|
+
version = "0.10.0"
|
|
577
577
|
source = { registry = "https://pypi.org/simple" }
|
|
578
578
|
dependencies = [
|
|
579
579
|
{ name = "beautifulsoup4" },
|
|
@@ -581,9 +581,9 @@ dependencies = [
|
|
|
581
581
|
{ name = "markdownify" },
|
|
582
582
|
{ name = "requests" },
|
|
583
583
|
]
|
|
584
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
584
|
+
sdist = { url = "https://files.pythonhosted.org/packages/cd/1e/879bc39b3e9127dfac23822b333093237b95f9ac8891295c039c21481bdd/readability_cli-0.10.0.tar.gz", hash = "sha256:201bf386850d8e465d154bab307399cc5516eb779d1032f75bc97cf38dbf636d", size = 349921, upload-time = "2026-08-23T23:44:08.64Z" }
|
|
585
585
|
wheels = [
|
|
586
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
586
|
+
{ url = "https://files.pythonhosted.org/packages/e1/e2/c573dd0f508e9eb3b4ad0167fc1d60cd361297b6ed8daaf7e4825ad7f6cf/readability_cli-0.10.0-py3-none-any.whl", hash = "sha256:09227180ce6e66ca5f9ef386a9f4e254aeecbed880296c188d0dccc33f918b15", size = 326908, upload-time = "2026-08-23T23:44:06.691Z" },
|
|
587
587
|
]
|
|
588
588
|
|
|
589
589
|
[[package]]
|
lemming_cli-0.5.0/pyrefly.toml
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# Type checking covers the code that ships, not the code that exercises it.
|
|
2
|
-
#
|
|
3
|
-
# Test doubles are duck-typed on purpose, so a strict checker reports every
|
|
4
|
-
# one of them as an incompatible argument; the eval fixture projects are
|
|
5
|
-
# sample repositories seeded into a workspace, several deliberately broken,
|
|
6
|
-
# and they are data rather than source.
|
|
7
|
-
project-excludes = [
|
|
8
|
-
"**/*_test.py",
|
|
9
|
-
"**/conftest.py",
|
|
10
|
-
"**/evals/projects/**",
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
# The fixture projects are checked when a path names one directly, where
|
|
14
|
-
# project-excludes does not apply. Their imports are relative to the
|
|
15
|
-
# workspace they get seeded into, not to this repository.
|
|
16
|
-
[[sub-config]]
|
|
17
|
-
matches = "**/evals/projects/**"
|
|
18
|
-
|
|
19
|
-
[sub-config.errors]
|
|
20
|
-
missing-import = false
|
|
21
|
-
missing-module-attribute = false
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/README.md
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/legacy.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/ops.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/base/calc/ops_test.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/clean/calc/ops.py
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/dead-code/calc/ops.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/readability/lint-debt/calc/ops.py
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/README.md
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/calc/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/calc/ops.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/add-only/calc/ops_test.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/buggy-subtract/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/README.md
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/calc/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/calc/ops.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/full-ops/calc/ops_test.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/calc/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/roadmap/unwired-cli/calc/ops.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/task/summary/stats/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.5.0 → lemming_cli-0.5.2}/src/lemming/evals/projects/task/summary/stats/summary.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|