ai-dev-cli-tools 0.5.0a1__tar.gz → 1.0.0__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.
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/ci.yml +2 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/docs.yml +1 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/release.yml +3 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.gitignore +3 -0
- ai_dev_cli_tools-1.0.0/CHANGELOG.md +95 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/CONTRIBUTING.md +1 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/PKG-INFO +70 -16
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/README.md +65 -13
- ai_dev_cli_tools-1.0.0/TODO.md +24 -0
- ai_dev_cli_tools-1.0.0/docs/ADAPTIVECHESSAI_FULL_CHECK_FAILURE_2026-08-30.md +90 -0
- ai_dev_cli_tools-1.0.0/docs/ADAPTIVECHESSAI_PYCHARM_HEADLESS_INSPECTION_FAILURE_2026-08-30.md +60 -0
- ai_dev_cli_tools-1.0.0/docs/AGENT_COORDINATION.md +43 -0
- ai_dev_cli_tools-1.0.0/docs/AGENT_EFFICIENCY_ROADMAP.md +91 -0
- ai_dev_cli_tools-1.0.0/docs/AGENT_INTEGRATION_CONTRACT.md +43 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/ARCHITECTURE.md +10 -3
- ai_dev_cli_tools-1.0.0/docs/BENCHMARKS.md +99 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/BOOTSTRAP.md +2 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/CACHE_AND_INDEX.md +24 -1
- ai_dev_cli_tools-1.0.0/docs/CONTEXT_BUILDER.md +142 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/DISTRIBUTION.md +7 -7
- ai_dev_cli_tools-1.0.0/docs/FLAKY_RETRIES.md +29 -0
- ai_dev_cli_tools-1.0.0/docs/MCP_SERVER.md +99 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/MONOREPO_SUPPORT.md +1 -1
- ai_dev_cli_tools-1.0.0/docs/OBSERVATION_LIFECYCLE.md +38 -0
- ai_dev_cli_tools-1.0.0/docs/PERFORMANCE.md +45 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/RELEASE_CHECKLIST.md +14 -4
- ai_dev_cli_tools-1.0.0/docs/REPORT_SCHEMA.md +133 -0
- ai_dev_cli_tools-1.0.0/docs/SEMANTIC_COMPRESSION.md +30 -0
- ai_dev_cli_tools-1.0.0/docs/TOKEN_EFFICIENCY_RESEARCH.md +129 -0
- ai_dev_cli_tools-1.0.0/docs/WARM_ENVIRONMENT.md +28 -0
- ai_dev_cli_tools-1.0.0/docs/WATCH_MODE.md +24 -0
- ai_dev_cli_tools-1.0.0/docs/benchmarks/agent-workflows-windows-py314-2026-08-11.json +671 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-affected-workflow.json +32 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-monorepo-workflow.json +32 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-multiturn-workflow.json +32 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-repair-workflow.json +32 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/pyproject.toml +6 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/src/orders.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/src/pricing.py +331 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/__init__.py +0 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_orders.py +5 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_pricing.py +5 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_1.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_10.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_11.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_12.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_2.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_3.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_4.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_5.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_6.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_7.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_8.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_9.py +2 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/__init__.py +1 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/__init__.py +1 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/pyproject.toml +7 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/__init__.py +1 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/billing.py +3 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/__init__.py +1 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/test_billing.py +5 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/__init__.py +1 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/pyproject.toml +7 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/__init__.py +1 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/catalog.py +3 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/__init__.py +1 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/test_catalog.py +5 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/mcp-recurring-status.json +12 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/output-budget-smoke.json +12 -0
- ai_dev_cli_tools-1.0.0/examples/benchmarks/symbol-diff-context.json +12 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/pyproject.toml +20 -3
- ai_dev_cli_tools-1.0.0/requirements-dev.lock +7 -0
- ai_dev_cli_tools-1.0.0/scripts/__init__.py +0 -0
- ai_dev_cli_tools-1.0.0/scripts/benchmark_agent_workflow.py +253 -0
- ai_dev_cli_tools-1.0.0/scripts/benchmark_mcp_status.py +98 -0
- ai_dev_cli_tools-1.0.0/scripts/benchmark_symbol_diff.py +71 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/test_installed_package.py +20 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/validate_ci.py +5 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/validate_release.py +34 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/__init__.py +1 -1
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/cache/graph.py +293 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/cache/prompt_layout.py +142 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cli.py +233 -13
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/completion.py +20 -6
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/config.py +57 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/builder.py +219 -21
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/compression.py +185 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/incremental.py +56 -13
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/models.py +11 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/profiles.py +16 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/refinement.py +104 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/retrieval.py +189 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/selection.py +31 -7
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/symbols.py +21 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/tokens.py +291 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/project.py +22 -3
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/workspaces.py +14 -3
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/git/inspect.py +23 -9
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/git/symbol_diff.py +421 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/mcp_server.py +663 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/reporters/progressive.py +71 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/baseline.py +61 -6
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/benchmark.py +357 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/bootstrap.py +54 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/bootstrap_models.py +1 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/cache.py +9 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check.py +141 -19
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check_models.py +5 -1
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/check_scheduler.py +161 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check_selection.py +16 -1
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/coordination.py +316 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/diagnostics.py +15 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/environment_state.py +250 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/feedback.py +69 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/flaky.py +164 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/observations.py +133 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/performance.py +243 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/watch.py +177 -0
- ai_dev_cli_tools-1.0.0/src/ai_dev_tools/source_symbols.py +737 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/utils/subprocess.py +68 -1
- ai_dev_cli_tools-1.0.0/tests/integration/test_adaptive_chess_regression.py +45 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_git.py +28 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_baseline.py +52 -1
- ai_dev_cli_tools-1.0.0/tests/unit/test_benchmark.py +163 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_cache.py +53 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_check.py +15 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_check_scheduler.py +54 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_cli_more.py +42 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_completion.py +5 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_context_builder.py +122 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_context_compression.py +92 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_context_profiles.py +34 -1
- ai_dev_cli_tools-1.0.0/tests/unit/test_context_refinement.py +62 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_context_retrieval.py +121 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_context_symbols.py +196 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_coordination.py +93 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_diagnostics.py +5 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_environment_state.py +120 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_feedback.py +2 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_flaky.py +101 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_mcp_server.py +300 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_more_coverage.py +18 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_more_symbol_adapters.py +158 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_observations.py +115 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_performance.py +95 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_progressive_reports.py +23 -1
- ai_dev_cli_tools-1.0.0/tests/unit/test_prompt_layout.py +104 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_release_scripts.py +37 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_report.py +1 -1
- ai_dev_cli_tools-1.0.0/tests/unit/test_symbol_diff.py +112 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_token_accounting.py +120 -0
- ai_dev_cli_tools-1.0.0/tests/unit/test_watch.py +132 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_workspaces.py +14 -0
- ai_dev_cli_tools-0.5.0a1/CHANGELOG.md +0 -51
- ai_dev_cli_tools-0.5.0a1/TODO.md +0 -126
- ai_dev_cli_tools-0.5.0a1/docs/AGENT_EFFICIENCY_ROADMAP.md +0 -483
- ai_dev_cli_tools-0.5.0a1/docs/AGENT_INTEGRATION_CONTRACT.md +0 -25
- ai_dev_cli_tools-0.5.0a1/docs/CONTEXT_BUILDER.md +0 -56
- ai_dev_cli_tools-0.5.0a1/docs/REPORT_SCHEMA.md +0 -83
- ai_dev_cli_tools-0.5.0a1/src/ai_dev_tools/cache/graph.py +0 -136
- ai_dev_cli_tools-0.5.0a1/src/ai_dev_tools/context/symbols.py +0 -178
- ai_dev_cli_tools-0.5.0a1/src/ai_dev_tools/runners/check_scheduler.py +0 -94
- ai_dev_cli_tools-0.5.0a1/tests/unit/test_context_symbols.py +0 -79
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/publish-pypi.yml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/LICENSE +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/Makefile +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/SECURITY.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/ai.ps1 +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/ai.sh +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/ADDING_A_DETECTOR.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/ADDING_A_RUNNER.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/CHANGED_TEST_SELECTION.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/RUNTIME.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/TOOL_OUTPUT_PARSERS.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/report-schema.json +0 -0
- {ai_dev_cli_tools-0.5.0a1/scripts → ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/src}/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/examples/consume_json_report.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/verify_published_package.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cache/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cache/repository.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cache/validation.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/environment.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/repository_map.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/runtime.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/git/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/models/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/models/report.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/models/workspace.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/parsers/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/parsers/logs.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/parsers/registry.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/reporters/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/reporters/writer.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/bootstrap_strategies.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check_checkpoint.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/finish.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/focused.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/index.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runtime/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runtime/runner.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runtime/supervisor.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/security/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/security/secrets.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/utils/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/cargo-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/coverage-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/eslint-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/gradle-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/jest-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/maven-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/maven-localized-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/mypy-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/phpunit-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/pytest-9-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/pytest-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/pytest-multiple-failures.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/ruff-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/ruff-warning.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/tsc-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/vitest-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/packages/api/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/packages/api/tests/test_smoke.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/packages/web/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/packages/web/test.js +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/services/worker/Cargo.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/services/worker/src/lib.rs +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/gradle/build.gradle +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/gradle/gradlew.bat +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/maven/mvnw.cmd +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/maven/pom.xml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-npm/package-lock.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-npm/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-pnpm/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-pnpm/pnpm-lock.yaml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-yarn/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-yarn/yarn.lock +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/php-composer/composer.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-pip/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-pip/requirements.txt +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-poetry/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-uv/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-uv/uv.lock +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/rust/Cargo.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_cli.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_cross_platform_paths.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_toolchain_e2e.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_bootstrap.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_check_plan.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_config.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_doctor.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_finish.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_logs.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_package_smoke.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_repository_map.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runner_failures.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runtime.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runtime_runner.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runtime_supervisor.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_scan.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_secret_boundaries.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_secrets.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_tool_parsers.py +0 -0
|
@@ -18,7 +18,7 @@ jobs:
|
|
|
18
18
|
with:
|
|
19
19
|
python-version: ${{ matrix.python-version }}
|
|
20
20
|
- run: python -m pip install --upgrade pip
|
|
21
|
-
- run: python -m pip install -e ".[dev]"
|
|
21
|
+
- run: python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
22
22
|
- run: ruff check .
|
|
23
23
|
- run: mypy src tests
|
|
24
24
|
- run: coverage run -m pytest
|
|
@@ -63,7 +63,7 @@ jobs:
|
|
|
63
63
|
- uses: gradle/actions/setup-gradle@v4
|
|
64
64
|
with:
|
|
65
65
|
gradle-version: "8.10"
|
|
66
|
-
- run: python -m pip install -e ".[dev]"
|
|
66
|
+
- run: python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
67
67
|
- name: Execute real fixture toolchains
|
|
68
68
|
env:
|
|
69
69
|
RUN_TOOLCHAIN_E2E: "1"
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
- uses: actions/setup-python@v5
|
|
13
13
|
with:
|
|
14
14
|
python-version: "3.12"
|
|
15
|
-
- run: python -m pip install -e ".[dev]"
|
|
15
|
+
- run: python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
16
16
|
- run: python -m ai_dev_tools.cli --help
|
|
17
17
|
- run: python -m ai_dev_tools.cli check --help
|
|
18
18
|
- run: test -s README.md
|
|
@@ -84,6 +84,9 @@ jobs:
|
|
|
84
84
|
permissions:
|
|
85
85
|
contents: write
|
|
86
86
|
steps:
|
|
87
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
88
|
+
with:
|
|
89
|
+
persist-credentials: false
|
|
87
90
|
- name: Download TestPyPI-verified distribution artifact
|
|
88
91
|
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v6
|
|
89
92
|
with:
|
|
@@ -96,7 +99,6 @@ jobs:
|
|
|
96
99
|
gh release create "$GITHUB_REF_NAME"
|
|
97
100
|
dist/*
|
|
98
101
|
--draft
|
|
99
|
-
--prerelease
|
|
100
102
|
--verify-tag
|
|
101
103
|
--generate-notes
|
|
102
104
|
--title "ai-dev $GITHUB_REF_NAME"
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.0.0 - 2026-08-31
|
|
4
|
+
|
|
5
|
+
- Stabilize the local CLI and report schema for the 1.0 release line.
|
|
6
|
+
- Add deterministic `implement` and `docs` context profiles with contract-tested budgets.
|
|
7
|
+
- Add project-scoped `explain --symbol PATH#QUALIFIED_SYMBOL` with bounded content and related tests.
|
|
8
|
+
- Add configuration ownership, generated-source relationships, reverse-dependent traversal, and
|
|
9
|
+
bounded reason paths to the impact graph.
|
|
10
|
+
- Add nested Java/PHP owner qualification and overload-safe Java member identities.
|
|
11
|
+
- Add dependency-aware, resource-bounded check scheduling with deterministic report order.
|
|
12
|
+
- Safely cancel only subprocesses owned by obsolete watch validations while retaining their logs.
|
|
13
|
+
- Add a pinned development-tool baseline and disable unrelated globally installed pytest-qt hooks.
|
|
14
|
+
- Add an end-to-end regression for ignored virtual environments, CP1250 output, and non-zero check
|
|
15
|
+
result status consistency.
|
|
16
|
+
- Add retained historical incremental context manifests and `context build --since <context-id>`.
|
|
17
|
+
- Add direct named baseline regression checks through `check --compare` and
|
|
18
|
+
`context build --compare`.
|
|
19
|
+
- Add bounded shortest reason paths for changed-file, related-test, symbol, and check selection.
|
|
20
|
+
- Exclude `env` and `venv` dependency trees from workspace discovery, make text reports safe on
|
|
21
|
+
legacy Windows console encodings, and keep non-zero check results from reporting success.
|
|
22
|
+
- Add explainable `auto|always|never` selective retrieval with conservative fallback and related-test false-negative measurement.
|
|
23
|
+
- Add a local observation lifecycle that replaces superseded feedback with expandable content-addressed evidence while retaining current failures, warnings, and final verification.
|
|
24
|
+
- Add a relocatable deterministic prompt-cache layout manifest with stable-prefix fingerprints and OpenAI, Anthropic, and provider-neutral breakpoint recommendations.
|
|
25
|
+
- Add optional exact tiktoken accounting, provider usage normalization, and enforced per-category token budgets for context packs.
|
|
26
|
+
- Add bounded multi-round context refinement driven by failures, changed symbols, dependencies, and expandable evidence.
|
|
27
|
+
- Add opt-in deterministic prose/log deduplication with fail-closed protected-evidence fingerprints.
|
|
28
|
+
- Add owner-qualified Java/PHP methods and Rust impl/trait functions, Java constructor detection,
|
|
29
|
+
and correct global PHP function classification.
|
|
30
|
+
- Replace the completed historical backlog with an active backlog and mark every roadmap capability
|
|
31
|
+
as implemented or partial against the supported CLI.
|
|
32
|
+
|
|
33
|
+
- Document research-backed selective retrieval, prompt-cache layout, observation lifecycle, token accounting, and safe compression priorities.
|
|
34
|
+
- Add local stage timing records, configurable performance budgets, and latest/compare diagnostics.
|
|
35
|
+
- Add versioned real-agent benchmark fixtures for repair, affected tests, multi-turn context, and monorepo routing, with private measured workflow telemetry and published raw trials.
|
|
36
|
+
- Add a dependency-free local MCP STDIO server with focused, bounded project tools.
|
|
37
|
+
- Add symbol-level Python and JavaScript/TypeScript working-tree diffs with compact review contexts.
|
|
38
|
+
- Add local multi-agent task coordination with expiring leases and path-conflict detection.
|
|
39
|
+
- Add conservative Java, Rust, and PHP adapters for context selection and symbol-level diffs.
|
|
40
|
+
|
|
41
|
+
- Add task-aware JavaScript/TypeScript top-level symbol selection for bounded context packs.
|
|
42
|
+
- Correct capabilities metadata for flaky retries and completed cross-platform CI.
|
|
43
|
+
|
|
44
|
+
- Add reproducible, correctness-gated local A/B workflow benchmarks and comparison reports.
|
|
45
|
+
- Add foreground watch mode with debounced changed validation and latest-result reports.
|
|
46
|
+
- Add revalidated warm environment state and bootstrap --if-needed.
|
|
47
|
+
- Add opt-in bounded flaky retries with preserved first failures and local history.
|
|
48
|
+
|
|
49
|
+
## 0.5.0a1 - 2026-08-10
|
|
50
|
+
|
|
51
|
+
- Add workspace models and isolated check/bootstrap routing for mixed monorepos.
|
|
52
|
+
- Add cross-platform mixed-monorepo and Git path fixtures covering spaces, Unicode, rename, deletion, and non-UTF-8 output.
|
|
53
|
+
- Add runner failure matrices and real Python, Node, Rust, Maven, Gradle, and Composer fixture execution in CI.
|
|
54
|
+
- Detect and validate Python, Node.js, Java, Rust, and PHP runtime requirements.
|
|
55
|
+
- Implement safe managed `run` and `stop` with supervisor-owned process termination.
|
|
56
|
+
- Add HTTP/TCP readiness probes, bounded startup logs, and readiness-timeout cleanup.
|
|
57
|
+
- Add bounded parallel check execution with `--jobs`.
|
|
58
|
+
- Add a versioned repository index and content-addressed validation cache with bounded retention.
|
|
59
|
+
- Add incremental context manifests and `context build --incremental`.
|
|
60
|
+
- Add AST-aware Python symbol snippets for large context files.
|
|
61
|
+
- Add minimal, debug, review, and full context profiles.
|
|
62
|
+
- Add local diagnostics, efficiency estimates, a stable agent contract, and JSON integration example.
|
|
63
|
+
- Add dependency-free completion generators for Bash, Zsh, Fish, and PowerShell.
|
|
64
|
+
- Add stable failure signatures and a machine-readable report JSON Schema.
|
|
65
|
+
- Add an extensible tool-output parser registry with deterministic precedence.
|
|
66
|
+
- Add compatibility fixtures and prevent cross-line test-count overcounting.
|
|
67
|
+
- Apply defense-in-depth secret masking to command logs, diagnostics, runtime streams, and report writers.
|
|
68
|
+
- Raise and enforce the coverage threshold to 90%.
|
|
69
|
+
- Add agent-efficiency and execution TODO roadmaps.
|
|
70
|
+
|
|
71
|
+
## 0.4.0
|
|
72
|
+
|
|
73
|
+
- Add `ai-dev bootstrap` with safe explain, dry-run, and execution modes.
|
|
74
|
+
- Support bootstrap strategies for Python, Node.js, Maven, Gradle, Rust, and PHP.
|
|
75
|
+
- Add guarded `.env.example` to `.env` creation via `--create-env`.
|
|
76
|
+
- Add installed-wheel entrypoint smoke validation to local and CI standards.
|
|
77
|
+
- Keep cross-platform CI marked as externally blocked until GitHub Actions jobs actually run.
|
|
78
|
+
## 0.3.0
|
|
79
|
+
|
|
80
|
+
- Add `ai-dev context build` for bounded local AI context packages.
|
|
81
|
+
- Write `.ai/context/context-latest.md` and `.ai/context/context-latest.json` artifacts.
|
|
82
|
+
- Reuse scan, repository map, git inspect, changed-test selection, validation planning, and secret masking.
|
|
83
|
+
- Keep monorepo detection experimental, per-subproject runner isolation planned, and runtime validation partial.
|
|
84
|
+
## 0.2.0
|
|
85
|
+
|
|
86
|
+
- Add schema 1.1 reports with exit codes and metadata.
|
|
87
|
+
- Add tool-specific output parser layer with fixtures for Python, JavaScript, Java, Rust, and PHP logs.
|
|
88
|
+
- Add `ai-dev capabilities` and `ai-dev check --explain`.
|
|
89
|
+
- Add `logs summarize <path> --tool auto|name` with a 50 MB input limit.
|
|
90
|
+
- Improve changed-file strategies with configuration-change and changed-test-direct reporting.
|
|
91
|
+
- Prepare package version 0.2.0 without creating a release.
|
|
92
|
+
|
|
93
|
+
## 0.1.0
|
|
94
|
+
|
|
95
|
+
- Initial private foundation for cross-platform AI development CLI helpers.
|
|
@@ -5,6 +5,7 @@ Keep changes small, typed, tested, and conservative. Runtime code should avoid p
|
|
|
5
5
|
Before pushing a larger stage, run:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
+
python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
8
9
|
python -m ruff check .
|
|
9
10
|
python -m mypy src tests scripts
|
|
10
11
|
python -m coverage run -m pytest
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: ai-dev-cli-tools
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.0
|
|
4
4
|
Summary: Cross-platform CLI helpers that give AI coding agents concise, deterministic development reports.
|
|
5
5
|
Project-URL: Homepage, https://github.com/MatthiasLew/ai-dev-cli-tools
|
|
6
6
|
Project-URL: Repository, https://github.com/MatthiasLew/ai-dev-cli-tools
|
|
@@ -10,7 +10,7 @@ Author: Mateusz Lewandowski
|
|
|
10
10
|
License: MIT
|
|
11
11
|
License-File: LICENSE
|
|
12
12
|
Keywords: agents,ai,automation,cli,developer-tools
|
|
13
|
-
Classifier: Development Status ::
|
|
13
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
14
14
|
Classifier: Environment :: Console
|
|
15
15
|
Classifier: License :: OSI Approved :: MIT License
|
|
16
16
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -25,6 +25,8 @@ Requires-Dist: coverage[toml]>=7.6; extra == 'dev'
|
|
|
25
25
|
Requires-Dist: mypy>=1.11; extra == 'dev'
|
|
26
26
|
Requires-Dist: pytest>=8.3; extra == 'dev'
|
|
27
27
|
Requires-Dist: ruff>=0.6; extra == 'dev'
|
|
28
|
+
Provides-Extra: tokenizers
|
|
29
|
+
Requires-Dist: tiktoken>=0.7; extra == 'tokenizers'
|
|
28
30
|
Description-Content-Type: text/markdown
|
|
29
31
|
|
|
30
32
|
# AI Dev CLI Tools
|
|
@@ -52,17 +54,17 @@ be safe for `ai-dev` to recreate.
|
|
|
52
54
|
|
|
53
55
|
```bash
|
|
54
56
|
python -m pip install --upgrade pipx
|
|
55
|
-
pipx install ai-dev-cli-tools==0.
|
|
57
|
+
pipx install ai-dev-cli-tools==1.0.0
|
|
56
58
|
ai-dev --help
|
|
57
59
|
```
|
|
58
60
|
|
|
59
|
-
For a source checkout
|
|
60
|
-
|
|
61
|
+
For a source checkout, use `pipx install .`. See `docs/DISTRIBUTION.md` for the Trusted Publishing
|
|
62
|
+
and upgrade policy.
|
|
61
63
|
|
|
62
64
|
For development:
|
|
63
65
|
|
|
64
66
|
```bash
|
|
65
|
-
python -m pip install -e ".[dev]"
|
|
67
|
+
python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
66
68
|
```
|
|
67
69
|
|
|
68
70
|
## Windows
|
|
@@ -89,16 +91,26 @@ ai-dev check --mode fast
|
|
|
89
91
|
ai-dev check --mode changed # reports changed files and falls back safely when test mapping is uncertain
|
|
90
92
|
ai-dev check --mode full --jobs 4
|
|
91
93
|
ai-dev check --mode changed --policy feedback-first --resume
|
|
94
|
+
ai-dev check --mode changed --compare main
|
|
95
|
+
ai-dev check --mode changed --retry-flaky 1
|
|
92
96
|
ai-dev index update
|
|
93
97
|
ai-dev cache status
|
|
98
|
+
ai-dev cache layout
|
|
94
99
|
ai-dev baseline create main
|
|
95
100
|
ai-dev baseline compare main
|
|
101
|
+
ai-dev benchmark run --suite examples/benchmarks/output-budget-smoke.json --variant baseline
|
|
96
102
|
ai-dev explain issue:<id> --tail 100
|
|
103
|
+
ai-dev explain --symbol "src/app.py#Application.run" --tail 100
|
|
97
104
|
ai-dev feedback --task "fix authentication timeout"
|
|
105
|
+
ai-dev watch --mode changed --debounce 500
|
|
98
106
|
ai-dev session status
|
|
107
|
+
ai-dev bootstrap --if-needed
|
|
108
|
+
ai-dev environment explain
|
|
99
109
|
ai-dev diagnostics
|
|
100
110
|
ai-dev completion bash
|
|
111
|
+
ai-dev mcp serve
|
|
101
112
|
ai-dev test affected
|
|
113
|
+
ai-dev test flaky
|
|
102
114
|
ai-dev logs summarize
|
|
103
115
|
ai-dev context build
|
|
104
116
|
ai-dev git status
|
|
@@ -109,6 +121,24 @@ ai-dev finish
|
|
|
109
121
|
All commands support `--project`, `--json`, `--quiet`, `--help`, and `--version` at the top level.
|
|
110
122
|
|
|
111
123
|
|
|
124
|
+
## Local MCP server
|
|
125
|
+
|
|
126
|
+
`ai-dev mcp serve` exposes project status, compact feedback, bounded context, validation,
|
|
127
|
+
and progressive evidence as local structured tools for Codex-compatible MCP clients. The STDIO
|
|
128
|
+
server is dependency-free, has no network listener, fixes all calls to one project root, and
|
|
129
|
+
defaults validation to preview-only.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
codex mcp add ai-dev -- ai-dev --project "/absolute/path/to/project" mcp serve
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
See `docs/MCP_SERVER.md` for tool schemas, approvals, project-scoped configuration, and
|
|
136
|
+
security boundaries.
|
|
137
|
+
|
|
138
|
+
For agents sharing a repository, `ai-dev agents add|claim|heartbeat|release|complete|status`
|
|
139
|
+
maintains an atomic local task board with expiring leases and declared-path conflict detection.
|
|
140
|
+
See `docs/AGENT_COORDINATION.md` for the workflow and safety limits.
|
|
141
|
+
|
|
112
142
|
## Bootstrap
|
|
113
143
|
|
|
114
144
|
`ai-dev bootstrap` prepares a detected project with conservative, project-local commands. Use `--explain` to see the plan without modifications, `--dry-run` to validate planning without executing modifying commands, and `--create-env` to allow copying `.env.example` to `.env` only when `.env` is missing.
|
|
@@ -131,25 +161,43 @@ kills an arbitrary PID read from stale state. See `docs/RUNTIME.md`.
|
|
|
131
161
|
ai-dev context build --task "fix auth tests"
|
|
132
162
|
ai-dev context build --changed-only --max-chars 50000
|
|
133
163
|
ai-dev context build --incremental # emits only candidates changed since the last pack
|
|
164
|
+
ai-dev context build --incremental --since <context-id>
|
|
165
|
+
ai-dev context build --compare main
|
|
134
166
|
ai-dev context build --profile review
|
|
167
|
+
ai-dev context build --profile implement
|
|
168
|
+
ai-dev context build --profile docs
|
|
169
|
+
ai-dev context build --retrieval auto --explain # explains retrieval or abstention
|
|
170
|
+
ai-dev context build --tokenizer o200k_base --token-budget source=8000 --token-budget diffs=2000
|
|
171
|
+
ai-dev context build --refine issue:<id> --refinement-rounds 2 --refinement-max-files 5
|
|
172
|
+
ai-dev context build --compression conservative
|
|
135
173
|
ai-dev context build --include "src/**/*.py" --exclude "tests/fixtures/**"
|
|
136
174
|
ai-dev context build --explain --json
|
|
137
175
|
```
|
|
138
176
|
|
|
139
|
-
Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/context-latest.json` by default. The builder includes detected technologies, git state, changed files, related tests, validation plan, recent commits, selected snippets, limited diffs, latest check errors, masked secret findings, and budget/truncation metadata. Large Python files use AST-aware symbol snippets
|
|
177
|
+
Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/context-latest.json` by default. The builder includes detected technologies, git state, changed files, related tests, validation plan, recent commits, selected snippets, limited diffs, latest check errors, masked secret findings, and budget/truncation metadata. Large Python files use AST-aware symbol snippets, while large JavaScript and TypeScript files use conservative top-level symbol selection instead of blindly returning only the beginning of the file.
|
|
178
|
+
|
|
179
|
+
Selective retrieval defaults to `auto`: focused includes or changed files can abstain from broad cross-file retrieval, while missing focus, broad configuration changes, and broad task scopes fall back to the full candidate set. Use `--retrieval always` to expand or `--retrieval never` to keep only focused roots and inferred related tests. The JSON and Markdown reports explain the decision and expose a related-test false-negative proxy.
|
|
180
|
+
|
|
181
|
+
Install `ai-dev-cli-tools[tokenizers]` to enable exact local `cl100k_base` or `o200k_base` counting. Without that optional extra, accounting uses the explicit UTF-8-bytes/4 estimate and reports a fallback if an exact tokenizer was requested. Repeated `--token-budget category=N` limits source, diffs, tests, logs, maps, history, cached input, or output independently. `--provider-usage <json>` normalizes OpenAI or Anthropic usage fields from a project-local file without network access.
|
|
140
182
|
|
|
141
|
-
Incremental mode stores
|
|
183
|
+
Incremental mode stores the latest schema-versioned manifest plus up to 50 content-addressed
|
|
184
|
+
historical manifests under `.ai/cache/`, and reports changed versus reused files. Pass
|
|
185
|
+
`--since <context-id>` to compare against an explicitly retained context. Default limits are
|
|
186
|
+
`--max-chars 50000`, `--max-files 30`, `--max-file-chars 8000`, and `--max-diff-chars 15000`.
|
|
187
|
+
Secret-bearing and generated paths such as `.env`, private keys, caches, build output, `.ai/logs`,
|
|
188
|
+
and `.ai/reports` are excluded from snippets.
|
|
142
189
|
## Reports and Logs
|
|
143
190
|
|
|
144
|
-
Validation results are cached by default using repository, command, workspace, runtime, and platform fingerprints; use `check --no-cache` to force execution. `check --resume` reuses only exact successful checkpoint fingerprints. `--policy feedback-first` runs cheaper waves first and cancels later expensive waves after a required failure; `complete` retains comprehensive execution. `index status/update/rebuild` manages the reusable repository index, while `cache status/prune/clear` provides bounded local cache maintenance. See `docs/CACHE_AND_INDEX.md`.
|
|
191
|
+
Validation results are cached by default using repository, command, workspace, runtime, and platform fingerprints; use `check --no-cache` to force execution. `check --resume` reuses only exact successful checkpoint fingerprints. `--policy feedback-first` runs cheaper waves first and cancels later expensive waves after a required failure; `complete` retains comprehensive execution. `index status/update/rebuild` manages the reusable repository index, while `cache status/prune/clear` provides bounded local cache maintenance; `cache layout` emits a deterministic stable-prefix manifest and provider breakpoint recommendations. See `docs/CACHE_AND_INDEX.md`.
|
|
145
192
|
|
|
146
193
|
Short reports are written to `.ai/reports/` as Markdown and JSON. Full command output is written to `.ai/logs/` and ignored by Git. Check summaries include exit codes, durations, first failure hints, grouped repeated messages, test counts, and full log paths.
|
|
147
194
|
|
|
148
195
|
JSON reports use schema `1.1` with `schema_version`, `tool_version`, `command`, `status`, `exit_code`, timestamps, `project_root`, `summary`, `issues`, `artifacts`, and `metadata`.
|
|
149
196
|
|
|
150
|
-
`ai-dev feedback` combines Git changes, changed validation, incremental context, focused rerun hints, stage timings, and local session state into one compact agent protocol report.
|
|
197
|
+
`ai-dev feedback` combines Git changes, changed validation, incremental context, focused rerun hints, stage timings, and local session state into one compact agent protocol report. Its observation lifecycle keeps the current failure, unresolved warnings, or final verification inline while replacing superseded results with content-addressed IDs expandable through `ai-dev explain`; see `docs/OBSERVATION_LIFECYCLE.md`.
|
|
151
198
|
|
|
152
|
-
Every expandable issue, check, file, snippet, diff, workspace, and artifact receives a stable local `evidence_id`. The report metadata lists references; `ai-dev explain <evidence-id> --tail 100` retrieves only that evidence. `ai-dev baseline create <name>` stores a compact local snapshot under `.ai/cache/baselines/`, and `baseline compare <name>` leads with new/resolved failures, issue codes, and status regressions.
|
|
199
|
+
Every expandable issue, check, file, snippet, diff, workspace, and artifact receives a stable local `evidence_id`. The report metadata lists references; `ai-dev explain <evidence-id> --tail 100` retrieves only that evidence. `ai-dev baseline create <name>` stores a compact local snapshot under `.ai/cache/baselines/`, and `baseline compare <name>` leads with new/resolved failures, issue codes, and status regressions. Pass `--compare <name>` to `check` or `context build` to apply that regression contract directly to the current report. Reproducible local A/B suites use benchmark run and benchmark compare; see docs/BENCHMARKS.md.
|
|
200
|
+
Research-backed context and token-efficiency recommendations are documented in `docs/TOKEN_EFFICIENCY_RESEARCH.md`.
|
|
153
201
|
|
|
154
202
|
## Auto Detection
|
|
155
203
|
|
|
@@ -212,16 +260,22 @@ git diff --check
|
|
|
212
260
|
| check | implemented |
|
|
213
261
|
| check --explain | implemented |
|
|
214
262
|
| test affected | implemented |
|
|
263
|
+
| test flaky / check --retry-flaky | implemented |
|
|
215
264
|
| index status/update/rebuild | implemented |
|
|
216
|
-
| cache status/prune/clear | implemented |
|
|
265
|
+
| cache status/prune/clear/layout | implemented |
|
|
217
266
|
| logs summarize | implemented |
|
|
218
267
|
| context build | implemented |
|
|
219
268
|
| diagnostics | implemented |
|
|
269
|
+
| mcp serve | implemented |
|
|
270
|
+
| watch | implemented |
|
|
271
|
+
| benchmark run/compare | implemented |
|
|
272
|
+
| performance latest/compare | implemented |
|
|
220
273
|
| capabilities | implemented |
|
|
221
274
|
| git status | implemented |
|
|
222
275
|
| git inspect | implemented |
|
|
223
276
|
| finish | implemented |
|
|
224
277
|
| bootstrap | implemented |
|
|
278
|
+
| environment explain | implemented |
|
|
225
279
|
| run | implemented |
|
|
226
280
|
| stop | implemented |
|
|
227
281
|
|
|
@@ -229,12 +283,12 @@ git diff --check
|
|
|
229
283
|
|
|
230
284
|
- Monorepo/workspace detection and per-subproject command routing: implemented.
|
|
231
285
|
- Per-subproject check and bootstrap working directories: implemented.
|
|
232
|
-
- Runtime version validation:
|
|
286
|
+
- Runtime requirement detection and version validation: implemented.
|
|
233
287
|
- `context build` is implemented as a bounded local context pack builder.
|
|
234
288
|
- `bootstrap` is implemented as a conservative local setup planner/executor.
|
|
235
|
-
- Auto-commit, auto-push, and GUI
|
|
289
|
+
- Auto-commit, auto-push, destructive cleanup, remote source transmission, and GUI are intentionally out of scope.
|
|
236
290
|
|
|
237
291
|
## Intentional Limits
|
|
238
|
-
Version 0.
|
|
292
|
+
Version 1.0.0 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
|
|
239
293
|
|
|
240
294
|
Shell completion scripts are generated with `ai-dev completion bash|zsh|fish|powershell` and can be sourced or installed using the normal mechanism for the selected shell.
|
|
@@ -23,17 +23,17 @@ be safe for `ai-dev` to recreate.
|
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
25
|
python -m pip install --upgrade pipx
|
|
26
|
-
pipx install ai-dev-cli-tools==0.
|
|
26
|
+
pipx install ai-dev-cli-tools==1.0.0
|
|
27
27
|
ai-dev --help
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
For a source checkout
|
|
31
|
-
|
|
30
|
+
For a source checkout, use `pipx install .`. See `docs/DISTRIBUTION.md` for the Trusted Publishing
|
|
31
|
+
and upgrade policy.
|
|
32
32
|
|
|
33
33
|
For development:
|
|
34
34
|
|
|
35
35
|
```bash
|
|
36
|
-
python -m pip install -e ".[dev]"
|
|
36
|
+
python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
## Windows
|
|
@@ -60,16 +60,26 @@ ai-dev check --mode fast
|
|
|
60
60
|
ai-dev check --mode changed # reports changed files and falls back safely when test mapping is uncertain
|
|
61
61
|
ai-dev check --mode full --jobs 4
|
|
62
62
|
ai-dev check --mode changed --policy feedback-first --resume
|
|
63
|
+
ai-dev check --mode changed --compare main
|
|
64
|
+
ai-dev check --mode changed --retry-flaky 1
|
|
63
65
|
ai-dev index update
|
|
64
66
|
ai-dev cache status
|
|
67
|
+
ai-dev cache layout
|
|
65
68
|
ai-dev baseline create main
|
|
66
69
|
ai-dev baseline compare main
|
|
70
|
+
ai-dev benchmark run --suite examples/benchmarks/output-budget-smoke.json --variant baseline
|
|
67
71
|
ai-dev explain issue:<id> --tail 100
|
|
72
|
+
ai-dev explain --symbol "src/app.py#Application.run" --tail 100
|
|
68
73
|
ai-dev feedback --task "fix authentication timeout"
|
|
74
|
+
ai-dev watch --mode changed --debounce 500
|
|
69
75
|
ai-dev session status
|
|
76
|
+
ai-dev bootstrap --if-needed
|
|
77
|
+
ai-dev environment explain
|
|
70
78
|
ai-dev diagnostics
|
|
71
79
|
ai-dev completion bash
|
|
80
|
+
ai-dev mcp serve
|
|
72
81
|
ai-dev test affected
|
|
82
|
+
ai-dev test flaky
|
|
73
83
|
ai-dev logs summarize
|
|
74
84
|
ai-dev context build
|
|
75
85
|
ai-dev git status
|
|
@@ -80,6 +90,24 @@ ai-dev finish
|
|
|
80
90
|
All commands support `--project`, `--json`, `--quiet`, `--help`, and `--version` at the top level.
|
|
81
91
|
|
|
82
92
|
|
|
93
|
+
## Local MCP server
|
|
94
|
+
|
|
95
|
+
`ai-dev mcp serve` exposes project status, compact feedback, bounded context, validation,
|
|
96
|
+
and progressive evidence as local structured tools for Codex-compatible MCP clients. The STDIO
|
|
97
|
+
server is dependency-free, has no network listener, fixes all calls to one project root, and
|
|
98
|
+
defaults validation to preview-only.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
codex mcp add ai-dev -- ai-dev --project "/absolute/path/to/project" mcp serve
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
See `docs/MCP_SERVER.md` for tool schemas, approvals, project-scoped configuration, and
|
|
105
|
+
security boundaries.
|
|
106
|
+
|
|
107
|
+
For agents sharing a repository, `ai-dev agents add|claim|heartbeat|release|complete|status`
|
|
108
|
+
maintains an atomic local task board with expiring leases and declared-path conflict detection.
|
|
109
|
+
See `docs/AGENT_COORDINATION.md` for the workflow and safety limits.
|
|
110
|
+
|
|
83
111
|
## Bootstrap
|
|
84
112
|
|
|
85
113
|
`ai-dev bootstrap` prepares a detected project with conservative, project-local commands. Use `--explain` to see the plan without modifications, `--dry-run` to validate planning without executing modifying commands, and `--create-env` to allow copying `.env.example` to `.env` only when `.env` is missing.
|
|
@@ -102,25 +130,43 @@ kills an arbitrary PID read from stale state. See `docs/RUNTIME.md`.
|
|
|
102
130
|
ai-dev context build --task "fix auth tests"
|
|
103
131
|
ai-dev context build --changed-only --max-chars 50000
|
|
104
132
|
ai-dev context build --incremental # emits only candidates changed since the last pack
|
|
133
|
+
ai-dev context build --incremental --since <context-id>
|
|
134
|
+
ai-dev context build --compare main
|
|
105
135
|
ai-dev context build --profile review
|
|
136
|
+
ai-dev context build --profile implement
|
|
137
|
+
ai-dev context build --profile docs
|
|
138
|
+
ai-dev context build --retrieval auto --explain # explains retrieval or abstention
|
|
139
|
+
ai-dev context build --tokenizer o200k_base --token-budget source=8000 --token-budget diffs=2000
|
|
140
|
+
ai-dev context build --refine issue:<id> --refinement-rounds 2 --refinement-max-files 5
|
|
141
|
+
ai-dev context build --compression conservative
|
|
106
142
|
ai-dev context build --include "src/**/*.py" --exclude "tests/fixtures/**"
|
|
107
143
|
ai-dev context build --explain --json
|
|
108
144
|
```
|
|
109
145
|
|
|
110
|
-
Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/context-latest.json` by default. The builder includes detected technologies, git state, changed files, related tests, validation plan, recent commits, selected snippets, limited diffs, latest check errors, masked secret findings, and budget/truncation metadata. Large Python files use AST-aware symbol snippets
|
|
146
|
+
Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/context-latest.json` by default. The builder includes detected technologies, git state, changed files, related tests, validation plan, recent commits, selected snippets, limited diffs, latest check errors, masked secret findings, and budget/truncation metadata. Large Python files use AST-aware symbol snippets, while large JavaScript and TypeScript files use conservative top-level symbol selection instead of blindly returning only the beginning of the file.
|
|
147
|
+
|
|
148
|
+
Selective retrieval defaults to `auto`: focused includes or changed files can abstain from broad cross-file retrieval, while missing focus, broad configuration changes, and broad task scopes fall back to the full candidate set. Use `--retrieval always` to expand or `--retrieval never` to keep only focused roots and inferred related tests. The JSON and Markdown reports explain the decision and expose a related-test false-negative proxy.
|
|
149
|
+
|
|
150
|
+
Install `ai-dev-cli-tools[tokenizers]` to enable exact local `cl100k_base` or `o200k_base` counting. Without that optional extra, accounting uses the explicit UTF-8-bytes/4 estimate and reports a fallback if an exact tokenizer was requested. Repeated `--token-budget category=N` limits source, diffs, tests, logs, maps, history, cached input, or output independently. `--provider-usage <json>` normalizes OpenAI or Anthropic usage fields from a project-local file without network access.
|
|
111
151
|
|
|
112
|
-
Incremental mode stores
|
|
152
|
+
Incremental mode stores the latest schema-versioned manifest plus up to 50 content-addressed
|
|
153
|
+
historical manifests under `.ai/cache/`, and reports changed versus reused files. Pass
|
|
154
|
+
`--since <context-id>` to compare against an explicitly retained context. Default limits are
|
|
155
|
+
`--max-chars 50000`, `--max-files 30`, `--max-file-chars 8000`, and `--max-diff-chars 15000`.
|
|
156
|
+
Secret-bearing and generated paths such as `.env`, private keys, caches, build output, `.ai/logs`,
|
|
157
|
+
and `.ai/reports` are excluded from snippets.
|
|
113
158
|
## Reports and Logs
|
|
114
159
|
|
|
115
|
-
Validation results are cached by default using repository, command, workspace, runtime, and platform fingerprints; use `check --no-cache` to force execution. `check --resume` reuses only exact successful checkpoint fingerprints. `--policy feedback-first` runs cheaper waves first and cancels later expensive waves after a required failure; `complete` retains comprehensive execution. `index status/update/rebuild` manages the reusable repository index, while `cache status/prune/clear` provides bounded local cache maintenance. See `docs/CACHE_AND_INDEX.md`.
|
|
160
|
+
Validation results are cached by default using repository, command, workspace, runtime, and platform fingerprints; use `check --no-cache` to force execution. `check --resume` reuses only exact successful checkpoint fingerprints. `--policy feedback-first` runs cheaper waves first and cancels later expensive waves after a required failure; `complete` retains comprehensive execution. `index status/update/rebuild` manages the reusable repository index, while `cache status/prune/clear` provides bounded local cache maintenance; `cache layout` emits a deterministic stable-prefix manifest and provider breakpoint recommendations. See `docs/CACHE_AND_INDEX.md`.
|
|
116
161
|
|
|
117
162
|
Short reports are written to `.ai/reports/` as Markdown and JSON. Full command output is written to `.ai/logs/` and ignored by Git. Check summaries include exit codes, durations, first failure hints, grouped repeated messages, test counts, and full log paths.
|
|
118
163
|
|
|
119
164
|
JSON reports use schema `1.1` with `schema_version`, `tool_version`, `command`, `status`, `exit_code`, timestamps, `project_root`, `summary`, `issues`, `artifacts`, and `metadata`.
|
|
120
165
|
|
|
121
|
-
`ai-dev feedback` combines Git changes, changed validation, incremental context, focused rerun hints, stage timings, and local session state into one compact agent protocol report.
|
|
166
|
+
`ai-dev feedback` combines Git changes, changed validation, incremental context, focused rerun hints, stage timings, and local session state into one compact agent protocol report. Its observation lifecycle keeps the current failure, unresolved warnings, or final verification inline while replacing superseded results with content-addressed IDs expandable through `ai-dev explain`; see `docs/OBSERVATION_LIFECYCLE.md`.
|
|
122
167
|
|
|
123
|
-
Every expandable issue, check, file, snippet, diff, workspace, and artifact receives a stable local `evidence_id`. The report metadata lists references; `ai-dev explain <evidence-id> --tail 100` retrieves only that evidence. `ai-dev baseline create <name>` stores a compact local snapshot under `.ai/cache/baselines/`, and `baseline compare <name>` leads with new/resolved failures, issue codes, and status regressions.
|
|
168
|
+
Every expandable issue, check, file, snippet, diff, workspace, and artifact receives a stable local `evidence_id`. The report metadata lists references; `ai-dev explain <evidence-id> --tail 100` retrieves only that evidence. `ai-dev baseline create <name>` stores a compact local snapshot under `.ai/cache/baselines/`, and `baseline compare <name>` leads with new/resolved failures, issue codes, and status regressions. Pass `--compare <name>` to `check` or `context build` to apply that regression contract directly to the current report. Reproducible local A/B suites use benchmark run and benchmark compare; see docs/BENCHMARKS.md.
|
|
169
|
+
Research-backed context and token-efficiency recommendations are documented in `docs/TOKEN_EFFICIENCY_RESEARCH.md`.
|
|
124
170
|
|
|
125
171
|
## Auto Detection
|
|
126
172
|
|
|
@@ -183,16 +229,22 @@ git diff --check
|
|
|
183
229
|
| check | implemented |
|
|
184
230
|
| check --explain | implemented |
|
|
185
231
|
| test affected | implemented |
|
|
232
|
+
| test flaky / check --retry-flaky | implemented |
|
|
186
233
|
| index status/update/rebuild | implemented |
|
|
187
|
-
| cache status/prune/clear | implemented |
|
|
234
|
+
| cache status/prune/clear/layout | implemented |
|
|
188
235
|
| logs summarize | implemented |
|
|
189
236
|
| context build | implemented |
|
|
190
237
|
| diagnostics | implemented |
|
|
238
|
+
| mcp serve | implemented |
|
|
239
|
+
| watch | implemented |
|
|
240
|
+
| benchmark run/compare | implemented |
|
|
241
|
+
| performance latest/compare | implemented |
|
|
191
242
|
| capabilities | implemented |
|
|
192
243
|
| git status | implemented |
|
|
193
244
|
| git inspect | implemented |
|
|
194
245
|
| finish | implemented |
|
|
195
246
|
| bootstrap | implemented |
|
|
247
|
+
| environment explain | implemented |
|
|
196
248
|
| run | implemented |
|
|
197
249
|
| stop | implemented |
|
|
198
250
|
|
|
@@ -200,12 +252,12 @@ git diff --check
|
|
|
200
252
|
|
|
201
253
|
- Monorepo/workspace detection and per-subproject command routing: implemented.
|
|
202
254
|
- Per-subproject check and bootstrap working directories: implemented.
|
|
203
|
-
- Runtime version validation:
|
|
255
|
+
- Runtime requirement detection and version validation: implemented.
|
|
204
256
|
- `context build` is implemented as a bounded local context pack builder.
|
|
205
257
|
- `bootstrap` is implemented as a conservative local setup planner/executor.
|
|
206
|
-
- Auto-commit, auto-push, and GUI
|
|
258
|
+
- Auto-commit, auto-push, destructive cleanup, remote source transmission, and GUI are intentionally out of scope.
|
|
207
259
|
|
|
208
260
|
## Intentional Limits
|
|
209
|
-
Version 0.
|
|
261
|
+
Version 1.0.0 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
|
|
210
262
|
|
|
211
263
|
Shell completion scripts are generated with `ai-dev completion bash|zsh|fish|powershell` and can be sourced or installed using the normal mechanism for the selected shell.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# TODO
|
|
2
|
+
|
|
3
|
+
This file contains only active implementation work. The 1.0 backlog was implemented and moved to
|
|
4
|
+
`CHANGELOG.md`; product status and rationale are recorded in
|
|
5
|
+
`docs/AGENT_EFFICIENCY_ROADMAP.md`.
|
|
6
|
+
|
|
7
|
+
An item is complete only when implementation, tests, user documentation, report contracts, and
|
|
8
|
+
cross-platform behavior are covered where applicable.
|
|
9
|
+
|
|
10
|
+
## Active work
|
|
11
|
+
|
|
12
|
+
There are no known incomplete P1 or P2 implementation items for the 1.0 contract. New work must be
|
|
13
|
+
added here with tests, documentation, report-contract impact, and cross-platform acceptance criteria.
|
|
14
|
+
|
|
15
|
+
## Deferred or explicitly out of scope
|
|
16
|
+
|
|
17
|
+
The following require a separate design and safety review and must not be introduced implicitly:
|
|
18
|
+
|
|
19
|
+
- automatic commit, push, merge, release, or deployment;
|
|
20
|
+
- destructive Git cleanup or repository reset;
|
|
21
|
+
- sending source code, logs, metrics, or secrets to a remote AI service;
|
|
22
|
+
- killing arbitrary processes or deleting user-managed runtime data;
|
|
23
|
+
- silently installing global tools or changing machine-level configuration;
|
|
24
|
+
- learned/model-based semantic compression of code or verification evidence.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# `ai-dev check --mode full` failure for AdaptiveChessAI
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
`ai-dev check --mode full --no-cache` returned a failed report for
|
|
6
|
+
`AdaptiveChessAI` even though the root project checks completed successfully.
|
|
7
|
+
The tool incorrectly detected the ignored virtual-environment copy of pandas as
|
|
8
|
+
a second workspace and then crashed while printing its report on a CP1250
|
|
9
|
+
console.
|
|
10
|
+
|
|
11
|
+
## Environment
|
|
12
|
+
|
|
13
|
+
- Date: 2026-08-30
|
|
14
|
+
- OS: Windows
|
|
15
|
+
- Console encoding: CP1250
|
|
16
|
+
- Python selected by ai-dev: 3.14
|
|
17
|
+
- ai-dev-cli-tools: 0.5.0a1
|
|
18
|
+
- Project: `C:\Users\Praca\fork\MatthiasLew\AdaptiveChessAI`
|
|
19
|
+
|
|
20
|
+
## Command
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
ai-dev --project "C:\Users\Praca\fork\MatthiasLew\AdaptiveChessAI" `
|
|
24
|
+
check --mode full --no-cache
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Observed problems
|
|
28
|
+
|
|
29
|
+
### 1. Ignored virtual environment detected as a workspace
|
|
30
|
+
|
|
31
|
+
The plan contained two workspaces:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
<project root>
|
|
35
|
+
venv/Lib/site-packages/pandas
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The second path is an installed dependency inside the project's ignored
|
|
39
|
+
`venv/` directory and must not be treated as a project workspace.
|
|
40
|
+
|
|
41
|
+
This caused irrelevant checks to run against pandas, including Black, Ruff,
|
|
42
|
+
mypy and pytest. The pandas pytest run failed because the virtual environment
|
|
43
|
+
contains CPython 3.13 native NumPy extensions while ai-dev selected Python 3.14.
|
|
44
|
+
|
|
45
|
+
### 2. Text reporter crashed on CP1250
|
|
46
|
+
|
|
47
|
+
After creating the Markdown and JSON reports, the CLI crashed while printing a
|
|
48
|
+
message containing the Unicode replacement character:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
UnicodeEncodeError: 'charmap' codec can't encode character '\ufffd'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The exception originated in `ai_dev_tools.cli._print_text`.
|
|
55
|
+
|
|
56
|
+
### 3. Misleading aggregate result
|
|
57
|
+
|
|
58
|
+
The root-project pytest check passed 271 tests and the root mypy check passed,
|
|
59
|
+
but failures from the incorrectly detected pandas workspace made the aggregate
|
|
60
|
+
command fail. Some structured result entries also contained a non-zero
|
|
61
|
+
`exit_code` together with `status: success`, which makes the report harder to
|
|
62
|
+
interpret reliably.
|
|
63
|
+
|
|
64
|
+
## Expected behavior
|
|
65
|
+
|
|
66
|
+
- Directories ignored as virtual environments (`venv`, `.venv`, `env`) should
|
|
67
|
+
be excluded from workspace discovery.
|
|
68
|
+
- Output should be encoded safely on Windows consoles, for example by replacing
|
|
69
|
+
unsupported characters or explicitly using UTF-8.
|
|
70
|
+
- A subprocess with a non-zero exit code should not be represented as a
|
|
71
|
+
successful check result.
|
|
72
|
+
|
|
73
|
+
## Resolution
|
|
74
|
+
|
|
75
|
+
The unreleased implementation now excludes `env` and `venv` trees from workspace discovery,
|
|
76
|
+
replaces characters unsupported by the active text-console encoding, and passes subprocess exit
|
|
77
|
+
codes into result parsing so a non-zero result cannot be serialized as successful. Regression tests
|
|
78
|
+
cover all three cases.
|
|
79
|
+
|
|
80
|
+
## Artifacts
|
|
81
|
+
|
|
82
|
+
The failing run created local evidence under the inspected repository:
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
.ai/reports/check-full-latest.json
|
|
86
|
+
.ai/reports/check-full-latest.md
|
|
87
|
+
.ai/logs/check-20260830-1844*.log
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The `.ai/` directory is ignored by Git.
|