ai-dev-cli-tools 1.1.0__tar.gz → 1.2.2__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 (312) hide show
  1. ai_dev_cli_tools-1.2.2/.github/dependabot.yml +12 -0
  2. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/.github/workflows/ci.yml +12 -1
  3. ai_dev_cli_tools-1.2.2/.github/workflows/codeql.yml +28 -0
  4. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/.gitignore +1 -0
  5. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/CHANGELOG.md +67 -0
  6. ai_dev_cli_tools-1.2.2/CONTRIBUTING.md +44 -0
  7. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/Makefile +4 -1
  8. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/PKG-INFO +70 -9
  9. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/README.md +68 -8
  10. ai_dev_cli_tools-1.2.2/SECURITY.md +36 -0
  11. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/TODO.md +4 -2
  12. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/ai.ps1 +1 -1
  13. ai_dev_cli_tools-1.2.2/ai.sh +3 -0
  14. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/AGENT_EFFICIENCY_ROADMAP.md +5 -1
  15. ai_dev_cli_tools-1.2.2/docs/AGENT_INTEGRATION_CONTRACT.md +79 -0
  16. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/BENCHMARKS.md +22 -2
  17. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/CONTEXT_BUILDER.md +18 -0
  18. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/DISTRIBUTION.md +8 -5
  19. ai_dev_cli_tools-1.2.2/docs/INTEGRATIONS_AND_DASHBOARD.md +177 -0
  20. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/MCP_SERVER.md +23 -2
  21. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/OBSERVATION_LIFECYCLE.md +14 -1
  22. ai_dev_cli_tools-1.2.2/docs/PROJECT_COMPLETE.md +34 -0
  23. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/RELEASE_CHECKLIST.md +8 -2
  24. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/REPORT_SCHEMA.md +20 -2
  25. ai_dev_cli_tools-1.2.2/examples/benchmarks/agent-adaptive-context.json +32 -0
  26. ai_dev_cli_tools-1.2.2/examples/benchmarks/agent-context-acknowledgement.json +12 -0
  27. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/agent-corpus.json +6 -2
  28. ai_dev_cli_tools-1.2.2/examples/benchmarks/agent-feedback-delta.json +32 -0
  29. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/pyproject.toml +2 -1
  30. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/requirements-dev.lock +1 -1
  31. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/benchmark_agent_workflow.py +136 -2
  32. ai_dev_cli_tools-1.2.2/scripts/benchmark_mcp_context_ack.py +110 -0
  33. ai_dev_cli_tools-1.2.2/scripts/dev.py +164 -0
  34. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/validate_ci.py +1 -1
  35. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/__init__.py +1 -1
  36. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/cache/repository.py +33 -3
  37. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/cli.py +181 -2
  38. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/completion.py +13 -4
  39. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/config.py +2 -0
  40. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/context/adaptive.py +143 -0
  41. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/builder.py +163 -4
  42. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/incremental.py +36 -7
  43. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/context/mcp_delta.py +111 -0
  44. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/models.py +1 -0
  45. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/selection.py +9 -5
  46. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/tokens.py +49 -4
  47. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/dashboard.py +71 -7
  48. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/detectors/repository_map.py +10 -0
  49. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/index_daemon_service.py +47 -13
  50. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/integrations.py +31 -10
  51. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/mcp_server.py +390 -7
  52. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/parsers/logs.py +42 -1
  53. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/reporters/progressive.py +27 -1
  54. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/benchmark.py +68 -3
  55. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/check.py +15 -4
  56. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/check_selection.py +29 -3
  57. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/feedback.py +73 -18
  58. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/runners/feedback_delta.py +181 -0
  59. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/focused.py +19 -1
  60. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/performance.py +5 -1
  61. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/runners/task.py +181 -0
  62. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runtime/runner.py +120 -36
  63. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runtime/supervisor.py +81 -16
  64. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/telemetry.py +535 -0
  65. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/telemetry_optimizer.py +509 -0
  66. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/telemetry_policy.py +540 -0
  67. ai_dev_cli_tools-1.2.2/src/ai_dev_tools/token_efficiency.py +243 -0
  68. ai_dev_cli_tools-1.2.2/tests/unit/test_adaptive_context.py +188 -0
  69. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_benchmark.py +18 -0
  70. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_benchmark_gate.py +34 -0
  71. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_cache.py +14 -0
  72. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_check.py +2 -0
  73. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_check_plan.py +79 -0
  74. ai_dev_cli_tools-1.2.2/tests/unit/test_context_mcp_delta.py +87 -0
  75. ai_dev_cli_tools-1.2.2/tests/unit/test_dev_launcher.py +66 -0
  76. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_feedback.py +65 -1
  77. ai_dev_cli_tools-1.2.2/tests/unit/test_feedback_delta.py +119 -0
  78. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_index_daemon_service.py +38 -0
  79. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_integrations_dashboard.py +71 -1
  80. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_mcp_server.py +192 -0
  81. ai_dev_cli_tools-1.2.2/tests/unit/test_new_cli_commands.py +240 -0
  82. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_performance.py +3 -0
  83. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_progressive_reports.py +25 -0
  84. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_report.py +1 -1
  85. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_repository_map.py +18 -0
  86. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_runtime_runner.py +135 -8
  87. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_runtime_supervisor.py +59 -6
  88. ai_dev_cli_tools-1.2.2/tests/unit/test_task.py +64 -0
  89. ai_dev_cli_tools-1.2.2/tests/unit/test_telemetry.py +189 -0
  90. ai_dev_cli_tools-1.2.2/tests/unit/test_telemetry_optimizer.py +192 -0
  91. ai_dev_cli_tools-1.2.2/tests/unit/test_telemetry_policy.py +335 -0
  92. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_token_accounting.py +6 -0
  93. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_tool_parsers.py +9 -0
  94. ai_dev_cli_tools-1.1.0/CONTRIBUTING.md +0 -19
  95. ai_dev_cli_tools-1.1.0/SECURITY.md +0 -6
  96. ai_dev_cli_tools-1.1.0/ai.sh +0 -3
  97. ai_dev_cli_tools-1.1.0/docs/AGENT_INTEGRATION_CONTRACT.md +0 -45
  98. ai_dev_cli_tools-1.1.0/docs/INTEGRATIONS_AND_DASHBOARD.md +0 -25
  99. ai_dev_cli_tools-1.1.0/tests/unit/test_new_cli_commands.py +0 -41
  100. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/.github/workflows/docs.yml +0 -0
  101. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/.github/workflows/publish-pypi.yml +0 -0
  102. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/.github/workflows/release.yml +0 -0
  103. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/LICENSE +0 -0
  104. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/ADAPTIVECHESSAI_FULL_CHECK_FAILURE_2026-08-30.md +0 -0
  105. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/ADAPTIVECHESSAI_PYCHARM_HEADLESS_INSPECTION_FAILURE_2026-08-30.md +0 -0
  106. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/ADDING_A_DETECTOR.md +0 -0
  107. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/ADDING_A_RUNNER.md +0 -0
  108. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/AGENT_COORDINATION.md +0 -0
  109. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/AGENT_WORKFLOW.md +0 -0
  110. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/ARCHITECTURE.md +0 -0
  111. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/BOOTSTRAP.md +0 -0
  112. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/CACHE_AND_INDEX.md +0 -0
  113. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/CHANGED_TEST_SELECTION.md +0 -0
  114. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/FLAKY_RETRIES.md +0 -0
  115. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/MONOREPO_SUPPORT.md +0 -0
  116. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/PERFORMANCE.md +0 -0
  117. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/RUNTIME.md +0 -0
  118. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/SEMANTIC_COMPRESSION.md +0 -0
  119. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/TOKEN_EFFICIENCY_RESEARCH.md +0 -0
  120. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/TOOL_OUTPUT_PARSERS.md +0 -0
  121. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/WARM_ENVIRONMENT.md +0 -0
  122. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/WATCH_MODE.md +0 -0
  123. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/benchmarks/agent-workflows-windows-py314-2026-08-11.json +0 -0
  124. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/docs/report-schema.json +0 -0
  125. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/agent-affected-workflow.json +0 -0
  126. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/agent-monorepo-workflow.json +0 -0
  127. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/agent-multiturn-workflow.json +0 -0
  128. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/agent-repair-workflow.json +0 -0
  129. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/pyproject.toml +0 -0
  130. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/src/__init__.py +0 -0
  131. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/src/orders.py +0 -0
  132. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/src/pricing.py +0 -0
  133. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/__init__.py +0 -0
  134. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_orders.py +0 -0
  135. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_pricing.py +0 -0
  136. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_1.py +0 -0
  137. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_10.py +0 -0
  138. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_11.py +0 -0
  139. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_12.py +0 -0
  140. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_2.py +0 -0
  141. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_3.py +0 -0
  142. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_4.py +0 -0
  143. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_5.py +0 -0
  144. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_6.py +0 -0
  145. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_7.py +0 -0
  146. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_8.py +0 -0
  147. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_9.py +0 -0
  148. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/__init__.py +0 -0
  149. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/__init__.py +0 -0
  150. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/pyproject.toml +0 -0
  151. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/__init__.py +0 -0
  152. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/billing.py +0 -0
  153. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/__init__.py +0 -0
  154. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/test_billing.py +0 -0
  155. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/__init__.py +0 -0
  156. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/pyproject.toml +0 -0
  157. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/__init__.py +0 -0
  158. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/catalog.py +0 -0
  159. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/__init__.py +0 -0
  160. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/test_catalog.py +0 -0
  161. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/mcp-recurring-status.json +0 -0
  162. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/output-budget-smoke.json +0 -0
  163. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/benchmarks/symbol-diff-context.json +0 -0
  164. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/examples/consume_json_report.py +0 -0
  165. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/__init__.py +0 -0
  166. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/benchmark_mcp_status.py +0 -0
  167. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/benchmark_symbol_diff.py +0 -0
  168. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/test_installed_package.py +0 -0
  169. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/validate_release.py +0 -0
  170. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/scripts/verify_published_package.py +0 -0
  171. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/__main__.py +0 -0
  172. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/cache/__init__.py +0 -0
  173. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/cache/graph.py +0 -0
  174. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/cache/prompt_layout.py +0 -0
  175. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/cache/validation.py +0 -0
  176. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/__init__.py +0 -0
  177. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/compression.py +0 -0
  178. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/profiles.py +0 -0
  179. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/refinement.py +0 -0
  180. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/retrieval.py +0 -0
  181. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/context/symbols.py +0 -0
  182. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/detectors/__init__.py +0 -0
  183. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/detectors/environment.py +0 -0
  184. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/detectors/project.py +0 -0
  185. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/detectors/runtime.py +0 -0
  186. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/detectors/workspaces.py +0 -0
  187. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/git/__init__.py +0 -0
  188. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/git/inspect.py +0 -0
  189. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/git/symbol_diff.py +0 -0
  190. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/models/__init__.py +0 -0
  191. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/models/report.py +0 -0
  192. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/models/workspace.py +0 -0
  193. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/parsers/__init__.py +0 -0
  194. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/parsers/failures.py +0 -0
  195. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/parsers/registry.py +0 -0
  196. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/reporters/__init__.py +0 -0
  197. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/reporters/sarif.py +0 -0
  198. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/reporters/writer.py +0 -0
  199. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/__init__.py +0 -0
  200. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/baseline.py +0 -0
  201. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/bootstrap.py +0 -0
  202. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/bootstrap_models.py +0 -0
  203. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/bootstrap_strategies.py +0 -0
  204. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/cache.py +0 -0
  205. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/check_checkpoint.py +0 -0
  206. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/check_models.py +0 -0
  207. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/check_scheduler.py +0 -0
  208. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/coordination.py +0 -0
  209. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/diagnostics.py +0 -0
  210. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/environment_state.py +0 -0
  211. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/finish.py +0 -0
  212. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/flaky.py +0 -0
  213. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/index.py +0 -0
  214. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/index_daemon.py +0 -0
  215. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/observations.py +0 -0
  216. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/plan.py +0 -0
  217. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/policy.py +0 -0
  218. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runners/watch.py +0 -0
  219. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/runtime/__init__.py +0 -0
  220. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/security/__init__.py +0 -0
  221. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/security/execution.py +0 -0
  222. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/security/secrets.py +0 -0
  223. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/semantic.py +0 -0
  224. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/semantic_backends.py +0 -0
  225. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/source_symbols.py +0 -0
  226. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/utils/__init__.py +0 -0
  227. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/src/ai_dev_tools/utils/subprocess.py +0 -0
  228. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/cargo-fail.log +0 -0
  229. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/coverage-ok.log +0 -0
  230. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/eslint-fail.log +0 -0
  231. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/gradle-ok.log +0 -0
  232. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/jest-fail.log +0 -0
  233. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/maven-fail.log +0 -0
  234. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/maven-localized-fail.log +0 -0
  235. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/mypy-fail.log +0 -0
  236. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/phpunit-fail.log +0 -0
  237. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/pytest-9-ok.log +0 -0
  238. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/pytest-fail.log +0 -0
  239. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/pytest-multiple-failures.log +0 -0
  240. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/ruff-fail.log +0 -0
  241. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/ruff-warning.log +0 -0
  242. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/tsc-fail.log +0 -0
  243. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/logs/vitest-ok.log +0 -0
  244. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/monorepo-mixed/package.json +0 -0
  245. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/monorepo-mixed/packages/api/pyproject.toml +0 -0
  246. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/monorepo-mixed/packages/api/tests/test_smoke.py +0 -0
  247. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/monorepo-mixed/packages/web/package.json +0 -0
  248. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/monorepo-mixed/packages/web/test.js +0 -0
  249. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/monorepo-mixed/services/worker/Cargo.toml +0 -0
  250. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/monorepo-mixed/services/worker/src/lib.rs +0 -0
  251. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/gradle/build.gradle +0 -0
  252. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/gradle/gradlew.bat +0 -0
  253. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/maven/mvnw.cmd +0 -0
  254. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/maven/pom.xml +0 -0
  255. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/node-npm/package-lock.json +0 -0
  256. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/node-npm/package.json +0 -0
  257. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/node-pnpm/package.json +0 -0
  258. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/node-pnpm/pnpm-lock.yaml +0 -0
  259. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/node-yarn/package.json +0 -0
  260. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/node-yarn/yarn.lock +0 -0
  261. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/php-composer/composer.json +0 -0
  262. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/python-pip/pyproject.toml +0 -0
  263. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/python-pip/requirements.txt +0 -0
  264. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/python-poetry/pyproject.toml +0 -0
  265. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/python-uv/pyproject.toml +0 -0
  266. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/python-uv/uv.lock +0 -0
  267. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/fixtures/projects/rust/Cargo.toml +0 -0
  268. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/integration/test_adaptive_chess_regression.py +0 -0
  269. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/integration/test_cli.py +0 -0
  270. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/integration/test_cross_platform_paths.py +0 -0
  271. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/integration/test_git.py +0 -0
  272. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/integration/test_toolchain_e2e.py +0 -0
  273. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_agent_plan.py +0 -0
  274. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_baseline.py +0 -0
  275. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_bootstrap.py +0 -0
  276. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_check_scheduler.py +0 -0
  277. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_cli_more.py +0 -0
  278. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_completion.py +0 -0
  279. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_config.py +0 -0
  280. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_context_builder.py +0 -0
  281. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_context_compression.py +0 -0
  282. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_context_profiles.py +0 -0
  283. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_context_refinement.py +0 -0
  284. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_context_retrieval.py +0 -0
  285. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_context_symbols.py +0 -0
  286. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_coordination.py +0 -0
  287. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_diagnostics.py +0 -0
  288. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_doctor.py +0 -0
  289. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_environment_state.py +0 -0
  290. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_execution_policy.py +0 -0
  291. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_failure_classification.py +0 -0
  292. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_finish.py +0 -0
  293. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_flaky.py +0 -0
  294. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_index_daemon.py +0 -0
  295. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_logs.py +0 -0
  296. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_more_coverage.py +0 -0
  297. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_more_symbol_adapters.py +0 -0
  298. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_observations.py +0 -0
  299. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_package_smoke.py +0 -0
  300. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_prompt_layout.py +0 -0
  301. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_release_scripts.py +0 -0
  302. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_runner_failures.py +0 -0
  303. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_runtime.py +0 -0
  304. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_sarif.py +0 -0
  305. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_scan.py +0 -0
  306. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_secret_boundaries.py +0 -0
  307. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_secrets.py +0 -0
  308. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_semantic.py +0 -0
  309. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_semantic_backends.py +0 -0
  310. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_symbol_diff.py +0 -0
  311. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_watch.py +0 -0
  312. {ai_dev_cli_tools-1.1.0 → ai_dev_cli_tools-1.2.2}/tests/unit/test_workspaces.py +0 -0
