Python coverage

Overall: 89.2%

FileLinesCovered
lintro/__init__.py1/1100.0%
lintro/_generated_versions.py2/2100.0%
lintro/_tool_packages.py4/4100.0%
lintro/_tool_versions.py88/10778.1%
lintro/ai/__init__.py6/6100.0%
lintro/ai/apply.py70/8090.0%
lintro/ai/audit.py57/7871.1%
lintro/ai/availability.py54/7369.7%
lintro/ai/budget.py59/59100.0%
lintro/ai/cache.py56/6981.2%
lintro/ai/checkpoints.py211/25281.9%
lintro/ai/cli_bounds.py30/30100.0%
lintro/ai/cli_schemas.py35/35100.0%
lintro/ai/config.py227/23495.4%
lintro/ai/config_overrides.py222/23692.2%
lintro/ai/config_views.py56/56100.0%
lintro/ai/cost.py25/2691.2%
lintro/ai/display/__init__.py5/5100.0%
lintro/ai/display/fixes.py92/16353.8%
lintro/ai/display/shared.py28/28100.0%
lintro/ai/display/status.py78/7898.3%
lintro/ai/display/streaming.py18/18100.0%
lintro/ai/display/summary.py122/13093.2%
lintro/ai/display/validation.py25/2691.7%
lintro/ai/doctor_checks.py94/10784.6%
lintro/ai/effective_config.py21/21100.0%
lintro/ai/enums/__init__.py9/9100.0%
lintro/ai/enums/ai_call_kind.py7/7100.0%
lintro/ai/enums/ai_transport.py7/7100.0%
lintro/ai/enums/cli_bare_mode.py7/7100.0%
lintro/ai/enums/config_source.py8/8100.0%
lintro/ai/enums/cost_basis.py7/7100.0%
lintro/ai/enums/sanitize_mode.py6/6100.0%
lintro/ai/exceptions.py28/28100.0%
lintro/ai/fallback.py40/4292.3%
lintro/ai/filters.py21/4147.5%
lintro/ai/fix.py158/19578.8%
lintro/ai/fix_context.py81/9485.8%
lintro/ai/fix_params.py28/28100.0%
lintro/ai/fix_parsing.py72/7496.9%
lintro/ai/hook.py25/2596.6%
lintro/ai/integrations/__init__.py0/0100.0%
lintro/ai/integrations/github_pr.py371/45279.8%
lintro/ai/interactive.py142/19866.9%
lintro/ai/interface.py68/6997.8%
lintro/ai/invoke.py36/3793.0%
lintro/ai/json_response.py132/14586.4%
lintro/ai/liveness.py72/7594.8%
lintro/ai/metadata/__init__.py4/4100.0%
lintro/ai/metadata/fix_suggestion_payload.py21/21100.0%
lintro/ai/metadata/helpers.py34/3594.9%
lintro/ai/metadata/summary_payload.py15/15100.0%
lintro/ai/model_pricing.py17/1984.0%
lintro/ai/models/__init__.py4/4100.0%
lintro/ai/models/fix_suggestion.py18/18100.0%
lintro/ai/models/github_api_response.py10/10100.0%
lintro/ai/models/result.py10/10100.0%
lintro/ai/models/summary.py12/12100.0%
lintro/ai/orchestrator.py125/16670.6%
lintro/ai/output_exhaustion.py18/18100.0%
lintro/ai/paths.py42/5183.1%
lintro/ai/pipeline.py174/23670.1%
lintro/ai/prompts/__init__.py5/5100.0%
lintro/ai/prompts/_loader.py13/13100.0%
lintro/ai/prompts/fix.py6/6100.0%
lintro/ai/prompts/post_fix.py3/3100.0%
lintro/ai/prompts/review.py84/8598.1%
lintro/ai/prompts/summary.py4/4100.0%
lintro/ai/prompts/templates/__init__.py0/0100.0%
lintro/ai/provider_blocks.py33/33100.0%
lintro/ai/provider_config.py50/5196.8%
lintro/ai/provider_enum.py12/12100.0%
lintro/ai/providers/__init__.py31/31100.0%
lintro/ai/providers/_api_common.py18/1990.5%
lintro/ai/providers/anthropic/__init__.py7/7100.0%
lintro/ai/providers/anthropic/cli_contract.py4/4100.0%
lintro/ai/providers/anthropic/config.py14/14100.0%
lintro/ai/providers/anthropic/metadata.py22/22100.0%
lintro/ai/providers/anthropic/plugin.py26/26100.0%
lintro/ai/providers/anthropic/provider.py211/24883.3%
lintro/ai/providers/async_stream_result.py21/21100.0%
lintro/ai/providers/base.py129/14189.3%
lintro/ai/providers/builtins.py18/2280.0%
lintro/ai/providers/capabilities.py8/8100.0%
lintro/ai/providers/claude_auth.py66/6995.5%
lintro/ai/providers/cli_auth_probe.py24/24100.0%
lintro/ai/providers/cli_capabilities.py170/17396.0%
lintro/ai/providers/cli_contract_check.py79/8396.0%
lintro/ai/providers/cli_contracts.py46/4796.2%
lintro/ai/providers/cli_transport.py151/16489.8%
lintro/ai/providers/constants.py3/3100.0%
lintro/ai/providers/cursor/__init__.py7/7100.0%
lintro/ai/providers/cursor/cli_contract.py4/4100.0%
lintro/ai/providers/cursor/config.py13/13100.0%
lintro/ai/providers/cursor/metadata.py10/10100.0%
lintro/ai/providers/cursor/plugin.py26/26100.0%
lintro/ai/providers/cursor/provider.py118/12593.9%
lintro/ai/providers/openai/__init__.py7/7100.0%
lintro/ai/providers/openai/cli_contract.py4/4100.0%
lintro/ai/providers/openai/codex_auth.py25/25100.0%
lintro/ai/providers/openai/config.py9/9100.0%
lintro/ai/providers/openai/metadata.py10/10100.0%
lintro/ai/providers/openai/plugin.py25/25100.0%
lintro/ai/providers/openai/provider.py207/26078.4%
lintro/ai/providers/protocol.py53/53100.0%
lintro/ai/providers/registry.py47/47100.0%
lintro/ai/providers/response.py12/12100.0%
lintro/ai/providers/stream_result.py21/21100.0%
lintro/ai/rate_limit.py42/4593.4%
lintro/ai/raw_response.py76/7992.9%
lintro/ai/refinement.py71/8184.1%
lintro/ai/registry.py35/35100.0%
lintro/ai/rerun.py39/4682.8%
lintro/ai/resolved_ai_config.py29/29100.0%
lintro/ai/retry.py63/7383.9%
lintro/ai/review/__init__.py20/20100.0%
lintro/ai/review/adversarial_pass.py31/3491.7%
lintro/ai/review/agent_prompt_text.py42/4590.2%
lintro/ai/review/agent_prompts.py83/83100.0%
lintro/ai/review/checklist/__init__.py7/7100.0%
lintro/ai/review/checklist/loader.py81/8990.2%
lintro/ai/review/checklist_builtin.py3/3100.0%
lintro/ai/review/checklist_display.py24/24100.0%
lintro/ai/review/checklist_registry.py45/4795.5%
lintro/ai/review/checklist_selector.py43/43100.0%
lintro/ai/review/chunk_call_detail.py11/1287.5%
lintro/ai/review/chunk_halves.py38/38100.0%
lintro/ai/review/chunk_pass.py54/54100.0%
lintro/ai/review/chunk_runner.py137/15285.5%
lintro/ai/review/chunk_split_retry.py94/9599.1%
lintro/ai/review/chunker/__init__.py3/3100.0%
lintro/ai/review/chunker/github_action_paths.py36/3892.9%
lintro/ai/review/chunker/grouping.py287/31191.1%
lintro/ai/review/chunker/shell_run_parse.py416/45887.3%
lintro/ai/review/chunker/workflow_scripts.py127/14885.8%
lintro/ai/review/classifier.py118/12592.7%
lintro/ai/review/cli_limits.py39/39100.0%
lintro/ai/review/commands.py56/56100.0%
lintro/ai/review/confirmation_filter.py22/22100.0%
lintro/ai/review/constants.py9/9100.0%
lintro/ai/review/context/__init__.py3/3100.0%
lintro/ai/review/context/collection.py230/25288.8%
lintro/ai/review/context/diff_parse.py258/29385.9%
lintro/ai/review/context/git_ops.py37/4876.8%
lintro/ai/review/context/pr_metadata.py48/5877.4%
lintro/ai/review/context_windows.py62/6791.6%
lintro/ai/review/convergence.py72/72100.0%
lintro/ai/review/cost_cap.py22/22100.0%
lintro/ai/review/coverage.py163/16498.7%
lintro/ai/review/coverage_degradation.py55/55100.0%
lintro/ai/review/coverage_rounds.py68/6896.7%
lintro/ai/review/cross_chunk_gate.py93/9497.7%
lintro/ai/review/custom_agent_parsing.py103/103100.0%
lintro/ai/review/custom_agent_runner.py106/11294.5%
lintro/ai/review/custom_agent_types.py54/54100.0%
lintro/ai/review/custom_agents.py81/8693.4%
lintro/ai/review/delta.py114/12988.8%
lintro/ai/review/depth_degradation.py15/15100.0%
lintro/ai/review/diff_gate.py148/15098.0%
lintro/ai/review/display.py89/9294.4%
lintro/ai/review/enums/__init__.py18/18100.0%
lintro/ai/review/enums/agent_prompt_scope_kind.py7/7100.0%
lintro/ai/review/enums/changed_file_status.py9/9100.0%
lintro/ai/review/enums/checklist_display.py3/3100.0%
lintro/ai/review/enums/comment_action.py7/7100.0%
lintro/ai/review/enums/comment_kind.py7/7100.0%
lintro/ai/review/enums/coverage_degradation_reason.py16/16100.0%
lintro/ai/review/enums/cross_chunk_contradiction.py5/5100.0%
lintro/ai/review/enums/custom_agent_mode.py3/3100.0%
lintro/ai/review/enums/delta_reason.py14/14100.0%
lintro/ai/review/enums/evidence_style.py16/16100.0%
lintro/ai/review/enums/file_domain.py3/3100.0%
lintro/ai/review/enums/file_review_need.py12/12100.0%
lintro/ai/review/enums/file_skip_reason.py12/12100.0%
lintro/ai/review/enums/finding_kind.py5/5100.0%
lintro/ai/review/enums/finding_match_outcome.py7/7100.0%
lintro/ai/review/enums/finding_origin.py4/4100.0%
lintro/ai/review/enums/finding_status.py6/6100.0%
lintro/ai/review/enums/fix_mode.py5/5100.0%
lintro/ai/review/enums/inline_post_failure_kind.py20/20100.0%
lintro/ai/review/enums/lifecycle_stage.py7/7100.0%
lintro/ai/review/enums/question_failure_kind.py10/10100.0%
lintro/ai/review/enums/review_category.py3/3100.0%
lintro/ai/review/enums/review_checkout.py8/8100.0%
lintro/ai/review/enums/review_context_error_code.py21/21100.0%
lintro/ai/review/enums/review_strictness.py3/3100.0%
lintro/ai/review/enums/review_verdict.py8/8100.0%
lintro/ai/review/enums/severity_downgrade_reason.py13/13100.0%
lintro/ai/review/enums/suggestion_drop_reason.py7/7100.0%
lintro/ai/review/enums/suggestion_rejection.py12/12100.0%
lintro/ai/review/enums/verification_outcome.py6/6100.0%
lintro/ai/review/error_contract.py19/19100.0%
lintro/ai/review/error_display.py54/6476.5%
lintro/ai/review/errors_taxonomy.py100/100100.0%
lintro/ai/review/exceptions.py29/3291.7%
lintro/ai/review/file_language.py45/4598.4%
lintro/ai/review/file_selection.py24/24100.0%
lintro/ai/review/finding_carry.py28/28100.0%
lintro/ai/review/finding_identity.py51/51100.0%
lintro/ai/review/finding_matcher.py116/12095.1%
lintro/ai/review/finding_pairing.py47/47100.0%
lintro/ai/review/finding_parser.py83/8991.6%
lintro/ai/review/github.py90/9294.9%
lintro/ai/review/github_badges.py50/50100.0%
lintro/ai/review/github_constants.py21/21100.0%
lintro/ai/review/github_contract.py76/8786.0%
lintro/ai/review/github_errors.py55/5597.1%
lintro/ai/review/github_inline.py77/7898.0%
lintro/ai/review/github_notes.py101/101100.0%
lintro/ai/review/github_render.py79/8983.5%
lintro/ai/review/github_review_body.py120/12594.6%
lintro/ai/review/github_status.py33/3592.7%
lintro/ai/review/glob_utils.py77/77100.0%
lintro/ai/review/group_labels.py7/7100.0%
lintro/ai/review/import_graph.py59/7178.0%
lintro/ai/review/incremental_coverage.py47/47100.0%
lintro/ai/review/inline_fix.py51/51100.0%
lintro/ai/review/interrupt.py26/3083.3%
lintro/ai/review/lifecycle/__init__.py1/1100.0%
lintro/ai/review/lifecycle/banners.py52/5296.9%
lintro/ai/review/lifecycle/comments.py89/8999.2%
lintro/ai/review/lifecycle/decision.py21/21100.0%
lintro/ai/review/lifecycle/markers.py24/24100.0%
lintro/ai/review/lifecycle/round.py57/6484.9%
lintro/ai/review/lifecycle/state.py72/8089.2%
lintro/ai/review/lifecycle/threads.py85/9093.2%
lintro/ai/review/lint_bridge.py138/15587.9%
lintro/ai/review/merge.py50/50100.0%
lintro/ai/review/models/__init__.py35/35100.0%
lintro/ai/review/models/_coerce.py13/13100.0%
lintro/ai/review/models/agent_prompt_scope.py13/13100.0%
lintro/ai/review/models/changed_file.py20/2574.3%
lintro/ai/review/models/checklist_item.py12/12100.0%
lintro/ai/review/models/chunk_summary.py9/9100.0%
lintro/ai/review/models/chunk_timing.py17/17100.0%
lintro/ai/review/models/chunking_result.py13/13100.0%
lintro/ai/review/models/convergence_decision.py14/14100.0%
lintro/ai/review/models/coverage_counts.py22/2491.7%
lintro/ai/review/models/coverage_degradation.py23/23100.0%
lintro/ai/review/models/coverage_record.py28/3088.9%
lintro/ai/review/models/delta_plan.py14/14100.0%
lintro/ai/review/models/file_classification.py7/7100.0%
lintro/ai/review/models/finding_match_result.py18/18100.0%
lintro/ai/review/models/finding_occurrence.py25/25100.0%
lintro/ai/review/models/finding_record.py150/15199.0%
lintro/ai/review/models/flagged_file.py17/2176.0%
lintro/ai/review/models/inline_post_failure.py23/23100.0%
lintro/ai/review/models/inline_post_request.py16/16100.0%
lintro/ai/review/models/inline_post_result.py9/9100.0%
lintro/ai/review/models/lifecycle_sync_request.py15/15100.0%
lintro/ai/review/models/merged_duplicate.py11/1291.7%
lintro/ai/review/models/phase_span.py10/10100.0%
lintro/ai/review/models/pr_metadata.py9/9100.0%
lintro/ai/review/models/review_chunk.py13/13100.0%
lintro/ai/review/models/review_context.py19/19100.0%
lintro/ai/review/models/review_finding.py57/57100.0%
lintro/ai/review/models/review_metadata.py71/71100.0%
lintro/ai/review/models/review_post_options.py19/19100.0%
lintro/ai/review/models/review_result.py38/38100.0%
lintro/ai/review/models/review_state.py103/11781.5%
lintro/ai/review/models/review_summary.py11/11100.0%
lintro/ai/review/models/review_thread.py7/7100.0%
lintro/ai/review/models/review_timings.py15/15100.0%
lintro/ai/review/models/round_outcome.py16/16100.0%
lintro/ai/review/models/run_coverage.py18/18100.0%
lintro/ai/review/models/run_identity.py15/15100.0%
lintro/ai/review/models/run_outcome.py23/23100.0%
lintro/ai/review/models/run_questions.py20/20100.0%
lintro/ai/review/models/run_record.py86/9193.8%
lintro/ai/review/models/run_usage.py13/13100.0%
lintro/ai/review/models/skipped_file.py13/13100.0%
lintro/ai/review/models/sticky_plan.py25/25100.0%
lintro/ai/review/models/sticky_request.py25/25100.0%
lintro/ai/review/models/suggested_change.py35/35100.0%
lintro/ai/review/models/summary_bullet.py7/7100.0%
lintro/ai/review/models/synthesis_outcome.py20/20100.0%
lintro/ai/review/models/verdict_reasoning.py11/11100.0%
lintro/ai/review/models/verification_outcome.py28/28100.0%
lintro/ai/review/narrative_parser.py52/5494.7%
lintro/ai/review/orchestrator.py30/3194.3%
lintro/ai/review/output.py66/6995.2%
lintro/ai/review/patch_hash.py12/12100.0%
lintro/ai/review/patch_validation.py89/9098.3%
lintro/ai/review/path_utils.py185/19295.2%
lintro/ai/review/paths_registry.py88/9195.4%
lintro/ai/review/pipeline.py20/20100.0%
lintro/ai/review/posting_policy.py47/47100.0%
lintro/ai/review/posting_tiers.py19/19100.0%
lintro/ai/review/pr_budget.py42/42100.0%
lintro/ai/review/pr_head.py160/18884.3%
lintro/ai/review/pr_head_guard.py12/12100.0%
lintro/ai/review/preparation.py89/9195.9%
lintro/ai/review/preparation_resolvers.py57/6092.1%
lintro/ai/review/progress.py85/8897.0%
lintro/ai/review/prompt_builder.py26/26100.0%
lintro/ai/review/prompt_redaction.py9/9100.0%
lintro/ai/review/prompts.py89/9098.1%
lintro/ai/review/provider_call.py3/3100.0%
lintro/ai/review/question_attempts.py44/44100.0%
lintro/ai/review/question_parse.py53/5497.4%
lintro/ai/review/question_pass.py101/101100.0%
lintro/ai/review/repo_context.py146/15593.8%
lintro/ai/review/response_pipeline.py112/11299.2%
lintro/ai/review/response_recovery.py28/28100.0%
lintro/ai/review/result_assembly.py107/107100.0%
lintro/ai/review/resume.py71/7297.8%
lintro/ai/review/review_state_codec.py86/8995.7%
lintro/ai/review/run_execution.py88/8899.0%
lintro/ai/review/run_finalize.py53/53100.0%
lintro/ai/review/run_planning.py106/11490.4%
lintro/ai/review/run_record_factory.py63/63100.0%
lintro/ai/review/sanitize.py8/8100.0%
lintro/ai/review/sensitivity.py64/7973.0%
lintro/ai/review/session.py129/13197.5%
lintro/ai/review/severity_gate.py67/67100.0%
lintro/ai/review/state_store.py141/15490.3%
lintro/ai/review/sticky/__init__.py4/4100.0%
lintro/ai/review/sticky/assembly.py67/67100.0%
lintro/ai/review/sticky/body.py28/3091.2%
lintro/ai/review/sticky/cells.py63/7089.3%
lintro/ai/review/sticky/constants.py14/14100.0%
lintro/ai/review/sticky/findings.py130/15679.8%
lintro/ai/review/sticky/history.py94/11680.8%
lintro/ai/review/sticky/notes.py54/5498.6%
lintro/ai/review/sticky/scope.py16/16100.0%
lintro/ai/review/sticky/sections.py114/13184.2%
lintro/ai/review/sticky/state.py32/32100.0%
lintro/ai/review/synthesis.py117/12097.0%
lintro/ai/review/synthesis_narrative.py123/12597.1%
lintro/ai/review/synthesis_note.py24/2594.9%
lintro/ai/review/synthesis_prompt.py97/10093.8%
lintro/ai/review/synthesis_response.py35/3793.6%
lintro/ai/review/timings.py88/88100.0%
lintro/ai/review/verdict.py42/4396.7%
lintro/ai/review/verification.py114/11598.6%
lintro/ai/review/verification_note.py20/2288.2%
lintro/ai/review/verification_prompt.py27/27100.0%
lintro/ai/review/verification_response.py128/128100.0%
lintro/ai/review/vocab.py3/3100.0%
lintro/ai/risk.py72/8191.0%
lintro/ai/sanitize.py23/23100.0%
lintro/ai/sarif_bridge.py41/5772.8%
lintro/ai/secrets.py13/13100.0%
lintro/ai/summary.py104/13174.0%
lintro/ai/telemetry.py20/20100.0%
lintro/ai/token_budget.py16/16100.0%
lintro/ai/transcript.py120/13388.8%
lintro/ai/transport.py66/66100.0%
lintro/ai/undo.py118/15473.3%
lintro/ai/validation.py117/12789.8%
lintro/api/__init__.py2/2100.0%
lintro/api/core.py55/6876.1%
lintro/api/pipeline.py45/4991.5%
lintro/cli.py181/18597.4%
lintro/cli_utils/__init__.py0/0100.0%
lintro/cli_utils/command_chainer.py80/8097.4%
lintro/cli_utils/commands/__init__.py6/6100.0%
lintro/cli_utils/commands/badge.py76/76100.0%
lintro/cli_utils/commands/check.py59/59100.0%
lintro/cli_utils/commands/completions.py11/11100.0%
lintro/cli_utils/commands/config.py205/23385.9%
lintro/cli_utils/commands/config_ai.py73/7693.8%
lintro/cli_utils/commands/deps.py133/14393.2%
lintro/cli_utils/commands/doctor.py318/36982.3%
lintro/cli_utils/commands/format.py50/50100.0%
lintro/cli_utils/commands/init.py115/16666.1%
lintro/cli_utils/commands/install.py111/19951.5%
lintro/cli_utils/commands/licenses.py47/5188.1%
lintro/cli_utils/commands/list_tools.py76/11565.5%
lintro/cli_utils/commands/mcp.py11/11100.0%
lintro/cli_utils/commands/review.py366/40687.3%
lintro/cli_utils/commands/test.py69/7392.6%
lintro/cli_utils/commands/versions.py56/6777.9%
lintro/cli_utils/commands/watch.py54/5695.5%
lintro/cli_utils/diff_option.py12/12100.0%
lintro/cli_utils/install_output.py30/3195.1%
lintro/cli_utils/onboarding.py14/2559.3%
lintro/cli_utils/order_explain.py120/12298.0%
lintro/config/__init__.py4/4100.0%
lintro/config/config_loader.py485/50794.5%
lintro/config/config_validator.py233/24793.1%
lintro/config/deps_config.py22/22100.0%
lintro/config/enforce_config.py5/5100.0%
lintro/config/execution_config.py17/17100.0%
lintro/config/licenses_config.py67/7094.3%
lintro/config/lintro_config.py55/55100.0%
lintro/config/output_config.py4/4100.0%
lintro/config/review_config.py102/10496.8%
lintro/config/tool_config.py6/6100.0%
lintro/config/tool_config_generator.py117/14579.0%
lintro/config/watch_config.py25/25100.0%
lintro/deps/__init__.py4/4100.0%
lintro/deps/models.py37/37100.0%
lintro/deps/parsers/__init__.py28/2994.9%
lintro/deps/parsers/_base.py10/10100.0%
lintro/deps/parsers/cargo_parser.py82/8596.0%
lintro/deps/parsers/package_json_parser.py31/3391.5%
lintro/deps/parsers/pyproject_parser.py86/9185.6%
lintro/deps/parsers/requirements_parser.py61/6297.7%
lintro/deps/policy_engine.py77/8092.5%
lintro/deps/version_analyzer.py68/6998.2%
lintro/enums/__init__.py0/0100.0%
lintro/enums/action.py13/1584.2%
lintro/enums/advisory_tools_value.py5/5100.0%
lintro/enums/bandit_levels.py26/26100.0%
lintro/enums/boolean_string.py6/6100.0%
lintro/enums/capability.py7/7100.0%
lintro/enums/checklist_display.py8/8100.0%
lintro/enums/confidence_level.py10/10100.0%
lintro/enums/config_format.py12/12100.0%
lintro/enums/config_key.py4/4100.0%
lintro/enums/custom_agent_mode.py7/7100.0%
lintro/enums/display_column.py12/12100.0%
lintro/enums/doc_url_template.py35/35100.0%
lintro/enums/env_bool.py4/4100.0%
lintro/enums/execution_class.py12/12100.0%
lintro/enums/file_domain.py14/14100.0%
lintro/enums/git_command.py6/6100.0%
lintro/enums/git_ref.py4/4100.0%
lintro/enums/group_by.py17/17100.0%
lintro/enums/hadolint_enums.py34/3690.0%
lintro/enums/hyphenated_str_enum.py6/6100.0%
lintro/enums/idiom_review_mode.py6/6100.0%
lintro/enums/install_context.py34/34100.0%
lintro/enums/install_outcome.py19/19100.0%
lintro/enums/issue_category.py11/11100.0%
lintro/enums/node_manager_source.py7/7100.0%
lintro/enums/output_format.py20/20100.0%
lintro/enums/pydoclint_style.py0/150.0%
lintro/enums/pytest_enums.py48/48100.0%
lintro/enums/review_category.py13/13100.0%
lintro/enums/review_strictness.py8/8100.0%
lintro/enums/risk_level.py10/10100.0%
lintro/enums/semgrep_enums.py14/14100.0%
lintro/enums/severity_level.py17/17100.0%
lintro/enums/tool_name.py56/56100.0%
lintro/enums/tool_option_key.py5/5100.0%
lintro/enums/tool_run_status.py23/23100.0%
lintro/enums/tool_status.py9/9100.0%
lintro/enums/tool_type.py15/2075.0%
lintro/enums/tools_value.py11/11100.0%
lintro/enums/update_channel.py12/12100.0%
lintro/enums/uppercase_str_enum.py6/6100.0%
lintro/enums/validation_code.py10/10100.0%
lintro/enums/verify_status.py6/6100.0%
lintro/enums/yamllint_format.py14/1784.2%
lintro/exceptions/__init__.py0/0100.0%
lintro/exceptions/errors.py9/9100.0%
lintro/formatters/__init__.py4/4100.0%
lintro/formatters/core/__init__.py2/2100.0%
lintro/formatters/core/format_registry.py43/4887.5%
lintro/formatters/formatter.py116/12193.9%
lintro/formatters/styles/__init__.py8/8100.0%
lintro/formatters/styles/csv.py15/15100.0%
lintro/formatters/styles/github.py50/5290.8%
lintro/formatters/styles/grid.py24/2788.6%
lintro/formatters/styles/html.py16/16100.0%
lintro/formatters/styles/json.py23/2394.3%
lintro/formatters/styles/markdown.py15/15100.0%
lintro/formatters/styles/plain.py14/14100.0%
lintro/licenses/__init__.py2/2100.0%
lintro/licenses/attribution.py23/23100.0%
lintro/licenses/detector.py0/160.0%
lintro/licenses/ecosystems/__init__.py3/3100.0%
lintro/licenses/ecosystems/npm.py105/12579.6%
lintro/licenses/ecosystems/python.py48/4995.7%
lintro/licenses/models.py24/24100.0%
lintro/licenses/policy_engine.py48/4997.3%
lintro/licenses/report.py60/6392.4%
lintro/licenses/spdx.py156/17784.6%
lintro/mcp/__init__.py59/6493.0%
lintro/mcp/annotations.py7/7100.0%
lintro/mcp/enums/__init__.py3/3100.0%
lintro/mcp/enums/mcp_error_code.py8/8100.0%
lintro/mcp/errors.py41/41100.0%
lintro/mcp/registry.py67/6897.9%
lintro/mcp/server.py83/9191.3%
lintro/mcp/toolkits/__init__.py5/5100.0%
lintro/mcp/toolkits/introspection.py91/9198.3%
lintro/mcp/toolkits/lint.py56/56100.0%
lintro/mcp/toolkits/review.py156/16394.8%
lintro/mcp/toolkits/runner.py48/4896.4%
lintro/mcp/toolkits/snapshot.py76/7994.2%
lintro/mcp/validation.py28/28100.0%
lintro/models/__init__.py0/0100.0%
lintro/models/core/__init__.py6/6100.0%
lintro/models/core/base_tool_options.py6/6100.0%
lintro/models/core/black_options.py8/8100.0%
lintro/models/core/claim.py19/19100.0%
lintro/models/core/node_manager_commands.py7/7100.0%
lintro/models/core/prettier_options.py0/160.0%
lintro/models/core/pytest_options.py22/22100.0%
lintro/models/core/ruff_options.py16/16100.0%
lintro/models/core/run_artifact.py27/27100.0%
lintro/models/core/sarif_enrichment.py7/7100.0%
lintro/models/core/severity_counts.py36/3797.4%
lintro/models/core/tool_result.py44/4693.5%
lintro/models/core/yamllint_options.py6/6100.0%
lintro/parsers/__init__.py9/1552.9%
lintro/parsers/actionlint/__init__.py3/3100.0%
lintro/parsers/actionlint/actionlint_issue.py8/8100.0%
lintro/parsers/actionlint/actionlint_parser.py27/2797.3%
lintro/parsers/astro_check/__init__.py3/3100.0%
lintro/parsers/astro_check/astro_check_issue.py8/8100.0%
lintro/parsers/astro_check/astro_check_parser.py46/5584.0%
lintro/parsers/bandit/__init__.py3/3100.0%
lintro/parsers/bandit/bandit_issue.py21/21100.0%
lintro/parsers/bandit/bandit_parser.py39/5077.3%
lintro/parsers/base_issue.py38/38100.0%
lintro/parsers/base_parser.py75/75100.0%
lintro/parsers/black/__init__.py3/3100.0%
lintro/parsers/black/black_issue.py11/11100.0%
lintro/parsers/black/black_parser.py43/5773.5%
lintro/parsers/buf/__init__.py4/4100.0%
lintro/parsers/buf/buf_issue.py14/14100.0%
lintro/parsers/buf/buf_parser.py50/5294.6%
lintro/parsers/cargo_audit/__init__.py0/0100.0%
lintro/parsers/cargo_audit/cargo_audit_issue.py18/1990.5%
lintro/parsers/cargo_audit/cargo_audit_parser.py65/7683.0%
lintro/parsers/cargo_deny/__init__.py3/3100.0%
lintro/parsers/cargo_deny/cargo_deny_issue.py32/3288.6%
lintro/parsers/cargo_deny/cargo_deny_parser.py71/8776.4%
lintro/parsers/checkov/__init__.py3/3100.0%
lintro/parsers/checkov/checkov_issue.py23/23100.0%
lintro/parsers/checkov/checkov_parser.py71/7592.7%
lintro/parsers/clippy/__init__.py3/3100.0%
lintro/parsers/clippy/clippy_issue.py11/11100.0%
lintro/parsers/clippy/clippy_parser.py53/6775.3%
lintro/parsers/commitlint/__init__.py3/3100.0%
lintro/parsers/commitlint/commitlint_issue.py10/10100.0%
lintro/parsers/commitlint/commitlint_parser.py35/3597.9%
lintro/parsers/cppcheck/__init__.py3/3100.0%
lintro/parsers/cppcheck/cppcheck_issue.py10/10100.0%
lintro/parsers/cppcheck/cppcheck_parser.py40/4392.7%
lintro/parsers/dotenv_linter/__init__.py3/3100.0%
lintro/parsers/dotenv_linter/dotenv_linter_issue.py10/10100.0%
lintro/parsers/dotenv_linter/dotenv_linter_parser.py18/18100.0%
lintro/parsers/gitleaks/__init__.py3/3100.0%
lintro/parsers/gitleaks/gitleaks_issue.py29/29100.0%
lintro/parsers/gitleaks/gitleaks_parser.py57/6096.2%
lintro/parsers/golangci_lint/__init__.py3/3100.0%
lintro/parsers/golangci_lint/golangci_lint_issue.py10/10100.0%
lintro/parsers/golangci_lint/golangci_lint_parser.py48/5487.8%
lintro/parsers/hadolint/__init__.py4/936.4%
lintro/parsers/hadolint/hadolint_issue.py8/8100.0%
lintro/parsers/hadolint/hadolint_parser.py19/19100.0%
lintro/parsers/html_validate/__init__.py3/3100.0%
lintro/parsers/html_validate/html_validate_issue.py11/11100.0%
lintro/parsers/html_validate/html_validate_parser.py32/3782.5%
lintro/parsers/idiom_review/__init__.py4/4100.0%
lintro/parsers/idiom_review/idiom_review_issue.py14/14100.0%
lintro/parsers/idiom_review/idiom_review_parser.py86/9092.4%
lintro/parsers/import_linter/__init__.py3/3100.0%
lintro/parsers/import_linter/import_linter_issue.py9/9100.0%
lintro/parsers/import_linter/import_linter_parser.py83/8399.1%
lintro/parsers/markdownlint/__init__.py3/3100.0%
lintro/parsers/markdownlint/markdownlint_issue.py8/8100.0%
lintro/parsers/markdownlint/markdownlint_parser.py31/3393.3%
lintro/parsers/mypy/__init__.py3/3100.0%
lintro/parsers/mypy/mypy_issue.py9/9100.0%
lintro/parsers/mypy/mypy_parser.py56/7180.6%
lintro/parsers/osv_scanner/__init__.py6/6100.0%
lintro/parsers/osv_scanner/osv_scanner_issue.py23/23100.0%
lintro/parsers/osv_scanner/osv_scanner_parser.py101/12278.4%
lintro/parsers/osv_scanner/suppression_models.py13/13100.0%
lintro/parsers/osv_scanner/suppression_parser.py46/4991.5%
lintro/parsers/osv_scanner/suppression_status.py5/5100.0%
lintro/parsers/oxfmt/__init__.py3/3100.0%
lintro/parsers/oxfmt/oxfmt_issue.py8/8100.0%
lintro/parsers/oxfmt/oxfmt_parser.py26/2992.7%
lintro/parsers/oxlint/__init__.py3/3100.0%
lintro/parsers/oxlint/oxlint_issue.py8/8100.0%
lintro/parsers/oxlint/oxlint_parser.py48/5982.7%
lintro/parsers/pip_audit/__init__.py3/3100.0%
lintro/parsers/pip_audit/pip_audit_issue.py20/20100.0%
lintro/parsers/pip_audit/pip_audit_parser.py48/5192.2%
lintro/parsers/prettier/__init__.py3/3100.0%
lintro/parsers/prettier/prettier_issue.py8/8100.0%
lintro/parsers/prettier/prettier_parser.py19/2290.6%
lintro/parsers/pydoclint/__init__.py3/3100.0%
lintro/parsers/pydoclint/pydoclint_issue.py9/9100.0%
lintro/parsers/pydoclint/pydoclint_parser.py33/3691.7%
lintro/parsers/pylint/__init__.py3/3100.0%
lintro/parsers/pylint/pylint_issue.py16/1694.4%
lintro/parsers/pylint/pylint_parser.py30/30100.0%
lintro/parsers/pytest/__init__.py3/3100.0%
lintro/parsers/pytest/format_parsers.py150/17285.3%
lintro/parsers/pytest/models.py12/12100.0%
lintro/parsers/pytest/pytest_issue.py11/11100.0%
lintro/parsers/pytest/pytest_parser.py14/14100.0%
lintro/parsers/pytest/summary_extractor.py30/3291.7%
lintro/parsers/ruff/__init__.py4/4100.0%
lintro/parsers/ruff/ruff_format_issue.py10/10100.0%
lintro/parsers/ruff/ruff_issue.py10/10100.0%
lintro/parsers/ruff/ruff_parser.py61/7676.9%
lintro/parsers/rustfmt/__init__.py0/0100.0%
lintro/parsers/rustfmt/rustfmt_issue.py10/10100.0%
lintro/parsers/rustfmt/rustfmt_parser.py32/3493.8%
lintro/parsers/sarif/__init__.py3/3100.0%
lintro/parsers/sarif/sarif_issue.py13/13100.0%
lintro/parsers/sarif/sarif_parser.py100/10890.0%
lintro/parsers/semgrep/__init__.py3/3100.0%
lintro/parsers/semgrep/semgrep_issue.py24/2490.0%
lintro/parsers/semgrep/semgrep_parser.py57/6390.6%
lintro/parsers/shellcheck/__init__.py3/3100.0%
lintro/parsers/shellcheck/shellcheck_issue.py11/11100.0%
lintro/parsers/shellcheck/shellcheck_parser.py37/4092.3%
lintro/parsers/shfmt/__init__.py3/3100.0%
lintro/parsers/shfmt/shfmt_issue.py10/10100.0%
lintro/parsers/shfmt/shfmt_parser.py43/4693.9%
lintro/parsers/spectral/__init__.py3/3100.0%
lintro/parsers/spectral/spectral_issue.py19/1995.7%
lintro/parsers/spectral/spectral_parser.py77/8590.9%
lintro/parsers/sqlfluff/__init__.py3/3100.0%
lintro/parsers/sqlfluff/sqlfluff_issue.py11/11100.0%
lintro/parsers/sqlfluff/sqlfluff_parser.py37/3993.9%
lintro/parsers/streaming.py77/8590.4%
lintro/parsers/stylelint/__init__.py3/3100.0%
lintro/parsers/stylelint/stylelint_issue.py7/7100.0%
lintro/parsers/stylelint/stylelint_parser.py79/9184.7%
lintro/parsers/svelte_check/__init__.py3/3100.0%
lintro/parsers/svelte_check/svelte_check_issue.py9/9100.0%
lintro/parsers/svelte_check/svelte_check_parser.py86/9986.8%
lintro/parsers/taplo/__init__.py4/4100.0%
lintro/parsers/taplo/taplo_issue.py9/9100.0%
lintro/parsers/taplo/taplo_parser.py41/4196.2%
lintro/parsers/trufflehog/__init__.py4/4100.0%
lintro/parsers/trufflehog/trufflehog_errors.py80/8692.2%
lintro/parsers/trufflehog/trufflehog_issue.py27/27100.0%
lintro/parsers/trufflehog/trufflehog_parser.py68/7490.6%
lintro/parsers/tsc/__init__.py3/3100.0%
lintro/parsers/tsc/tsc_issue.py9/9100.0%
lintro/parsers/tsc/tsc_parser.py53/5793.5%
lintro/parsers/typos/__init__.py3/3100.0%
lintro/parsers/typos/typos_issue.py14/14100.0%
lintro/parsers/typos/typos_parser.py91/91100.0%
lintro/parsers/vale/__init__.py3/3100.0%
lintro/parsers/vale/vale_issue.py13/13100.0%
lintro/parsers/vale/vale_parser.py34/3596.2%
lintro/parsers/vue_tsc/__init__.py3/3100.0%
lintro/parsers/vue_tsc/vue_tsc_issue.py7/7100.0%
lintro/parsers/vue_tsc/vue_tsc_parser.py53/5790.9%
lintro/parsers/yamllint/__init__.py3/3100.0%
lintro/parsers/yamllint/yamllint_issue.py9/9100.0%
lintro/parsers/yamllint/yamllint_parser.py28/3778.7%
lintro/plugins/__init__.py4/4100.0%
lintro/plugins/_builtin_index.py3/3100.0%
lintro/plugins/base.py148/15297.3%
lintro/plugins/discovery.py226/23893.9%
lintro/plugins/execution_preparation.py115/12094.2%
lintro/plugins/file_discovery.py45/4991.0%
lintro/plugins/file_processor.py68/6998.9%
lintro/plugins/protocol.py41/4391.8%
lintro/plugins/registry.py80/8295.7%
lintro/plugins/subprocess_executor.py117/13186.9%
lintro/plugins/subprocess_failure.py19/2381.1%
lintro/profiling/__init__.py4/4100.0%
lintro/profiling/models.py18/18100.0%
lintro/profiling/report.py62/6297.4%
lintro/profiling/suggestions.py23/2397.3%
lintro/tools/__init__.py6/6100.0%
lintro/tools/actionlint/__init__.py2/2100.0%
lintro/tools/actionlint/definition.py60/7478.6%
lintro/tools/astro_check/__init__.py2/2100.0%
lintro/tools/astro_check/definition.py105/11986.1%
lintro/tools/bandit/__init__.py2/2100.0%
lintro/tools/bandit/definition.py145/18970.5%
lintro/tools/black/__init__.py2/2100.0%
lintro/tools/black/definition.py119/14179.7%
lintro/tools/buf/__init__.py2/2100.0%
lintro/tools/buf/definition.py153/16294.6%
lintro/tools/cargo_audit/__init__.py2/2100.0%
lintro/tools/cargo_audit/definition.py71/7391.8%
lintro/tools/cargo_deny/__init__.py2/2100.0%
lintro/tools/cargo_deny/definition.py38/5270.7%
lintro/tools/checkov/__init__.py2/2100.0%
lintro/tools/checkov/definition.py90/90100.0%
lintro/tools/clippy/__init__.py2/2100.0%
lintro/tools/clippy/definition.py73/8782.2%
lintro/tools/commitlint/__init__.py2/2100.0%
lintro/tools/commitlint/definition.py61/6397.3%
lintro/tools/core/__init__.py0/0100.0%
lintro/tools/core/argv_batching.py47/47100.0%
lintro/tools/core/batch_runner.py120/13785.5%
lintro/tools/core/cargo.py182/19094.7%
lintro/tools/core/check_runner.py30/30100.0%
lintro/tools/core/command_builders.py185/20289.1%
lintro/tools/core/config_injection.py40/4877.1%
lintro/tools/core/fix_runner.py101/10396.9%
lintro/tools/core/install_context.py60/6294.3%
lintro/tools/core/install_hints.py22/3164.9%
lintro/tools/core/install_lock.py24/5336.9%
lintro/tools/core/install_plan.py30/30100.0%
lintro/tools/core/install_quickfix.py50/5295.9%
lintro/tools/core/install_strategies/__init__.py5/5100.0%
lintro/tools/core/install_strategies/base.py14/14100.0%
lintro/tools/core/install_strategies/binary_strategy.py29/3382.9%
lintro/tools/core/install_strategies/cargo_strategy.py21/2295.8%
lintro/tools/core/install_strategies/environment.py30/3097.4%
lintro/tools/core/install_strategies/node_project.py101/10297.9%
lintro/tools/core/install_strategies/npm_strategy.py69/7196.0%
lintro/tools/core/install_strategies/package_names.py14/1589.5%
lintro/tools/core/install_strategies/pip_strategy.py43/4593.4%
lintro/tools/core/install_strategies/registry.py12/1481.2%
lintro/tools/core/install_strategies/rustup_strategy.py21/2296.2%
lintro/tools/core/line_length_checker.py65/6795.3%
lintro/tools/core/manifest_models.py24/24100.0%
lintro/tools/core/node_fallback.py51/5394.2%
lintro/tools/core/node_modules.py23/23100.0%
lintro/tools/core/option_spec.py90/9194.7%
lintro/tools/core/option_validators.py59/59100.0%
lintro/tools/core/runtime_discovery.py113/12984.7%
lintro/tools/core/scheduler.py298/30994.9%
lintro/tools/core/timeout_utils.py26/26100.0%
lintro/tools/core/tool_installer.py207/25678.1%
lintro/tools/core/tool_manager.py73/7497.9%
lintro/tools/core/tool_registry.py127/15578.1%
lintro/tools/core/tool_scopes.py136/14095.9%
lintro/tools/core/update_channels.py202/23188.2%
lintro/tools/core/verify_pass.py246/24998.2%
lintro/tools/core/version_checking.py72/7594.1%
lintro/tools/core/version_parsing.py158/16794.1%
lintro/tools/core/version_requirements.py16/2370.4%
lintro/tools/cppcheck/__init__.py2/2100.0%
lintro/tools/cppcheck/definition.py77/7799.0%
lintro/tools/dotenv_linter/__init__.py2/2100.0%
lintro/tools/dotenv_linter/definition.py67/6897.7%
lintro/tools/gitleaks/__init__.py2/2100.0%
lintro/tools/gitleaks/definition.py115/12191.6%
lintro/tools/golangci_lint/__init__.py2/2100.0%
lintro/tools/golangci_lint/definition.py135/14392.0%
lintro/tools/hadolint/__init__.py2/2100.0%
lintro/tools/hadolint/definition.py85/85100.0%
lintro/tools/html_validate/__init__.py2/2100.0%
lintro/tools/html_validate/definition.py70/7196.4%
lintro/tools/idiom_review/__init__.py6/1050.0%
lintro/tools/idiom_review/definition.py102/11189.5%
lintro/tools/idiom_review/engine.py68/7689.1%
lintro/tools/idiom_review/prompts.py21/21100.0%
lintro/tools/idiom_review/signatures.py53/5691.4%
lintro/tools/import_linter/__init__.py2/2100.0%
lintro/tools/import_linter/definition.py79/8297.1%
lintro/tools/markdownlint/__init__.py2/2100.0%
lintro/tools/markdownlint/definition.py75/9973.6%
lintro/tools/mypy/__init__.py2/2100.0%
lintro/tools/mypy/definition.py169/18587.3%
lintro/tools/osv_scanner/__init__.py2/2100.0%
lintro/tools/osv_scanner/definition.py150/15795.1%
lintro/tools/oxfmt/__init__.py2/2100.0%
lintro/tools/oxfmt/definition.py86/9486.4%
lintro/tools/oxlint/__init__.py3/3100.0%
lintro/tools/oxlint/definition.py117/12788.4%
lintro/tools/oxlint/doctor.py55/7668.6%
lintro/tools/pip_audit/__init__.py2/2100.0%
lintro/tools/pip_audit/definition.py133/13794.2%
lintro/tools/prettier/__init__.py2/2100.0%
lintro/tools/prettier/definition.py120/14279.1%
lintro/tools/pydoclint/__init__.py2/2100.0%
lintro/tools/pydoclint/definition.py35/35100.0%
lintro/tools/pylint/__init__.py2/2100.0%
lintro/tools/pylint/definition.py146/14998.5%
lintro/tools/pytest/__init__.py4/4100.0%
lintro/tools/pytest/addopts_coverage.py78/9282.5%
lintro/tools/pytest/collection.py79/11165.6%
lintro/tools/pytest/coverage_processor.py16/6818.6%
lintro/tools/pytest/coverage_source.py78/8098.3%
lintro/tools/pytest/definition.py121/14276.6%
lintro/tools/pytest/formatters.py112/15865.3%
lintro/tools/pytest/markers.py31/6447.3%
lintro/tools/pytest/output.py49/7954.8%
lintro/tools/pytest/output_parsers.py47/5975.8%
lintro/tools/pytest/pytest_command_builder.py99/13467.7%
lintro/tools/pytest/pytest_config.py76/7993.2%
lintro/tools/pytest/pytest_error_handler.py15/2355.2%
lintro/tools/pytest/pytest_executor.py38/4577.0%
lintro/tools/pytest/pytest_handlers.py118/11898.8%
lintro/tools/pytest/pytest_option_validators.py50/7864.5%
lintro/tools/pytest/pytest_output_processor.py6/6100.0%
lintro/tools/pytest/pytest_result_processor.py22/22100.0%
lintro/tools/pytest/test_analytics.py45/5478.2%
lintro/tools/ruff/__init__.py5/5100.0%
lintro/tools/ruff/check.py56/56100.0%
lintro/tools/ruff/commands.py56/6781.0%
lintro/tools/ruff/definition.py90/9393.2%
lintro/tools/ruff/fix.py110/11197.8%
lintro/tools/ruff/paths.py9/1085.7%
lintro/tools/rustfmt/__init__.py2/2100.0%
lintro/tools/rustfmt/definition.py66/6797.4%
lintro/tools/semgrep/__init__.py2/2100.0%
lintro/tools/semgrep/definition.py124/13788.1%
lintro/tools/shellcheck/__init__.py2/2100.0%
lintro/tools/shellcheck/definition.py81/81100.0%
lintro/tools/shfmt/__init__.py2/2100.0%
lintro/tools/shfmt/definition.py69/7097.8%
lintro/tools/spectral/__init__.py2/2100.0%
lintro/tools/spectral/definition.py119/12395.7%
lintro/tools/sqlfluff/__init__.py2/2100.0%
lintro/tools/sqlfluff/definition.py81/81100.0%
lintro/tools/stylelint/__init__.py2/2100.0%
lintro/tools/stylelint/definition.py112/12587.3%
lintro/tools/svelte_check/__init__.py2/2100.0%
lintro/tools/svelte_check/definition.py84/9686.5%
lintro/tools/taplo/__init__.py2/2100.0%
lintro/tools/taplo/definition.py136/13898.8%
lintro/tools/trufflehog/__init__.py2/2100.0%
lintro/tools/trufflehog/definition.py132/13597.7%
lintro/tools/ts_checker/__init__.py2/2100.0%
lintro/tools/ts_checker/base.py52/5594.5%
lintro/tools/ts_checker/command.py50/5196.2%
lintro/tools/ts_checker/execution.py140/19370.4%
lintro/tools/tsc/__init__.py2/2100.0%
lintro/tools/tsc/definition.py63/6396.1%
lintro/tools/typos/__init__.py2/2100.0%
lintro/tools/typos/definition.py143/15094.9%
lintro/tools/vale/__init__.py2/2100.0%
lintro/tools/vale/definition.py65/6797.5%
lintro/tools/vue_tsc/__init__.py2/2100.0%
lintro/tools/vue_tsc/definition.py45/45100.0%
lintro/tools/yamllint/__init__.py2/2100.0%
lintro/tools/yamllint/definition.py129/19063.9%
lintro/utils/__init__.py0/0100.0%
lintro/utils/ascii_normalize_cli.py39/39100.0%
lintro/utils/async_tool_executor.py78/8885.5%
lintro/utils/config.py120/13289.5%
lintro/utils/config_constants.py13/13100.0%
lintro/utils/config_priority.py39/4096.7%
lintro/utils/config_reporting.py51/51100.0%
lintro/utils/config_validation.py38/4382.5%
lintro/utils/console/__init__.py7/7100.0%
lintro/utils/console/constants.py16/1885.0%
lintro/utils/console/logger.py183/18597.5%
lintro/utils/console/pre_execution_summary.py37/4479.7%
lintro/utils/display_helpers.py75/75100.0%
lintro/utils/doctor_report.py191/20691.0%
lintro/utils/duplicate_code.py51/5296.9%
lintro/utils/env.py10/1278.6%
lintro/utils/environment/__init__.py15/15100.0%
lintro/utils/environment/_protocol.py8/8100.0%
lintro/utils/environment/ci_environment.py11/1757.9%
lintro/utils/environment/collectors.py137/17969.2%
lintro/utils/environment/container_detection.py16/2267.6%
lintro/utils/environment/environment_report.py23/23100.0%
lintro/utils/environment/go_info.py11/1478.6%
lintro/utils/environment/lintro_info.py12/1957.1%
lintro/utils/environment/node_info.py13/1681.2%
lintro/utils/environment/project_info.py12/1860.0%
lintro/utils/environment/python_info.py13/1681.2%
lintro/utils/environment/renderer.py13/6016.2%
lintro/utils/environment/ruby_info.py11/1478.6%
lintro/utils/environment/rust_info.py12/1580.0%
lintro/utils/environment/system_info.py15/2262.5%
lintro/utils/execution/__init__.py4/4100.0%
lintro/utils/execution/advisory.py95/9698.5%
lintro/utils/execution/exit_codes.py37/37100.0%
lintro/utils/execution/fix_retry.py24/2691.7%
lintro/utils/execution/parallel_executor.py63/63100.0%
lintro/utils/execution/result_shaping.py37/3896.6%
lintro/utils/execution/run_aggregation.py35/3695.5%
lintro/utils/execution/run_context.py14/14100.0%
lintro/utils/execution/run_preflight.py50/7465.3%
lintro/utils/execution/run_renderer.py185/20589.8%
lintro/utils/execution/tool_configuration.py253/26395.0%
lintro/utils/file_cache.py117/14283.0%
lintro/utils/findings.py74/7697.8%
lintro/utils/formatting.py65/7481.8%
lintro/utils/gates.py45/4792.5%
lintro/utils/git_diff.py145/17281.8%
lintro/utils/issue_category.py85/9388.7%
lintro/utils/json_output.py68/6899.0%
lintro/utils/jsonc.py141/15491.0%
lintro/utils/logger_setup.py13/13100.0%
lintro/utils/meaningful_run.py33/33100.0%
lintro/utils/module_size.py54/5697.1%
lintro/utils/native_parsers.py120/16573.6%
lintro/utils/node_deps.py78/8889.0%
lintro/utils/output/__init__.py5/5100.0%
lintro/utils/output/constants.py5/5100.0%
lintro/utils/output/file_writer.py221/23195.6%
lintro/utils/output/helpers.py9/9100.0%
lintro/utils/output/manager.py187/20989.3%
lintro/utils/output/parser_registration.py47/4996.1%
lintro/utils/output/parser_registry.py31/31100.0%
lintro/utils/output/sarif/__init__.py3/3100.0%
lintro/utils/output/sarif/bridge.py18/18100.0%
lintro/utils/output/sarif/document.py142/14296.2%
lintro/utils/path_filtering.py136/14494.3%
lintro/utils/path_utils.py82/8694.1%
lintro/utils/plugin_tool_names.py32/3297.6%
lintro/utils/project_detection.py128/15879.0%
lintro/utils/result_formatters.py104/18456.8%
lintro/utils/severity_baseline.py38/38100.0%
lintro/utils/severity_counts.py52/5298.7%
lintro/utils/streaming_output.py100/10591.5%
lintro/utils/summary_tables.py204/24681.3%
lintro/utils/tool_config_info.py3/3100.0%
lintro/utils/tool_executor.py164/17394.0%
lintro/utils/tool_metadata.py44/4794.5%
lintro/utils/tool_options.py40/4487.9%
lintro/utils/tool_utils.py4/4100.0%
lintro/utils/tsconfig.py188/23377.3%
lintro/utils/tsconfig_info.py22/22100.0%
lintro/utils/unified_config.py8/8100.0%
lintro/utils/unified_config_manager.py54/54100.0%
lintro/watch/__init__.py5/5100.0%
lintro/watch/debouncer.py91/9199.1%
lintro/watch/runner.py86/8894.5%
lintro/watch/tool_selection.py60/6295.5%
lintro/watch/watcher.py111/11794.2%
lintro_build/__init__.py16/16100.0%
lintro_build/backend.py32/4771.7%
lintro_build/builtin_index.py86/9193.3%
lintro_build/exit_codes.py4/4100.0%
lintro_build/versions/__init__.py9/9100.0%
lintro_build/versions/errors.py2/2100.0%
lintro_build/versions/generate.py79/8197.9%
lintro_build/versions/inputs.py139/15488.0%
lintro_build/versions/outputs.py63/6990.1%
lintro_build/versions/paths.py17/17100.0%
lintro_build/versions/seed.py48/5290.0%