Skip to main content

Crate fallow_api

Crate fallow_api 

Source
Expand description

Programmatic API contract types for fallow.

Runtime execution for dead-code and duplication lives here. Health output assembly is also API-owned, with the concrete runner injected while the remaining health pipeline moves out of the CLI crate. This crate owns the CLI-independent option, error, and output contracts so NAPI, future Rust embedders, and the engine facade can share them without depending on the CLI crate.

Re-exports§

pub use audit_output::AuditAttribution;
pub use audit_output::AuditCodeClimateOutputInput;
pub use audit_output::AuditJsonHeaderInput;
pub use audit_output::AuditJsonOutputInput;
pub use audit_output::AuditSarifOutputInput;
pub use audit_output::AuditSummary;
pub use audit_output::AuditVerdict;
pub use audit_output::build_audit_codeclimate;
pub use audit_output::build_audit_codeclimate_issues;
pub use audit_output::build_audit_header_json;
pub use audit_output::build_audit_header_map;
pub use audit_output::build_audit_sarif;
pub use audit_output::serialize_audit_json;
pub use combined_output::CombinedCheckJsonSection;
pub use combined_output::CombinedJsonOutputInput;
pub use combined_output::serialize_combined_dupes_json;
pub use combined_output::serialize_combined_health_json;
pub use combined_output::serialize_combined_json;
pub use compact_output::build_compact_lines;
pub use compact_output::build_duplication_compact_lines;
pub use compact_output::build_grouped_compact_lines;
pub use compact_output::build_health_compact_lines;
pub use dead_code_codeclimate::build_codeclimate;
pub use dead_code_sarif::build_sarif;
pub use dupes_output::AttributedCloneGroup;
pub use dupes_output::AttributedCloneGroupFinding;
pub use dupes_output::AttributedInstance;
pub use dupes_output::CloneFamilyFinding;
pub use dupes_output::CloneGroupFinding;
pub use dupes_output::DupesReportPayload;
pub use dupes_output::DuplicationGroup;
pub use dupes_output::DuplicationGrouping;
pub use dupes_output::build_duplication_codeclimate;
pub use editor::EditorAnalysisOutput;
pub use editor::EditorAnalysisResults;
pub use editor::EditorAnalysisSession;
pub use editor::EditorDeadCodeAnalysisOutput;
pub use editor::EditorDuplicationReport;
pub use editor::EditorInlineComplexityExceeded;
pub use editor::EditorInlineComplexityFinding;
pub use editor::EditorProjectAnalysisOutput;
pub use editor::collect_inline_complexity;
pub use editor::editor_duplicates;
pub use editor::editor_extract;
pub use editor::editor_results;
pub use editor::editor_security;
pub use editor::editor_suppress;
pub use editor::filter_inline_complexity_by_changed_files;
pub use grouped_output::ResultGroup;
pub use grouped_output::UNOWNED_GROUP_LABEL;
pub use grouped_output::build_duplication_grouping_with;
pub use grouped_output::group_analysis_results_with;
pub use grouped_output::largest_clone_group_owner_with;
pub use health_codeclimate::build_health_codeclimate;
pub use json_output::CheckJsonExtraOutputs;
pub use json_output::CheckJsonOutputInput;
pub use json_output::CheckJsonPayloadInput;
pub use json_output::DuplicationJsonOutputInput;
pub use json_output::GroupedCheckJsonOutputInput;
pub use json_output::GroupedDuplicationJsonOutputInput;
pub use json_output::harmonize_multi_kind_suppress_line_actions;
pub use json_output::serialize_check_json;
pub use json_output::serialize_check_json_payload;
pub use json_output::serialize_duplication_json;
pub use json_output::serialize_grouped_check_json;
pub use json_output::serialize_grouped_duplication_json;
pub use list_output::ListJsonEnvelope;
pub use list_output::ListJsonOutputInput;
pub use list_output::build_list_json_output;
pub use list_output::serialize_list_json_output;
pub use markdown_output::build_duplication_markdown;
pub use markdown_output::build_grouped_markdown;
pub use markdown_output::build_health_markdown;
pub use markdown_output::build_markdown;
pub use output_contracts::AuditOutput;
pub use output_contracts::BoundariesListLogicalGroup;
pub use output_contracts::BoundariesListRule;
pub use output_contracts::BoundariesListZone;
pub use output_contracts::BoundariesListing;
pub use output_contracts::CombinedOutput;
pub use output_contracts::FallowOutput;
pub use output_contracts::ListBoundariesOutput;
pub use output_contracts::ListEntryPointOutput;
pub use output_contracts::ListOutput;
pub use output_contracts::ListPluginOutput;
pub use output_contracts::SecurityGate;
pub use output_contracts::SecurityOutput;
pub use output_contracts::SecurityOutputConfig;
pub use output_contracts::SecuritySummaryOutput;
pub use output_contracts::WorkspacesOutput;
pub use runtime::DeadCodeProgrammaticOutput;
pub use runtime::DuplicationProgrammaticOutput;
pub use runtime::EngineHealthRunner;
pub use runtime::HealthJsonReportInput;
pub use runtime::HealthProgrammaticOutput;
pub use runtime::ProgrammaticAnalysisContext;
pub use runtime::ProgrammaticHealthNextStepFacts;
pub use runtime::ProgrammaticHealthRun;
pub use runtime::ProgrammaticHealthRunner;
pub use runtime::compute_complexity_with_runner;
pub use runtime::compute_health;
pub use runtime::compute_health_with_runner;
pub use runtime::derive_programmatic_health_execution_options;
pub use runtime::detect_boundary_violations;
pub use runtime::detect_circular_dependencies;
pub use runtime::detect_dead_code;
pub use runtime::detect_duplication;
pub use runtime::resolve_programmatic_analysis_context;
pub use runtime::run_boundary_violations;
pub use runtime::run_circular_dependencies;
pub use runtime::run_complexity_with_runner;
pub use runtime::run_dead_code;
pub use runtime::run_duplication;
pub use runtime::run_health;
pub use runtime::run_health_with_runner;
pub use runtime::serialize_health_report_json;
pub use sarif_output::annotate_sarif_results;
pub use sarif_output::build_duplication_sarif;
pub use sarif_output::build_grouped_duplication_sarif;
pub use sarif_output::build_health_sarif;
pub use security_output::SecurityGateMode;