@@ -0,0 +1,12 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: pip
4
+ directory: "/"
5
+ schedule:
6
+ interval: weekly
7
+ open-pull-requests-limit: 5
8
+ - package-ecosystem: github-actions
9
+ directory: "/"
10
+ schedule:
11
+ interval: weekly
12
+ open-pull-requests-limit: 5
@@ -5,12 +5,23 @@ on:
5
5
  pull_request:
6
6
 
7
7
  jobs:
8
+ launcher-smoke:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
12
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
13
+ with:
14
+ python-version: "3.13"
15
+ - run: python scripts/dev.py --diagnose
16
+ - run: python scripts/dev.py --bootstrap-only
17
+ - run: python scripts/dev.py --no-bootstrap --version
18
+
8
19
  test:
9
20
  strategy:
10
21
  fail-fast: false
11
22
  matrix:
12
23
  os: [ubuntu-latest, windows-latest, macos-latest]
13
- python-version: ["3.11", "3.12", "3.13"]
24
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
14
25
  runs-on: ${{ matrix.os }}
15
26
  steps:
16
27
  - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
@@ -0,0 +1,28 @@
1
+ name: CodeQL
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ schedule:
9
+ - cron: "17 4 * * 1"
10
+
11
+ permissions:
12
+ contents: read
13
+ security-events: write
14
+
15
+ jobs:
16
+ analyze:
17
+ name: Analyze Python
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
21
+ with:
22
+ persist-credentials: false
23
+ - uses: github/codeql-action/init@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
24
+ with:
25
+ languages: python
26
+ build-mode: none
27
+ queries: security-extended
28
+ - uses: github/codeql-action/analyze@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
@@ -6,6 +6,7 @@
6
6
  .ai/logs/
