Overall: 89.2%
| File | Lines | Covered |
|---|---|---|
lintro/__init__.py | 1/1 | 100.0% |
lintro/_generated_versions.py | 2/2 | 100.0% |
lintro/_tool_packages.py | 4/4 | 100.0% |
lintro/_tool_versions.py | 88/107 | 78.1% |
lintro/ai/__init__.py | 6/6 | 100.0% |
lintro/ai/apply.py | 70/80 | 90.0% |
lintro/ai/audit.py | 57/78 | 71.1% |
lintro/ai/availability.py | 54/73 | 69.7% |
lintro/ai/budget.py | 59/59 | 100.0% |
lintro/ai/cache.py | 56/69 | 81.2% |
lintro/ai/checkpoints.py | 211/252 | 81.9% |
lintro/ai/cli_bounds.py | 30/30 | 100.0% |
lintro/ai/cli_schemas.py | 35/35 | 100.0% |
lintro/ai/config.py | 227/234 | 95.4% |
lintro/ai/config_overrides.py | 222/236 | 92.2% |
lintro/ai/config_views.py | 56/56 | 100.0% |
lintro/ai/cost.py | 25/26 | 91.2% |
lintro/ai/display/__init__.py | 5/5 | 100.0% |
lintro/ai/display/fixes.py | 92/163 | 53.8% |
lintro/ai/display/shared.py | 28/28 | 100.0% |
lintro/ai/display/status.py | 78/78 | 98.3% |
lintro/ai/display/streaming.py | 18/18 | 100.0% |
lintro/ai/display/summary.py | 122/130 | 93.2% |
lintro/ai/display/validation.py | 25/26 | 91.7% |
lintro/ai/doctor_checks.py | 94/107 | 84.6% |
lintro/ai/effective_config.py | 21/21 | 100.0% |
lintro/ai/enums/__init__.py | 9/9 | 100.0% |
lintro/ai/enums/ai_call_kind.py | 7/7 | 100.0% |
lintro/ai/enums/ai_transport.py | 7/7 | 100.0% |
lintro/ai/enums/cli_bare_mode.py | 7/7 | 100.0% |
lintro/ai/enums/config_source.py | 8/8 | 100.0% |
lintro/ai/enums/cost_basis.py | 7/7 | 100.0% |
lintro/ai/enums/sanitize_mode.py | 6/6 | 100.0% |
lintro/ai/exceptions.py | 28/28 | 100.0% |
lintro/ai/fallback.py | 40/42 | 92.3% |
lintro/ai/filters.py | 21/41 | 47.5% |
lintro/ai/fix.py | 158/195 | 78.8% |
lintro/ai/fix_context.py | 81/94 | 85.8% |
lintro/ai/fix_params.py | 28/28 | 100.0% |
lintro/ai/fix_parsing.py | 72/74 | 96.9% |
lintro/ai/hook.py | 25/25 | 96.6% |
lintro/ai/integrations/__init__.py | 0/0 | 100.0% |
lintro/ai/integrations/github_pr.py | 371/452 | 79.8% |
lintro/ai/interactive.py | 142/198 | 66.9% |
lintro/ai/interface.py | 68/69 | 97.8% |
lintro/ai/invoke.py | 36/37 | 93.0% |
lintro/ai/json_response.py | 132/145 | 86.4% |
lintro/ai/liveness.py | 72/75 | 94.8% |
lintro/ai/metadata/__init__.py | 4/4 | 100.0% |
lintro/ai/metadata/fix_suggestion_payload.py | 21/21 | 100.0% |
lintro/ai/metadata/helpers.py | 34/35 | 94.9% |
lintro/ai/metadata/summary_payload.py | 15/15 | 100.0% |
lintro/ai/model_pricing.py | 17/19 | 84.0% |
lintro/ai/models/__init__.py | 4/4 | 100.0% |
lintro/ai/models/fix_suggestion.py | 18/18 | 100.0% |
lintro/ai/models/github_api_response.py | 10/10 | 100.0% |
lintro/ai/models/result.py | 10/10 | 100.0% |
lintro/ai/models/summary.py | 12/12 | 100.0% |
lintro/ai/orchestrator.py | 125/166 | 70.6% |
lintro/ai/output_exhaustion.py | 18/18 | 100.0% |
lintro/ai/paths.py | 42/51 | 83.1% |
lintro/ai/pipeline.py | 174/236 | 70.1% |
lintro/ai/prompts/__init__.py | 5/5 | 100.0% |
lintro/ai/prompts/_loader.py | 13/13 | 100.0% |
lintro/ai/prompts/fix.py | 6/6 | 100.0% |
lintro/ai/prompts/post_fix.py | 3/3 | 100.0% |
lintro/ai/prompts/review.py | 84/85 | 98.1% |
lintro/ai/prompts/summary.py | 4/4 | 100.0% |
lintro/ai/prompts/templates/__init__.py | 0/0 | 100.0% |
lintro/ai/provider_blocks.py | 33/33 | 100.0% |
lintro/ai/provider_config.py | 50/51 | 96.8% |
lintro/ai/provider_enum.py | 12/12 | 100.0% |
lintro/ai/providers/__init__.py | 31/31 | 100.0% |
lintro/ai/providers/_api_common.py | 18/19 | 90.5% |
lintro/ai/providers/anthropic/__init__.py | 7/7 | 100.0% |
lintro/ai/providers/anthropic/cli_contract.py | 4/4 | 100.0% |
lintro/ai/providers/anthropic/config.py | 14/14 | 100.0% |
lintro/ai/providers/anthropic/metadata.py | 22/22 | 100.0% |
lintro/ai/providers/anthropic/plugin.py | 26/26 | 100.0% |
lintro/ai/providers/anthropic/provider.py | 211/248 | 83.3% |
lintro/ai/providers/async_stream_result.py | 21/21 | 100.0% |
lintro/ai/providers/base.py | 129/141 | 89.3% |
lintro/ai/providers/builtins.py | 18/22 | 80.0% |
lintro/ai/providers/capabilities.py | 8/8 | 100.0% |
lintro/ai/providers/claude_auth.py | 66/69 | 95.5% |
lintro/ai/providers/cli_auth_probe.py | 24/24 | 100.0% |
lintro/ai/providers/cli_capabilities.py | 170/173 | 96.0% |
lintro/ai/providers/cli_contract_check.py | 79/83 | 96.0% |
lintro/ai/providers/cli_contracts.py | 46/47 | 96.2% |
lintro/ai/providers/cli_transport.py | 151/164 | 89.8% |
lintro/ai/providers/constants.py | 3/3 | 100.0% |
lintro/ai/providers/cursor/__init__.py | 7/7 | 100.0% |
lintro/ai/providers/cursor/cli_contract.py | 4/4 | 100.0% |
lintro/ai/providers/cursor/config.py | 13/13 | 100.0% |
lintro/ai/providers/cursor/metadata.py | 10/10 | 100.0% |
lintro/ai/providers/cursor/plugin.py | 26/26 | 100.0% |
lintro/ai/providers/cursor/provider.py | 118/125 | 93.9% |
lintro/ai/providers/openai/__init__.py | 7/7 | 100.0% |
lintro/ai/providers/openai/cli_contract.py | 4/4 | 100.0% |
lintro/ai/providers/openai/codex_auth.py | 25/25 | 100.0% |
lintro/ai/providers/openai/config.py | 9/9 | 100.0% |
lintro/ai/providers/openai/metadata.py | 10/10 | 100.0% |
lintro/ai/providers/openai/plugin.py | 25/25 | 100.0% |
lintro/ai/providers/openai/provider.py | 207/260 | 78.4% |
lintro/ai/providers/protocol.py | 53/53 | 100.0% |
lintro/ai/providers/registry.py | 47/47 | 100.0% |
lintro/ai/providers/response.py | 12/12 | 100.0% |
lintro/ai/providers/stream_result.py | 21/21 | 100.0% |
lintro/ai/rate_limit.py | 42/45 | 93.4% |
lintro/ai/raw_response.py | 76/79 | 92.9% |
lintro/ai/refinement.py | 71/81 | 84.1% |
lintro/ai/registry.py | 35/35 | 100.0% |
lintro/ai/rerun.py | 39/46 | 82.8% |
lintro/ai/resolved_ai_config.py | 29/29 | 100.0% |
lintro/ai/retry.py | 63/73 | 83.9% |
lintro/ai/review/__init__.py | 20/20 | 100.0% |
lintro/ai/review/adversarial_pass.py | 31/34 | 91.7% |
lintro/ai/review/agent_prompt_text.py | 42/45 | 90.2% |
lintro/ai/review/agent_prompts.py | 83/83 | 100.0% |
lintro/ai/review/checklist/__init__.py | 7/7 | 100.0% |
lintro/ai/review/checklist/loader.py | 81/89 | 90.2% |
lintro/ai/review/checklist_builtin.py | 3/3 | 100.0% |
lintro/ai/review/checklist_display.py | 24/24 | 100.0% |
lintro/ai/review/checklist_registry.py | 45/47 | 95.5% |
lintro/ai/review/checklist_selector.py | 43/43 | 100.0% |
lintro/ai/review/chunk_call_detail.py | 11/12 | 87.5% |
lintro/ai/review/chunk_halves.py | 38/38 | 100.0% |
lintro/ai/review/chunk_pass.py | 54/54 | 100.0% |
lintro/ai/review/chunk_runner.py | 137/152 | 85.5% |
lintro/ai/review/chunk_split_retry.py | 94/95 | 99.1% |
lintro/ai/review/chunker/__init__.py | 3/3 | 100.0% |
lintro/ai/review/chunker/github_action_paths.py | 36/38 | 92.9% |
lintro/ai/review/chunker/grouping.py | 287/311 | 91.1% |
lintro/ai/review/chunker/shell_run_parse.py | 416/458 | 87.3% |
lintro/ai/review/chunker/workflow_scripts.py | 127/148 | 85.8% |
lintro/ai/review/classifier.py | 118/125 | 92.7% |
lintro/ai/review/cli_limits.py | 39/39 | 100.0% |
lintro/ai/review/commands.py | 56/56 | 100.0% |
lintro/ai/review/confirmation_filter.py | 22/22 | 100.0% |
lintro/ai/review/constants.py | 9/9 | 100.0% |
lintro/ai/review/context/__init__.py | 3/3 | 100.0% |
lintro/ai/review/context/collection.py | 230/252 | 88.8% |
lintro/ai/review/context/diff_parse.py | 258/293 | 85.9% |
lintro/ai/review/context/git_ops.py | 37/48 | 76.8% |
lintro/ai/review/context/pr_metadata.py | 48/58 | 77.4% |
lintro/ai/review/context_windows.py | 62/67 | 91.6% |
lintro/ai/review/convergence.py | 72/72 | 100.0% |
lintro/ai/review/cost_cap.py | 22/22 | 100.0% |
lintro/ai/review/coverage.py | 163/164 | 98.7% |
lintro/ai/review/coverage_degradation.py | 55/55 | 100.0% |
lintro/ai/review/coverage_rounds.py | 68/68 | 96.7% |
lintro/ai/review/cross_chunk_gate.py | 93/94 | 97.7% |
lintro/ai/review/custom_agent_parsing.py | 103/103 | 100.0% |
lintro/ai/review/custom_agent_runner.py | 106/112 | 94.5% |
lintro/ai/review/custom_agent_types.py | 54/54 | 100.0% |
lintro/ai/review/custom_agents.py | 81/86 | 93.4% |
lintro/ai/review/delta.py | 114/129 | 88.8% |
lintro/ai/review/depth_degradation.py | 15/15 | 100.0% |
lintro/ai/review/diff_gate.py | 148/150 | 98.0% |
lintro/ai/review/display.py | 89/92 | 94.4% |
lintro/ai/review/enums/__init__.py | 18/18 | 100.0% |
lintro/ai/review/enums/agent_prompt_scope_kind.py | 7/7 | 100.0% |
lintro/ai/review/enums/changed_file_status.py | 9/9 | 100.0% |
lintro/ai/review/enums/checklist_display.py | 3/3 | 100.0% |
lintro/ai/review/enums/comment_action.py | 7/7 | 100.0% |
lintro/ai/review/enums/comment_kind.py | 7/7 | 100.0% |
lintro/ai/review/enums/coverage_degradation_reason.py | 16/16 | 100.0% |
lintro/ai/review/enums/cross_chunk_contradiction.py | 5/5 | 100.0% |
lintro/ai/review/enums/custom_agent_mode.py | 3/3 | 100.0% |
lintro/ai/review/enums/delta_reason.py | 14/14 | 100.0% |
lintro/ai/review/enums/evidence_style.py | 16/16 | 100.0% |
lintro/ai/review/enums/file_domain.py | 3/3 | 100.0% |
lintro/ai/review/enums/file_review_need.py | 12/12 | 100.0% |
lintro/ai/review/enums/file_skip_reason.py | 12/12 | 100.0% |
lintro/ai/review/enums/finding_kind.py | 5/5 | 100.0% |
lintro/ai/review/enums/finding_match_outcome.py | 7/7 | 100.0% |
lintro/ai/review/enums/finding_origin.py | 4/4 | 100.0% |
lintro/ai/review/enums/finding_status.py | 6/6 | 100.0% |
lintro/ai/review/enums/fix_mode.py | 5/5 | 100.0% |
lintro/ai/review/enums/inline_post_failure_kind.py | 20/20 | 100.0% |
lintro/ai/review/enums/lifecycle_stage.py | 7/7 | 100.0% |
lintro/ai/review/enums/question_failure_kind.py | 10/10 | 100.0% |
lintro/ai/review/enums/review_category.py | 3/3 | 100.0% |
lintro/ai/review/enums/review_checkout.py | 8/8 | 100.0% |
lintro/ai/review/enums/review_context_error_code.py | 21/21 | 100.0% |
lintro/ai/review/enums/review_strictness.py | 3/3 | 100.0% |
lintro/ai/review/enums/review_verdict.py | 8/8 | 100.0% |
lintro/ai/review/enums/severity_downgrade_reason.py | 13/13 | 100.0% |
lintro/ai/review/enums/suggestion_drop_reason.py | 7/7 | 100.0% |
lintro/ai/review/enums/suggestion_rejection.py | 12/12 | 100.0% |
lintro/ai/review/enums/verification_outcome.py | 6/6 | 100.0% |
lintro/ai/review/error_contract.py | 19/19 | 100.0% |
lintro/ai/review/error_display.py | 54/64 | 76.5% |
lintro/ai/review/errors_taxonomy.py | 100/100 | 100.0% |
lintro/ai/review/exceptions.py | 29/32 | 91.7% |
lintro/ai/review/file_language.py | 45/45 | 98.4% |
lintro/ai/review/file_selection.py | 24/24 | 100.0% |
lintro/ai/review/finding_carry.py | 28/28 | 100.0% |
lintro/ai/review/finding_identity.py | 51/51 | 100.0% |
lintro/ai/review/finding_matcher.py | 116/120 | 95.1% |
lintro/ai/review/finding_pairing.py | 47/47 | 100.0% |
lintro/ai/review/finding_parser.py | 83/89 | 91.6% |
lintro/ai/review/github.py | 90/92 | 94.9% |
lintro/ai/review/github_badges.py | 50/50 | 100.0% |
lintro/ai/review/github_constants.py | 21/21 | 100.0% |
lintro/ai/review/github_contract.py | 76/87 | 86.0% |
lintro/ai/review/github_errors.py | 55/55 | 97.1% |
lintro/ai/review/github_inline.py | 77/78 | 98.0% |
lintro/ai/review/github_notes.py | 101/101 | 100.0% |
lintro/ai/review/github_render.py | 79/89 | 83.5% |
lintro/ai/review/github_review_body.py | 120/125 | 94.6% |
lintro/ai/review/github_status.py | 33/35 | 92.7% |
lintro/ai/review/glob_utils.py | 77/77 | 100.0% |
lintro/ai/review/group_labels.py | 7/7 | 100.0% |
lintro/ai/review/import_graph.py | 59/71 | 78.0% |
lintro/ai/review/incremental_coverage.py | 47/47 | 100.0% |
lintro/ai/review/inline_fix.py | 51/51 | 100.0% |
lintro/ai/review/interrupt.py | 26/30 | 83.3% |
lintro/ai/review/lifecycle/__init__.py | 1/1 | 100.0% |
lintro/ai/review/lifecycle/banners.py | 52/52 | 96.9% |
lintro/ai/review/lifecycle/comments.py | 89/89 | 99.2% |
lintro/ai/review/lifecycle/decision.py | 21/21 | 100.0% |
lintro/ai/review/lifecycle/markers.py | 24/24 | 100.0% |
lintro/ai/review/lifecycle/round.py | 57/64 | 84.9% |
lintro/ai/review/lifecycle/state.py | 72/80 | 89.2% |
lintro/ai/review/lifecycle/threads.py | 85/90 | 93.2% |
lintro/ai/review/lint_bridge.py | 138/155 | 87.9% |
lintro/ai/review/merge.py | 50/50 | 100.0% |
lintro/ai/review/models/__init__.py | 35/35 | 100.0% |
lintro/ai/review/models/_coerce.py | 13/13 | 100.0% |
lintro/ai/review/models/agent_prompt_scope.py | 13/13 | 100.0% |
lintro/ai/review/models/changed_file.py | 20/25 | 74.3% |
lintro/ai/review/models/checklist_item.py | 12/12 | 100.0% |
lintro/ai/review/models/chunk_summary.py | 9/9 | 100.0% |
lintro/ai/review/models/chunk_timing.py | 17/17 | 100.0% |
lintro/ai/review/models/chunking_result.py | 13/13 | 100.0% |
lintro/ai/review/models/convergence_decision.py | 14/14 | 100.0% |
lintro/ai/review/models/coverage_counts.py | 22/24 | 91.7% |
lintro/ai/review/models/coverage_degradation.py | 23/23 | 100.0% |
lintro/ai/review/models/coverage_record.py | 28/30 | 88.9% |
lintro/ai/review/models/delta_plan.py | 14/14 | 100.0% |
lintro/ai/review/models/file_classification.py | 7/7 | 100.0% |
lintro/ai/review/models/finding_match_result.py | 18/18 | 100.0% |
lintro/ai/review/models/finding_occurrence.py | 25/25 | 100.0% |
lintro/ai/review/models/finding_record.py | 150/151 | 99.0% |
lintro/ai/review/models/flagged_file.py | 17/21 | 76.0% |
lintro/ai/review/models/inline_post_failure.py | 23/23 | 100.0% |
lintro/ai/review/models/inline_post_request.py | 16/16 | 100.0% |
lintro/ai/review/models/inline_post_result.py | 9/9 | 100.0% |
lintro/ai/review/models/lifecycle_sync_request.py | 15/15 | 100.0% |
lintro/ai/review/models/merged_duplicate.py | 11/12 | 91.7% |
lintro/ai/review/models/phase_span.py | 10/10 | 100.0% |
lintro/ai/review/models/pr_metadata.py | 9/9 | 100.0% |
lintro/ai/review/models/review_chunk.py | 13/13 | 100.0% |
lintro/ai/review/models/review_context.py | 19/19 | 100.0% |
lintro/ai/review/models/review_finding.py | 57/57 | 100.0% |
lintro/ai/review/models/review_metadata.py | 71/71 | 100.0% |
lintro/ai/review/models/review_post_options.py | 19/19 | 100.0% |
lintro/ai/review/models/review_result.py | 38/38 | 100.0% |
lintro/ai/review/models/review_state.py | 103/117 | 81.5% |
lintro/ai/review/models/review_summary.py | 11/11 | 100.0% |
lintro/ai/review/models/review_thread.py | 7/7 | 100.0% |
lintro/ai/review/models/review_timings.py | 15/15 | 100.0% |
lintro/ai/review/models/round_outcome.py | 16/16 | 100.0% |
lintro/ai/review/models/run_coverage.py | 18/18 | 100.0% |
lintro/ai/review/models/run_identity.py | 15/15 | 100.0% |
lintro/ai/review/models/run_outcome.py | 23/23 | 100.0% |
lintro/ai/review/models/run_questions.py | 20/20 | 100.0% |
lintro/ai/review/models/run_record.py | 86/91 | 93.8% |
lintro/ai/review/models/run_usage.py | 13/13 | 100.0% |
lintro/ai/review/models/skipped_file.py | 13/13 | 100.0% |
lintro/ai/review/models/sticky_plan.py | 25/25 | 100.0% |
lintro/ai/review/models/sticky_request.py | 25/25 | 100.0% |
lintro/ai/review/models/suggested_change.py | 35/35 | 100.0% |
lintro/ai/review/models/summary_bullet.py | 7/7 | 100.0% |
lintro/ai/review/models/synthesis_outcome.py | 20/20 | 100.0% |
lintro/ai/review/models/verdict_reasoning.py | 11/11 | 100.0% |
lintro/ai/review/models/verification_outcome.py | 28/28 | 100.0% |
lintro/ai/review/narrative_parser.py | 52/54 | 94.7% |
lintro/ai/review/orchestrator.py | 30/31 | 94.3% |
lintro/ai/review/output.py | 66/69 | 95.2% |
lintro/ai/review/patch_hash.py | 12/12 | 100.0% |
lintro/ai/review/patch_validation.py | 89/90 | 98.3% |
lintro/ai/review/path_utils.py | 185/192 | 95.2% |
lintro/ai/review/paths_registry.py | 88/91 | 95.4% |
lintro/ai/review/pipeline.py | 20/20 | 100.0% |
lintro/ai/review/posting_policy.py | 47/47 | 100.0% |
lintro/ai/review/posting_tiers.py | 19/19 | 100.0% |
lintro/ai/review/pr_budget.py | 42/42 | 100.0% |
lintro/ai/review/pr_head.py | 160/188 | 84.3% |
lintro/ai/review/pr_head_guard.py | 12/12 | 100.0% |
lintro/ai/review/preparation.py | 89/91 | 95.9% |
lintro/ai/review/preparation_resolvers.py | 57/60 | 92.1% |
lintro/ai/review/progress.py | 85/88 | 97.0% |
lintro/ai/review/prompt_builder.py | 26/26 | 100.0% |
lintro/ai/review/prompt_redaction.py | 9/9 | 100.0% |
lintro/ai/review/prompts.py | 89/90 | 98.1% |
lintro/ai/review/provider_call.py | 3/3 | 100.0% |
lintro/ai/review/question_attempts.py | 44/44 | 100.0% |
lintro/ai/review/question_parse.py | 53/54 | 97.4% |
lintro/ai/review/question_pass.py | 101/101 | 100.0% |
lintro/ai/review/repo_context.py | 146/155 | 93.8% |
lintro/ai/review/response_pipeline.py | 112/112 | 99.2% |
lintro/ai/review/response_recovery.py | 28/28 | 100.0% |
lintro/ai/review/result_assembly.py | 107/107 | 100.0% |
lintro/ai/review/resume.py | 71/72 | 97.8% |
lintro/ai/review/review_state_codec.py | 86/89 | 95.7% |
lintro/ai/review/run_execution.py | 88/88 | 99.0% |
lintro/ai/review/run_finalize.py | 53/53 | 100.0% |
lintro/ai/review/run_planning.py | 106/114 | 90.4% |
lintro/ai/review/run_record_factory.py | 63/63 | 100.0% |
lintro/ai/review/sanitize.py | 8/8 | 100.0% |
lintro/ai/review/sensitivity.py | 64/79 | 73.0% |
lintro/ai/review/session.py | 129/131 | 97.5% |
lintro/ai/review/severity_gate.py | 67/67 | 100.0% |
lintro/ai/review/state_store.py | 141/154 | 90.3% |
lintro/ai/review/sticky/__init__.py | 4/4 | 100.0% |
lintro/ai/review/sticky/assembly.py | 67/67 | 100.0% |
lintro/ai/review/sticky/body.py | 28/30 | 91.2% |
lintro/ai/review/sticky/cells.py | 63/70 | 89.3% |
lintro/ai/review/sticky/constants.py | 14/14 | 100.0% |
lintro/ai/review/sticky/findings.py | 130/156 | 79.8% |
lintro/ai/review/sticky/history.py | 94/116 | 80.8% |
lintro/ai/review/sticky/notes.py | 54/54 | 98.6% |
lintro/ai/review/sticky/scope.py | 16/16 | 100.0% |
lintro/ai/review/sticky/sections.py | 114/131 | 84.2% |
lintro/ai/review/sticky/state.py | 32/32 | 100.0% |
lintro/ai/review/synthesis.py | 117/120 | 97.0% |
lintro/ai/review/synthesis_narrative.py | 123/125 | 97.1% |
lintro/ai/review/synthesis_note.py | 24/25 | 94.9% |
lintro/ai/review/synthesis_prompt.py | 97/100 | 93.8% |
lintro/ai/review/synthesis_response.py | 35/37 | 93.6% |
lintro/ai/review/timings.py | 88/88 | 100.0% |
lintro/ai/review/verdict.py | 42/43 | 96.7% |
lintro/ai/review/verification.py | 114/115 | 98.6% |
lintro/ai/review/verification_note.py | 20/22 | 88.2% |
lintro/ai/review/verification_prompt.py | 27/27 | 100.0% |
lintro/ai/review/verification_response.py | 128/128 | 100.0% |
lintro/ai/review/vocab.py | 3/3 | 100.0% |
lintro/ai/risk.py | 72/81 | 91.0% |
lintro/ai/sanitize.py | 23/23 | 100.0% |
lintro/ai/sarif_bridge.py | 41/57 | 72.8% |
lintro/ai/secrets.py | 13/13 | 100.0% |
lintro/ai/summary.py | 104/131 | 74.0% |
lintro/ai/telemetry.py | 20/20 | 100.0% |
lintro/ai/token_budget.py | 16/16 | 100.0% |
lintro/ai/transcript.py | 120/133 | 88.8% |
lintro/ai/transport.py | 66/66 | 100.0% |
lintro/ai/undo.py | 118/154 | 73.3% |
lintro/ai/validation.py | 117/127 | 89.8% |
lintro/api/__init__.py | 2/2 | 100.0% |
lintro/api/core.py | 55/68 | 76.1% |
lintro/api/pipeline.py | 45/49 | 91.5% |
lintro/cli.py | 181/185 | 97.4% |
lintro/cli_utils/__init__.py | 0/0 | 100.0% |
lintro/cli_utils/command_chainer.py | 80/80 | 97.4% |
lintro/cli_utils/commands/__init__.py | 6/6 | 100.0% |
lintro/cli_utils/commands/badge.py | 76/76 | 100.0% |
lintro/cli_utils/commands/check.py | 59/59 | 100.0% |
lintro/cli_utils/commands/completions.py | 11/11 | 100.0% |
lintro/cli_utils/commands/config.py | 205/233 | 85.9% |
lintro/cli_utils/commands/config_ai.py | 73/76 | 93.8% |
lintro/cli_utils/commands/deps.py | 133/143 | 93.2% |
lintro/cli_utils/commands/doctor.py | 318/369 | 82.3% |
lintro/cli_utils/commands/format.py | 50/50 | 100.0% |
lintro/cli_utils/commands/init.py | 115/166 | 66.1% |
lintro/cli_utils/commands/install.py | 111/199 | 51.5% |
lintro/cli_utils/commands/licenses.py | 47/51 | 88.1% |
lintro/cli_utils/commands/list_tools.py | 76/115 | 65.5% |
lintro/cli_utils/commands/mcp.py | 11/11 | 100.0% |
lintro/cli_utils/commands/review.py | 366/406 | 87.3% |
lintro/cli_utils/commands/test.py | 69/73 | 92.6% |
lintro/cli_utils/commands/versions.py | 56/67 | 77.9% |
lintro/cli_utils/commands/watch.py | 54/56 | 95.5% |
lintro/cli_utils/diff_option.py | 12/12 | 100.0% |
lintro/cli_utils/install_output.py | 30/31 | 95.1% |
lintro/cli_utils/onboarding.py | 14/25 | 59.3% |
lintro/cli_utils/order_explain.py | 120/122 | 98.0% |
lintro/config/__init__.py | 4/4 | 100.0% |
lintro/config/config_loader.py | 485/507 | 94.5% |
lintro/config/config_validator.py | 233/247 | 93.1% |
lintro/config/deps_config.py | 22/22 | 100.0% |
lintro/config/enforce_config.py | 5/5 | 100.0% |
lintro/config/execution_config.py | 17/17 | 100.0% |
lintro/config/licenses_config.py | 67/70 | 94.3% |
lintro/config/lintro_config.py | 55/55 | 100.0% |
lintro/config/output_config.py | 4/4 | 100.0% |
lintro/config/review_config.py | 102/104 | 96.8% |
lintro/config/tool_config.py | 6/6 | 100.0% |
lintro/config/tool_config_generator.py | 117/145 | 79.0% |
lintro/config/watch_config.py | 25/25 | 100.0% |
lintro/deps/__init__.py | 4/4 | 100.0% |
lintro/deps/models.py | 37/37 | 100.0% |
lintro/deps/parsers/__init__.py | 28/29 | 94.9% |
lintro/deps/parsers/_base.py | 10/10 | 100.0% |
lintro/deps/parsers/cargo_parser.py | 82/85 | 96.0% |
lintro/deps/parsers/package_json_parser.py | 31/33 | 91.5% |
lintro/deps/parsers/pyproject_parser.py | 86/91 | 85.6% |
lintro/deps/parsers/requirements_parser.py | 61/62 | 97.7% |
lintro/deps/policy_engine.py | 77/80 | 92.5% |
lintro/deps/version_analyzer.py | 68/69 | 98.2% |
lintro/enums/__init__.py | 0/0 | 100.0% |
lintro/enums/action.py | 13/15 | 84.2% |
lintro/enums/advisory_tools_value.py | 5/5 | 100.0% |
lintro/enums/bandit_levels.py | 26/26 | 100.0% |
lintro/enums/boolean_string.py | 6/6 | 100.0% |
lintro/enums/capability.py | 7/7 | 100.0% |
lintro/enums/checklist_display.py | 8/8 | 100.0% |
lintro/enums/confidence_level.py | 10/10 | 100.0% |
lintro/enums/config_format.py | 12/12 | 100.0% |
lintro/enums/config_key.py | 4/4 | 100.0% |
lintro/enums/custom_agent_mode.py | 7/7 | 100.0% |
lintro/enums/display_column.py | 12/12 | 100.0% |
lintro/enums/doc_url_template.py | 35/35 | 100.0% |
lintro/enums/env_bool.py | 4/4 | 100.0% |
lintro/enums/execution_class.py | 12/12 | 100.0% |
lintro/enums/file_domain.py | 14/14 | 100.0% |
lintro/enums/git_command.py | 6/6 | 100.0% |
lintro/enums/git_ref.py | 4/4 | 100.0% |
lintro/enums/group_by.py | 17/17 | 100.0% |
lintro/enums/hadolint_enums.py | 34/36 | 90.0% |
lintro/enums/hyphenated_str_enum.py | 6/6 | 100.0% |
lintro/enums/idiom_review_mode.py | 6/6 | 100.0% |
lintro/enums/install_context.py | 34/34 | 100.0% |
lintro/enums/install_outcome.py | 19/19 | 100.0% |
lintro/enums/issue_category.py | 11/11 | 100.0% |
lintro/enums/node_manager_source.py | 7/7 | 100.0% |
lintro/enums/output_format.py | 20/20 | 100.0% |
lintro/enums/pydoclint_style.py | 0/15 | 0.0% |
lintro/enums/pytest_enums.py | 48/48 | 100.0% |
lintro/enums/review_category.py | 13/13 | 100.0% |
lintro/enums/review_strictness.py | 8/8 | 100.0% |
lintro/enums/risk_level.py | 10/10 | 100.0% |
lintro/enums/semgrep_enums.py | 14/14 | 100.0% |
lintro/enums/severity_level.py | 17/17 | 100.0% |
lintro/enums/tool_name.py | 56/56 | 100.0% |
lintro/enums/tool_option_key.py | 5/5 | 100.0% |
lintro/enums/tool_run_status.py | 23/23 | 100.0% |
lintro/enums/tool_status.py | 9/9 | 100.0% |
lintro/enums/tool_type.py | 15/20 | 75.0% |
lintro/enums/tools_value.py | 11/11 | 100.0% |
lintro/enums/update_channel.py | 12/12 | 100.0% |
lintro/enums/uppercase_str_enum.py | 6/6 | 100.0% |
lintro/enums/validation_code.py | 10/10 | 100.0% |
lintro/enums/verify_status.py | 6/6 | 100.0% |
lintro/enums/yamllint_format.py | 14/17 | 84.2% |
lintro/exceptions/__init__.py | 0/0 | 100.0% |
lintro/exceptions/errors.py | 9/9 | 100.0% |
lintro/formatters/__init__.py | 4/4 | 100.0% |
lintro/formatters/core/__init__.py | 2/2 | 100.0% |
lintro/formatters/core/format_registry.py | 43/48 | 87.5% |
lintro/formatters/formatter.py | 116/121 | 93.9% |
lintro/formatters/styles/__init__.py | 8/8 | 100.0% |
lintro/formatters/styles/csv.py | 15/15 | 100.0% |
lintro/formatters/styles/github.py | 50/52 | 90.8% |
lintro/formatters/styles/grid.py | 24/27 | 88.6% |
lintro/formatters/styles/html.py | 16/16 | 100.0% |
lintro/formatters/styles/json.py | 23/23 | 94.3% |
lintro/formatters/styles/markdown.py | 15/15 | 100.0% |
lintro/formatters/styles/plain.py | 14/14 | 100.0% |
lintro/licenses/__init__.py | 2/2 | 100.0% |
lintro/licenses/attribution.py | 23/23 | 100.0% |
lintro/licenses/detector.py | 0/16 | 0.0% |
lintro/licenses/ecosystems/__init__.py | 3/3 | 100.0% |
lintro/licenses/ecosystems/npm.py | 105/125 | 79.6% |
lintro/licenses/ecosystems/python.py | 48/49 | 95.7% |
lintro/licenses/models.py | 24/24 | 100.0% |
lintro/licenses/policy_engine.py | 48/49 | 97.3% |
lintro/licenses/report.py | 60/63 | 92.4% |
lintro/licenses/spdx.py | 156/177 | 84.6% |
lintro/mcp/__init__.py | 59/64 | 93.0% |
lintro/mcp/annotations.py | 7/7 | 100.0% |
lintro/mcp/enums/__init__.py | 3/3 | 100.0% |
lintro/mcp/enums/mcp_error_code.py | 8/8 | 100.0% |
lintro/mcp/errors.py | 41/41 | 100.0% |
lintro/mcp/registry.py | 67/68 | 97.9% |
lintro/mcp/server.py | 83/91 | 91.3% |
lintro/mcp/toolkits/__init__.py | 5/5 | 100.0% |
lintro/mcp/toolkits/introspection.py | 91/91 | 98.3% |
lintro/mcp/toolkits/lint.py | 56/56 | 100.0% |
lintro/mcp/toolkits/review.py | 156/163 | 94.8% |
lintro/mcp/toolkits/runner.py | 48/48 | 96.4% |
lintro/mcp/toolkits/snapshot.py | 76/79 | 94.2% |
lintro/mcp/validation.py | 28/28 | 100.0% |
lintro/models/__init__.py | 0/0 | 100.0% |
lintro/models/core/__init__.py | 6/6 | 100.0% |
lintro/models/core/base_tool_options.py | 6/6 | 100.0% |
lintro/models/core/black_options.py | 8/8 | 100.0% |
lintro/models/core/claim.py | 19/19 | 100.0% |
lintro/models/core/node_manager_commands.py | 7/7 | 100.0% |
lintro/models/core/prettier_options.py | 0/16 | 0.0% |
lintro/models/core/pytest_options.py | 22/22 | 100.0% |
lintro/models/core/ruff_options.py | 16/16 | 100.0% |
lintro/models/core/run_artifact.py | 27/27 | 100.0% |
lintro/models/core/sarif_enrichment.py | 7/7 | 100.0% |
lintro/models/core/severity_counts.py | 36/37 | 97.4% |
lintro/models/core/tool_result.py | 44/46 | 93.5% |
lintro/models/core/yamllint_options.py | 6/6 | 100.0% |
lintro/parsers/__init__.py | 9/15 | 52.9% |
lintro/parsers/actionlint/__init__.py | 3/3 | 100.0% |
lintro/parsers/actionlint/actionlint_issue.py | 8/8 | 100.0% |
lintro/parsers/actionlint/actionlint_parser.py | 27/27 | 97.3% |
lintro/parsers/astro_check/__init__.py | 3/3 | 100.0% |
lintro/parsers/astro_check/astro_check_issue.py | 8/8 | 100.0% |
lintro/parsers/astro_check/astro_check_parser.py | 46/55 | 84.0% |
lintro/parsers/bandit/__init__.py | 3/3 | 100.0% |
lintro/parsers/bandit/bandit_issue.py | 21/21 | 100.0% |
lintro/parsers/bandit/bandit_parser.py | 39/50 | 77.3% |
lintro/parsers/base_issue.py | 38/38 | 100.0% |
lintro/parsers/base_parser.py | 75/75 | 100.0% |
lintro/parsers/black/__init__.py | 3/3 | 100.0% |
lintro/parsers/black/black_issue.py | 11/11 | 100.0% |
lintro/parsers/black/black_parser.py | 43/57 | 73.5% |
lintro/parsers/buf/__init__.py | 4/4 | 100.0% |
lintro/parsers/buf/buf_issue.py | 14/14 | 100.0% |
lintro/parsers/buf/buf_parser.py | 50/52 | 94.6% |
lintro/parsers/cargo_audit/__init__.py | 0/0 | 100.0% |
lintro/parsers/cargo_audit/cargo_audit_issue.py | 18/19 | 90.5% |
lintro/parsers/cargo_audit/cargo_audit_parser.py | 65/76 | 83.0% |
lintro/parsers/cargo_deny/__init__.py | 3/3 | 100.0% |
lintro/parsers/cargo_deny/cargo_deny_issue.py | 32/32 | 88.6% |
lintro/parsers/cargo_deny/cargo_deny_parser.py | 71/87 | 76.4% |
lintro/parsers/checkov/__init__.py | 3/3 | 100.0% |
lintro/parsers/checkov/checkov_issue.py | 23/23 | 100.0% |
lintro/parsers/checkov/checkov_parser.py | 71/75 | 92.7% |
lintro/parsers/clippy/__init__.py | 3/3 | 100.0% |
lintro/parsers/clippy/clippy_issue.py | 11/11 | 100.0% |
lintro/parsers/clippy/clippy_parser.py | 53/67 | 75.3% |
lintro/parsers/commitlint/__init__.py | 3/3 | 100.0% |
lintro/parsers/commitlint/commitlint_issue.py | 10/10 | 100.0% |
lintro/parsers/commitlint/commitlint_parser.py | 35/35 | 97.9% |
lintro/parsers/cppcheck/__init__.py | 3/3 | 100.0% |
lintro/parsers/cppcheck/cppcheck_issue.py | 10/10 | 100.0% |
lintro/parsers/cppcheck/cppcheck_parser.py | 40/43 | 92.7% |
lintro/parsers/dotenv_linter/__init__.py | 3/3 | 100.0% |
lintro/parsers/dotenv_linter/dotenv_linter_issue.py | 10/10 | 100.0% |
lintro/parsers/dotenv_linter/dotenv_linter_parser.py | 18/18 | 100.0% |
lintro/parsers/gitleaks/__init__.py | 3/3 | 100.0% |
lintro/parsers/gitleaks/gitleaks_issue.py | 29/29 | 100.0% |
lintro/parsers/gitleaks/gitleaks_parser.py | 57/60 | 96.2% |
lintro/parsers/golangci_lint/__init__.py | 3/3 | 100.0% |
lintro/parsers/golangci_lint/golangci_lint_issue.py | 10/10 | 100.0% |
lintro/parsers/golangci_lint/golangci_lint_parser.py | 48/54 | 87.8% |
lintro/parsers/hadolint/__init__.py | 4/9 | 36.4% |
lintro/parsers/hadolint/hadolint_issue.py | 8/8 | 100.0% |
lintro/parsers/hadolint/hadolint_parser.py | 19/19 | 100.0% |
lintro/parsers/html_validate/__init__.py | 3/3 | 100.0% |
lintro/parsers/html_validate/html_validate_issue.py | 11/11 | 100.0% |
lintro/parsers/html_validate/html_validate_parser.py | 32/37 | 82.5% |
lintro/parsers/idiom_review/__init__.py | 4/4 | 100.0% |
lintro/parsers/idiom_review/idiom_review_issue.py | 14/14 | 100.0% |
lintro/parsers/idiom_review/idiom_review_parser.py | 86/90 | 92.4% |
lintro/parsers/import_linter/__init__.py | 3/3 | 100.0% |
lintro/parsers/import_linter/import_linter_issue.py | 9/9 | 100.0% |
lintro/parsers/import_linter/import_linter_parser.py | 83/83 | 99.1% |
lintro/parsers/markdownlint/__init__.py | 3/3 | 100.0% |
lintro/parsers/markdownlint/markdownlint_issue.py | 8/8 | 100.0% |
lintro/parsers/markdownlint/markdownlint_parser.py | 31/33 | 93.3% |
lintro/parsers/mypy/__init__.py | 3/3 | 100.0% |
lintro/parsers/mypy/mypy_issue.py | 9/9 | 100.0% |
lintro/parsers/mypy/mypy_parser.py | 56/71 | 80.6% |
lintro/parsers/osv_scanner/__init__.py | 6/6 | 100.0% |
lintro/parsers/osv_scanner/osv_scanner_issue.py | 23/23 | 100.0% |
lintro/parsers/osv_scanner/osv_scanner_parser.py | 101/122 | 78.4% |
lintro/parsers/osv_scanner/suppression_models.py | 13/13 | 100.0% |
lintro/parsers/osv_scanner/suppression_parser.py | 46/49 | 91.5% |
lintro/parsers/osv_scanner/suppression_status.py | 5/5 | 100.0% |
lintro/parsers/oxfmt/__init__.py | 3/3 | 100.0% |
lintro/parsers/oxfmt/oxfmt_issue.py | 8/8 | 100.0% |
lintro/parsers/oxfmt/oxfmt_parser.py | 26/29 | 92.7% |
lintro/parsers/oxlint/__init__.py | 3/3 | 100.0% |
lintro/parsers/oxlint/oxlint_issue.py | 8/8 | 100.0% |
lintro/parsers/oxlint/oxlint_parser.py | 48/59 | 82.7% |
lintro/parsers/pip_audit/__init__.py | 3/3 | 100.0% |
lintro/parsers/pip_audit/pip_audit_issue.py | 20/20 | 100.0% |
lintro/parsers/pip_audit/pip_audit_parser.py | 48/51 | 92.2% |
lintro/parsers/prettier/__init__.py | 3/3 | 100.0% |
lintro/parsers/prettier/prettier_issue.py | 8/8 | 100.0% |
lintro/parsers/prettier/prettier_parser.py | 19/22 | 90.6% |
lintro/parsers/pydoclint/__init__.py | 3/3 | 100.0% |
lintro/parsers/pydoclint/pydoclint_issue.py | 9/9 | 100.0% |
lintro/parsers/pydoclint/pydoclint_parser.py | 33/36 | 91.7% |
lintro/parsers/pylint/__init__.py | 3/3 | 100.0% |
lintro/parsers/pylint/pylint_issue.py | 16/16 | 94.4% |
lintro/parsers/pylint/pylint_parser.py | 30/30 | 100.0% |
lintro/parsers/pytest/__init__.py | 3/3 | 100.0% |
lintro/parsers/pytest/format_parsers.py | 150/172 | 85.3% |
lintro/parsers/pytest/models.py | 12/12 | 100.0% |
lintro/parsers/pytest/pytest_issue.py | 11/11 | 100.0% |
lintro/parsers/pytest/pytest_parser.py | 14/14 | 100.0% |
lintro/parsers/pytest/summary_extractor.py | 30/32 | 91.7% |
lintro/parsers/ruff/__init__.py | 4/4 | 100.0% |
lintro/parsers/ruff/ruff_format_issue.py | 10/10 | 100.0% |
lintro/parsers/ruff/ruff_issue.py | 10/10 | 100.0% |
lintro/parsers/ruff/ruff_parser.py | 61/76 | 76.9% |
lintro/parsers/rustfmt/__init__.py | 0/0 | 100.0% |
lintro/parsers/rustfmt/rustfmt_issue.py | 10/10 | 100.0% |
lintro/parsers/rustfmt/rustfmt_parser.py | 32/34 | 93.8% |
lintro/parsers/sarif/__init__.py | 3/3 | 100.0% |
lintro/parsers/sarif/sarif_issue.py | 13/13 | 100.0% |
lintro/parsers/sarif/sarif_parser.py | 100/108 | 90.0% |
lintro/parsers/semgrep/__init__.py | 3/3 | 100.0% |
lintro/parsers/semgrep/semgrep_issue.py | 24/24 | 90.0% |
lintro/parsers/semgrep/semgrep_parser.py | 57/63 | 90.6% |
lintro/parsers/shellcheck/__init__.py | 3/3 | 100.0% |
lintro/parsers/shellcheck/shellcheck_issue.py | 11/11 | 100.0% |
lintro/parsers/shellcheck/shellcheck_parser.py | 37/40 | 92.3% |
lintro/parsers/shfmt/__init__.py | 3/3 | 100.0% |
lintro/parsers/shfmt/shfmt_issue.py | 10/10 | 100.0% |
lintro/parsers/shfmt/shfmt_parser.py | 43/46 | 93.9% |
lintro/parsers/spectral/__init__.py | 3/3 | 100.0% |
lintro/parsers/spectral/spectral_issue.py | 19/19 | 95.7% |
lintro/parsers/spectral/spectral_parser.py | 77/85 | 90.9% |
lintro/parsers/sqlfluff/__init__.py | 3/3 | 100.0% |
lintro/parsers/sqlfluff/sqlfluff_issue.py | 11/11 | 100.0% |
lintro/parsers/sqlfluff/sqlfluff_parser.py | 37/39 | 93.9% |
lintro/parsers/streaming.py | 77/85 | 90.4% |
lintro/parsers/stylelint/__init__.py | 3/3 | 100.0% |
lintro/parsers/stylelint/stylelint_issue.py | 7/7 | 100.0% |
lintro/parsers/stylelint/stylelint_parser.py | 79/91 | 84.7% |
lintro/parsers/svelte_check/__init__.py | 3/3 | 100.0% |
lintro/parsers/svelte_check/svelte_check_issue.py | 9/9 | 100.0% |
lintro/parsers/svelte_check/svelte_check_parser.py | 86/99 | 86.8% |
lintro/parsers/taplo/__init__.py | 4/4 | 100.0% |
lintro/parsers/taplo/taplo_issue.py | 9/9 | 100.0% |
lintro/parsers/taplo/taplo_parser.py | 41/41 | 96.2% |
lintro/parsers/trufflehog/__init__.py | 4/4 | 100.0% |
lintro/parsers/trufflehog/trufflehog_errors.py | 80/86 | 92.2% |
lintro/parsers/trufflehog/trufflehog_issue.py | 27/27 | 100.0% |
lintro/parsers/trufflehog/trufflehog_parser.py | 68/74 | 90.6% |
lintro/parsers/tsc/__init__.py | 3/3 | 100.0% |
lintro/parsers/tsc/tsc_issue.py | 9/9 | 100.0% |
lintro/parsers/tsc/tsc_parser.py | 53/57 | 93.5% |
lintro/parsers/typos/__init__.py | 3/3 | 100.0% |
lintro/parsers/typos/typos_issue.py | 14/14 | 100.0% |
lintro/parsers/typos/typos_parser.py | 91/91 | 100.0% |
lintro/parsers/vale/__init__.py | 3/3 | 100.0% |
lintro/parsers/vale/vale_issue.py | 13/13 | 100.0% |
lintro/parsers/vale/vale_parser.py | 34/35 | 96.2% |
lintro/parsers/vue_tsc/__init__.py | 3/3 | 100.0% |
lintro/parsers/vue_tsc/vue_tsc_issue.py | 7/7 | 100.0% |
lintro/parsers/vue_tsc/vue_tsc_parser.py | 53/57 | 90.9% |
lintro/parsers/yamllint/__init__.py | 3/3 | 100.0% |
lintro/parsers/yamllint/yamllint_issue.py | 9/9 | 100.0% |
lintro/parsers/yamllint/yamllint_parser.py | 28/37 | 78.7% |
lintro/plugins/__init__.py | 4/4 | 100.0% |
lintro/plugins/_builtin_index.py | 3/3 | 100.0% |
lintro/plugins/base.py | 148/152 | 97.3% |
lintro/plugins/discovery.py | 226/238 | 93.9% |
lintro/plugins/execution_preparation.py | 115/120 | 94.2% |
lintro/plugins/file_discovery.py | 45/49 | 91.0% |
lintro/plugins/file_processor.py | 68/69 | 98.9% |
lintro/plugins/protocol.py | 41/43 | 91.8% |
lintro/plugins/registry.py | 80/82 | 95.7% |
lintro/plugins/subprocess_executor.py | 117/131 | 86.9% |
lintro/plugins/subprocess_failure.py | 19/23 | 81.1% |
lintro/profiling/__init__.py | 4/4 | 100.0% |
lintro/profiling/models.py | 18/18 | 100.0% |
lintro/profiling/report.py | 62/62 | 97.4% |
lintro/profiling/suggestions.py | 23/23 | 97.3% |
lintro/tools/__init__.py | 6/6 | 100.0% |
lintro/tools/actionlint/__init__.py | 2/2 | 100.0% |
lintro/tools/actionlint/definition.py | 60/74 | 78.6% |
lintro/tools/astro_check/__init__.py | 2/2 | 100.0% |
lintro/tools/astro_check/definition.py | 105/119 | 86.1% |
lintro/tools/bandit/__init__.py | 2/2 | 100.0% |
lintro/tools/bandit/definition.py | 145/189 | 70.5% |
lintro/tools/black/__init__.py | 2/2 | 100.0% |
lintro/tools/black/definition.py | 119/141 | 79.7% |
lintro/tools/buf/__init__.py | 2/2 | 100.0% |
lintro/tools/buf/definition.py | 153/162 | 94.6% |
lintro/tools/cargo_audit/__init__.py | 2/2 | 100.0% |
lintro/tools/cargo_audit/definition.py | 71/73 | 91.8% |
lintro/tools/cargo_deny/__init__.py | 2/2 | 100.0% |
lintro/tools/cargo_deny/definition.py | 38/52 | 70.7% |
lintro/tools/checkov/__init__.py | 2/2 | 100.0% |
lintro/tools/checkov/definition.py | 90/90 | 100.0% |
lintro/tools/clippy/__init__.py | 2/2 | 100.0% |
lintro/tools/clippy/definition.py | 73/87 | 82.2% |
lintro/tools/commitlint/__init__.py | 2/2 | 100.0% |
lintro/tools/commitlint/definition.py | 61/63 | 97.3% |
lintro/tools/core/__init__.py | 0/0 | 100.0% |
lintro/tools/core/argv_batching.py | 47/47 | 100.0% |
lintro/tools/core/batch_runner.py | 120/137 | 85.5% |
lintro/tools/core/cargo.py | 182/190 | 94.7% |
lintro/tools/core/check_runner.py | 30/30 | 100.0% |
lintro/tools/core/command_builders.py | 185/202 | 89.1% |
lintro/tools/core/config_injection.py | 40/48 | 77.1% |
lintro/tools/core/fix_runner.py | 101/103 | 96.9% |
lintro/tools/core/install_context.py | 60/62 | 94.3% |
lintro/tools/core/install_hints.py | 22/31 | 64.9% |
lintro/tools/core/install_lock.py | 24/53 | 36.9% |
lintro/tools/core/install_plan.py | 30/30 | 100.0% |
lintro/tools/core/install_quickfix.py | 50/52 | 95.9% |
lintro/tools/core/install_strategies/__init__.py | 5/5 | 100.0% |
lintro/tools/core/install_strategies/base.py | 14/14 | 100.0% |
lintro/tools/core/install_strategies/binary_strategy.py | 29/33 | 82.9% |
lintro/tools/core/install_strategies/cargo_strategy.py | 21/22 | 95.8% |
lintro/tools/core/install_strategies/environment.py | 30/30 | 97.4% |
lintro/tools/core/install_strategies/node_project.py | 101/102 | 97.9% |
lintro/tools/core/install_strategies/npm_strategy.py | 69/71 | 96.0% |
lintro/tools/core/install_strategies/package_names.py | 14/15 | 89.5% |
lintro/tools/core/install_strategies/pip_strategy.py | 43/45 | 93.4% |
lintro/tools/core/install_strategies/registry.py | 12/14 | 81.2% |
lintro/tools/core/install_strategies/rustup_strategy.py | 21/22 | 96.2% |
lintro/tools/core/line_length_checker.py | 65/67 | 95.3% |
lintro/tools/core/manifest_models.py | 24/24 | 100.0% |
lintro/tools/core/node_fallback.py | 51/53 | 94.2% |
lintro/tools/core/node_modules.py | 23/23 | 100.0% |
lintro/tools/core/option_spec.py | 90/91 | 94.7% |
lintro/tools/core/option_validators.py | 59/59 | 100.0% |
lintro/tools/core/runtime_discovery.py | 113/129 | 84.7% |
lintro/tools/core/scheduler.py | 298/309 | 94.9% |
lintro/tools/core/timeout_utils.py | 26/26 | 100.0% |
lintro/tools/core/tool_installer.py | 207/256 | 78.1% |
lintro/tools/core/tool_manager.py | 73/74 | 97.9% |
lintro/tools/core/tool_registry.py | 127/155 | 78.1% |
lintro/tools/core/tool_scopes.py | 136/140 | 95.9% |
lintro/tools/core/update_channels.py | 202/231 | 88.2% |
lintro/tools/core/verify_pass.py | 246/249 | 98.2% |
lintro/tools/core/version_checking.py | 72/75 | 94.1% |
lintro/tools/core/version_parsing.py | 158/167 | 94.1% |
lintro/tools/core/version_requirements.py | 16/23 | 70.4% |
lintro/tools/cppcheck/__init__.py | 2/2 | 100.0% |
lintro/tools/cppcheck/definition.py | 77/77 | 99.0% |
lintro/tools/dotenv_linter/__init__.py | 2/2 | 100.0% |
lintro/tools/dotenv_linter/definition.py | 67/68 | 97.7% |
lintro/tools/gitleaks/__init__.py | 2/2 | 100.0% |
lintro/tools/gitleaks/definition.py | 115/121 | 91.6% |
lintro/tools/golangci_lint/__init__.py | 2/2 | 100.0% |
lintro/tools/golangci_lint/definition.py | 135/143 | 92.0% |
lintro/tools/hadolint/__init__.py | 2/2 | 100.0% |
lintro/tools/hadolint/definition.py | 85/85 | 100.0% |
lintro/tools/html_validate/__init__.py | 2/2 | 100.0% |
lintro/tools/html_validate/definition.py | 70/71 | 96.4% |
lintro/tools/idiom_review/__init__.py | 6/10 | 50.0% |
lintro/tools/idiom_review/definition.py | 102/111 | 89.5% |
lintro/tools/idiom_review/engine.py | 68/76 | 89.1% |
lintro/tools/idiom_review/prompts.py | 21/21 | 100.0% |
lintro/tools/idiom_review/signatures.py | 53/56 | 91.4% |
lintro/tools/import_linter/__init__.py | 2/2 | 100.0% |
lintro/tools/import_linter/definition.py | 79/82 | 97.1% |
lintro/tools/markdownlint/__init__.py | 2/2 | 100.0% |
lintro/tools/markdownlint/definition.py | 75/99 | 73.6% |
lintro/tools/mypy/__init__.py | 2/2 | 100.0% |
lintro/tools/mypy/definition.py | 169/185 | 87.3% |
lintro/tools/osv_scanner/__init__.py | 2/2 | 100.0% |
lintro/tools/osv_scanner/definition.py | 150/157 | 95.1% |
lintro/tools/oxfmt/__init__.py | 2/2 | 100.0% |
lintro/tools/oxfmt/definition.py | 86/94 | 86.4% |
lintro/tools/oxlint/__init__.py | 3/3 | 100.0% |
lintro/tools/oxlint/definition.py | 117/127 | 88.4% |
lintro/tools/oxlint/doctor.py | 55/76 | 68.6% |
lintro/tools/pip_audit/__init__.py | 2/2 | 100.0% |
lintro/tools/pip_audit/definition.py | 133/137 | 94.2% |
lintro/tools/prettier/__init__.py | 2/2 | 100.0% |
lintro/tools/prettier/definition.py | 120/142 | 79.1% |
lintro/tools/pydoclint/__init__.py | 2/2 | 100.0% |
lintro/tools/pydoclint/definition.py | 35/35 | 100.0% |
lintro/tools/pylint/__init__.py | 2/2 | 100.0% |
lintro/tools/pylint/definition.py | 146/149 | 98.5% |
lintro/tools/pytest/__init__.py | 4/4 | 100.0% |
lintro/tools/pytest/addopts_coverage.py | 78/92 | 82.5% |
lintro/tools/pytest/collection.py | 79/111 | 65.6% |
lintro/tools/pytest/coverage_processor.py | 16/68 | 18.6% |
lintro/tools/pytest/coverage_source.py | 78/80 | 98.3% |
lintro/tools/pytest/definition.py | 121/142 | 76.6% |
lintro/tools/pytest/formatters.py | 112/158 | 65.3% |
lintro/tools/pytest/markers.py | 31/64 | 47.3% |
lintro/tools/pytest/output.py | 49/79 | 54.8% |
lintro/tools/pytest/output_parsers.py | 47/59 | 75.8% |
lintro/tools/pytest/pytest_command_builder.py | 99/134 | 67.7% |
lintro/tools/pytest/pytest_config.py | 76/79 | 93.2% |
lintro/tools/pytest/pytest_error_handler.py | 15/23 | 55.2% |
lintro/tools/pytest/pytest_executor.py | 38/45 | 77.0% |
lintro/tools/pytest/pytest_handlers.py | 118/118 | 98.8% |
lintro/tools/pytest/pytest_option_validators.py | 50/78 | 64.5% |
lintro/tools/pytest/pytest_output_processor.py | 6/6 | 100.0% |
lintro/tools/pytest/pytest_result_processor.py | 22/22 | 100.0% |
lintro/tools/pytest/test_analytics.py | 45/54 | 78.2% |
lintro/tools/ruff/__init__.py | 5/5 | 100.0% |
lintro/tools/ruff/check.py | 56/56 | 100.0% |
lintro/tools/ruff/commands.py | 56/67 | 81.0% |
lintro/tools/ruff/definition.py | 90/93 | 93.2% |
lintro/tools/ruff/fix.py | 110/111 | 97.8% |
lintro/tools/ruff/paths.py | 9/10 | 85.7% |
lintro/tools/rustfmt/__init__.py | 2/2 | 100.0% |
lintro/tools/rustfmt/definition.py | 66/67 | 97.4% |
lintro/tools/semgrep/__init__.py | 2/2 | 100.0% |
lintro/tools/semgrep/definition.py | 124/137 | 88.1% |
lintro/tools/shellcheck/__init__.py | 2/2 | 100.0% |
lintro/tools/shellcheck/definition.py | 81/81 | 100.0% |
lintro/tools/shfmt/__init__.py | 2/2 | 100.0% |
lintro/tools/shfmt/definition.py | 69/70 | 97.8% |
lintro/tools/spectral/__init__.py | 2/2 | 100.0% |
lintro/tools/spectral/definition.py | 119/123 | 95.7% |
lintro/tools/sqlfluff/__init__.py | 2/2 | 100.0% |
lintro/tools/sqlfluff/definition.py | 81/81 | 100.0% |
lintro/tools/stylelint/__init__.py | 2/2 | 100.0% |
lintro/tools/stylelint/definition.py | 112/125 | 87.3% |
lintro/tools/svelte_check/__init__.py | 2/2 | 100.0% |
lintro/tools/svelte_check/definition.py | 84/96 | 86.5% |
lintro/tools/taplo/__init__.py | 2/2 | 100.0% |
lintro/tools/taplo/definition.py | 136/138 | 98.8% |
lintro/tools/trufflehog/__init__.py | 2/2 | 100.0% |
lintro/tools/trufflehog/definition.py | 132/135 | 97.7% |
lintro/tools/ts_checker/__init__.py | 2/2 | 100.0% |
lintro/tools/ts_checker/base.py | 52/55 | 94.5% |
lintro/tools/ts_checker/command.py | 50/51 | 96.2% |
lintro/tools/ts_checker/execution.py | 140/193 | 70.4% |
lintro/tools/tsc/__init__.py | 2/2 | 100.0% |
lintro/tools/tsc/definition.py | 63/63 | 96.1% |
lintro/tools/typos/__init__.py | 2/2 | 100.0% |
lintro/tools/typos/definition.py | 143/150 | 94.9% |
lintro/tools/vale/__init__.py | 2/2 | 100.0% |
lintro/tools/vale/definition.py | 65/67 | 97.5% |
lintro/tools/vue_tsc/__init__.py | 2/2 | 100.0% |
lintro/tools/vue_tsc/definition.py | 45/45 | 100.0% |
lintro/tools/yamllint/__init__.py | 2/2 | 100.0% |
lintro/tools/yamllint/definition.py | 129/190 | 63.9% |
lintro/utils/__init__.py | 0/0 | 100.0% |
lintro/utils/ascii_normalize_cli.py | 39/39 | 100.0% |
lintro/utils/async_tool_executor.py | 78/88 | 85.5% |
lintro/utils/config.py | 120/132 | 89.5% |
lintro/utils/config_constants.py | 13/13 | 100.0% |
lintro/utils/config_priority.py | 39/40 | 96.7% |
lintro/utils/config_reporting.py | 51/51 | 100.0% |
lintro/utils/config_validation.py | 38/43 | 82.5% |
lintro/utils/console/__init__.py | 7/7 | 100.0% |
lintro/utils/console/constants.py | 16/18 | 85.0% |
lintro/utils/console/logger.py | 183/185 | 97.5% |
lintro/utils/console/pre_execution_summary.py | 37/44 | 79.7% |
lintro/utils/display_helpers.py | 75/75 | 100.0% |
lintro/utils/doctor_report.py | 191/206 | 91.0% |
lintro/utils/duplicate_code.py | 51/52 | 96.9% |
lintro/utils/env.py | 10/12 | 78.6% |
lintro/utils/environment/__init__.py | 15/15 | 100.0% |
lintro/utils/environment/_protocol.py | 8/8 | 100.0% |
lintro/utils/environment/ci_environment.py | 11/17 | 57.9% |
lintro/utils/environment/collectors.py | 137/179 | 69.2% |
lintro/utils/environment/container_detection.py | 16/22 | 67.6% |
lintro/utils/environment/environment_report.py | 23/23 | 100.0% |
lintro/utils/environment/go_info.py | 11/14 | 78.6% |
lintro/utils/environment/lintro_info.py | 12/19 | 57.1% |
lintro/utils/environment/node_info.py | 13/16 | 81.2% |
lintro/utils/environment/project_info.py | 12/18 | 60.0% |
lintro/utils/environment/python_info.py | 13/16 | 81.2% |
lintro/utils/environment/renderer.py | 13/60 | 16.2% |
lintro/utils/environment/ruby_info.py | 11/14 | 78.6% |
lintro/utils/environment/rust_info.py | 12/15 | 80.0% |
lintro/utils/environment/system_info.py | 15/22 | 62.5% |
lintro/utils/execution/__init__.py | 4/4 | 100.0% |
lintro/utils/execution/advisory.py | 95/96 | 98.5% |
lintro/utils/execution/exit_codes.py | 37/37 | 100.0% |
lintro/utils/execution/fix_retry.py | 24/26 | 91.7% |
lintro/utils/execution/parallel_executor.py | 63/63 | 100.0% |
lintro/utils/execution/result_shaping.py | 37/38 | 96.6% |
lintro/utils/execution/run_aggregation.py | 35/36 | 95.5% |
lintro/utils/execution/run_context.py | 14/14 | 100.0% |
lintro/utils/execution/run_preflight.py | 50/74 | 65.3% |
lintro/utils/execution/run_renderer.py | 185/205 | 89.8% |
lintro/utils/execution/tool_configuration.py | 253/263 | 95.0% |
lintro/utils/file_cache.py | 117/142 | 83.0% |
lintro/utils/findings.py | 74/76 | 97.8% |
lintro/utils/formatting.py | 65/74 | 81.8% |
lintro/utils/gates.py | 45/47 | 92.5% |
lintro/utils/git_diff.py | 145/172 | 81.8% |
lintro/utils/issue_category.py | 85/93 | 88.7% |
lintro/utils/json_output.py | 68/68 | 99.0% |
lintro/utils/jsonc.py | 141/154 | 91.0% |
lintro/utils/logger_setup.py | 13/13 | 100.0% |
lintro/utils/meaningful_run.py | 33/33 | 100.0% |
lintro/utils/module_size.py | 54/56 | 97.1% |
lintro/utils/native_parsers.py | 120/165 | 73.6% |
lintro/utils/node_deps.py | 78/88 | 89.0% |
lintro/utils/output/__init__.py | 5/5 | 100.0% |
lintro/utils/output/constants.py | 5/5 | 100.0% |
lintro/utils/output/file_writer.py | 221/231 | 95.6% |
lintro/utils/output/helpers.py | 9/9 | 100.0% |
lintro/utils/output/manager.py | 187/209 | 89.3% |
lintro/utils/output/parser_registration.py | 47/49 | 96.1% |
lintro/utils/output/parser_registry.py | 31/31 | 100.0% |
lintro/utils/output/sarif/__init__.py | 3/3 | 100.0% |
lintro/utils/output/sarif/bridge.py | 18/18 | 100.0% |
lintro/utils/output/sarif/document.py | 142/142 | 96.2% |
lintro/utils/path_filtering.py | 136/144 | 94.3% |
lintro/utils/path_utils.py | 82/86 | 94.1% |
lintro/utils/plugin_tool_names.py | 32/32 | 97.6% |
lintro/utils/project_detection.py | 128/158 | 79.0% |
lintro/utils/result_formatters.py | 104/184 | 56.8% |
lintro/utils/severity_baseline.py | 38/38 | 100.0% |
lintro/utils/severity_counts.py | 52/52 | 98.7% |
lintro/utils/streaming_output.py | 100/105 | 91.5% |
lintro/utils/summary_tables.py | 204/246 | 81.3% |
lintro/utils/tool_config_info.py | 3/3 | 100.0% |
lintro/utils/tool_executor.py | 164/173 | 94.0% |
lintro/utils/tool_metadata.py | 44/47 | 94.5% |
lintro/utils/tool_options.py | 40/44 | 87.9% |
lintro/utils/tool_utils.py | 4/4 | 100.0% |
lintro/utils/tsconfig.py | 188/233 | 77.3% |
lintro/utils/tsconfig_info.py | 22/22 | 100.0% |
lintro/utils/unified_config.py | 8/8 | 100.0% |
lintro/utils/unified_config_manager.py | 54/54 | 100.0% |
lintro/watch/__init__.py | 5/5 | 100.0% |
lintro/watch/debouncer.py | 91/91 | 99.1% |
lintro/watch/runner.py | 86/88 | 94.5% |
lintro/watch/tool_selection.py | 60/62 | 95.5% |
lintro/watch/watcher.py | 111/117 | 94.2% |
lintro_build/__init__.py | 16/16 | 100.0% |
lintro_build/backend.py | 32/47 | 71.7% |
lintro_build/builtin_index.py | 86/91 | 93.3% |
lintro_build/exit_codes.py | 4/4 | 100.0% |
lintro_build/versions/__init__.py | 9/9 | 100.0% |
lintro_build/versions/errors.py | 2/2 | 100.0% |
lintro_build/versions/generate.py | 79/81 | 97.9% |
lintro_build/versions/inputs.py | 139/154 | 88.0% |
lintro_build/versions/outputs.py | 63/69 | 90.1% |
lintro_build/versions/paths.py | 17/17 | 100.0% |
lintro_build/versions/seed.py | 48/52 | 90.0% |