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.
Files changed (266) hide show
  1. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/ci.yml +2 -2
  2. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/docs.yml +1 -1
  3. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/release.yml +3 -1
  4. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.gitignore +3 -0
  5. ai_dev_cli_tools-1.0.0/CHANGELOG.md +95 -0
  6. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/CONTRIBUTING.md +1 -0
  7. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/PKG-INFO +70 -16
  8. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/README.md +65 -13
  9. ai_dev_cli_tools-1.0.0/TODO.md +24 -0
  10. ai_dev_cli_tools-1.0.0/docs/ADAPTIVECHESSAI_FULL_CHECK_FAILURE_2026-08-30.md +90 -0
  11. ai_dev_cli_tools-1.0.0/docs/ADAPTIVECHESSAI_PYCHARM_HEADLESS_INSPECTION_FAILURE_2026-08-30.md +60 -0
  12. ai_dev_cli_tools-1.0.0/docs/AGENT_COORDINATION.md +43 -0
  13. ai_dev_cli_tools-1.0.0/docs/AGENT_EFFICIENCY_ROADMAP.md +91 -0
  14. ai_dev_cli_tools-1.0.0/docs/AGENT_INTEGRATION_CONTRACT.md +43 -0
  15. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/ARCHITECTURE.md +10 -3
  16. ai_dev_cli_tools-1.0.0/docs/BENCHMARKS.md +99 -0
  17. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/BOOTSTRAP.md +2 -2
  18. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/CACHE_AND_INDEX.md +24 -1
  19. ai_dev_cli_tools-1.0.0/docs/CONTEXT_BUILDER.md +142 -0
  20. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/DISTRIBUTION.md +7 -7
  21. ai_dev_cli_tools-1.0.0/docs/FLAKY_RETRIES.md +29 -0
  22. ai_dev_cli_tools-1.0.0/docs/MCP_SERVER.md +99 -0
  23. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/MONOREPO_SUPPORT.md +1 -1
  24. ai_dev_cli_tools-1.0.0/docs/OBSERVATION_LIFECYCLE.md +38 -0
  25. ai_dev_cli_tools-1.0.0/docs/PERFORMANCE.md +45 -0
  26. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/RELEASE_CHECKLIST.md +14 -4
  27. ai_dev_cli_tools-1.0.0/docs/REPORT_SCHEMA.md +133 -0
  28. ai_dev_cli_tools-1.0.0/docs/SEMANTIC_COMPRESSION.md +30 -0
  29. ai_dev_cli_tools-1.0.0/docs/TOKEN_EFFICIENCY_RESEARCH.md +129 -0
  30. ai_dev_cli_tools-1.0.0/docs/WARM_ENVIRONMENT.md +28 -0
  31. ai_dev_cli_tools-1.0.0/docs/WATCH_MODE.md +24 -0
  32. ai_dev_cli_tools-1.0.0/docs/benchmarks/agent-workflows-windows-py314-2026-08-11.json +671 -0
  33. ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-affected-workflow.json +32 -0
  34. ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-monorepo-workflow.json +32 -0
  35. ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-multiturn-workflow.json +32 -0
  36. ai_dev_cli_tools-1.0.0/examples/benchmarks/agent-repair-workflow.json +32 -0
  37. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/pyproject.toml +6 -0
  38. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/src/orders.py +2 -0
  39. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/src/pricing.py +331 -0
  40. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/__init__.py +0 -0
  41. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_orders.py +5 -0
  42. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_pricing.py +5 -0
  43. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_1.py +2 -0
  44. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_10.py +2 -0
  45. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_11.py +2 -0
  46. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_12.py +2 -0
  47. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_2.py +2 -0
  48. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_3.py +2 -0
  49. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_4.py +2 -0
  50. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_5.py +2 -0
  51. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_6.py +2 -0
  52. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_7.py +2 -0
  53. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_8.py +2 -0
  54. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_9.py +2 -0
  55. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/__init__.py +1 -0
  56. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/__init__.py +1 -0
  57. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/pyproject.toml +7 -0
  58. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/__init__.py +1 -0
  59. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/billing.py +3 -0
  60. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/__init__.py +1 -0
  61. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/test_billing.py +5 -0
  62. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/__init__.py +1 -0
  63. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/pyproject.toml +7 -0
  64. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/__init__.py +1 -0
  65. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/catalog.py +3 -0
  66. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/__init__.py +1 -0
  67. ai_dev_cli_tools-1.0.0/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/test_catalog.py +5 -0
  68. ai_dev_cli_tools-1.0.0/examples/benchmarks/mcp-recurring-status.json +12 -0
  69. ai_dev_cli_tools-1.0.0/examples/benchmarks/output-budget-smoke.json +12 -0
  70. ai_dev_cli_tools-1.0.0/examples/benchmarks/symbol-diff-context.json +12 -0
  71. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/pyproject.toml +20 -3
  72. ai_dev_cli_tools-1.0.0/requirements-dev.lock +7 -0
  73. ai_dev_cli_tools-1.0.0/scripts/__init__.py +0 -0
  74. ai_dev_cli_tools-1.0.0/scripts/benchmark_agent_workflow.py +253 -0
  75. ai_dev_cli_tools-1.0.0/scripts/benchmark_mcp_status.py +98 -0
  76. ai_dev_cli_tools-1.0.0/scripts/benchmark_symbol_diff.py +71 -0
  77. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/test_installed_package.py +20 -1
  78. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/validate_ci.py +5 -1
  79. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/validate_release.py +34 -0
  80. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/__init__.py +1 -1
  81. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/cache/graph.py +293 -0
  82. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/cache/prompt_layout.py +142 -0
  83. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cli.py +233 -13
  84. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/completion.py +20 -6
  85. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/config.py +57 -2
  86. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/builder.py +219 -21
  87. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/compression.py +185 -0
  88. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/incremental.py +56 -13
  89. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/models.py +11 -0
  90. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/profiles.py +16 -0
  91. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/refinement.py +104 -0
  92. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/retrieval.py +189 -0
  93. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/selection.py +31 -7
  94. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/symbols.py +21 -0
  95. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/context/tokens.py +291 -0
  96. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/project.py +22 -3
  97. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/workspaces.py +14 -3
  98. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/git/inspect.py +23 -9
  99. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/git/symbol_diff.py +421 -0
  100. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/mcp_server.py +663 -0
  101. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/reporters/progressive.py +71 -1
  102. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/baseline.py +61 -6
  103. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/benchmark.py +357 -0
  104. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/bootstrap.py +54 -1
  105. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/bootstrap_models.py +1 -0
  106. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/cache.py +9 -1
  107. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check.py +141 -19
  108. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check_models.py +5 -1
  109. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/check_scheduler.py +161 -0
  110. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check_selection.py +16 -1
  111. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/coordination.py +316 -0
  112. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/diagnostics.py +15 -0
  113. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/environment_state.py +250 -0
  114. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/feedback.py +69 -0
  115. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/flaky.py +164 -0
  116. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/observations.py +133 -0
  117. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/performance.py +243 -0
  118. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/runners/watch.py +177 -0
  119. ai_dev_cli_tools-1.0.0/src/ai_dev_tools/source_symbols.py +737 -0
  120. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/utils/subprocess.py +68 -1
  121. ai_dev_cli_tools-1.0.0/tests/integration/test_adaptive_chess_regression.py +45 -0
  122. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_git.py +28 -0
  123. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_baseline.py +52 -1
  124. ai_dev_cli_tools-1.0.0/tests/unit/test_benchmark.py +163 -0
  125. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_cache.py +53 -1
  126. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_check.py +15 -0
  127. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_check_scheduler.py +54 -1
  128. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_cli_more.py +42 -1
  129. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_completion.py +5 -0
  130. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_context_builder.py +122 -0
  131. ai_dev_cli_tools-1.0.0/tests/unit/test_context_compression.py +92 -0
  132. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_context_profiles.py +34 -1
  133. ai_dev_cli_tools-1.0.0/tests/unit/test_context_refinement.py +62 -0
  134. ai_dev_cli_tools-1.0.0/tests/unit/test_context_retrieval.py +121 -0
  135. ai_dev_cli_tools-1.0.0/tests/unit/test_context_symbols.py +196 -0
  136. ai_dev_cli_tools-1.0.0/tests/unit/test_coordination.py +93 -0
  137. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_diagnostics.py +5 -0
  138. ai_dev_cli_tools-1.0.0/tests/unit/test_environment_state.py +120 -0
  139. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_feedback.py +2 -0
  140. ai_dev_cli_tools-1.0.0/tests/unit/test_flaky.py +101 -0
  141. ai_dev_cli_tools-1.0.0/tests/unit/test_mcp_server.py +300 -0
  142. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_more_coverage.py +18 -0
  143. ai_dev_cli_tools-1.0.0/tests/unit/test_more_symbol_adapters.py +158 -0
  144. ai_dev_cli_tools-1.0.0/tests/unit/test_observations.py +115 -0
  145. ai_dev_cli_tools-1.0.0/tests/unit/test_performance.py +95 -0
  146. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_progressive_reports.py +23 -1
  147. ai_dev_cli_tools-1.0.0/tests/unit/test_prompt_layout.py +104 -0
  148. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_release_scripts.py +37 -2
  149. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_report.py +1 -1
  150. ai_dev_cli_tools-1.0.0/tests/unit/test_symbol_diff.py +112 -0
  151. ai_dev_cli_tools-1.0.0/tests/unit/test_token_accounting.py +120 -0
  152. ai_dev_cli_tools-1.0.0/tests/unit/test_watch.py +132 -0
  153. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_workspaces.py +14 -0
  154. ai_dev_cli_tools-0.5.0a1/CHANGELOG.md +0 -51
  155. ai_dev_cli_tools-0.5.0a1/TODO.md +0 -126
  156. ai_dev_cli_tools-0.5.0a1/docs/AGENT_EFFICIENCY_ROADMAP.md +0 -483
  157. ai_dev_cli_tools-0.5.0a1/docs/AGENT_INTEGRATION_CONTRACT.md +0 -25
  158. ai_dev_cli_tools-0.5.0a1/docs/CONTEXT_BUILDER.md +0 -56
  159. ai_dev_cli_tools-0.5.0a1/docs/REPORT_SCHEMA.md +0 -83
  160. ai_dev_cli_tools-0.5.0a1/src/ai_dev_tools/cache/graph.py +0 -136
  161. ai_dev_cli_tools-0.5.0a1/src/ai_dev_tools/context/symbols.py +0 -178
  162. ai_dev_cli_tools-0.5.0a1/src/ai_dev_tools/runners/check_scheduler.py +0 -94
  163. ai_dev_cli_tools-0.5.0a1/tests/unit/test_context_symbols.py +0 -79
  164. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/.github/workflows/publish-pypi.yml +0 -0
  165. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/LICENSE +0 -0
  166. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/Makefile +0 -0
  167. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/SECURITY.md +0 -0
  168. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/ai.ps1 +0 -0
  169. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/ai.sh +0 -0
  170. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/ADDING_A_DETECTOR.md +0 -0
  171. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/ADDING_A_RUNNER.md +0 -0
  172. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/CHANGED_TEST_SELECTION.md +0 -0
  173. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/RUNTIME.md +0 -0
  174. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/TOOL_OUTPUT_PARSERS.md +0 -0
  175. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/docs/report-schema.json +0 -0
  176. {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
  177. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/examples/consume_json_report.py +0 -0
  178. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/scripts/verify_published_package.py +0 -0
  179. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cache/__init__.py +0 -0
  180. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cache/repository.py +0 -0
  181. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/cache/validation.py +0 -0
  182. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/context/__init__.py +0 -0
  183. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/__init__.py +0 -0
  184. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/environment.py +0 -0
  185. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/repository_map.py +0 -0
  186. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/detectors/runtime.py +0 -0
  187. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/git/__init__.py +0 -0
  188. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/models/__init__.py +0 -0
  189. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/models/report.py +0 -0
  190. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/models/workspace.py +0 -0
  191. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/parsers/__init__.py +0 -0
  192. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/parsers/logs.py +0 -0
  193. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/parsers/registry.py +0 -0
  194. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/reporters/__init__.py +0 -0
  195. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/reporters/writer.py +0 -0
  196. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/__init__.py +0 -0
  197. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/bootstrap_strategies.py +0 -0
  198. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/check_checkpoint.py +0 -0
  199. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/finish.py +0 -0
  200. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/focused.py +0 -0
  201. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runners/index.py +0 -0
  202. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runtime/__init__.py +0 -0
  203. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runtime/runner.py +0 -0
  204. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/runtime/supervisor.py +0 -0
  205. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/security/__init__.py +0 -0
  206. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/security/secrets.py +0 -0
  207. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/src/ai_dev_tools/utils/__init__.py +0 -0
  208. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/cargo-fail.log +0 -0
  209. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/coverage-ok.log +0 -0
  210. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/eslint-fail.log +0 -0
  211. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/gradle-ok.log +0 -0
  212. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/jest-fail.log +0 -0
  213. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/maven-fail.log +0 -0
  214. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/maven-localized-fail.log +0 -0
  215. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/mypy-fail.log +0 -0
  216. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/phpunit-fail.log +0 -0
  217. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/pytest-9-ok.log +0 -0
  218. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/pytest-fail.log +0 -0
  219. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/pytest-multiple-failures.log +0 -0
  220. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/ruff-fail.log +0 -0
  221. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/ruff-warning.log +0 -0
  222. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/tsc-fail.log +0 -0
  223. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/logs/vitest-ok.log +0 -0
  224. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/package.json +0 -0
  225. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/packages/api/pyproject.toml +0 -0
  226. {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
  227. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/packages/web/package.json +0 -0
  228. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/packages/web/test.js +0 -0
  229. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/monorepo-mixed/services/worker/Cargo.toml +0 -0
  230. {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
  231. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/gradle/build.gradle +0 -0
  232. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/gradle/gradlew.bat +0 -0
  233. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/maven/mvnw.cmd +0 -0
  234. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/maven/pom.xml +0 -0
  235. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-npm/package-lock.json +0 -0
  236. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-npm/package.json +0 -0
  237. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-pnpm/package.json +0 -0
  238. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-pnpm/pnpm-lock.yaml +0 -0
  239. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-yarn/package.json +0 -0
  240. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/node-yarn/yarn.lock +0 -0
  241. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/php-composer/composer.json +0 -0
  242. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-pip/pyproject.toml +0 -0
  243. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-pip/requirements.txt +0 -0
  244. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-poetry/pyproject.toml +0 -0
  245. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-uv/pyproject.toml +0 -0
  246. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/python-uv/uv.lock +0 -0
  247. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/fixtures/projects/rust/Cargo.toml +0 -0
  248. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_cli.py +0 -0
  249. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_cross_platform_paths.py +0 -0
  250. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/integration/test_toolchain_e2e.py +0 -0
  251. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_bootstrap.py +0 -0
  252. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_check_plan.py +0 -0
  253. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_config.py +0 -0
  254. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_doctor.py +0 -0
  255. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_finish.py +0 -0
  256. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_logs.py +0 -0
  257. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_package_smoke.py +0 -0
  258. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_repository_map.py +0 -0
  259. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runner_failures.py +0 -0
  260. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runtime.py +0 -0
  261. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runtime_runner.py +0 -0
  262. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_runtime_supervisor.py +0 -0
  263. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_scan.py +0 -0
  264. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_secret_boundaries.py +0 -0
  265. {ai_dev_cli_tools-0.5.0a1 → ai_dev_cli_tools-1.0.0}/tests/unit/test_secrets.py +0 -0
  266. {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"
@@ -1,9 +1,12 @@
1
1
  .ai/tmp/
2
2
  .ai/runtime/
3
3
  .ai/cache/
4
+ .ai/benchmarks/
4
5
  .ai/context/
5
6
  .ai/logs/
7
+ .ai/performance/
6
8
  .ai/reports/
9
+ .ai/release-venv/
7
10
  .coverage
8
11
  .mypy_cache/
9
12
  .pytest_cache/
@@ -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.4
1
+ Metadata-Version: 2.5
2
2
  Name: ai-dev-cli-tools
3
- Version: 0.5.0a1
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 :: 3 - Alpha
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.5.0a1
57
+ pipx install ai-dev-cli-tools==1.0.0
56
58
  ai-dev --help
57
59
  ```
58
60
 
59
- For a source checkout before the public alpha is published, use `pipx install .`. See
60
- `docs/DISTRIBUTION.md` for the Trusted Publishing and upgrade policy.
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 with line ranges instead of blindly returning only the beginning of the file.
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 a schema-versioned manifest under `.ai/cache/` and reports changed versus reused files. Default limits are `--max-chars 50000`, `--max-files 30`, `--max-file-chars 8000`, and `--max-diff-chars 15000`. Secret-bearing and generated paths such as `.env`, private keys, caches, build output, `.ai/logs`, and `.ai/reports` are excluded from snippets.
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: partial.
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 remain out of scope or planned.
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.5.0a1 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
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.5.0a1
26
+ pipx install ai-dev-cli-tools==1.0.0
27
27
  ai-dev --help
28
28
  ```
29
29
 
30
- For a source checkout before the public alpha is published, use `pipx install .`. See
31
- `docs/DISTRIBUTION.md` for the Trusted Publishing and upgrade policy.
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 with line ranges instead of blindly returning only the beginning of the file.
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 a schema-versioned manifest under `.ai/cache/` and reports changed versus reused files. Default limits are `--max-chars 50000`, `--max-files 30`, `--max-file-chars 8000`, and `--max-diff-chars 15000`. Secret-bearing and generated paths such as `.env`, private keys, caches, build output, `.ai/logs`, and `.ai/reports` are excluded from snippets.
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: partial.
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 remain out of scope or planned.
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.5.0a1 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
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.