7
7
  .ai/performance/
8
8
  .ai/reports/
9
+ .ai/token-efficiency/
9
10
  .ai/release-venv/
10
11
  .coverage
11
12
  .mypy_cache/
@@ -1,5 +1,72 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ ## 1.2.2 - 2026-09-08
6
+
7
+ - Add a native Gemini CLI MCP integration, reference-first client profile, provider-reported
8
+ `usageMetadata` import, and Gemini pricing snapshot support.
9
+ - Add Python 3.14 to the supported classifiers and cross-platform CI matrix.
10
+ - Ignore named virtual environments and bytecode during changed-check selection, prefer the
11
+ project virtual-environment interpreter, and keep Ruff failures out of pytest-focused reruns.
12
+ - Add CodeQL analysis, Dependabot update configuration, and a complete security reporting and
13
+ supported-version policy.
14
+ - Make managed-process stop observe in-flight atomic supervisor state, closing a rare start/stop
15
+ race exposed by the expanded Python CI matrix.
16
+
17
+ ## 1.2.1 - 2026-09-01
18
+
19
+ - Fix the blank local dashboard by preserving JavaScript newline escapes and resolving dashboard
20
+ containers explicitly instead of relying on browser-created globals.
21
+ - Show a visible status card when the API request or response fails, tolerate partial status
22
+ payloads, and render all dynamic dashboard values through safe text nodes.
23
+
24
+ ## 1.2.0 - 2026-09-01
25
+
26
+ - Complete the measured optimization loop with bounded latency samples, daily trends, aggregated
27
+ JSON/CSV export, and explicit human-approved adopt/keep/rollback benchmark decisions.
28
+ - Harden managed-process startup with an observable starting/failed handshake, unique retry
29
+ identities, bounded child-spawn backoff, and preserved masked failure diagnostics.
30
+ - Declare the planned product capability set complete and move the repository to compatibility,
31
+ security, dependency, platform, and regression maintenance.
32
+
33
+ - Add an evidence-based, read-only token optimizer with p50/p95 attribution, safe budget
34
+ recommendations, and accuracy-first cheaper-model routing suggestions.
35
+ - Allow provider usage records to include bounded phase, tool, task-kind, and boolean quality
36
+ evidence without storing prompts or responses.
37
+ - Add telemetry budgets scoped globally, per client, and per model; equal-window regression gates;
38
+ immediate MCP/CLI alerts; chronological session windows; and integrity-checked, versioned pricing
39
+ snapshots with explicit activation and cost provenance.
40
+ - Add bounded OpenAI, Anthropic, and generic provider-usage adapters, MCP `record_usage`,
41
+ idempotent JSON/JSONL imports, optional project-local pricing estimates, and per-client usage
42
+ totals in the CLI and loopback dashboard without storing model input or output content.
43
+ - Add one-shot `ai-dev task` and MCP `prepare_task` workflows that combine a bounded plan,
44
+ context references, validation preview, per-client acknowledgement state, and a measurable token
45
+ savings receipt; full file content is now an explicit opt-in on this path.
46
+ - Generate token-efficient Codex, Claude Code, Cursor, and generic client profiles, expose receipt
47
+ totals in the local dashboard, and optionally require provider-reported tokens in benchmark gates.
48
+ - Make performance snapshot filenames collision-resistant on coarse-resolution clocks so rapid
49
+ measurements remain immutable and compare against the intended baseline.
50
+ - Launch detached runtime supervisors through an isolated absolute-path bootstrap and preserve
51
+ bounded supervisor startup diagnostics instead of discarding early process failures.
52
+ - Add a cross-platform developer launcher with locked `.venv` bootstrapping, isolated quality gates,
53
+ workspace-local temp routing, and machine-readable Git/ACL/proxy diagnostics.
54
+ - Give detached runtime supervisors an absolute package import path so changing their working
55
+ directory cannot invalidate editable installs or relative `PYTHONPATH` entries.
56
+ - Bind managed-process startup and stop acknowledgements to the current control token, tolerate
57
+ slow CI startup handshakes, and release Windows project handles before publishing terminal state.
58
+ - Document the repository's required squash-merge workflow and post-merge `main` verification.
59
+ - Make benchmark corpus and comparison evidence IDs resolvable through `ai-dev explain`.
60
+ - Make index-daemon state writes resilient to transient Windows sharing violations and count
61
+ repository updates only when the indexed content fingerprint actually changes.
62
+ - Add explicit MCP `build_context` acknowledgements: clients can return `acknowledged_state` to
63
+ receive a compact unchanged-context receipt, while changed, partial, or unsafe states retain
64
+ the full live payload. `delta=false` always requests full context.
65
+ - Add deterministic adaptive context budgets and task-scoped incremental memory for agent turns.
66
+ - Require a configurable minimum token reduction in A/B release corpus gates.
67
+ - Add client-acknowledged feedback deltas that replace repeated successful validation and context
68
+ with fingerprinted receipts while retaining failures and warnings live.
69
+
3
70
  ## 1.1.0 - 2026-08-31
