ai-dev-cli-tools 0.5.0a1__tar.gz → 1.1.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-1.1.0/.github/workflows/ci.yml +120 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/.github/workflows/docs.yml +3 -3
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/.github/workflows/publish-pypi.yml +5 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/.github/workflows/release.yml +13 -12
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/.gitignore +3 -0
- ai_dev_cli_tools-1.1.0/CHANGELOG.md +117 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/CONTRIBUTING.md +1 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/PKG-INFO +101 -16
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/README.md +93 -13
- ai_dev_cli_tools-1.1.0/TODO.md +24 -0
- ai_dev_cli_tools-1.1.0/docs/ADAPTIVECHESSAI_FULL_CHECK_FAILURE_2026-08-30.md +90 -0
- ai_dev_cli_tools-1.1.0/docs/ADAPTIVECHESSAI_PYCHARM_HEADLESS_INSPECTION_FAILURE_2026-08-30.md +60 -0
- ai_dev_cli_tools-1.1.0/docs/AGENT_COORDINATION.md +43 -0
- ai_dev_cli_tools-1.1.0/docs/AGENT_EFFICIENCY_ROADMAP.md +95 -0
- ai_dev_cli_tools-1.1.0/docs/AGENT_INTEGRATION_CONTRACT.md +45 -0
- ai_dev_cli_tools-1.1.0/docs/AGENT_WORKFLOW.md +77 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/ARCHITECTURE.md +23 -6
- ai_dev_cli_tools-1.1.0/docs/BENCHMARKS.md +112 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/BOOTSTRAP.md +2 -2
- ai_dev_cli_tools-1.1.0/docs/CACHE_AND_INDEX.md +78 -0
- ai_dev_cli_tools-1.1.0/docs/CONTEXT_BUILDER.md +142 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/DISTRIBUTION.md +7 -7
- ai_dev_cli_tools-1.1.0/docs/FLAKY_RETRIES.md +29 -0
- ai_dev_cli_tools-1.1.0/docs/INTEGRATIONS_AND_DASHBOARD.md +25 -0
- ai_dev_cli_tools-1.1.0/docs/MCP_SERVER.md +100 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/MONOREPO_SUPPORT.md +1 -1
- ai_dev_cli_tools-1.1.0/docs/OBSERVATION_LIFECYCLE.md +38 -0
- ai_dev_cli_tools-1.1.0/docs/PERFORMANCE.md +45 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/RELEASE_CHECKLIST.md +14 -4
- ai_dev_cli_tools-1.1.0/docs/REPORT_SCHEMA.md +145 -0
- ai_dev_cli_tools-1.1.0/docs/SEMANTIC_COMPRESSION.md +30 -0
- ai_dev_cli_tools-1.1.0/docs/TOKEN_EFFICIENCY_RESEARCH.md +129 -0
- ai_dev_cli_tools-1.1.0/docs/WARM_ENVIRONMENT.md +28 -0
- ai_dev_cli_tools-1.1.0/docs/WATCH_MODE.md +24 -0
- ai_dev_cli_tools-1.1.0/docs/benchmarks/agent-workflows-windows-py314-2026-08-11.json +671 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/agent-affected-workflow.json +32 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/agent-corpus.json +18 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/agent-monorepo-workflow.json +32 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/agent-multiturn-workflow.json +32 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/agent-repair-workflow.json +32 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/pyproject.toml +6 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/src/orders.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/src/pricing.py +331 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/__init__.py +0 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_orders.py +5 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_pricing.py +5 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_1.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_10.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_11.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_12.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_2.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_3.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_4.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_5.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_6.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_7.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_8.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_9.py +2 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/__init__.py +1 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/__init__.py +1 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/pyproject.toml +7 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/__init__.py +1 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/billing.py +3 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/__init__.py +1 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/test_billing.py +5 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/__init__.py +1 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/pyproject.toml +7 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/__init__.py +1 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/catalog.py +3 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/__init__.py +1 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/test_catalog.py +5 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/mcp-recurring-status.json +12 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/output-budget-smoke.json +12 -0
- ai_dev_cli_tools-1.1.0/examples/benchmarks/symbol-diff-context.json +12 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/pyproject.toml +33 -4
- ai_dev_cli_tools-1.1.0/requirements-dev.lock +8 -0
- ai_dev_cli_tools-1.1.0/scripts/__init__.py +0 -0
- ai_dev_cli_tools-1.1.0/scripts/benchmark_agent_workflow.py +321 -0
- ai_dev_cli_tools-1.1.0/scripts/benchmark_mcp_status.py +98 -0
- ai_dev_cli_tools-1.1.0/scripts/benchmark_symbol_diff.py +71 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/scripts/test_installed_package.py +24 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/scripts/validate_ci.py +27 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/scripts/validate_release.py +42 -3
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/scripts/verify_published_package.py +2 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/__init__.py +1 -1
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/__main__.py +4 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/cache/graph.py +293 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/cache/prompt_layout.py +142 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/cli.py +749 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/completion.py +89 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/config.py +103 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/context/builder.py +219 -21
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/context/compression.py +185 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/context/incremental.py +56 -13
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/context/models.py +11 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/context/profiles.py +16 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/context/refinement.py +104 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/context/retrieval.py +189 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/context/selection.py +31 -7
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/context/symbols.py +21 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/context/tokens.py +291 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/dashboard.py +139 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/detectors/project.py +22 -3
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/detectors/workspaces.py +14 -3
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/git/inspect.py +23 -9
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/git/symbol_diff.py +421 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/index_daemon_service.py +243 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/integrations.py +115 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/mcp_server.py +711 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/parsers/failures.py +64 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/reporters/progressive.py +71 -1
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/reporters/sarif.py +100 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/baseline.py +61 -6
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/benchmark.py +594 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/bootstrap.py +90 -4
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/bootstrap_models.py +1 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/cache.py +9 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/check.py +223 -19
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/check_models.py +5 -1
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/check_scheduler.py +161 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/check_selection.py +16 -1
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/coordination.py +316 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/diagnostics.py +15 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/environment_state.py +250 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/feedback.py +69 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/flaky.py +164 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/index.py +15 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/index_daemon.py +89 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/observations.py +133 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/performance.py +243 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/plan.py +239 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/policy.py +33 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/runners/watch.py +177 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runtime/runner.py +50 -5
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/security/execution.py +126 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/semantic.py +195 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/semantic_backends.py +253 -0
- ai_dev_cli_tools-1.1.0/src/ai_dev_tools/source_symbols.py +737 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/utils/subprocess.py +72 -1
- ai_dev_cli_tools-1.1.0/tests/integration/test_adaptive_chess_regression.py +45 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/integration/test_git.py +28 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_agent_plan.py +60 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_baseline.py +52 -1
- ai_dev_cli_tools-1.1.0/tests/unit/test_benchmark.py +165 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_benchmark_gate.py +132 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_cache.py +53 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_check.py +15 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_check_scheduler.py +54 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_cli_more.py +42 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_completion.py +5 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_context_builder.py +122 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_context_compression.py +92 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_context_profiles.py +34 -1
- ai_dev_cli_tools-1.1.0/tests/unit/test_context_refinement.py +62 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_context_retrieval.py +121 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_context_symbols.py +196 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_coordination.py +93 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_diagnostics.py +5 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_environment_state.py +120 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_execution_policy.py +50 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_failure_classification.py +60 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_feedback.py +2 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_flaky.py +101 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_index_daemon.py +62 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_index_daemon_service.py +132 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_integrations_dashboard.py +124 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_mcp_server.py +317 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_more_coverage.py +18 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_more_symbol_adapters.py +158 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_new_cli_commands.py +41 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_observations.py +115 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_performance.py +95 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_progressive_reports.py +23 -1
- ai_dev_cli_tools-1.1.0/tests/unit/test_prompt_layout.py +104 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_release_scripts.py +45 -2
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_report.py +1 -1
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_runtime_runner.py +98 -1
- ai_dev_cli_tools-1.1.0/tests/unit/test_sarif.py +55 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_semantic.py +88 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_semantic_backends.py +210 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_symbol_diff.py +112 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_token_accounting.py +120 -0
- ai_dev_cli_tools-1.1.0/tests/unit/test_watch.py +132 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_workspaces.py +14 -0
- ai_dev_cli_tools-0.5.0a1/.github/workflows/ci.yml +0 -71
- 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/CACHE_AND_INDEX.md +0 -31
- 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/cli.py +0 -387
- ai_dev_cli_tools-0.5.0a1/src/ai_dev_tools/completion.py +0 -72
- 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.1.0}/LICENSE +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/Makefile +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/SECURITY.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/ai.ps1 +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/ai.sh +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/ADDING_A_DETECTOR.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/ADDING_A_RUNNER.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/CHANGED_TEST_SELECTION.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/RUNTIME.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/TOOL_OUTPUT_PARSERS.md +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/docs/report-schema.json +0 -0
- {ai_dev_cli_tools-0.5.0a1/scripts → ai_dev_cli_tools-1.1.0/examples/benchmarks/fixtures/agent-workflow/src}/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/examples/consume_json_report.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/cache/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/cache/repository.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/cache/validation.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/context/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/detectors/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/detectors/environment.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/detectors/repository_map.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/detectors/runtime.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/git/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/models/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/models/report.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/models/workspace.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/parsers/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/parsers/logs.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/parsers/registry.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/reporters/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/reporters/writer.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/bootstrap_strategies.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/check_checkpoint.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/finish.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runners/focused.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runtime/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/runtime/supervisor.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/security/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/security/secrets.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/src/ai_dev_tools/utils/__init__.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/cargo-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/coverage-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/eslint-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/gradle-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/jest-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/maven-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/maven-localized-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/mypy-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/phpunit-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/pytest-9-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/pytest-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/pytest-multiple-failures.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/ruff-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/ruff-warning.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/tsc-fail.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/logs/vitest-ok.log +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/monorepo-mixed/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/monorepo-mixed/packages/api/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.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.1.0}/tests/fixtures/monorepo-mixed/packages/web/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/monorepo-mixed/packages/web/test.js +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/monorepo-mixed/services/worker/Cargo.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/monorepo-mixed/services/worker/src/lib.rs +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/gradle/build.gradle +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/gradle/gradlew.bat +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/maven/mvnw.cmd +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/maven/pom.xml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/node-npm/package-lock.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/node-npm/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/node-pnpm/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/node-pnpm/pnpm-lock.yaml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/node-yarn/package.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/node-yarn/yarn.lock +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/php-composer/composer.json +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/python-pip/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/python-pip/requirements.txt +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/python-poetry/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/python-uv/pyproject.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/python-uv/uv.lock +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/fixtures/projects/rust/Cargo.toml +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/integration/test_cli.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/integration/test_cross_platform_paths.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/integration/test_toolchain_e2e.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_bootstrap.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_check_plan.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_config.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_doctor.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_finish.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_logs.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_package_smoke.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_repository_map.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_runner_failures.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_runtime.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_runtime_supervisor.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_scan.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_secret_boundaries.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_secrets.py +0 -0
- {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.1.0}/tests/unit/test_tool_parsers.py +0 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
test:
|
|
9
|
+
strategy:
|
|
10
|
+
fail-fast: false
|
|
11
|
+
matrix:
|
|
12
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
13
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
14
|
+
runs-on: ${{ matrix.os }}
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
17
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
|
|
18
|
+
with:
|
|
19
|
+
python-version: ${{ matrix.python-version }}
|
|
20
|
+
- run: python -m pip install --upgrade pip
|
|
21
|
+
- run: python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
22
|
+
- run: ruff check .
|
|
23
|
+
- run: mypy src tests
|
|
24
|
+
- run: coverage run -m pytest
|
|
25
|
+
- run: coverage report --fail-under=90
|
|
26
|
+
- run: python -m build
|
|
27
|
+
- run: python scripts/test_installed_package.py
|
|
28
|
+
- run: python scripts/validate_ci.py
|
|
29
|
+
- run: ai-dev --version
|
|
30
|
+
- run: ai-dev doctor --json
|
|
31
|
+
- run: ai-dev scan --json
|
|
32
|
+
- run: ai-dev bootstrap --explain --json
|
|
33
|
+
- run: ai-dev capabilities --json
|
|
34
|
+
- run: ai-dev context build --explain --json
|
|
35
|
+
- run: ai-dev git inspect --json
|
|
36
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
37
|
+
if: always()
|
|
38
|
+
with:
|
|
39
|
+
name: ai-dev-reports-${{ matrix.os }}-${{ matrix.python-version }}
|
|
40
|
+
path: |
|
|
41
|
+
.ai/reports
|
|
42
|
+
.ai/logs
|
|
43
|
+
if-no-files-found: ignore
|
|
44
|
+
toolchain-e2e:
|
|
45
|
+
runs-on: ubuntu-latest
|
|
46
|
+
steps:
|
|
47
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
48
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
|
|
49
|
+
with:
|
|
50
|
+
python-version: "3.13"
|
|
51
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
52
|
+
with:
|
|
53
|
+
node-version: "22"
|
|
54
|
+
- uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0
|
|
55
|
+
with:
|
|
56
|
+
distribution: temurin
|
|
57
|
+
java-version: "17"
|
|
58
|
+
- uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable 2026-08-31
|
|
59
|
+
- uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # 2.37.2
|
|
60
|
+
with:
|
|
61
|
+
php-version: "8.3"
|
|
62
|
+
tools: composer
|
|
63
|
+
- uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6.3.0
|
|
64
|
+
with:
|
|
65
|
+
gradle-version: "8.10"
|
|
66
|
+
- run: python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
67
|
+
- name: Execute real fixture toolchains
|
|
68
|
+
env:
|
|
69
|
+
RUN_TOOLCHAIN_E2E: "1"
|
|
70
|
+
E2E_TOOLCHAINS: python,node,rust,maven,gradle,php
|
|
71
|
+
run: python -m pytest tests/integration/test_toolchain_e2e.py -q
|
|
72
|
+
|
|
73
|
+
agent-corpus:
|
|
74
|
+
runs-on: ubuntu-latest
|
|
75
|
+
steps:
|
|
76
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
77
|
+
with:
|
|
78
|
+
persist-credentials: false
|
|
79
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
|
|
80
|
+
with:
|
|
81
|
+
python-version: "3.13"
|
|
82
|
+
- run: python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
83
|
+
- name: Run real-agent regression corpus
|
|
84
|
+
run: >-
|
|
85
|
+
ai-dev benchmark corpus
|
|
86
|
+
--manifest examples/benchmarks/agent-corpus.json
|
|
87
|
+
--trials 3
|
|
88
|
+
--timeout 60
|
|
89
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
90
|
+
if: always()
|
|
91
|
+
with:
|
|
92
|
+
name: agent-corpus-results
|
|
93
|
+
path: .ai/benchmarks
|
|
94
|
+
if-no-files-found: error
|
|
95
|
+
|
|
96
|
+
agent-report:
|
|
97
|
+
runs-on: ubuntu-latest
|
|
98
|
+
permissions:
|
|
99
|
+
contents: read
|
|
100
|
+
security-events: write
|
|
101
|
+
steps:
|
|
102
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
103
|
+
with:
|
|
104
|
+
fetch-depth: 0
|
|
105
|
+
persist-credentials: false
|
|
106
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
|
|
107
|
+
with:
|
|
108
|
+
python-version: "3.13"
|
|
109
|
+
- run: python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
110
|
+
- name: Build bounded agent plan
|
|
111
|
+
run: ai-dev plan --task "Review this commit" --json
|
|
112
|
+
- name: Export SARIF
|
|
113
|
+
run: ai-dev sarif --input .ai/reports/agent-plan.json --output .ai/reports/ai-dev.sarif
|
|
114
|
+
- name: Add agent plan to job summary
|
|
115
|
+
run: cat .ai/reports/agent-plan.md >> "$GITHUB_STEP_SUMMARY"
|
|
116
|
+
- name: Upload SARIF to GitHub code scanning
|
|
117
|
+
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
|
|
118
|
+
uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
|
|
119
|
+
with:
|
|
120
|
+
sarif_file: .ai/reports/ai-dev.sarif
|
|
@@ -8,11 +8,11 @@ jobs:
|
|
|
8
8
|
docs:
|
|
9
9
|
runs-on: ubuntu-latest
|
|
10
10
|
steps:
|
|
11
|
-
- uses: actions/checkout@
|
|
12
|
-
- uses: actions/setup-python@
|
|
11
|
+
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
|
|
12
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
|
|
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
|
|
@@ -10,6 +10,7 @@ permissions:
|
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
12
|
validate-release:
|
|
13
|
+
if: github.event.release.prerelease == false
|
|
13
14
|
name: Validate manually promoted release artifacts
|
|
14
15
|
runs-on: ubuntu-latest
|
|
15
16
|
steps:
|
|
@@ -36,7 +37,7 @@ jobs:
|
|
|
36
37
|
python -m twine check dist/*
|
|
37
38
|
python scripts/validate_release.py --tag "$RELEASE_TAG" --dist dist
|
|
38
39
|
- name: Upload validated production artifact
|
|
39
|
-
uses: actions/upload-artifact@
|
|
40
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
40
41
|
with:
|
|
41
42
|
name: pypi-distributions
|
|
42
43
|
path: dist/
|
|
@@ -44,6 +45,7 @@ jobs:
|
|
|
44
45
|
retention-days: 7
|
|
45
46
|
|
|
46
47
|
publish-pypi:
|
|
48
|
+
if: github.event.release.prerelease == false
|
|
47
49
|
name: Publish manually approved release to PyPI
|
|
48
50
|
needs: validate-release
|
|
49
51
|
runs-on: ubuntu-latest
|
|
@@ -54,7 +56,7 @@ jobs:
|
|
|
54
56
|
id-token: write
|
|
55
57
|
steps:
|
|
56
58
|
- name: Download validated production artifact
|
|
57
|
-
uses: actions/download-artifact@
|
|
59
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
58
60
|
with:
|
|
59
61
|
name: pypi-distributions
|
|
60
62
|
path: dist/
|
|
@@ -64,6 +66,7 @@ jobs:
|
|
|
64
66
|
packages-dir: dist/
|
|
65
67
|
|
|
66
68
|
verify-pypi:
|
|
69
|
+
if: github.event.release.prerelease == false
|
|
67
70
|
name: Verify PyPI pipx installation
|
|
68
71
|
needs: publish-pypi
|
|
69
72
|
runs-on: ubuntu-latest
|
|
@@ -31,7 +31,7 @@ jobs:
|
|
|
31
31
|
python scripts/validate_release.py --tag "$GITHUB_REF_NAME" --dist dist
|
|
32
32
|
python scripts/test_installed_package.py
|
|
33
33
|
- name: Upload immutable distribution artifact
|
|
34
|
-
uses: actions/upload-artifact@
|
|
34
|
+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
35
35
|
with:
|
|
36
36
|
name: python-package-distributions
|
|
37
37
|
path: dist/
|
|
@@ -49,7 +49,7 @@ jobs:
|
|
|
49
49
|
id-token: write
|
|
50
50
|
steps:
|
|
51
51
|
- name: Download distribution artifact
|
|
52
|
-
uses: actions/download-artifact@
|
|
52
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
53
53
|
with:
|
|
54
54
|
name: python-package-distributions
|
|
55
55
|
path: dist/
|
|
@@ -84,19 +84,20 @@ 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
|
-
uses: actions/download-artifact@
|
|
91
|
+
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
89
92
|
with:
|
|
90
93
|
name: python-package-distributions
|
|
91
94
|
path: dist/
|
|
92
|
-
- name: Create
|
|
95
|
+
- name: Create RC prerelease or stable promotion draft
|
|
93
96
|
env:
|
|
94
97
|
GH_TOKEN: ${{ github.token }}
|
|
95
|
-
run:
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
--generate-notes
|
|
102
|
-
--title "ai-dev $GITHUB_REF_NAME"
|
|
98
|
+
run: |
|
|
99
|
+
if [[ "$GITHUB_REF_NAME" == *-rc.* ]]; then
|
|
100
|
+
gh release create "$GITHUB_REF_NAME" dist/* --prerelease --verify-tag --generate-notes --title "ai-dev $GITHUB_REF_NAME"
|
|
101
|
+
else
|
|
102
|
+
gh release create "$GITHUB_REF_NAME" dist/* --draft --verify-tag --generate-notes --title "ai-dev $GITHUB_REF_NAME"
|
|
103
|
+
fi
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 1.1.0 - 2026-08-31
|
|
4
|
+
|
|
5
|
+
Stable promotion of `1.1.0rc1` after cross-platform CI, benchmark regression gates, and a clean
|
|
6
|
+
TestPyPI installation smoke test.
|
|
7
|
+
|
|
8
|
+
- Add `plan` and MCP `plan_work` for bounded, preview-only implementation plans with scope,
|
|
9
|
+
dependencies, validation, risk, policy assessments, and stable evidence references.
|
|
10
|
+
- Add built-in Tree-sitter AST and LSP document-symbol backends alongside the local structural
|
|
11
|
+
fallback and semantic plugin contract.
|
|
12
|
+
- Add a detached, localhost-authenticated index daemon using native filesystem events, IPC
|
|
13
|
+
start/status/stop control, lifecycle state, and no periodic repository rescans.
|
|
14
|
+
- Classify command failures and retry only transient infrastructure failures while preserving the
|
|
15
|
+
first failure and recovery evidence.
|
|
16
|
+
- Add configurable command allow/deny prefixes and impact limits, enforced by checks, bootstrap,
|
|
17
|
+
and application startup, plus a preview-only `policy assess` command.
|
|
18
|
+
- Extend reproducible benchmarks with precision, recall, false negatives, iterations, files read,
|
|
19
|
+
reported token metrics, a versioned real-agent corpus, and enforceable regression gates.
|
|
20
|
+
- Add ready project-scoped MCP configurations for Codex, Claude Code, Cursor, and generic clients.
|
|
21
|
+
- Add a loopback-only local dashboard for index, semantic, cache, runtime, daemon, and error health.
|
|
22
|
+
- Add deterministic report-to-SARIF conversion and a GitHub Actions code-scanning summary job.
|
|
23
|
+
- Upgrade and SHA-pin supported GitHub Actions used by CI, docs, and publishing workflows.
|
|
24
|
+
|
|
25
|
+
## 1.0.0 - 2026-08-31
|
|
26
|
+
|
|
27
|
+
- Stabilize the local CLI and report schema for the 1.0 release line.
|
|
28
|
+
- Add deterministic `implement` and `docs` context profiles with contract-tested budgets.
|
|
29
|
+
- Add project-scoped `explain --symbol PATH#QUALIFIED_SYMBOL` with bounded content and related tests.
|
|
30
|
+
- Add configuration ownership, generated-source relationships, reverse-dependent traversal, and
|
|
31
|
+
bounded reason paths to the impact graph.
|
|
32
|
+
- Add nested Java/PHP owner qualification and overload-safe Java member identities.
|
|
33
|
+
- Add dependency-aware, resource-bounded check scheduling with deterministic report order.
|
|
34
|
+
- Safely cancel only subprocesses owned by obsolete watch validations while retaining their logs.
|
|
35
|
+
- Add a pinned development-tool baseline and disable unrelated globally installed pytest-qt hooks.
|
|
36
|
+
- Add an end-to-end regression for ignored virtual environments, CP1250 output, and non-zero check
|
|
37
|
+
result status consistency.
|
|
38
|
+
- Add retained historical incremental context manifests and `context build --since <context-id>`.
|
|
39
|
+
- Add direct named baseline regression checks through `check --compare` and
|
|
40
|
+
`context build --compare`.
|
|
41
|
+
- Add bounded shortest reason paths for changed-file, related-test, symbol, and check selection.
|
|
42
|
+
- Exclude `env` and `venv` dependency trees from workspace discovery, make text reports safe on
|
|
43
|
+
legacy Windows console encodings, and keep non-zero check results from reporting success.
|
|
44
|
+
- Add explainable `auto|always|never` selective retrieval with conservative fallback and related-test false-negative measurement.
|
|
45
|
+
- Add a local observation lifecycle that replaces superseded feedback with expandable content-addressed evidence while retaining current failures, warnings, and final verification.
|
|
46
|
+
- Add a relocatable deterministic prompt-cache layout manifest with stable-prefix fingerprints and OpenAI, Anthropic, and provider-neutral breakpoint recommendations.
|
|
47
|
+
- Add optional exact tiktoken accounting, provider usage normalization, and enforced per-category token budgets for context packs.
|
|
48
|
+
- Add bounded multi-round context refinement driven by failures, changed symbols, dependencies, and expandable evidence.
|
|
49
|
+
- Add opt-in deterministic prose/log deduplication with fail-closed protected-evidence fingerprints.
|
|
50
|
+
- Add owner-qualified Java/PHP methods and Rust impl/trait functions, Java constructor detection,
|
|
51
|
+
and correct global PHP function classification.
|
|
52
|
+
- Replace the completed historical backlog with an active backlog and mark every roadmap capability
|
|
53
|
+
as implemented or partial against the supported CLI.
|
|
54
|
+
|
|
55
|
+
- Document research-backed selective retrieval, prompt-cache layout, observation lifecycle, token accounting, and safe compression priorities.
|
|
56
|
+
- Add local stage timing records, configurable performance budgets, and latest/compare diagnostics.
|
|
57
|
+
- 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.
|
|
58
|
+
- Add a dependency-free local MCP STDIO server with focused, bounded project tools.
|
|
59
|
+
- Add symbol-level Python and JavaScript/TypeScript working-tree diffs with compact review contexts.
|
|
60
|
+
- Add local multi-agent task coordination with expiring leases and path-conflict detection.
|
|
61
|
+
- Add conservative Java, Rust, and PHP adapters for context selection and symbol-level diffs.
|
|
62
|
+
|
|
63
|
+
- Add task-aware JavaScript/TypeScript top-level symbol selection for bounded context packs.
|
|
64
|
+
- Correct capabilities metadata for flaky retries and completed cross-platform CI.
|
|
65
|
+
|
|
66
|
+
- Add reproducible, correctness-gated local A/B workflow benchmarks and comparison reports.
|
|
67
|
+
- Add foreground watch mode with debounced changed validation and latest-result reports.
|
|
68
|
+
- Add revalidated warm environment state and bootstrap --if-needed.
|
|
69
|
+
- Add opt-in bounded flaky retries with preserved first failures and local history.
|
|
70
|
+
|
|
71
|
+
## 0.5.0a1 - 2026-08-10
|
|
72
|
+
|
|
73
|
+
- Add workspace models and isolated check/bootstrap routing for mixed monorepos.
|
|
74
|
+
- Add cross-platform mixed-monorepo and Git path fixtures covering spaces, Unicode, rename, deletion, and non-UTF-8 output.
|
|
75
|
+
- Add runner failure matrices and real Python, Node, Rust, Maven, Gradle, and Composer fixture execution in CI.
|
|
76
|
+
- Detect and validate Python, Node.js, Java, Rust, and PHP runtime requirements.
|
|
77
|
+
- Implement safe managed `run` and `stop` with supervisor-owned process termination.
|
|
78
|
+
- Add HTTP/TCP readiness probes, bounded startup logs, and readiness-timeout cleanup.
|
|
79
|
+
- Add bounded parallel check execution with `--jobs`.
|
|
80
|
+
- Add a versioned repository index and content-addressed validation cache with bounded retention.
|
|
81
|
+
- Add incremental context manifests and `context build --incremental`.
|
|
82
|
+
- Add AST-aware Python symbol snippets for large context files.
|
|
83
|
+
- Add minimal, debug, review, and full context profiles.
|
|
84
|
+
- Add local diagnostics, efficiency estimates, a stable agent contract, and JSON integration example.
|
|
85
|
+
- Add dependency-free completion generators for Bash, Zsh, Fish, and PowerShell.
|
|
86
|
+
- Add stable failure signatures and a machine-readable report JSON Schema.
|
|
87
|
+
- Add an extensible tool-output parser registry with deterministic precedence.
|
|
88
|
+
- Add compatibility fixtures and prevent cross-line test-count overcounting.
|
|
89
|
+
- Apply defense-in-depth secret masking to command logs, diagnostics, runtime streams, and report writers.
|
|
90
|
+
- Raise and enforce the coverage threshold to 90%.
|
|
91
|
+
- Add agent-efficiency and execution TODO roadmaps.
|
|
92
|
+
|
|
93
|
+
## 0.4.0
|
|
94
|
+
|
|
95
|
+
- Add `ai-dev bootstrap` with safe explain, dry-run, and execution modes.
|
|
96
|
+
- Support bootstrap strategies for Python, Node.js, Maven, Gradle, Rust, and PHP.
|
|
97
|
+
- Add guarded `.env.example` to `.env` creation via `--create-env`.
|
|
98
|
+
- Add installed-wheel entrypoint smoke validation to local and CI standards.
|
|
99
|
+
- Keep cross-platform CI marked as externally blocked until GitHub Actions jobs actually run.
|
|
100
|
+
## 0.3.0
|
|
101
|
+
|
|
102
|
+
- Add `ai-dev context build` for bounded local AI context packages.
|
|
103
|
+
- Write `.ai/context/context-latest.md` and `.ai/context/context-latest.json` artifacts.
|
|
104
|
+
- Reuse scan, repository map, git inspect, changed-test selection, validation planning, and secret masking.
|
|
105
|
+
- Keep monorepo detection experimental, per-subproject runner isolation planned, and runtime validation partial.
|
|
106
|
+
## 0.2.0
|
|
107
|
+
|
|
108
|
+
- Add schema 1.1 reports with exit codes and metadata.
|
|
109
|
+
- Add tool-specific output parser layer with fixtures for Python, JavaScript, Java, Rust, and PHP logs.
|
|
110
|
+
- Add `ai-dev capabilities` and `ai-dev check --explain`.
|
|
111
|
+
- Add `logs summarize <path> --tool auto|name` with a 50 MB input limit.
|
|
112
|
+
- Improve changed-file strategies with configuration-change and changed-test-direct reporting.
|
|
113
|
+
- Prepare package version 0.2.0 without creating a release.
|
|
114
|
+
|
|
115
|
+
## 0.1.0
|
|
116
|
+
|
|
117
|
+
- 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:
|
|
3
|
+
Version: 1.1.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
|
|
@@ -19,12 +19,17 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.13
|
|
20
20
|
Classifier: Topic :: Software Development :: Quality Assurance
|
|
21
21
|
Requires-Python: >=3.11
|
|
22
|
+
Requires-Dist: watchdog<7,>=4
|
|
22
23
|
Provides-Extra: dev
|
|
23
24
|
Requires-Dist: build>=1.2; extra == 'dev'
|
|
24
25
|
Requires-Dist: coverage[toml]>=7.6; extra == 'dev'
|
|
25
26
|
Requires-Dist: mypy>=1.11; extra == 'dev'
|
|
26
27
|
Requires-Dist: pytest>=8.3; extra == 'dev'
|
|
27
28
|
Requires-Dist: ruff>=0.6; extra == 'dev'
|
|
29
|
+
Provides-Extra: semantic
|
|
30
|
+
Requires-Dist: tree-sitter-language-pack>=0.9; extra == 'semantic'
|
|
31
|
+
Provides-Extra: tokenizers
|
|
32
|
+
Requires-Dist: tiktoken>=0.7; extra == 'tokenizers'
|
|
28
33
|
Description-Content-Type: text/markdown
|
|
29
34
|
|
|
30
35
|
# AI Dev CLI Tools
|
|
@@ -52,17 +57,17 @@ be safe for `ai-dev` to recreate.
|
|
|
52
57
|
|
|
53
58
|
```bash
|
|
54
59
|
python -m pip install --upgrade pipx
|
|
55
|
-
pipx install ai-dev-cli-tools==0.
|
|
60
|
+
pipx install ai-dev-cli-tools==1.0.0
|
|
56
61
|
ai-dev --help
|
|
57
62
|
```
|
|
58
63
|
|
|
59
|
-
For a source checkout
|
|
60
|
-
|
|
64
|
+
For a source checkout, use `pipx install .`. See `docs/DISTRIBUTION.md` for the Trusted Publishing
|
|
65
|
+
and upgrade policy.
|
|
61
66
|
|
|
62
67
|
For development:
|
|
63
68
|
|
|
64
69
|
```bash
|
|
65
|
-
python -m pip install -e ".[dev]"
|
|
70
|
+
python -m pip install -c requirements-dev.lock -e ".[dev]"
|
|
66
71
|
```
|
|
67
72
|
|
|
68
73
|
## Windows
|
|
@@ -89,16 +94,38 @@ ai-dev check --mode fast
|
|
|
89
94
|
ai-dev check --mode changed # reports changed files and falls back safely when test mapping is uncertain
|
|
90
95
|
ai-dev check --mode full --jobs 4
|
|
91
96
|
ai-dev check --mode changed --policy feedback-first --resume
|
|
97
|
+
ai-dev check --mode changed --compare main
|
|
98
|
+
ai-dev check --mode changed --retry-flaky 1
|
|
99
|
+
ai-dev check --mode changed --retry-infra 1
|
|
100
|
+
ai-dev plan --task "implement rate limiting" --mode changed
|
|
92
101
|
ai-dev index update
|
|
102
|
+
ai-dev index daemon start
|
|
103
|
+
ai-dev index daemon status
|
|
104
|
+
ai-dev index daemon stop
|
|
105
|
+
ai-dev semantic status
|
|
106
|
+
ai-dev semantic index --backend auto
|
|
107
|
+
ai-dev policy assess -- python -m pytest
|
|
108
|
+
ai-dev sarif --input .ai/reports/agent-plan.json
|
|
93
109
|
ai-dev cache status
|
|
110
|
+
ai-dev cache layout
|
|
94
111
|
ai-dev baseline create main
|
|
95
112
|
ai-dev baseline compare main
|
|
113
|
+
ai-dev benchmark run --suite examples/benchmarks/output-budget-smoke.json --variant baseline
|
|
114
|
+
ai-dev benchmark corpus --manifest examples/benchmarks/agent-corpus.json --trials 3
|
|
115
|
+
ai-dev integrations install all
|
|
116
|
+
ai-dev dashboard serve --port 8765
|
|
96
117
|
ai-dev explain issue:<id> --tail 100
|
|
118
|
+
ai-dev explain --symbol "src/app.py#Application.run" --tail 100
|
|
97
119
|
ai-dev feedback --task "fix authentication timeout"
|
|
120
|
+
ai-dev watch --mode changed --debounce 500
|
|
98
121
|
ai-dev session status
|
|
122
|
+
ai-dev bootstrap --if-needed
|
|
123
|
+
ai-dev environment explain
|
|
99
124
|
ai-dev diagnostics
|
|
100
125
|
ai-dev completion bash
|
|
126
|
+
ai-dev mcp serve
|
|
101
127
|
ai-dev test affected
|
|
128
|
+
ai-dev test flaky
|
|
102
129
|
ai-dev logs summarize
|
|
103
130
|
ai-dev context build
|
|
104
131
|
ai-dev git status
|
|
@@ -109,6 +136,27 @@ ai-dev finish
|
|
|
109
136
|
All commands support `--project`, `--json`, `--quiet`, `--help`, and `--version` at the top level.
|
|
110
137
|
|
|
111
138
|
|
|
139
|
+
## Local MCP server
|
|
140
|
+
|
|
141
|
+
`ai-dev mcp serve` exposes project status, implementation planning, compact feedback, bounded context, validation,
|
|
142
|
+
and progressive evidence as local structured tools for Codex-compatible MCP clients. The STDIO
|
|
143
|
+
server is dependency-free, has no network listener, fixes all calls to one project root, and
|
|
144
|
+
defaults validation to preview-only.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
codex mcp add ai-dev -- ai-dev --project "/absolute/path/to/project" mcp serve
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
See `docs/MCP_SERVER.md` for tool schemas, approvals, project-scoped configuration, and
|
|
151
|
+
security boundaries.
|
|
152
|
+
|
|
153
|
+
For the recommended agent loop—plan, retrieve, implement, validate, and expand only failed
|
|
154
|
+
evidence—see `docs/AGENT_WORKFLOW.md`.
|
|
155
|
+
|
|
156
|
+
For agents sharing a repository, `ai-dev agents add|claim|heartbeat|release|complete|status`
|
|
157
|
+
maintains an atomic local task board with expiring leases and declared-path conflict detection.
|
|
158
|
+
See `docs/AGENT_COORDINATION.md` for the workflow and safety limits.
|
|
159
|
+
|
|
112
160
|
## Bootstrap
|
|
113
161
|
|
|
114
162
|
`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 +179,43 @@ kills an arbitrary PID read from stale state. See `docs/RUNTIME.md`.
|
|
|
131
179
|
ai-dev context build --task "fix auth tests"
|
|
132
180
|
ai-dev context build --changed-only --max-chars 50000
|
|
133
181
|
ai-dev context build --incremental # emits only candidates changed since the last pack
|
|
182
|
+
ai-dev context build --incremental --since <context-id>
|
|
183
|
+
ai-dev context build --compare main
|
|
134
184
|
ai-dev context build --profile review
|
|
185
|
+
ai-dev context build --profile implement
|
|
186
|
+
ai-dev context build --profile docs
|
|
187
|
+
ai-dev context build --retrieval auto --explain # explains retrieval or abstention
|
|
188
|
+
ai-dev context build --tokenizer o200k_base --token-budget source=8000 --token-budget diffs=2000
|
|
189
|
+
ai-dev context build --refine issue:<id> --refinement-rounds 2 --refinement-max-files 5
|
|
190
|
+
ai-dev context build --compression conservative
|
|
135
191
|
ai-dev context build --include "src/**/*.py" --exclude "tests/fixtures/**"
|
|
136
192
|
ai-dev context build --explain --json
|
|
137
193
|
```
|
|
138
194
|
|
|
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
|
|
195
|
+
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.
|
|
196
|
+
|
|
197
|
+
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.
|
|
140
198
|
|
|
141
|
-
|
|
199
|
+
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.
|
|
200
|
+
|
|
201
|
+
Incremental mode stores the latest schema-versioned manifest plus up to 50 content-addressed
|
|
202
|
+
historical manifests under `.ai/cache/`, and reports changed versus reused files. Pass
|
|
203
|
+
`--since <context-id>` to compare against an explicitly retained context. Default limits are
|
|
204
|
+
`--max-chars 50000`, `--max-files 30`, `--max-file-chars 8000`, and `--max-diff-chars 15000`.
|
|
205
|
+
Secret-bearing and generated paths such as `.env`, private keys, caches, build output, `.ai/logs`,
|
|
206
|
+
and `.ai/reports` are excluded from snippets.
|
|
142
207
|
## Reports and Logs
|
|
143
208
|
|
|
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`.
|
|
209
|
+
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
210
|
|
|
146
211
|
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
212
|
|
|
148
213
|
JSON reports use schema `1.1` with `schema_version`, `tool_version`, `command`, `status`, `exit_code`, timestamps, `project_root`, `summary`, `issues`, `artifacts`, and `metadata`.
|
|
149
214
|
|
|
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.
|
|
215
|
+
`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
216
|
|
|
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.
|
|
217
|
+
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.
|
|
218
|
+
Research-backed context and token-efficiency recommendations are documented in `docs/TOKEN_EFFICIENCY_RESEARCH.md`.
|
|
153
219
|
|
|
154
220
|
## Auto Detection
|
|
155
221
|
|
|
@@ -182,6 +248,12 @@ paths = ["node_modules", ".venv", "dist", "build"]
|
|
|
182
248
|
[reports]
|
|
183
249
|
directory = ".ai/reports"
|
|
184
250
|
logs_directory = ".ai/logs"
|
|
251
|
+
|
|
252
|
+
[execution]
|
|
253
|
+
mode = "enforce"
|
|
254
|
+
maximum_impact = "high"
|
|
255
|
+
allow_prefixes = ["python -m pytest", "python -m ruff", "python -m mypy"]
|
|
256
|
+
deny_prefixes = ["git reset", "git clean"]
|
|
185
257
|
```
|
|
186
258
|
|
|
187
259
|
Configuration takes precedence over auto detection. Invalid or unknown configuration is reported through `config_warnings` instead of crashing normal scans.
|
|
@@ -212,16 +284,29 @@ git diff --check
|
|
|
212
284
|
| check | implemented |
|
|
213
285
|
| check --explain | implemented |
|
|
214
286
|
| test affected | implemented |
|
|
287
|
+
| test flaky / check --retry-flaky | implemented |
|
|
215
288
|
| index status/update/rebuild | implemented |
|
|
216
|
-
|
|
|
289
|
+
| index daemon | implemented |
|
|
290
|
+
| plan / MCP plan_work | implemented |
|
|
291
|
+
| semantic status/index | implemented with built-in Tree-sitter, LSP, and provider plugins |
|
|
292
|
+
| policy assess / execution enforcement | implemented |
|
|
293
|
+
| sarif | implemented |
|
|
294
|
+
| cache status/prune/clear/layout | implemented |
|
|
217
295
|
| logs summarize | implemented |
|
|
218
296
|
| context build | implemented |
|
|
219
297
|
| diagnostics | implemented |
|
|
298
|
+
| mcp serve | implemented |
|
|
299
|
+
| watch | implemented |
|
|
300
|
+
| benchmark run/compare/gate/corpus | implemented |
|
|
301
|
+
| integrations install | implemented for Codex, Claude Code, Cursor, and generic MCP |
|
|
302
|
+
| dashboard status/serve | implemented, loopback-only |
|
|
303
|
+
| performance latest/compare | implemented |
|
|
220
304
|
| capabilities | implemented |
|
|
221
305
|
| git status | implemented |
|
|
222
306
|
| git inspect | implemented |
|
|
223
307
|
| finish | implemented |
|
|
224
308
|
| bootstrap | implemented |
|
|
309
|
+
| environment explain | implemented |
|
|
225
310
|
| run | implemented |
|
|
226
311
|
| stop | implemented |
|
|
227
312
|
|
|
@@ -229,12 +314,12 @@ git diff --check
|
|
|
229
314
|
|
|
230
315
|
- Monorepo/workspace detection and per-subproject command routing: implemented.
|
|
231
316
|
- Per-subproject check and bootstrap working directories: implemented.
|
|
232
|
-
- Runtime version validation:
|
|
317
|
+
- Runtime requirement detection and version validation: implemented.
|
|
233
318
|
- `context build` is implemented as a bounded local context pack builder.
|
|
234
319
|
- `bootstrap` is implemented as a conservative local setup planner/executor.
|
|
235
|
-
- Auto-commit, auto-push, and GUI
|
|
320
|
+
- Auto-commit, auto-push, destructive cleanup, remote source transmission, and GUI are intentionally out of scope.
|
|
236
321
|
|
|
237
322
|
## Intentional Limits
|
|
238
|
-
Version 0.
|
|
323
|
+
Version 1.0.0 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
|
|
239
324
|
|
|
240
325
|
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.
|