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.
- ai_dev_cli_tools-1.3.0/.dockerignore +26 -0
- ai_dev_cli_tools-1.3.0/.github/dependabot.yml +12 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/ci.yml +60 -13
- ai_dev_cli_tools-1.3.0/.github/workflows/codeql.yml +28 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/docs.yml +2 -2
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/publish-pypi.yml +4 -4
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.github/workflows/release.yml +5 -5
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/.gitignore +3 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/CHANGELOG.md +36 -1
- ai_dev_cli_tools-1.2.1/README.md → ai_dev_cli_tools-1.3.0/PKG-INFO +103 -5
- ai_dev_cli_tools-1.2.1/PKG-INFO → ai_dev_cli_tools-1.3.0/README.md +55 -39
- ai_dev_cli_tools-1.3.0/SECURITY.md +36 -0
- ai_dev_cli_tools-1.3.0/collector/.dockerignore +27 -0
- ai_dev_cli_tools-1.3.0/collector/.env.example +19 -0
- ai_dev_cli_tools-1.3.0/collector/Dockerfile +59 -0
- ai_dev_cli_tools-1.3.0/collector/README.md +115 -0
- ai_dev_cli_tools-1.3.0/collector/__init__.py +1 -0
- ai_dev_cli_tools-1.3.0/collector/alembic/env.py +60 -0
- ai_dev_cli_tools-1.3.0/collector/alembic/script.py.mako +26 -0
- ai_dev_cli_tools-1.3.0/collector/alembic/versions/0001_initial_telemetry_events.py +107 -0
- ai_dev_cli_tools-1.3.0/collector/alembic.ini +39 -0
- ai_dev_cli_tools-1.3.0/collector/app/__init__.py +1 -0
- ai_dev_cli_tools-1.3.0/collector/app/config.py +74 -0
- ai_dev_cli_tools-1.3.0/collector/app/main.py +217 -0
- ai_dev_cli_tools-1.3.0/collector/app/models.py +126 -0
- ai_dev_cli_tools-1.3.0/collector/app/rate_limit.py +81 -0
- ai_dev_cli_tools-1.3.0/collector/app/retention.py +74 -0
- ai_dev_cli_tools-1.3.0/collector/app/storage.py +97 -0
- ai_dev_cli_tools-1.3.0/collector/app/validation.py +448 -0
- ai_dev_cli_tools-1.3.0/collector/docker-compose.yml +65 -0
- ai_dev_cli_tools-1.3.0/collector/requirements.txt +6 -0
- ai_dev_cli_tools-1.3.0/collector/tests/__init__.py +1 -0
- ai_dev_cli_tools-1.3.0/collector/tests/conftest.py +40 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_concurrency.py +48 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_config.py +120 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_dedup.py +31 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_ingestion.py +150 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_migrations.py +73 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_privacy.py +53 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_privacy_logging.py +167 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_proxy.py +118 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_rate_limit.py +123 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_retention.py +91 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_storage_retention_cli.py +108 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_streaming.py +79 -0
- ai_dev_cli_tools-1.3.0/collector/tests/test_validation_branches.py +161 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_INTEGRATION_CONTRACT.md +1 -1
- ai_dev_cli_tools-1.3.0/docs/AI_DEV_CLI_TOOLS_PERFORMANCE_OPTIMIZATION_AGENT_TASK.md +1023 -0
- ai_dev_cli_tools-1.3.0/docs/AUDIT_2026-09-09.md +80 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/BENCHMARKS.md +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/CHANGED_TEST_SELECTION.md +6 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/CONTEXT_BUILDER.md +16 -5
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/DISTRIBUTION.md +6 -7
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/INTEGRATIONS_AND_DASHBOARD.md +10 -2
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/MCP_SERVER.md +12 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/RELEASE_CHECKLIST.md +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/REPORT_SCHEMA.md +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/TOOL_OUTPUT_PARSERS.md +5 -1
- ai_dev_cli_tools-1.3.0/docs/community-telemetry-collector.md +277 -0
- ai_dev_cli_tools-1.3.0/docs/community-telemetry-deployment.md +285 -0
- ai_dev_cli_tools-1.3.0/docs/community-telemetry.md +274 -0
- ai_dev_cli_tools-1.3.0/docs/performance/PERFORMANCE_BASELINE_2026-09-10.md +51 -0
- ai_dev_cli_tools-1.3.0/docs/performance/PERFORMANCE_OPTIMIZATION_REPORT_2026-09-10.md +111 -0
- ai_dev_cli_tools-1.3.0/docs/performance/RUST_NATIVE_ACCELERATION_ASSESSMENT.md +37 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/pyproject.toml +20 -4
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/requirements-dev.lock +1 -1
- ai_dev_cli_tools-1.3.0/scripts/benchmark_semantic_scalability.py +125 -0
- ai_dev_cli_tools-1.3.0/scripts/test_collector_postgres_e2e.py +338 -0
- ai_dev_cli_tools-1.3.0/scripts/unified_benchmark.py +364 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/validate_ci.py +2 -2
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/__init__.py +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/graph.py +29 -13
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/cache/repository.py +409 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/validation.py +13 -3
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cli.py +91 -8
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/__init__.py +59 -0
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/builder.py +551 -0
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/config.py +158 -0
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/queue.py +174 -0
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/schema.py +717 -0
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/service.py +322 -0
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/community/transport.py +140 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/config.py +2 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/builder.py +62 -82
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/incremental.py +15 -3
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/selection.py +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/tokens.py +14 -4
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/detectors/repository_map.py +290 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/git/inspect.py +143 -37
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/integrations.py +2 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/mcp_server.py +38 -16
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/logs.py +80 -3
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/benchmark.py +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check.py +32 -8
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_scheduler.py +21 -3
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_selection.py +30 -5
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/diagnostics.py +3 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/environment_state.py +12 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/finish.py +4 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/flaky.py +11 -3
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/focused.py +19 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runtime/runner.py +24 -1
- ai_dev_cli_tools-1.3.0/src/ai_dev_tools/semantic.py +534 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/semantic_backends.py +55 -9
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/telemetry.py +103 -8
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/telemetry_policy.py +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/token_efficiency.py +13 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/utils/subprocess.py +34 -21
- ai_dev_cli_tools-1.3.0/tests/integration/test_community_collector_e2e.py +249 -0
- ai_dev_cli_tools-1.3.0/tests/integration/test_git.py +220 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_cache.py +101 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_check_plan.py +55 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_check_scheduler.py +32 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_contract_drift.py +48 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_cli.py +119 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_coverage.py +467 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_final_polish.py +481 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_functional.py +348 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_performance.py +145 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_privacy.py +160 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_release.py +194 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_community_telemetry_review_pass.py +289 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_concurrency_safety.py +315 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_coordination.py +22 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_feedback.py +33 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_finish.py +26 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_flaky.py +127 -101
- ai_dev_cli_tools-1.3.0/tests/unit/test_gitignore_conformance.py +212 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_integrations_dashboard.py +21 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_issue_regressions.py +224 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_mcp_server.py +4 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_more_coverage.py +18 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_new_cli_commands.py +43 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_progressive_reports.py +17 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_report.py +1 -1
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_repository_map.py +18 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runtime_runner.py +28 -1
- ai_dev_cli_tools-1.3.0/tests/unit/test_semantic.py +198 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_semantic_backends.py +26 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_semantic_fingerprint.py +193 -0
- ai_dev_cli_tools-1.3.0/tests/unit/test_semantic_large_repo.py +322 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_symbol_diff.py +22 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_task.py +32 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_telemetry.py +55 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_tool_parsers.py +9 -0
- ai_dev_cli_tools-1.2.1/SECURITY.md +0 -6
- ai_dev_cli_tools-1.2.1/src/ai_dev_tools/cache/repository.py +0 -169
- ai_dev_cli_tools-1.2.1/src/ai_dev_tools/detectors/repository_map.py +0 -129
- ai_dev_cli_tools-1.2.1/src/ai_dev_tools/semantic.py +0 -195
- ai_dev_cli_tools-1.2.1/tests/integration/test_git.py +0 -76
- ai_dev_cli_tools-1.2.1/tests/unit/test_semantic.py +0 -88
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/CONTRIBUTING.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/LICENSE +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/Makefile +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/TODO.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/ai.ps1 +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/ai.sh +0 -0
- {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
- {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
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ADDING_A_DETECTOR.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ADDING_A_RUNNER.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_COORDINATION.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_EFFICIENCY_ROADMAP.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/AGENT_WORKFLOW.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/ARCHITECTURE.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/BOOTSTRAP.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/CACHE_AND_INDEX.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/FLAKY_RETRIES.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/MONOREPO_SUPPORT.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/OBSERVATION_LIFECYCLE.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/PERFORMANCE.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/PROJECT_COMPLETE.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/RUNTIME.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/SEMANTIC_COMPRESSION.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/TOKEN_EFFICIENCY_RESEARCH.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/WARM_ENVIRONMENT.md +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/WATCH_MODE.md +0 -0
- {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
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/docs/report-schema.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-adaptive-context.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-affected-workflow.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-context-acknowledgement.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-corpus.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-feedback-delta.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-monorepo-workflow.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-multiturn-workflow.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/agent-repair-workflow.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/pyproject.toml +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/src/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/src/orders.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/src/pricing.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/tests/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/fixtures/agent-workflow/workspaces/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/mcp-recurring-status.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/output-budget-smoke.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/benchmarks/symbol-diff-context.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/examples/consume_json_report.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_agent_workflow.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_mcp_context_ack.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_mcp_status.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/benchmark_symbol_diff.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/dev.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/test_installed_package.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/validate_release.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/scripts/verify_published_package.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/__main__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/cache/prompt_layout.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/completion.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/adaptive.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/compression.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/mcp_delta.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/models.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/profiles.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/refinement.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/retrieval.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/context/symbols.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/dashboard.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/environment.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/project.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/runtime.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/detectors/workspaces.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/git/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/git/symbol_diff.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/index_daemon_service.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/models/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/models/report.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/models/workspace.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/failures.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/parsers/registry.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/progressive.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/sarif.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/reporters/writer.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/baseline.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/bootstrap.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/bootstrap_models.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/bootstrap_strategies.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/cache.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_checkpoint.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/check_models.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/coordination.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/feedback.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/feedback_delta.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/index.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/index_daemon.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/observations.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/performance.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/plan.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/policy.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/task.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runners/watch.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runtime/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/runtime/supervisor.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/security/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/security/execution.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/security/secrets.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/source_symbols.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/telemetry_optimizer.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/src/ai_dev_tools/utils/__init__.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/cargo-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/coverage-ok.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/eslint-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/gradle-ok.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/jest-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/maven-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/maven-localized-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/mypy-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/phpunit-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/pytest-9-ok.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/pytest-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/pytest-multiple-failures.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/ruff-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/ruff-warning.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/tsc-fail.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/logs/vitest-ok.log +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/package.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/packages/api/pyproject.toml +0 -0
- {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
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/packages/web/package.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/packages/web/test.js +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/monorepo-mixed/services/worker/Cargo.toml +0 -0
- {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
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/gradle/build.gradle +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/gradle/gradlew.bat +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/maven/mvnw.cmd +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/maven/pom.xml +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-npm/package-lock.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-npm/package.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-pnpm/package.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-pnpm/pnpm-lock.yaml +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-yarn/package.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/node-yarn/yarn.lock +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/php-composer/composer.json +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-pip/pyproject.toml +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-pip/requirements.txt +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-poetry/pyproject.toml +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-uv/pyproject.toml +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/python-uv/uv.lock +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/fixtures/projects/rust/Cargo.toml +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_adaptive_chess_regression.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_cli.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_cross_platform_paths.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/integration/test_toolchain_e2e.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_adaptive_context.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_agent_plan.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_baseline.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_benchmark.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_benchmark_gate.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_bootstrap.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_check.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_cli_more.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_completion.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_config.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_builder.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_compression.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_mcp_delta.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_profiles.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_refinement.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_retrieval.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_context_symbols.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_dev_launcher.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_diagnostics.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_doctor.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_environment_state.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_execution_policy.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_failure_classification.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_feedback_delta.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_index_daemon.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_index_daemon_service.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_logs.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_more_symbol_adapters.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_observations.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_package_smoke.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_performance.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_prompt_layout.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_release_scripts.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runner_failures.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runtime.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_runtime_supervisor.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_sarif.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_scan.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_secret_boundaries.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_secrets.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_telemetry_optimizer.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_telemetry_policy.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_token_accounting.py +0 -0
- {ai_dev_cli_tools-1.2.1 → ai_dev_cli_tools-1.3.0}/tests/unit/test_watch.py +0 -0
- {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
|
|
@@ -8,8 +8,8 @@ jobs:
|
|
|
8
8
|
launcher-smoke:
|
|
9
9
|
runs-on: ubuntu-latest
|
|
10
10
|
steps:
|
|
11
|
-
- uses: actions/checkout@
|
|
12
|
-
- uses: actions/setup-python@
|
|
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@
|
|
28
|
-
- uses: actions/setup-python@
|
|
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@
|
|
59
|
-
- uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
87
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
88
88
|
with:
|
|
89
89
|
persist-credentials: false
|
|
90
|
-
- uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
12
|
-
- uses: actions/setup-python@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
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@
|
|
16
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
17
17
|
with:
|
|
18
18
|
persist-credentials: false
|
|
19
|
-
- uses: actions/setup-python@
|
|
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@
|
|
68
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
69
69
|
with:
|
|
70
70
|
persist-credentials: false
|
|
71
|
-
- uses: actions/setup-python@
|
|
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@
|
|
87
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
88
88
|
with:
|
|
89
89
|
persist-credentials: false
|
|
90
90
|
- name: Download TestPyPI-verified distribution artifact
|
|
@@ -1,6 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
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.
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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.
|