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