ai-dev-cli-tools 1.2.1__tar.gz → 1.3.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 (380) hide show
  1. ai_dev_cli_tools-1.3.0/.dockerignore +26 -0
  2. ai_dev_cli_tools-1.3.0/.github/dependabot.yml +12 -0
  3. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/ci.yml +60 -13
  4. ai_dev_cli_tools-1.3.0/.github/workflows/codeql.yml +28 -0
  5. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/docs.yml +2 -2
  6. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/publish-pypi.yml +4 -4
  7. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/release.yml +5 -5
  8. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.gitignore +3 -0
  9. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/CHANGELOG.md +36 -1
  10. ai_dev_cli_tools-1.2.1/README.md → ai_dev_cli_tools-1.3.0/PKG-INFO +103 -5
  11. ai_dev_cli_tools-1.2.1/PKG-INFO → ai_dev_cli_tools-1.3.0/README.md +55 -39
  12. ai_dev_cli_tools-1.3.0/SECURITY.md +36 -0
  13. ai_dev_cli_tools-1.3.0/collector/.dockerignore +27 -0
  14. ai_dev_cli_tools-1.3.0/collector/.env.example +19 -0
  15. ai_dev_cli_tools-1.3.0/collector/Dockerfile +59 -0
  16. ai_dev_cli_tools-1.3.0/collector/README.md +115 -0
  17. ai_dev_cli_tools-1.3.0/collector/__init__.py +1 -0
  18. ai_dev_cli_tools-1.3.0/collector/alembic/env.py +60 -0
  19. ai_dev_cli_tools-1.3.0/collector/alembic/script.py.mako +26 -0
  20. ai_dev_cli_tools-1.3.0/collector/alembic/versions/0001_initial_telemetry_events.py +107 -0
  21. ai_dev_cli_tools-1.3.0/collector/alembic.ini +39 -0
  22. ai_dev_cli_tools-1.3.0/collector/app/__init__.py +1 -0
  23. ai_dev_cli_tools-1.3.0/collector/app/config.py +74 -0
  24. ai_dev_cli_tools-1.3.0/collector/app/main.py +217 -0
  25. ai_dev_cli_tools-1.3.0/collector/app/models.py +126 -0
  26. ai_dev_cli_tools-1.3.0/collector/app/rate_limit.py +81 -0
  27. ai_dev_cli_tools-1.3.0/collector/app/retention.py +74 -0
  28. ai_dev_cli_tools-1.3.0/collector/app/storage.py +97 -0
  29. ai_dev_cli_tools-1.3.0/collector/app/validation.py +448 -0
  30. ai_dev_cli_tools-1.3.0/collector/docker-compose.yml +65 -0
  31. ai_dev_cli_tools-1.3.0/collector/requirements.txt +6 -0
  32. ai_dev_cli_tools-1.3.0/collector/tests/__init__.py +1 -0
  33. ai_dev_cli_tools-1.3.0/collector/tests/conftest.py +40 -0
  34. ai_dev_cli_tools-1.3.0/collector/tests/test_concurrency.py +48 -0
  35. ai_dev_cli_tools-1.3.0/collector/tests/test_config.py +120 -0
  36. ai_dev_cli_tools-1.3.0/collector/tests/test_dedup.py +31 -0
  37. ai_dev_cli_tools-1.3.0/collector/tests/test_ingestion.py +150 -0
  38. ai_dev_cli_tools-1.3.0/collector/tests/test_migrations.py +73 -0
  39. ai_dev_cli_tools-1.3.0/collector/tests/test_privacy.py +53 -0
  40. ai_dev_cli_tools-1.3.0/collector/tests/test_privacy_logging.py +167 -0
  41. ai_dev_cli_tools-1.3.0/collector/tests/test_proxy.py +118 -0
  42. ai_dev_cli_tools-1.3.0/collector/tests/test_rate_limit.py +123 -0
  43. ai_dev_cli_tools-1.3.0/collector/tests/test_retention.py +91 -0
  44. ai_dev_cli_tools-1.3.0/collector/tests/test_storage_retention_cli.py +108 -0
  45. ai_dev_cli_tools-1.3.0/collector/tests/test_streaming.py +79 -0
  46. ai_dev_cli_tools-1.3.0/collector/tests/test_validation_branches.py +161 -0
  47. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_INTEGRATION_CONTRACT.md +1 -1
  48. ai_dev_cli_tools-1.3.0/docs/AI_DEV_CLI_TOOLS_PERFORMANCE_OPTIMIZATION_AGENT_TASK.md +1023 -0
  49. ai_dev_cli_tools-1.3.0/docs/AUDIT_2026-09-09.md +80 -0
  50. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/BENCHMARKS.md +1 -1
  51. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/CHANGED_TEST_SELECTION.md +6 -1
  52. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/CONTEXT_BUILDER.md +16 -5
  53. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/DISTRIBUTION.md +6 -7
  54. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/INTEGRATIONS_AND_DASHBOARD.md +10 -2
  55. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/MCP_SERVER.md +12 -0
  56. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/RELEASE_CHECKLIST.md +1 -1
  57. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/REPORT_SCHEMA.md +1 -1
  58. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/TOOL_OUTPUT_PARSERS.md +5 -1
  59. ai_dev_cli_tools-1.3.0/docs/community-telemetry-collector.md +277 -0
  60. ai_dev_cli_tools-1.3.0/docs/community-telemetry-deployment.md +285 -0
  61. ai_dev_cli_tools-1.3.0/docs/community-telemetry.md +274 -0
  62. ai_dev_cli_tools-1.3.0/docs/performance/PERFORMANCE_BASELINE_2026-09-10.md +51 -0
  63. ai_dev_cli_tools-1.3.0/docs/performance/PERFORMANCE_OPTIMIZATION_REPORT_2026-09-10.md +111 -0
  64. ai_dev_cli_tools-1.3.0/docs/performance/RUST_NATIVE_ACCELERATION_ASSESSMENT.md +37 -0
  65. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/pyproject.toml +20 -4
  66. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/requirements-dev.lock +1 -1
  67. ai_dev_cli_tools-1.3.0/scripts/benchmark_semantic_scalability.py +125 -0
  68. ai_dev_cli_tools-1.3.0/scripts/test_collector_postgres_e2e.py +338 -0
  69. ai_dev_cli_tools-1.3.0/scripts/unified_benchmark.py +364 -0
  70. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/validate_ci.py +2 -2
  71. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/__init__.py +1 -1
  72. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/graph.py +29 -13
  73. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/cache/repository.py +409 -0
  74. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/validation.py +13 -3
  75. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cli.py +91 -8
  76. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/__init__.py +59 -0
  77. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/builder.py +551 -0
  78. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/config.py +158 -0
  79. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/queue.py +174 -0
  80. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/schema.py +717 -0
  81. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/service.py +322 -0
  82. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/transport.py +140 -0
  83. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/config.py +2 -0
  84. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/builder.py +62 -82
  85. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/incremental.py +15 -3
  86. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/selection.py +1 -1
  87. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/tokens.py +14 -4
  88. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/detectors/repository_map.py +290 -0
  89. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/git/inspect.py +143 -37
  90. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/integrations.py +2 -1
  91. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/mcp_server.py +38 -16
  92. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/logs.py +80 -3
  93. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/benchmark.py +1 -1
  94. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check.py +32 -8
  95. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_scheduler.py +21 -3
  96. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_selection.py +30 -5
  97. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/diagnostics.py +3 -1
  98. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/environment_state.py +12 -1
  99. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/finish.py +4 -0
  100. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/flaky.py +11 -3
  101. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/focused.py +19 -1
  102. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runtime/runner.py +24 -1
  103. ai_dev_cli_tools-1.3.0/src/ai_dev_tools/semantic.py +534 -0
  104. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/semantic_backends.py +55 -9
  105. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/telemetry.py +103 -8
  106. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/telemetry_policy.py +1 -1
  107. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/token_efficiency.py +13 -1
  108. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/utils/subprocess.py +34 -21
  109. ai_dev_cli_tools-1.3.0/tests/integration/test_community_collector_e2e.py +249 -0
  110. ai_dev_cli_tools-1.3.0/tests/integration/test_git.py +220 -0
  111. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_cache.py +101 -0
  112. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_check_plan.py +55 -0
  113. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_check_scheduler.py +32 -0
  114. ai_dev_cli_tools-1.3.0/tests/unit/test_community_contract_drift.py +48 -0
  115. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_cli.py +119 -0
  116. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_coverage.py +467 -0
  117. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_final_polish.py +481 -0
  118. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_functional.py +348 -0
  119. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_performance.py +145 -0
  120. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_privacy.py +160 -0
  121. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_release.py +194 -0
  122. ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_review_pass.py +289 -0
  123. ai_dev_cli_tools-1.3.0/tests/unit/test_concurrency_safety.py +315 -0
  124. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_coordination.py +22 -0
  125. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_feedback.py +33 -0
  126. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_finish.py +26 -0
  127. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_flaky.py +127 -101
  128. ai_dev_cli_tools-1.3.0/tests/unit/test_gitignore_conformance.py +212 -0
  129. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_integrations_dashboard.py +21 -0
  130. ai_dev_cli_tools-1.3.0/tests/unit/test_issue_regressions.py +224 -0
  131. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_mcp_server.py +4 -0
  132. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_more_coverage.py +18 -0
  133. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_new_cli_commands.py +43 -0
  134. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_progressive_reports.py +17 -0
  135. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_report.py +1 -1
  136. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_repository_map.py +18 -0
  137. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runtime_runner.py +28 -1
  138. ai_dev_cli_tools-1.3.0/tests/unit/test_semantic.py +198 -0
  139. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_semantic_backends.py +26 -0
  140. ai_dev_cli_tools-1.3.0/tests/unit/test_semantic_fingerprint.py +193 -0
  141. ai_dev_cli_tools-1.3.0/tests/unit/test_semantic_large_repo.py +322 -0
  142. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_symbol_diff.py +22 -0
  143. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_task.py +32 -0
  144. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_telemetry.py +55 -0
  145. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_tool_parsers.py +9 -0
  146. ai_dev_cli_tools-1.2.1/SECURITY.md +0 -6
  147. ai_dev_cli_tools-1.2.1/src/ai_dev_tools/cache/repository.py +0 -169
  148. ai_dev_cli_tools-1.2.1/src/ai_dev_tools/detectors/repository_map.py +0 -129
  149. ai_dev_cli_tools-1.2.1/src/ai_dev_tools/semantic.py +0 -195
  150. ai_dev_cli_tools-1.2.1/tests/integration/test_git.py +0 -76
  151. ai_dev_cli_tools-1.2.1/tests/unit/test_semantic.py +0 -88
  152. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/CONTRIBUTING.md +0 -0
  153. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/LICENSE +0 -0
  154. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/Makefile +0 -0
  155. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/TODO.md +0 -0
  156. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/ai.ps1 +0 -0
  157. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/ai.sh +0 -0
  158. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ADAPTIVECHESSAI_FULL_CHECK_FAILURE_2026-08-30.md +0 -0
  159. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ADAPTIVECHESSAI_PYCHARM_HEADLESS_INSPECTION_FAILURE_2026-08-30.md +0 -0
  160. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ADDING_A_DETECTOR.md +0 -0
  161. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ADDING_A_RUNNER.md +0 -0
  162. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_COORDINATION.md +0 -0
  163. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_EFFICIENCY_ROADMAP.md +0 -0
  164. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_WORKFLOW.md +0 -0
  165. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ARCHITECTURE.md +0 -0
  166. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/BOOTSTRAP.md +0 -0
  167. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/CACHE_AND_INDEX.md +0 -0
  168. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/FLAKY_RETRIES.md +0 -0
  169. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/MONOREPO_SUPPORT.md +0 -0
  170. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/OBSERVATION_LIFECYCLE.md +0 -0
  171. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/PERFORMANCE.md +0 -0
  172. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/PROJECT_COMPLETE.md +0 -0
  173. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/RUNTIME.md +0 -0
  174. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/SEMANTIC_COMPRESSION.md +0 -0
  175. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/TOKEN_EFFICIENCY_RESEARCH.md +0 -0
  176. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/WARM_ENVIRONMENT.md +0 -0
  177. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/WATCH_MODE.md +0 -0
  178. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/benchmarks/agent-workflows-windows-py314-2026-08-11.json +0 -0
  179. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/report-schema.json +0 -0
  180. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-adaptive-context.json +0 -0
  181. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-affected-workflow.json +0 -0
  182. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-context-acknowledgement.json +0 -0
  183. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-corpus.json +0 -0
  184. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-feedback-delta.json +0 -0
  185. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-monorepo-workflow.json +0 -0
  186. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-multiturn-workflow.json +0 -0
  187. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-repair-workflow.json +0 -0
  188. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/pyproject.toml +0 -0
  189. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/src/__init__.py +0 -0
  190. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/src/orders.py +0 -0
  191. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/src/pricing.py +0 -0
  192. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/__init__.py +0 -0
  193. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_orders.py +0 -0
  194. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_pricing.py +0 -0
  195. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_1.py +0 -0
  196. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_10.py +0 -0
  197. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_11.py +0 -0
  198. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_12.py +0 -0
  199. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_2.py +0 -0
  200. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_3.py +0 -0
  201. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_4.py +0 -0
  202. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_5.py +0 -0
  203. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_6.py +0 -0
  204. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_7.py +0 -0
  205. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_8.py +0 -0
  206. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/test_unrelated_9.py +0 -0
  207. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/__init__.py +0 -0
  208. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/__init__.py +0 -0
  209. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/pyproject.toml +0 -0
  210. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/__init__.py +0 -0
  211. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/src/billing.py +0 -0
  212. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/__init__.py +0 -0
  213. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/billing/tests/test_billing.py +0 -0
  214. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/__init__.py +0 -0
  215. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/pyproject.toml +0 -0
  216. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/__init__.py +0 -0
  217. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/src/catalog.py +0 -0
  218. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/__init__.py +0 -0
  219. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/catalog/tests/test_catalog.py +0 -0
  220. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/mcp-recurring-status.json +0 -0
  221. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/output-budget-smoke.json +0 -0
  222. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/symbol-diff-context.json +0 -0
  223. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/consume_json_report.py +0 -0
  224. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/__init__.py +0 -0
  225. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_agent_workflow.py +0 -0
  226. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_mcp_context_ack.py +0 -0
  227. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_mcp_status.py +0 -0
  228. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_symbol_diff.py +0 -0
  229. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/dev.py +0 -0
  230. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/test_installed_package.py +0 -0
  231. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/validate_release.py +0 -0
  232. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/verify_published_package.py +0 -0
  233. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/__main__.py +0 -0
  234. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/__init__.py +0 -0
  235. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/prompt_layout.py +0 -0
  236. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/completion.py +0 -0
  237. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/__init__.py +0 -0
  238. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/adaptive.py +0 -0
  239. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/compression.py +0 -0
  240. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/mcp_delta.py +0 -0
  241. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/models.py +0 -0
  242. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/profiles.py +0 -0
  243. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/refinement.py +0 -0
  244. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/retrieval.py +0 -0
  245. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/symbols.py +0 -0
  246. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/dashboard.py +0 -0
  247. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/__init__.py +0 -0
  248. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/environment.py +0 -0
  249. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/project.py +0 -0
  250. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/runtime.py +0 -0
  251. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/workspaces.py +0 -0
  252. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/git/__init__.py +0 -0
  253. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/git/symbol_diff.py +0 -0
  254. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/index_daemon_service.py +0 -0
  255. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/models/__init__.py +0 -0
  256. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/models/report.py +0 -0
  257. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/models/workspace.py +0 -0
  258. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/__init__.py +0 -0
  259. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/failures.py +0 -0
  260. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/registry.py +0 -0
  261. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/__init__.py +0 -0
  262. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/progressive.py +0 -0
  263. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/sarif.py +0 -0
  264. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/writer.py +0 -0
  265. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/__init__.py +0 -0
  266. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/baseline.py +0 -0
  267. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/bootstrap.py +0 -0
  268. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/bootstrap_models.py +0 -0
  269. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/bootstrap_strategies.py +0 -0
  270. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/cache.py +0 -0
  271. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_checkpoint.py +0 -0
  272. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_models.py +0 -0
  273. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/coordination.py +0 -0
  274. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/feedback.py +0 -0
  275. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/feedback_delta.py +0 -0
  276. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/index.py +0 -0
  277. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/index_daemon.py +0 -0
  278. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/observations.py +0 -0
  279. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/performance.py +0 -0
  280. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/plan.py +0 -0
  281. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/policy.py +0 -0
  282. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/task.py +0 -0
  283. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/watch.py +0 -0
  284. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runtime/__init__.py +0 -0
  285. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runtime/supervisor.py +0 -0
  286. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/security/__init__.py +0 -0
  287. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/security/execution.py +0 -0
  288. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/security/secrets.py +0 -0
  289. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/source_symbols.py +0 -0
  290. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/telemetry_optimizer.py +0 -0
  291. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/utils/__init__.py +0 -0
  292. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/cargo-fail.log +0 -0
  293. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/coverage-ok.log +0 -0
  294. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/eslint-fail.log +0 -0
  295. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/gradle-ok.log +0 -0
  296. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/jest-fail.log +0 -0
  297. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/maven-fail.log +0 -0
  298. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/maven-localized-fail.log +0 -0
  299. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/mypy-fail.log +0 -0
  300. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/phpunit-fail.log +0 -0
  301. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/pytest-9-ok.log +0 -0
  302. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/pytest-fail.log +0 -0
  303. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/pytest-multiple-failures.log +0 -0
  304. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/ruff-fail.log +0 -0
  305. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/ruff-warning.log +0 -0
  306. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/tsc-fail.log +0 -0
  307. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/vitest-ok.log +0 -0
  308. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/package.json +0 -0
  309. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/packages/api/pyproject.toml +0 -0
  310. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/packages/api/tests/test_smoke.py +0 -0
  311. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/packages/web/package.json +0 -0
  312. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/packages/web/test.js +0 -0
  313. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/services/worker/Cargo.toml +0 -0
  314. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/services/worker/src/lib.rs +0 -0
  315. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/gradle/build.gradle +0 -0
  316. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/gradle/gradlew.bat +0 -0
  317. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/maven/mvnw.cmd +0 -0
  318. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/maven/pom.xml +0 -0
  319. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-npm/package-lock.json +0 -0
  320. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-npm/package.json +0 -0
  321. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-pnpm/package.json +0 -0
  322. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-pnpm/pnpm-lock.yaml +0 -0
  323. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-yarn/package.json +0 -0
  324. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-yarn/yarn.lock +0 -0
  325. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/php-composer/composer.json +0 -0
  326. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-pip/pyproject.toml +0 -0
  327. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-pip/requirements.txt +0 -0
  328. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-poetry/pyproject.toml +0 -0
  329. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-uv/pyproject.toml +0 -0
  330. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-uv/uv.lock +0 -0
  331. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/rust/Cargo.toml +0 -0
  332. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_adaptive_chess_regression.py +0 -0
  333. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_cli.py +0 -0
  334. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_cross_platform_paths.py +0 -0
  335. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_toolchain_e2e.py +0 -0
  336. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_adaptive_context.py +0 -0
  337. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_agent_plan.py +0 -0
  338. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_baseline.py +0 -0
  339. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_benchmark.py +0 -0
  340. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_benchmark_gate.py +0 -0
  341. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_bootstrap.py +0 -0
  342. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_check.py +0 -0
  343. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_cli_more.py +0 -0
  344. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_completion.py +0 -0
  345. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_config.py +0 -0
  346. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_builder.py +0 -0
  347. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_compression.py +0 -0
  348. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_mcp_delta.py +0 -0
  349. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_profiles.py +0 -0
  350. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_refinement.py +0 -0
  351. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_retrieval.py +0 -0
  352. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_symbols.py +0 -0
  353. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_dev_launcher.py +0 -0
  354. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_diagnostics.py +0 -0
  355. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_doctor.py +0 -0
  356. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_environment_state.py +0 -0
  357. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_execution_policy.py +0 -0
  358. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_failure_classification.py +0 -0
  359. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_feedback_delta.py +0 -0
  360. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_index_daemon.py +0 -0
  361. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_index_daemon_service.py +0 -0
  362. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_logs.py +0 -0
  363. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_more_symbol_adapters.py +0 -0
  364. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_observations.py +0 -0
  365. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_package_smoke.py +0 -0
  366. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_performance.py +0 -0
  367. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_prompt_layout.py +0 -0
  368. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_release_scripts.py +0 -0
  369. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runner_failures.py +0 -0
  370. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runtime.py +0 -0
  371. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runtime_supervisor.py +0 -0
  372. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_sarif.py +0 -0
  373. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_scan.py +0 -0
  374. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_secret_boundaries.py +0 -0
  375. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_secrets.py +0 -0
  376. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_telemetry_optimizer.py +0 -0
  377. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_telemetry_policy.py +0 -0
  378. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_token_accounting.py +0 -0
  379. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_watch.py +0 -0
  380. {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_workspaces.py +0 -0
@@ -0,0 +1,26 @@
1
+ .git
2
+ .gitignore
3
+ .venv
4
+ venv
5
+ env
6
+ __pycache__
7
+ *.pyc
8
+ *.pyo
9
+ *.pyd
10
+ .mypy_cache
11
+ .pytest_cache
12
+ .ruff_cache
13
+ .coverage
14
+ .coverage.*
15
+ build
16
+ dist
17
+ *.egg-info
18
+ .tmp-*
19
+ .ai
20
+ *.db
21
+ *.sqlite
22
+ *.sqlite3
23
+ collector/tests
24
+ tests
25
+ docs
26
+ examples
@@ -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
@@ -8,8 +8,8 @@ jobs:
8
8
  launcher-smoke:
9
9
  runs-on: ubuntu-latest
10
10
  steps:
11
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
12
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
11
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
12
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
13
13
  with:
14
14
  python-version: "3.13"
15
15
  - run: python scripts/dev.py --diagnose
@@ -21,11 +21,11 @@ jobs:
21
21
  fail-fast: false
22
22
  matrix:
23
23
  os: [ubuntu-latest, windows-latest, macos-latest]
24
- python-version: ["3.11", "3.12", "3.13"]
24
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
25
25
  runs-on: ${{ matrix.os }}
26
26
  steps:
27
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
28
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
27
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
28
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
29
29
  with:
30
30
  python-version: ${{ matrix.python-version }}
31
31
  - run: python -m pip install --upgrade pip
@@ -55,14 +55,14 @@ jobs:
55
55
  toolchain-e2e:
56
56
  runs-on: ubuntu-latest
57
57
  steps:
58
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
59
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
58
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
59
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
60
60
  with:
61
61
  python-version: "3.13"
62
62
  - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
63
63
  with:
64
64
  node-version: "22"
65
- - uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0
65
+ - uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1
66
66
  with:
67
67
  distribution: temurin
68
68
  java-version: "17"
@@ -84,10 +84,10 @@ jobs:
84
84
  agent-corpus:
85
85
  runs-on: ubuntu-latest
86
86
  steps:
87
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
87
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
88
88
  with:
89
89
  persist-credentials: false
90
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
90
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
91
91
  with:
92
92
  python-version: "3.13"
93
93
  - run: python -m pip install -c requirements-dev.lock -e ".[dev]"
@@ -110,11 +110,11 @@ jobs:
110
110
  contents: read
111
111
  security-events: write
112
112
  steps:
113
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
113
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
114
114
  with:
115
115
  fetch-depth: 0
116
116
  persist-credentials: false
117
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
117
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
118
118
  with:
119
119
  python-version: "3.13"
120
120
  - run: python -m pip install -c requirements-dev.lock -e ".[dev]"
@@ -126,6 +126,53 @@ jobs:
126
126
  run: cat .ai/reports/agent-plan.md >> "$GITHUB_STEP_SUMMARY"
127
127
  - name: Upload SARIF to GitHub code scanning
128
128
  if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
129
- uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4
129
+ uses: github/codeql-action/upload-sarif@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
130
130
  with:
131
131
  sarif_file: .ai/reports/ai-dev.sarif
132
+
133
+ collector-postgres-e2e:
134
+ runs-on: ubuntu-latest
135
+ services:
136
+ postgres:
137
+ image: postgres:16-alpine
138
+ env:
139
+ POSTGRES_DB: telemetry
140
+ POSTGRES_USER: telemetry_user
141
+ POSTGRES_PASSWORD: test_ci_password_123
142
+ ports:
143
+ - 5432:5432
144
+ options: >-
145
+ --health-cmd pg_isready
146
+ --health-interval 5s
147
+ --health-timeout 5s
148
+ --health-retries 5
149
+ steps:
150
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
151
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
152
+ with:
153
+ python-version: "3.13"
154
+ - run: python -m pip install --upgrade pip
155
+ - run: python -m pip install -r collector/requirements.txt -e .
156
+ - name: Test Alembic migration against PostgreSQL
157
+ env:
158
+ DATABASE_URL: postgresql+psycopg://telemetry_user:test_ci_password_123@localhost:5432/telemetry
159
+ run: |
160
+ python -m alembic -c collector/alembic.ini upgrade head
161
+ python -m alembic -c collector/alembic.ini current
162
+ - name: Build Docker collector image
163
+ run: docker build -f collector/Dockerfile -t ai-dev-collector:test .
164
+ - name: Run Docker collector container E2E ingestion test
165
+ env:
166
+ DATABASE_URL: postgresql+psycopg://telemetry_user:test_ci_password_123@localhost:5432/telemetry
167
+ COLLECTOR_URL: http://127.0.0.1:8000
168
+ PYTHONPATH: .
169
+ run: |
170
+ docker run -d --name test-collector --network host \
171
+ -e DATABASE_URL=postgresql+psycopg://telemetry_user:test_ci_password_123@localhost:5432/telemetry \
172
+ -e ENVIRONMENT=production \
173
+ ai-dev-collector:test
174
+ sleep 3
175
+ docker logs test-collector
176
+ python scripts/test_collector_postgres_e2e.py
177
+ docker stop test-collector
178
+ docker rm test-collector
@@ -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@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
21
+ with:
22
+ persist-credentials: false
23
+ - uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
24
+ with:
25
+ languages: python
26
+ build-mode: none
27
+ queries: security-extended
28
+ - uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4
@@ -8,8 +8,8 @@ jobs:
8
8
  docs:
9
9
  runs-on: ubuntu-latest
10
10
  steps:
11
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
12
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
11
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
12
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
13
13
  with:
14
14
  python-version: "3.12"
15
15
  - run: python -m pip install -c requirements-dev.lock -e ".[dev]"
@@ -14,11 +14,11 @@ jobs:
14
14
  name: Validate manually promoted release artifacts
15
15
  runs-on: ubuntu-latest
16
16
  steps:
17
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
17
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
18
18
  with:
19
19
  persist-credentials: false
20
20
  ref: ${{ github.event.release.tag_name }}
21
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
21
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
22
22
  with:
23
23
  python-version: "3.13"
24
24
  - name: Download artifacts attached by the TestPyPI workflow
@@ -71,11 +71,11 @@ jobs:
71
71
  needs: publish-pypi
72
72
  runs-on: ubuntu-latest
73
73
  steps:
74
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
74
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
75
75
  with:
76
76
  persist-credentials: false
77
77
  ref: ${{ github.event.release.tag_name }}
78
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
78
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
79
79
  with:
80
80
  python-version: "3.13"
81
81
  - name: Install and smoke test from PyPI through pipx
@@ -13,10 +13,10 @@ jobs:
13
13
  name: Build and validate distribution
14
14
  runs-on: ubuntu-latest
15
15
  steps:
16
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
16
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
17
17
  with:
18
18
  persist-credentials: false
19
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
19
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
20
20
  with:
21
21
  python-version: "3.13"
22
22
  - name: Validate tag and source version
@@ -65,10 +65,10 @@ jobs:
65
65
  needs: publish-testpypi
66
66
  runs-on: ubuntu-latest
67
67
  steps:
68
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
68
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
69
69
  with:
70
70
  persist-credentials: false
71
- - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
71
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
72
72
  with:
73
73
  python-version: "3.13"
74
74
  - name: Install and smoke test from TestPyPI
@@ -84,7 +84,7 @@ jobs:
84
84
  permissions:
85
85
  contents: write
86
86
  steps:
87
- - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
87
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
88
88
  with:
89
89
  persist-credentials: false
90
90
  - name: Download TestPyPI-verified distribution artifact
@@ -18,3 +18,6 @@ dist/
18
18
  *.egg-info/
19
19
  __pycache__/
20
20
  *.py[cod]
21
+ *.db
22
+ *.sqlite
23
+ *.sqlite3
@@ -1,6 +1,41 @@
1
1
  # Changelog
2
2
 
3
- ## Unreleased
3
+ ## 1.3.0 - 2026-09-15
4
+
5
+ - **Community Telemetry**: Add privacy-preserving, voluntary, opt-in telemetry (`OFF`, `BASIC`, `RESEARCH`).
6
+ - Strict client allowlist schema; source code, prompts, model responses, repository names, file paths, user identifiers, and credentials are never collected.
7
+ - Transparent user control via `ai-dev telemetry sharing` commands (`status`, `enable basic`, `enable research`, `disable`, `preview`, `flush`).
8
+ - Bounded local disk queue with automatic retention pruning (max 1,000 events, max 7 days, max 32 KB per event).
9
+ - Single-flight non-blocking background transport worker.
10
+ - Support for research-level provider usage metrics collected via MCP tool (`record_usage`) and CLI usage imports.
11
+ - **Production Telemetry Collector**: Introduce the self-contained production backend collector (`collector/`):
12
+ - Fast, auditable FastAPI ingestion endpoint (`POST /v1/events`) with liveness (`/health`) and readiness (`/ready`) probes.
13
+ - Fail-closed payload validation and streaming body size enforcement (32 KB limit).
14
+ - In-memory bounded sliding-window rate limiter with single-IP trusted reverse proxy sanitization.
15
+ - Idempotent deduplication on primary key `event_id`.
16
+ - PostgreSQL 16 storage backed by versioned Alembic migrations.
17
+ - Automated 90-day retention cleanup.
18
+ - Privacy-safe logging with zero client input, path, or credential leakage.
19
+ - Configured default HTTPS production endpoint (`https://35.209.177.185.sslip.io/v1/events`).
20
+ - **Validation & Runner Hardening**:
21
+ - Fix #78: Recognize Node spec/TAP summaries without matching `recoverable` as coverage.
22
+ - Fix #79: Execute selected `.mjs`/`.cjs` tests, retain broad fallback commands, and fail explicitly when selected tests have no runnable validation plan.
23
+ - Fix #80: Preserve source prefixes under small content budgets, document content-only `max_chars`, measure actual artifact sizes, and distinguish receipt/content truncation.
24
+ - Preserve numeric parser error counts and restrict pytest arguments to Python selections.
25
+ - Prevent `finish` from approving incomplete, blocked, or invalid validation.
26
+ - Drain cancellable subprocess pipes while waiting and preserve output captured before timeout.
27
+
28
+ ## 1.2.2 - 2026-09-08
29
+
30
+ - Add a native Gemini CLI MCP integration, reference-first client profile, provider-reported
31
+ `usageMetadata` import, and Gemini pricing snapshot support.
32
+ - Add Python 3.14 to the supported classifiers and cross-platform CI matrix.
33
+ - Ignore named virtual environments and bytecode during changed-check selection, prefer the
34
+ project virtual-environment interpreter, and keep Ruff failures out of pytest-focused reruns.
35
+ - Add CodeQL analysis, Dependabot update configuration, and a complete security reporting and
36
+ supported-version policy.
37
+ - Make managed-process stop observe in-flight atomic supervisor state, closing a rare start/stop
38
+ race exposed by the expanded Python CI matrix.
4
39
 
5
40
  ## 1.2.1 - 2026-09-01
6
41
 
@@ -1,3 +1,51 @@
1
+ Metadata-Version: 2.5
2
+ Name: ai-dev-cli-tools
3
+ Version: 1.3.0
4
+ Summary: Cross-platform CLI helpers that give AI coding agents concise, deterministic development reports.
5
+ Project-URL: Homepage, https://github.com/MatthiasLew/ai-dev-cli-tools
6
+ Project-URL: Repository, https://github.com/MatthiasLew/ai-dev-cli-tools
7
+ Project-URL: Issues, https://github.com/MatthiasLew/ai-dev-cli-tools/issues
8
+ Project-URL: Changelog, https://github.com/MatthiasLew/ai-dev-cli-tools/blob/main/CHANGELOG.md
9
+ Author: Mateusz Lewandowski
10
+ License: MIT
11
+ License-File: LICENSE
12
+ Keywords: agents,ai,automation,cli,developer-tools
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Environment :: Console
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Topic :: Software Development :: Quality Assurance
22
+ Requires-Python: >=3.11
23
+ Requires-Dist: watchdog<7,>=4
24
+ Provides-Extra: collector
25
+ Requires-Dist: alembic>=1.13; extra == 'collector'
26
+ Requires-Dist: fastapi>=0.115; extra == 'collector'
27
+ Requires-Dist: httpx>=0.27; extra == 'collector'
28
+ Requires-Dist: pydantic>=2.8; extra == 'collector'
29
+ Requires-Dist: sqlalchemy>=2.0; extra == 'collector'
30
+ Requires-Dist: uvicorn>=0.30; extra == 'collector'
31
+ Provides-Extra: dev
32
+ Requires-Dist: alembic>=1.13; extra == 'dev'
33
+ Requires-Dist: build>=1.2; extra == 'dev'
34
+ Requires-Dist: coverage[toml]>=7.6; extra == 'dev'
35
+ Requires-Dist: fastapi>=0.115; extra == 'dev'
36
+ Requires-Dist: httpx>=0.27; extra == 'dev'
37
+ Requires-Dist: mypy>=1.11; extra == 'dev'
38
+ Requires-Dist: pydantic>=2.8; extra == 'dev'
39
+ Requires-Dist: pytest>=8.3; extra == 'dev'
40
+ Requires-Dist: ruff>=0.6; extra == 'dev'
41
+ Requires-Dist: sqlalchemy>=2.0; extra == 'dev'
42
+ Requires-Dist: uvicorn>=0.30; extra == 'dev'
43
+ Provides-Extra: semantic
44
+ Requires-Dist: tree-sitter-language-pack>=0.9; extra == 'semantic'
45
+ Provides-Extra: tokenizers
46
+ Requires-Dist: tiktoken>=0.7; extra == 'tokenizers'
47
+ Description-Content-Type: text/markdown
48
+
1
49
  # AI Dev CLI Tools
2
50
 
3
51
  Cross-platform Python CLI helpers for AI coding agents and humans who want concise, deterministic development reports instead of huge logs.
@@ -19,11 +67,59 @@ artifacts may be removed when no longer needed; cache, runtime, and temporary st
19
67
  be safe for `ai-dev` to recreate.
20
68
  ```
21
69
 
70
+ ## Help improve ai-dev
71
+
72
+ `ai-dev` is being evaluated on real-world coding-agent workflows.
73
+
74
+ If you want to support development, you can optionally enable privacy-preserving opt-in telemetry without persistent user identifiers.
75
+
76
+ Community Telemetry is **OFF by default**. Installation never automatically activates it.
77
+
78
+ ### Commands
79
+
80
+ ```bash
81
+ ai-dev telemetry sharing status
82
+ ai-dev telemetry sharing enable basic
83
+ ai-dev telemetry sharing enable research
84
+ ai-dev telemetry sharing disable
85
+ ai-dev telemetry sharing preview
86
+ ai-dev telemetry sharing flush
87
+ ```
88
+
89
+ - **OFF**: Nothing is collected or sent.
90
+ - **BASIC**: Minimal operational metrics (command name, category, outcome, duration bucket, OS family, Python version).
91
+ - **RESEARCH**: BASIC metrics plus model provider usage (model name, token counts, task outcome, repo size bucket).
92
+
93
+ Default production endpoint: `https://35.209.177.185.sslip.io/v1/events` (can be overridden with `AI_DEV_COMMUNITY_TELEMETRY_ENDPOINT`).
94
+
95
+ Never shared:
96
+ - source code
97
+ - prompts
98
+ - model responses
99
+ - repository names
100
+ - file names or paths
101
+ - usernames/emails
102
+ - secrets/API keys
103
+
104
+ Preview what data fields would be shared from your repository:
105
+
106
+ ```bash
107
+ ai-dev telemetry sharing preview --level research
108
+ ```
109
+
110
+ Or view a synthetic example payload:
111
+
112
+ ```bash
113
+ ai-dev telemetry sharing preview --level research --sample
114
+ ```
115
+
116
+ For complete details on data handling, allowed scalar metrics, and local queueing, see [docs/community-telemetry.md](docs/community-telemetry.md).
117
+
22
118
  ## Install
23
119
 
24
120
  ```bash
25
121
  python -m pip install --upgrade pipx
26
- pipx install ai-dev-cli-tools==1.2.1
122
+ pipx install ai-dev-cli-tools==1.3.0
27
123
  ai-dev --help
28
124
  ```
29
125
 
@@ -84,8 +180,10 @@ ai-dev baseline compare main
84
180
  ai-dev benchmark run --suite examples/benchmarks/output-budget-smoke.json --variant baseline
85
181
  ai-dev benchmark corpus --manifest examples/benchmarks/agent-corpus.json --trials 3
86
182
  ai-dev integrations install all
183
+ ai-dev integrations install gemini
87
184
  ai-dev dashboard serve --port 8765
88
185
  ai-dev telemetry import response.json --client codex --format openai
186
+ ai-dev telemetry import gemini-response.json --client gemini --format gemini
89
187
  ai-dev telemetry status --json
90
188
  ai-dev telemetry optimize --min-sessions 5 --json
91
189
  ai-dev telemetry export --format csv --output .ai/telemetry-exports/usage.csv --json
@@ -119,7 +217,7 @@ All commands support `--project`, `--json`, `--quiet`, `--help`, and `--version`
119
217
  ## Local MCP server
120
218
 
121
219
  `ai-dev mcp serve` exposes project status, implementation planning, compact feedback, bounded context, validation,
122
- and progressive evidence as local structured tools for Codex-compatible MCP clients. The STDIO
220
+ and progressive evidence as local structured tools for clients including Gemini CLI. The STDIO
123
221
  server is dependency-free, has no network listener, fixes all calls to one project root, and
124
222
  defaults validation to preview-only. After consuming a successful `build_context` response, a
125
223
  client can return its `summary.delta.state_fingerprint` as `acknowledged_state`; an identical safe
@@ -179,14 +277,14 @@ Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/contex
179
277
 
180
278
  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.
181
279
 
182
- 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.
280
+ 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.
183
281
 
184
282
  `ai-dev task` is the default one-shot handoff for an AI client. It combines the bounded plan,
185
283
  selected context, and check preview while delivering file references instead of full content.
186
284
  Use `--include-content` only when the consumer truly needs the bodies. The response includes a
187
285
  state fingerprint and a token savings receipt; return that fingerprint with `--ack-state` only
188
286
  after consuming the response. Explicit acknowledgements are stored per client under
189
- `.ai/cache/client-state/`, so Codex, Claude Code, Cursor, and generic consumers never inherit one
287
+ `.ai/cache/client-state/`, so Codex, Claude Code, Cursor, Gemini CLI, and generic consumers never inherit one
190
288
  another's assumed context. Receipts remain local under `.ai/token-efficiency/`.
191
289
 
192
290
  Provider-reported usage can be recorded through MCP `record_usage` or imported from a bounded,
@@ -314,7 +412,7 @@ git diff --check
314
412
  | mcp serve | implemented |
315
413
  | watch | implemented |
316
414
  | benchmark run/compare/gate/corpus | implemented |
317
- | integrations install | implemented for Codex, Claude Code, Cursor, and generic MCP |
415
+ | integrations install | implemented for Codex, Claude Code, Cursor, Gemini CLI, and generic MCP |
318
416
  | dashboard status/serve | implemented, loopback-only |
319
417
  | telemetry import/status and MCP record_usage | implemented, provider-reported usage only |
320
418
  | telemetry gate/pricing snapshots and MCP usage_status | implemented, local and fail-closed |
@@ -1,37 +1,3 @@
1
- Metadata-Version: 2.5
2
- Name: ai-dev-cli-tools
3
- Version: 1.2.1
4
- Summary: Cross-platform CLI helpers that give AI coding agents concise, deterministic development reports.
5
- Project-URL: Homepage, https://github.com/MatthiasLew/ai-dev-cli-tools
6
- Project-URL: Repository, https://github.com/MatthiasLew/ai-dev-cli-tools
7
- Project-URL: Issues, https://github.com/MatthiasLew/ai-dev-cli-tools/issues
8
- Project-URL: Changelog, https://github.com/MatthiasLew/ai-dev-cli-tools/blob/main/CHANGELOG.md
9
- Author: Mateusz Lewandowski
10
- License: MIT
11
- License-File: LICENSE
12
- Keywords: agents,ai,automation,cli,developer-tools
13
- Classifier: Development Status :: 5 - Production/Stable
14
- Classifier: Environment :: Console
15
- Classifier: License :: OSI Approved :: MIT License
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.11
18
- Classifier: Programming Language :: Python :: 3.12
19
- Classifier: Programming Language :: Python :: 3.13
20
- Classifier: Topic :: Software Development :: Quality Assurance
21
- Requires-Python: >=3.11
22
- Requires-Dist: watchdog<7,>=4
23
- Provides-Extra: dev
24
- Requires-Dist: build>=1.2; extra == 'dev'
25
- Requires-Dist: coverage[toml]>=7.6; extra == 'dev'
26
- Requires-Dist: mypy>=1.11; extra == 'dev'
27
- Requires-Dist: pytest>=8.3; extra == 'dev'
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'
33
- Description-Content-Type: text/markdown
34
-
35
1
  # AI Dev CLI Tools
36
2
 
37
3
  Cross-platform Python CLI helpers for AI coding agents and humans who want concise, deterministic development reports instead of huge logs.
@@ -53,11 +19,59 @@ artifacts may be removed when no longer needed; cache, runtime, and temporary st
53
19
  be safe for `ai-dev` to recreate.
54
20
  ```
55
21
 
22
+ ## Help improve ai-dev
23
+
24
+ `ai-dev` is being evaluated on real-world coding-agent workflows.
25
+
26
+ If you want to support development, you can optionally enable privacy-preserving opt-in telemetry without persistent user identifiers.
27
+
28
+ Community Telemetry is **OFF by default**. Installation never automatically activates it.
29
+
30
+ ### Commands
31
+
32
+ ```bash
33
+ ai-dev telemetry sharing status
34
+ ai-dev telemetry sharing enable basic
35
+ ai-dev telemetry sharing enable research
36
+ ai-dev telemetry sharing disable
37
+ ai-dev telemetry sharing preview
38
+ ai-dev telemetry sharing flush
39
+ ```
40
+
41
+ - **OFF**: Nothing is collected or sent.
42
+ - **BASIC**: Minimal operational metrics (command name, category, outcome, duration bucket, OS family, Python version).
43
+ - **RESEARCH**: BASIC metrics plus model provider usage (model name, token counts, task outcome, repo size bucket).
44
+
45
+ Default production endpoint: `https://35.209.177.185.sslip.io/v1/events` (can be overridden with `AI_DEV_COMMUNITY_TELEMETRY_ENDPOINT`).
46
+
47
+ Never shared:
48
+ - source code
49
+ - prompts
50
+ - model responses
51
+ - repository names
52
+ - file names or paths
53
+ - usernames/emails
54
+ - secrets/API keys
55
+
56
+ Preview what data fields would be shared from your repository:
57
+
58
+ ```bash
59
+ ai-dev telemetry sharing preview --level research
60
+ ```
61
+
62
+ Or view a synthetic example payload:
63
+
64
+ ```bash
65
+ ai-dev telemetry sharing preview --level research --sample
66
+ ```
67
+
68
+ For complete details on data handling, allowed scalar metrics, and local queueing, see [docs/community-telemetry.md](docs/community-telemetry.md).
69
+
56
70
  ## Install
57
71
 
58
72
  ```bash
59
73
  python -m pip install --upgrade pipx
60
- pipx install ai-dev-cli-tools==1.2.1
74
+ pipx install ai-dev-cli-tools==1.3.0
61
75
  ai-dev --help
62
76
  ```
63
77
 
@@ -118,8 +132,10 @@ ai-dev baseline compare main
118
132
  ai-dev benchmark run --suite examples/benchmarks/output-budget-smoke.json --variant baseline
119
133
  ai-dev benchmark corpus --manifest examples/benchmarks/agent-corpus.json --trials 3
120
134
  ai-dev integrations install all
135
+ ai-dev integrations install gemini
121
136
  ai-dev dashboard serve --port 8765
122
137
  ai-dev telemetry import response.json --client codex --format openai
138
+ ai-dev telemetry import gemini-response.json --client gemini --format gemini
123
139
  ai-dev telemetry status --json
124
140
  ai-dev telemetry optimize --min-sessions 5 --json
125
141
  ai-dev telemetry export --format csv --output .ai/telemetry-exports/usage.csv --json
@@ -153,7 +169,7 @@ All commands support `--project`, `--json`, `--quiet`, `--help`, and `--version`
153
169
  ## Local MCP server
154
170
 
155
171
  `ai-dev mcp serve` exposes project status, implementation planning, compact feedback, bounded context, validation,
156
- and progressive evidence as local structured tools for Codex-compatible MCP clients. The STDIO
172
+ and progressive evidence as local structured tools for clients including Gemini CLI. The STDIO
157
173
  server is dependency-free, has no network listener, fixes all calls to one project root, and
158
174
  defaults validation to preview-only. After consuming a successful `build_context` response, a
159
175
  client can return its `summary.delta.state_fingerprint` as `acknowledged_state`; an identical safe
@@ -213,14 +229,14 @@ Artifacts are written to `.ai/context/context-latest.md` and `.ai/context/contex
213
229
 
214
230
  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.
215
231
 
216
- 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.
232
+ 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.
217
233
 
218
234
  `ai-dev task` is the default one-shot handoff for an AI client. It combines the bounded plan,
219
235
  selected context, and check preview while delivering file references instead of full content.
220
236
  Use `--include-content` only when the consumer truly needs the bodies. The response includes a
221
237
  state fingerprint and a token savings receipt; return that fingerprint with `--ack-state` only
222
238
  after consuming the response. Explicit acknowledgements are stored per client under
223
- `.ai/cache/client-state/`, so Codex, Claude Code, Cursor, and generic consumers never inherit one
239
+ `.ai/cache/client-state/`, so Codex, Claude Code, Cursor, Gemini CLI, and generic consumers never inherit one
224
240
  another's assumed context. Receipts remain local under `.ai/token-efficiency/`.
225
241
 
226
242
  Provider-reported usage can be recorded through MCP `record_usage` or imported from a bounded,
@@ -348,7 +364,7 @@ git diff --check
348
364
  | mcp serve | implemented |
349
365
  | watch | implemented |
350
366
  | benchmark run/compare/gate/corpus | implemented |
351
- | integrations install | implemented for Codex, Claude Code, Cursor, and generic MCP |
367
+ | integrations install | implemented for Codex, Claude Code, Cursor, Gemini CLI, and generic MCP |
352
368
  | dashboard status/serve | implemented, loopback-only |
353
369
  | telemetry import/status and MCP record_usage | implemented, provider-reported usage only |
354
370
  | telemetry gate/pricing snapshots and MCP usage_status | implemented, local and fail-closed |
@@ -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.