Modules§

audit_output
Shared audit JSON payload contracts for programmatic consumers.
ci_output
Compatibility re-exports for CI output builders now owned by fallow-output.
combined_output
Combined JSON output assembly shared by CLI and programmatic consumers.
compact_output
dead_code_codeclimate
Shared dead-code CodeClimate issue construction.
dead_code_sarif
Shared dead-code SARIF output assembly.
dupes_output
Shared duplication JSON payload contracts for programmatic consumers.
editor
Editor-facing analysis contracts shared by LSP and future editor adapters.
grouped_output
Shared grouped-output builders for programmatic and CLI consumers.
health_codeclimate
Shared health CodeClimate issue construction.
json_output
Shared JSON output assembly for CLI and programmatic consumers.
list_output
Shared list command JSON output assembly.
markdown_output
output_contracts
Concrete output-contract aliases shared by schema and adapter crates.
runtime
Programmatic runtime entry points that do not depend on fallow-cli.
sarif_output
Shared SARIF output assembly for health and duplication reports.
security_output
Shared security JSON payload contracts for programmatic consumers.

Structs§

AnalysisOptions
Shared options for all one-shot analyses.
CiIssue
Normalized CodeClimate issue used by CI comment renderers.
ComplexityOptions
Options for complexity / health analysis.
ComplexityRunOptions
Normalized programmatic complexity / health inputs shared by API, NAPI, and engine-backed runners.
ComplexitySectionOptions
Input for deriving effective programmatic complexity sections.
DeadCodeFilters
Issue-type filters for the dead-code analysis.
DeadCodeOptions
Options for dead-code-oriented analyses.
DerivedComplexityOptions
Derived section selection for programmatic health / complexity runs.
DerivedHealthSections
Derived section selection for health runs.
DuplicationOptions
Options for duplication analysis.
GroupedReviewIssues
HealthSectionOptions
Input for deriving effective health sections from command-neutral flags.
PrCommentRenderInput
Inputs for rendering a sticky PR/MR summary comment.
ProgrammaticError
Structured error surface for the programmatic API.
ReviewCommentRenderInput
ReviewEnvelopeRenderInput
Inputs for rendering a GitHub/GitLab review envelope.
ReviewEnvelopeRenderResult
Rendered review envelope plus side-channel signals for CLI telemetry.
ReviewEnvelopeTruncation
Truncation signals produced while rendering a review envelope.
ReviewGitlabDiffRefs
GitLab diff refs for a review-envelope position.

Enums§

ChangedFilesError
Classification of a git diff failure, so callers can pick their own wording (soft warning vs hard error) without re-parsing stderr.
CiProvider
Supported CI review providers for generated comments.
ComplexitySort
Sort criteria for complexity findings.
DuplicationMode
Programmatic duplication mode selection.
OwnershipEmailMode
Privacy mode for ownership-aware hotspot output.
TargetEffort
Effort filter for refactoring targets.

Constants§

COMMON_ANALYSIS_OPTION_FLAGS
MARKER_PREFIX_V2
Marker prefix appended to every v2 review-comment body.
MARKER_SUFFIX_V2
Closing of the v2 marker, after the fingerprint string.
MAX_COMMENT_BODY_BYTES
PROJECT_LEVEL_RULE_IDS
Rule ids whose findings describe project-wide config state rather than a change touching a specific source line.

Functions§

cap_body_with_marker
command_title
composite_fingerprint
derive_complexity_options
Derive effective programmatic health / complexity section flags.
derive_complexity_run_options
Normalize public API complexity options into engine-owned run contracts.
derive_complexity_sections
Derive effective programmatic health / complexity section flags.
derive_health_sections
Derive effective health section flags for CLI and embedders.
escape_md
Escape a string for inclusion in a Markdown table cell.
github_check_conclusion
group_review_issues_by_path_line
Group consecutive same-(path, line) issues. Input is already sorted by (path, line, fingerprint) so a single linear pass collects runs.
is_project_level_rule
issues_from_codeclimate
issues_from_codeclimate_issues
render_pr_comment
render_review_comment_for_group
Render one comment from a group of issues sharing the same (path, line).
render_review_envelope
Render a provider-specific review envelope from typed CI issues.
resolve_git_toplevel
Resolve the canonical git toplevel for cwd.
review_label_from_codeclimate
summary_fingerprint
summary_label
try_get_changed_files_with_toplevel
Like try_get_changed_files, but takes a pre-resolved canonical toplevel so callers (the LSP) can cache it across runs and avoid the extra git rev-parse --show-toplevel subprocess on every save.
validate_complexity_options
Validate programmatic complexity / health inputs before invoking a concrete runner.