4
71
 
5
72
  Stable promotion of `1.1.0rc1` after cross-platform CI, benchmark regression gates, and a clean
@@ -0,0 +1,44 @@
1
+ # Contributing
2
+
3
+ Keep changes small, typed, tested, and conservative. Runtime code should avoid platform-specific assumptions and prefer `pathlib` for paths.
4
+
5
+ From a fresh checkout, one cross-platform command creates or refreshes the locked `.venv` and runs
6
+ every required gate without loading user-site packages:
7
+
8
+ ```bash
9
+ python scripts/dev.py --check
10
+ ```
11
+
12
+ Use `python scripts/dev.py --diagnose` to classify Python, workspace-temp, Git-metadata, and proxy
13
+ problems without installing anything. `DEV_GIT_METADATA` means the host or sandbox must grant write
14
+ access to `.git`; it is distinct from an existing-ref collision. `DEV_WORKSPACE_TEMP` means process
15
+ tests cannot safely use the project-local temp directory in the current execution environment.
16
+
17
+ The equivalent individual commands, when already inside the locked `.venv`, are:
18
+
19
+ ```bash
20
+ python -m pip install -c requirements-dev.lock -e ".[dev]"
21
+ python -m ruff check .
22
+ python -m mypy src tests scripts
23
+ python -m coverage run -m pytest
24
+ python -m coverage report --fail-under=90
25
+ python -m build
26
+ python scripts/validate_ci.py
27
+ python scripts/test_installed_package.py
28
+ git diff --check
29
+ ```
30
+
31
+ The installed package smoke test must use a built wheel, a clean virtual environment, and the installed `ai-dev` entrypoint. Do not replace it with editable install or `PYTHONPATH` smoke tests.
32
+
33
+ ## Pull requests
34
+
35
+ Keep each pull request focused and wait for the complete Linux, Windows, and macOS CI matrix.
36
+ The repository does not allow merge commits. After required checks pass, maintainers should use a
37
+ squash merge so `main` receives one descriptive commit, then delete the merged topic branch:
38
+
39
+ ```bash
40
+ gh pr merge <number> --squash --delete-branch
41
+ ```
42
+
43
+ Do not retry a rejected `--merge` operation or force-push `main`. Refresh the pull request state
44
+ before merging and verify the resulting squash commit's `main` CI run.
@@ -1,4 +1,7 @@
1
- .PHONY: test lint typecheck coverage build
1
+ .PHONY: check test lint typecheck coverage build
2
+
3
+ check:
4
+ python scripts/dev.py --check
2
5
 
3
6
  test:
4
7
  python -m pytest
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: ai-dev-cli-tools
3
- Version: 1.1.0
3
+ Version: 1.2.2
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
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Classifier: Programming Language :: Python :: 3.12
19
19
  Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
20
21
  Classifier: Topic :: Software Development :: Quality Assurance
21
22
  Requires-Python: >=3.11
22
23
  Requires-Dist: watchdog<7,>=4
