lemming-cli 0.7.0__tar.gz → 0.7.1__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.7.0 → lemming_cli-0.7.1}/PKG-INFO +1 -1
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/pyproject.toml +1 -1
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/orchestrator.py +12 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/runner.py +48 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/uv.lock +1 -1
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/.dockerignore +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/.github/workflows/ci.yml +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/.github/workflows/publish.yml +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/.github/workflows/screenshots.yml +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/.gitignore +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/.prettierignore +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/.prettierrc +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/Dockerfile +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/LICENSE +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/README.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/SKILL.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/biome.json +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docker-compose.yml +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docs/EVALS.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docs/HOOKS.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docs/WORKSPACE.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docs/screenshots/dashboard-desktop.png +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docs/screenshots/dashboard-mobile.png +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docs/screenshots/task-log-desktop.png +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/docs/screenshots/task-log-mobile.png +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/package-lock.json +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/package.json +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/playwright.config.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/auth.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/auth_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/config.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/config_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/conftest.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/context.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/context_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/directories.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/directories_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/files.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/files_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/hooks.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/hooks_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/logging.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/logging_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/loop.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/loop_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/main.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/main_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/tasks.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/api/tasks_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/artifact_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/brief_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/artifact.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/brief.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/config.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/config_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/exec_cli.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/exec_cli_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/goal.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/goal_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/hooks.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/hooks_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/machine_output_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/main.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/main_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/operations.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/operations_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/progress.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/progress_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/readability_cli.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/readability_cli_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/skill.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/skill_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/stop_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/tasks.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/cli/tasks_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/conftest.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/__main__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/cli.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/cli_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/container.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/container_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/fixtures.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/fixtures_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/harness.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/harness_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/metrics.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/metrics_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/README.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/legacy.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/clean/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/clean/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/dead-code/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/dead-code/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/duplicated-behavior/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/duplicated-behavior/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/false-reuse/calc/limits.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/false-reuse/calc/limits_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/lint-debt/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/lint-debt/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/README.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/calc/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/buggy-subtract/README.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/buggy-subtract/calc/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/buggy-subtract/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/buggy-subtract/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/README.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/calc/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/README.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/calc/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/calc/cli.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/calc/cli_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/calc/ops.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/calc/ops_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/task/hidden/stats/summary_hidden_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/task/summary/README.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/task/summary/stats/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/task/summary/stats/summary.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/task/summary/stats/summary_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/readability.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/readability_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/report.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/report_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/roadmap.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/roadmap_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/scenarios.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/scenarios_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/suites.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/task.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/task_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/trial.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/trial_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/hooks.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/hooks_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/integration_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/main.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/main_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/models.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/models_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/orchestrator_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/paths.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/paths_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/persistence.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/persistence_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/prompts/hooks/50-readability.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/prompts/hooks/60-testing.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/prompts/hooks/70-ux.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/prompts/hooks/90-roadmap.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/prompts/taskrunner.md +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/prompts.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/prompts_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/providers.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/providers_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/runner_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/scope.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/scope_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/shutdown.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/shutdown_integration_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/shutdown_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/__init__.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/lifecycle.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/lifecycle_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/limits.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/operations.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/operations_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/progress.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/progress_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/queries.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/tasks/queries_test.py +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/dashboard.spec.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/dashboard.test.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/favicon.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/favicon.spec.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/files.html +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/files.spec.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/index.html +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/index.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/logs.html +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/logs.test.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/mancha.js +0 -0
- {lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/web/screenshots.spec.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: lemming-cli
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
4
4
|
Summary: An autonomous, iterative task runner for AI coding agents.
|
|
5
5
|
Project-URL: Homepage, https://github.com/owahltinez/lemming
|
|
6
6
|
Project-URL: Repository, https://github.com/owahltinez/lemming
|
|
@@ -392,6 +392,18 @@ def _handle_runner_exit(
|
|
|
392
392
|
runner.RETURNCODE_TIMEOUT,
|
|
393
393
|
)
|
|
394
394
|
|
|
395
|
+
# Record agy's silently lost file creations before hooks judge the task.
|
|
396
|
+
for path in runner.extract_lost_writes(stdout):
|
|
397
|
+
message = f"Runner failed to create {path}: agy rejected the write"
|
|
398
|
+
click.echo(message)
|
|
399
|
+
try:
|
|
400
|
+
progress.add_progress(
|
|
401
|
+
tasks_file, task_id, message[: limits.MAX_PROGRESS_ENTRY_CHARS]
|
|
402
|
+
)
|
|
403
|
+
except Exception:
|
|
404
|
+
# Recording the loss must never take down the loop.
|
|
405
|
+
pass
|
|
406
|
+
|
|
395
407
|
# Post-execution validation and heartbeat cleanup
|
|
396
408
|
# This will mark the task as COMPLETED or PENDING based on whether
|
|
397
409
|
# the agent called 'lemming complete'.
|
|
@@ -398,6 +398,54 @@ def extract_error_message(
|
|
|
398
398
|
return None
|
|
399
399
|
|
|
400
400
|
|
|
401
|
+
def extract_lost_writes(output: str) -> list[str]:
|
|
402
|
+
"""Returns workspace files agy rejected creating and never wrote after.
|
|
403
|
+
|
|
404
|
+
Agy since 1.1.12 rejects a `write_to_file` carrying ArtifactMetadata for
|
|
405
|
+
a workspace path. The model usually retries without it, but sometimes
|
|
406
|
+
writes the file into agy's own artifact directory instead and still
|
|
407
|
+
reports success (google-antigravity/antigravity-cli#838).
|
|
408
|
+
|
|
409
|
+
Args:
|
|
410
|
+
output: Captured runner output, one JSON event per line.
|
|
411
|
+
|
|
412
|
+
Returns:
|
|
413
|
+
Rejected target paths with no later successful write, in order.
|
|
414
|
+
"""
|
|
415
|
+
lost: dict[str, None] = {}
|
|
416
|
+
for raw_line in output.splitlines():
|
|
417
|
+
line = raw_line.strip()
|
|
418
|
+
if not line.startswith("{") or "write_to_file" not in line:
|
|
419
|
+
continue
|
|
420
|
+
try:
|
|
421
|
+
event = json.loads(line)
|
|
422
|
+
except ValueError:
|
|
423
|
+
continue
|
|
424
|
+
|
|
425
|
+
# Only agy's tool step updates carry the target and outcome.
|
|
426
|
+
update = event.get("step_update") if isinstance(event, dict) else None
|
|
427
|
+
if not isinstance(update, dict):
|
|
428
|
+
continue
|
|
429
|
+
if update.get("tool_name") != "write_to_file":
|
|
430
|
+
continue
|
|
431
|
+
info = update.get("tool_info")
|
|
432
|
+
if not isinstance(info, dict):
|
|
433
|
+
continue
|
|
434
|
+
params = info.get("parameters")
|
|
435
|
+
target = params.get("TargetFile") if isinstance(params, dict) else None
|
|
436
|
+
if not isinstance(target, str):
|
|
437
|
+
continue
|
|
438
|
+
|
|
439
|
+
# A later successful write to the same path recovers the rejection.
|
|
440
|
+
if update.get("state") == "DONE":
|
|
441
|
+
lost.pop(target, None)
|
|
442
|
+
elif update.get("state") == "ERROR" and "not a valid artifact path" in (
|
|
443
|
+
json.dumps(info.get("error"))
|
|
444
|
+
):
|
|
445
|
+
lost[target] = None
|
|
446
|
+
return list(lost)
|
|
447
|
+
|
|
448
|
+
|
|
401
449
|
def _final_message_text(event: dict) -> str | None:
|
|
402
450
|
"""Returns the agent's closing text from one event, or None.
|
|
403
451
|
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/README.md
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/legacy.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/ops.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/base/calc/ops_test.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/clean/calc/ops.py
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/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.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/readability/lint-debt/calc/ops.py
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/README.md
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/calc/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/calc/ops.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/add-only/calc/ops_test.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/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.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/README.md
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/calc/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/calc/ops.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/full-ops/calc/ops_test.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/README.md
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/roadmap/unwired-cli/calc/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/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.7.0 → lemming_cli-0.7.1}/src/lemming/evals/projects/task/summary/stats/__init__.py
RENAMED
|
File without changes
|
{lemming_cli-0.7.0 → lemming_cli-0.7.1}/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
|
|
File without changes
|
|
File without changes
|