@@ -57,7 +58,7 @@ be safe for `ai-dev` to recreate.
57
58
 
58
59
  ```bash
59
60
  python -m pip install --upgrade pipx
60
- pipx install ai-dev-cli-tools==1.0.0
61
+ pipx install ai-dev-cli-tools==1.2.2
61
62
  ai-dev --help
62
63
  ```
63
64
 
@@ -67,9 +68,13 @@ and upgrade policy.
67
68
  For development:
68
69
 
69
70
  ```bash
70
- python -m pip install -c requirements-dev.lock -e ".[dev]"
71
+ python scripts/dev.py --check
71
72
  ```
72
73
 
74
+ This creates a locked, repository-local `.venv`, disables ambient user-site packages, and routes
75
+ temporary validation files through `.ai/tmp/dev`. Run `python scripts/dev.py --diagnose` for
76
+ machine-readable Git metadata, temp-directory, Python, and proxy diagnostics without installation.
77
+
73
78
  ## Windows
74
79
 
75
80
  ```powershell
@@ -98,6 +103,7 @@ ai-dev check --mode changed --compare main
98
103
  ai-dev check --mode changed --retry-flaky 1
99
104
  ai-dev check --mode changed --retry-infra 1
100
105
  ai-dev plan --task "implement rate limiting" --mode changed
106
+ ai-dev task --task "implement rate limiting" --client codex --json
101
107
  ai-dev index update
102
108
  ai-dev index daemon start
103
109
  ai-dev index daemon status
@@ -113,10 +119,21 @@ ai-dev baseline compare main
113
119
  ai-dev benchmark run --suite examples/benchmarks/output-budget-smoke.json --variant baseline
114
120
  ai-dev benchmark corpus --manifest examples/benchmarks/agent-corpus.json --trials 3
115
121
  ai-dev integrations install all
122
+ ai-dev integrations install gemini
116
123
  ai-dev dashboard serve --port 8765
124
+ ai-dev telemetry import response.json --client codex --format openai
125
+ ai-dev telemetry import gemini-response.json --client gemini --format gemini
126
+ ai-dev telemetry status --json
127
+ ai-dev telemetry optimize --min-sessions 5 --json
128
+ ai-dev telemetry export --format csv --output .ai/telemetry-exports/usage.csv --json
129
+ ai-dev telemetry gate --json
130
+ ai-dev telemetry pricing import pricing.json --provider openai --version 2026-09-01
131
+ ai-dev telemetry pricing activate openai 2026-09-01
117
132
  ai-dev explain issue:<id> --tail 100
118
133
  ai-dev explain --symbol "src/app.py#Application.run" --tail 100
119
134
  ai-dev feedback --task "fix authentication timeout"
135
+ ai-dev feedback --task "fix authentication timeout" --ack-state <state-fingerprint>
136
+ ai-dev feedback --task "fix authentication timeout" --no-delta # force the full payload
120
137
  ai-dev watch --mode changed --debounce 500
121
138
  ai-dev session status
122
139
  ai-dev bootstrap --if-needed
@@ -139,9 +156,11 @@ All commands support `--project`, `--json`, `--quiet`, `--help`, and `--version`
139
156
  ## Local MCP server
140
157
 
141
158
  `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
159
+ and progressive evidence as local structured tools for clients including Gemini CLI. The STDIO
143
160
  server is dependency-free, has no network listener, fixes all calls to one project root, and
144
- defaults validation to preview-only.
161
+ defaults validation to preview-only. After consuming a successful `build_context` response, a
162
+ client can return its `summary.delta.state_fingerprint` as `acknowledged_state`; an identical safe
163
+ state then becomes a compact receipt, while changed or unsafe context remains live.
145
164
 
146
165
  ```bash
147
166
  codex mcp add ai-dev -- ai-dev --project "/absolute/path/to/project" mcp serve
@@ -188,6 +207,7 @@ ai-dev context build --retrieval auto --explain # explains retrieval or abstent
188
207
  ai-dev context build --tokenizer o200k_base --token-budget source=8000 --token-budget diffs=2000
189
208
  ai-dev context build --refine issue:<id> --refinement-rounds 2 --refinement-max-files 5
190
209
  ai-dev context build --compression conservative
210
+ ai-dev context build --adaptive # task-aware budget; uncertainty expands, explicit limits win
191
211
  ai-dev context build --include "src/**/*.py" --exclude "tests/fixtures/**"
192
212
  ai-dev context build --explain --json
193
213
  ```
@@ -196,7 +216,39 @@ Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/contex
196
216
 
197
217
  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.
198
218
 
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.
219
+ 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, Anthropic, or Gemini usage fields from a project-local file without network access.
220
+
221
+ `ai-dev task` is the default one-shot handoff for an AI client. It combines the bounded plan,
222
+ selected context, and check preview while delivering file references instead of full content.
223
+ Use `--include-content` only when the consumer truly needs the bodies. The response includes a
224
+ state fingerprint and a token savings receipt; return that fingerprint with `--ack-state` only
225
+ after consuming the response. Explicit acknowledgements are stored per client under
226
+ `.ai/cache/client-state/`, so Codex, Claude Code, Cursor, Gemini CLI, and generic consumers never inherit one
227
+ another's assumed context. Receipts remain local under `.ai/token-efficiency/`.
228
+
229
+ Provider-reported usage can be recorded through MCP `record_usage` or imported from a bounded,
230
+ project-local JSON/JSONL file with `ai-dev telemetry import`. OpenAI Responses, Anthropic, and a
231
+ stable generic envelope for Cursor or other clients are normalized without retaining prompt or
232
+ response content. `telemetry status` and the loopback dashboard aggregate input, cached input,
233
+ output, and reasoning tokens by client. Optional cost values are local estimates computed from
234
+ `.ai-dev/telemetry-pricing.json`; no changing provider price is hardcoded and no value is presented
235
+ as a provider invoice. See `docs/INTEGRATIONS_AND_DASHBOARD.md`.
236
+ Project-local `.ai-dev/telemetry-budgets.json` can enforce rolling aggregate limits globally,
237
+ per client, and per model, and compare two chronological session windows for token or cost
238
+ regressions. `ai-dev telemetry gate` returns a failing report for violations, while MCP
239
+ `record_usage` immediately returns the active alerts and read-only `usage_status` provides a
240
+ compact pre-flight check.
241
+
242
+ `telemetry optimize` calculates deterministic p50/p95 usage, latency, cache share, cost, and
243
+ quality attribution by client, model, phase, tool, task kind, and day. It recommends rolling token ceilings
244
+ with an explicit safety margin. Cheaper-model recommendations appear only when both models have
245
+ enough local quality samples, the candidate meets the configured accuracy target, complete
246
+ same-currency cost evidence proves a saving, and the allowed accuracy drop is respected. It never
247
+ switches a model or overwrites a policy. MCP clients can call the read-only `optimize_usage` tool
248
+ for the same report.
249
+ `telemetry export` writes only this aggregated evidence as JSON or CSV inside the project. It
250
+ excludes request IDs, prompts, responses, and repository content and refuses to overwrite an
251
+ existing file.
200
252
 
201
253
  Incremental mode stores the latest schema-versioned manifest plus up to 50 content-addressed
202
254
  historical manifests under `.ai/cache/`, and reports changed versus reused files. Pass
@@ -212,7 +264,7 @@ Short reports are written to `.ai/reports/` as Markdown and JSON. Full command o
212
264
 
213
265
  JSON reports use schema `1.1` with `schema_version`, `tool_version`, `command`, `status`, `exit_code`, timestamps, `project_root`, `summary`, `issues`, `artifacts`, and `metadata`.
214
266
 
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`.
267
+ `ai-dev feedback` combines Git changes, changed validation, adaptive incremental context, focused rerun hints, stage timings, and local session state into one compact agent protocol report. Adaptive context remains local and deterministic, scopes unchanged-file memory to a normalized task fingerprint, broadens uncertain requests, and never overrides explicit limits. A client may acknowledge the previous `delta.state_fingerprint` through `--ack-state`; only then can identical successful feedback become a small receipt. This prevents one AI client from inheriting another client's assumed context. Failures and warnings always remain live, and `--no-delta` forces the complete response. Its observation lifecycle replaces superseded results with content-addressed IDs expandable through `ai-dev explain`; see `docs/OBSERVATION_LIFECYCLE.md`.
216
268
 
217
269
  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
270
  Research-backed context and token-efficiency recommendations are documented in `docs/TOKEN_EFFICIENCY_RESEARCH.md`.
@@ -288,6 +340,7 @@ git diff --check
288
340
  | index status/update/rebuild | implemented |
289
341
  | index daemon | implemented |
290
342
  | plan / MCP plan_work | implemented |
343
+ | task / MCP prepare_task | implemented with reference-first delivery and token receipts |
291
344
  | semantic status/index | implemented with built-in Tree-sitter, LSP, and provider plugins |
292
345
  | policy assess / execution enforcement | implemented |
293
346
  | sarif | implemented |
@@ -298,8 +351,12 @@ git diff --check
298
351
  | mcp serve | implemented |
299
352
  | watch | implemented |
300
353
  | benchmark run/compare/gate/corpus | implemented |
301
- | integrations install | implemented for Codex, Claude Code, Cursor, and generic MCP |
354
+ | integrations install | implemented for Codex, Claude Code, Cursor, Gemini CLI, and generic MCP |
302
355
  | dashboard status/serve | implemented, loopback-only |
356
+ | telemetry import/status and MCP record_usage | implemented, provider-reported usage only |
357
+ | telemetry gate/pricing snapshots and MCP usage_status | implemented, local and fail-closed |
358
+ | p50/p95 token optimizer and accuracy-first model recommendations | implemented, read-only |
359
+ | aggregated telemetry export and latency trends | implemented, content-free |
303
360
  | performance latest/compare | implemented |
304
361
  | capabilities | implemented |
305
362
  | git status | implemented |
@@ -312,6 +369,10 @@ git diff --check
312
369
 
313
370
  ## Scope Notes
314
371
 
372
+ The planned product capability set is complete as of 1.2.0. See
373
+ [`docs/PROJECT_COMPLETE.md`](docs/PROJECT_COMPLETE.md) for the maintenance boundary and the exact
374
+ acceptance evidence required for future changes.
375
+
315
376
  - Monorepo/workspace detection and per-subproject command routing: implemented.
316
377
  - Per-subproject check and bootstrap working directories: implemented.
317
378
  - Runtime requirement detection and version validation: implemented.
@@ -320,6 +381,6 @@ git diff --check
320
381
  - Auto-commit, auto-push, destructive cleanup, remote source transmission, and GUI are intentionally out of scope.
321
382
 
322
383
  ## Intentional Limits
323
- Version 1.0.0 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
384
+ Version 1.2.0 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
324
385
 
325
386
  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,7 +23,7 @@ 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==1.0.0
26
+ pipx install ai-dev-cli-tools==1.2.2
27
27
  ai-dev --help
28
28
  ```
29
29
 
@@ -33,9 +33,13 @@ and upgrade policy.
33
33
  For development:
34
34
 
35
35
  ```bash
36
- python -m pip install -c requirements-dev.lock -e ".[dev]"
36
+ python scripts/dev.py --check
37
37
  ```
38
38
 
39
+ This creates a locked, repository-local `.venv`, disables ambient user-site packages, and routes
40
+ temporary validation files through `.ai/tmp/dev`. Run `python scripts/dev.py --diagnose` for
41
+ machine-readable Git metadata, temp-directory, Python, and proxy diagnostics without installation.
42
+
39
43
  ## Windows
40
44
 
41
45
  ```powershell
@@ -64,6 +68,7 @@ ai-dev check --mode changed --compare main
64
68
  ai-dev check --mode changed --retry-flaky 1
65
69
  ai-dev check --mode changed --retry-infra 1
66
70
  ai-dev plan --task "implement rate limiting" --mode changed
71
+ ai-dev task --task "implement rate limiting" --client codex --json
67
72
  ai-dev index update
68
73
  ai-dev index daemon start
69
74
  ai-dev index daemon status
@@ -79,10 +84,21 @@ ai-dev baseline compare main
79
84
  ai-dev benchmark run --suite examples/benchmarks/output-budget-smoke.json --variant baseline
80
85
  ai-dev benchmark corpus --manifest examples/benchmarks/agent-corpus.json --trials 3
81
86
  ai-dev integrations install all
87
+ ai-dev integrations install gemini
82
88
  ai-dev dashboard serve --port 8765
89
+ ai-dev telemetry import response.json --client codex --format openai
90
+ ai-dev telemetry import gemini-response.json --client gemini --format gemini
91
+ ai-dev telemetry status --json
92
+ ai-dev telemetry optimize --min-sessions 5 --json
93
+ ai-dev telemetry export --format csv --output .ai/telemetry-exports/usage.csv --json
94
+ ai-dev telemetry gate --json
95
+ ai-dev telemetry pricing import pricing.json --provider openai --version 2026-09-01
96
+ ai-dev telemetry pricing activate openai 2026-09-01
83
97
  ai-dev explain issue:<id> --tail 100
84
98
  ai-dev explain --symbol "src/app.py#Application.run" --tail 100
85
99
  ai-dev feedback --task "fix authentication timeout"
100
+ ai-dev feedback --task "fix authentication timeout" --ack-state <state-fingerprint>
101
+ ai-dev feedback --task "fix authentication timeout" --no-delta # force the full payload
86
102
  ai-dev watch --mode changed --debounce 500
87
103
  ai-dev session status
88
104
  ai-dev bootstrap --if-needed
@@ -105,9 +121,11 @@ All commands support `--project`, `--json`, `--quiet`, `--help`, and `--version`
105
121
  ## Local MCP server
106
122
 
107
123
  `ai-dev mcp serve` exposes project status, implementation planning, compact feedback, bounded context, validation,
108
- and progressive evidence as local structured tools for Codex-compatible MCP clients. The STDIO
124
+ and progressive evidence as local structured tools for clients including Gemini CLI. The STDIO
109
125
  server is dependency-free, has no network listener, fixes all calls to one project root, and
110
- defaults validation to preview-only.
126
+ defaults validation to preview-only. After consuming a successful `build_context` response, a
127
+ client can return its `summary.delta.state_fingerprint` as `acknowledged_state`; an identical safe
128
+ state then becomes a compact receipt, while changed or unsafe context remains live.
111
129
 
112
130
  ```bash
113
131
  codex mcp add ai-dev -- ai-dev --project "/absolute/path/to/project" mcp serve
@@ -154,6 +172,7 @@ ai-dev context build --retrieval auto --explain # explains retrieval or abstent
154
172
  ai-dev context build --tokenizer o200k_base --token-budget source=8000 --token-budget diffs=2000
155
173
  ai-dev context build --refine issue:<id> --refinement-rounds 2 --refinement-max-files 5
156
174
  ai-dev context build --compression conservative
175
+ ai-dev context build --adaptive # task-aware budget; uncertainty expands, explicit limits win
157
176
  ai-dev context build --include "src/**/*.py" --exclude "tests/fixtures/**"
158
177
  ai-dev context build --explain --json
159
178
  ```
@@ -162,7 +181,39 @@ Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/contex
162
181
 
163
182
  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.
164
183
 
165
- 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.
184
+ 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, Anthropic, or Gemini usage fields from a project-local file without network access.
185
+
186
+ `ai-dev task` is the default one-shot handoff for an AI client. It combines the bounded plan,
187
+ selected context, and check preview while delivering file references instead of full content.
188
+ Use `--include-content` only when the consumer truly needs the bodies. The response includes a
189
+ state fingerprint and a token savings receipt; return that fingerprint with `--ack-state` only
190
+ after consuming the response. Explicit acknowledgements are stored per client under
191
+ `.ai/cache/client-state/`, so Codex, Claude Code, Cursor, Gemini CLI, and generic consumers never inherit one
192
+ another's assumed context. Receipts remain local under `.ai/token-efficiency/`.
193
+
194
+ Provider-reported usage can be recorded through MCP `record_usage` or imported from a bounded,
195
+ project-local JSON/JSONL file with `ai-dev telemetry import`. OpenAI Responses, Anthropic, and a
196
+ stable generic envelope for Cursor or other clients are normalized without retaining prompt or
197
+ response content. `telemetry status` and the loopback dashboard aggregate input, cached input,
198
+ output, and reasoning tokens by client. Optional cost values are local estimates computed from
199
+ `.ai-dev/telemetry-pricing.json`; no changing provider price is hardcoded and no value is presented
200
+ as a provider invoice. See `docs/INTEGRATIONS_AND_DASHBOARD.md`.
201
+ Project-local `.ai-dev/telemetry-budgets.json` can enforce rolling aggregate limits globally,
202
+ per client, and per model, and compare two chronological session windows for token or cost
203
+ regressions. `ai-dev telemetry gate` returns a failing report for violations, while MCP
204
+ `record_usage` immediately returns the active alerts and read-only `usage_status` provides a
205
+ compact pre-flight check.
206
+
207
+ `telemetry optimize` calculates deterministic p50/p95 usage, latency, cache share, cost, and
208
+ quality attribution by client, model, phase, tool, task kind, and day. It recommends rolling token ceilings
209
+ with an explicit safety margin. Cheaper-model recommendations appear only when both models have
210
+ enough local quality samples, the candidate meets the configured accuracy target, complete
211
+ same-currency cost evidence proves a saving, and the allowed accuracy drop is respected. It never
212
+ switches a model or overwrites a policy. MCP clients can call the read-only `optimize_usage` tool
213
+ for the same report.
214
+ `telemetry export` writes only this aggregated evidence as JSON or CSV inside the project. It
215
+ excludes request IDs, prompts, responses, and repository content and refuses to overwrite an
216
+ existing file.
166
217
 
167
218
  Incremental mode stores the latest schema-versioned manifest plus up to 50 content-addressed
168
219
  historical manifests under `.ai/cache/`, and reports changed versus reused files. Pass
@@ -178,7 +229,7 @@ Short reports are written to `.ai/reports/` as Markdown and JSON. Full command o
178
229
 
179
230
  JSON reports use schema `1.1` with `schema_version`, `tool_version`, `command`, `status`, `exit_code`, timestamps, `project_root`, `summary`, `issues`, `artifacts`, and `metadata`.
180
231
 
181
- `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`.
232
+ `ai-dev feedback` combines Git changes, changed validation, adaptive incremental context, focused rerun hints, stage timings, and local session state into one compact agent protocol report. Adaptive context remains local and deterministic, scopes unchanged-file memory to a normalized task fingerprint, broadens uncertain requests, and never overrides explicit limits. A client may acknowledge the previous `delta.state_fingerprint` through `--ack-state`; only then can identical successful feedback become a small receipt. This prevents one AI client from inheriting another client's assumed context. Failures and warnings always remain live, and `--no-delta` forces the complete response. Its observation lifecycle replaces superseded results with content-addressed IDs expandable through `ai-dev explain`; see `docs/OBSERVATION_LIFECYCLE.md`.
182
233
 
183
234
  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.
184
235
  Research-backed context and token-efficiency recommendations are documented in `docs/TOKEN_EFFICIENCY_RESEARCH.md`.
@@ -254,6 +305,7 @@ git diff --check
254
305
  | index status/update/rebuild | implemented |
255
306
  | index daemon | implemented |
256
307
  | plan / MCP plan_work | implemented |
308
+ | task / MCP prepare_task | implemented with reference-first delivery and token receipts |
257
309
  | semantic status/index | implemented with built-in Tree-sitter, LSP, and provider plugins |
258
310
  | policy assess / execution enforcement | implemented |
259
311
  | sarif | implemented |
@@ -264,8 +316,12 @@ git diff --check
264
316
  | mcp serve | implemented |
265
317
  | watch | implemented |
266
318
  | benchmark run/compare/gate/corpus | implemented |
267
- | integrations install | implemented for Codex, Claude Code, Cursor, and generic MCP |
319
+ | integrations install | implemented for Codex, Claude Code, Cursor, Gemini CLI, and generic MCP |
268
320
  | dashboard status/serve | implemented, loopback-only |
321
+ | telemetry import/status and MCP record_usage | implemented, provider-reported usage only |
322
+ | telemetry gate/pricing snapshots and MCP usage_status | implemented, local and fail-closed |
323
+ | p50/p95 token optimizer and accuracy-first model recommendations | implemented, read-only |
324
+ | aggregated telemetry export and latency trends | implemented, content-free |
269
325
  | performance latest/compare | implemented |
270
326
  | capabilities | implemented |
271
327
  | git status | implemented |
@@ -278,6 +334,10 @@ git diff --check
278
334
 
279
335
  ## Scope Notes
280
336
 
337
+ The planned product capability set is complete as of 1.2.0. See
338
+ [`docs/PROJECT_COMPLETE.md`](docs/PROJECT_COMPLETE.md) for the maintenance boundary and the exact
339
+ acceptance evidence required for future changes.
340
+
281
341
  - Monorepo/workspace detection and per-subproject command routing: implemented.
282
342
  - Per-subproject check and bootstrap working directories: implemented.
283
343
  - Runtime requirement detection and version validation: implemented.
@@ -286,6 +346,6 @@ git diff --check
286
346
  - Auto-commit, auto-push, destructive cleanup, remote source transmission, and GUI are intentionally out of scope.
287
347
 
288
348
  ## Intentional Limits
289
- Version 1.0.0 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
349
+ Version 1.2.0 does not reset, clean, commit, push, merge, clone organizations, synchronize repositories, delete containers, publish releases, or remove user files.
290
350
 
291
351
  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,36 @@
1
+ # Security Policy
2
+
3
+ ## Supported versions
4
+
5
+ Security fixes are provided for the latest stable release only. Users should upgrade to the
6
+ latest patch version before reporting an issue that may already be fixed. Pre-releases and source
7
+ checkouts are supported only for reproducing a report against the current `main` branch.
8
+
9
+ | Version | Supported |
10
+ | --- | --- |
11
+ | 1.2.x latest patch | Yes |
12
+ | Earlier releases | No |
13
+
14
+ ## Reporting a vulnerability
15
+
16
+ Do not open a public issue for a suspected vulnerability. Use GitHub's private vulnerability
17
+ reporting form in the repository Security tab when available, or contact the repository owner
18
+ privately through the address associated with the published package.
19
+
20
+ Include the affected version or commit, operating system, minimal reproduction, expected security
21
+ property, observed impact, and whether the report contains secrets. Do not include real
22
+ credentials, private source code, or customer data. Use synthetic evidence wherever possible.
23
+
24
+ The maintainer aims to acknowledge a report within 7 days and provide an initial assessment within
25
+ 14 days. Timelines for a fix and coordinated disclosure depend on severity and reproducibility.
26
+
27
+ ## Security boundaries
28
+
29
+ `ai-dev` analyzes repositories and runs explicitly selected local development commands. Reports,
30
+ caches, telemetry, and MCP communication remain local by default. The project intentionally does
31
+ not commit, push, merge, deploy, transmit source to a remote model, install global tools, or kill
32
+ unrelated processes.
33
+
34
+ Secret masking is a defense-in-depth control, not permission to process arbitrary secrets. Review
35
+ generated reports before sharing them, keep `.ai/` state private, and use least-privilege execution
36
+ policies for MCP clients and CI.
@@ -9,8 +9,10 @@ cross-platform behavior are covered where applicable.
9
9
 
10
10
  ## Active work
11
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.
12
+ There are no known incomplete P1 or P2 implementation items for the 1.0-1.2 contracts. The planned
13
+ product capability set is complete. New work is maintenance and must be justified by a supported
14
+ platform change, security issue, dependency update, reproducible regression, or backward-compatible
15
+ integration requirement.
14
16
 
15
17
  ## Deferred or explicitly out of scope
16
18
 
@@ -3,5 +3,5 @@ param(
3
3
  [string[]]$Args
4
4
  )
5
5
 
6
- python -m ai_dev_tools.cli @Args
6
+ python scripts/dev.py @Args
7
7
  exit $LASTEXITCODE
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env sh
2
+ set -eu
3
+ python scripts/dev.py "$@"
@@ -46,6 +46,10 @@ and longer-term direction without presenting proposed interfaces as available co
46
46
  | 24 | Optional semantic providers | Implemented | A bounded local structural index is built in; explicitly selected entry-point providers can add Tree-sitter or LSP-backed semantics, while auto mode fails closed to structural parsing. |
47
47
  | 25 | Execution policy | Implemented | Audit/enforce modes, allow/deny prefixes, impact ceilings, preview assessment, and enforcement cover checks, bootstrap, and managed application startup. |
48
48
  | 26 | CI-native agent evidence | Implemented | Reports convert deterministically to SARIF and the pinned GitHub Actions workflow publishes a compact plan summary plus code-scanning evidence. |
49
+ | 27 | Adaptive context engine | Implemented | Task intent and local scope signals derive conservative token ceilings, explicit limits win, task-scoped incremental memory prevents cross-task omission, and the release corpus requires a measured token reduction without recall loss. |
50
+ | 28 | Session delta feedback | Implemented | A client-acknowledged identical success is replaced by a fingerprinted validation/context receipt with exact expansion handles; missing acknowledgement, changed content, semantic validation changes, failures, warnings, and explicit opt-out preserve the full live payload. |
51
+ | 29 | Evidence-based token optimizer | Implemented | Bounded p50/p95 attribution proposes token ceilings and cheaper models only after local quality and cost evidence meets explicit thresholds. |
52
+ | 30 | Closed optimization loop | Implemented | Provider duration, daily trends, content-free JSON/CSV export, and correctness-gated benchmark decisions advise adopt, keep, or rollback while never mutating model policy automatically. |
49
53
 
50
54
  ## Implemented supporting capabilities
51
55
 
@@ -62,7 +66,7 @@ The current foundation also includes:
62
66
 
63
67
  ## Active direction
64
68
 
65
- The 1.0 capability set is complete. Further development should prioritize measured correctness,
69
+ The planned 1.0-1.2 capability set is complete. Further development is maintenance and should prioritize measured correctness,
66
70
  backward-compatible schema evolution, parser fixtures for newly supported tool versions, and
67
71
  cross-platform performance evidence rather than adding overlapping commands.
68
72