Skip to main content

aptu_core/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2
3#![warn(missing_docs)]
4#![doc = include_str!("../README.md")]
5
6// ============================================================================
7// Authentication
8// ============================================================================
9
10pub use auth::TokenProvider;
11
12// ============================================================================
13// Error Handling
14// ============================================================================
15
16pub use error::AptuError;
17
18/// Convenience Result type for Aptu operations.
19///
20/// This is equivalent to `std::result::Result<T, AptuError>`.
21pub type Result<T> = std::result::Result<T, AptuError>;
22
23// ============================================================================
24// Configuration
25// ============================================================================
26
27#[cfg(not(target_arch = "wasm32"))]
28pub use config::TomlConfigSource;
29#[cfg(not(target_arch = "wasm32"))]
30pub use config::load_config;
31pub use config::{
32    AiConfig, AppConfig, CacheConfig, ConfigSource, GitHubConfig, InMemoryConfigSource, TaskType,
33    UiConfig, UserConfig, config_dir, config_file_path, data_dir, prompts_dir,
34};
35
36// ============================================================================
37// AI Triage
38// ============================================================================
39
40pub use ai::types::{
41    IssueComment, IssueDetails, PrDetails, PrFile, PrReviewResponse, ReviewEvent, TriageResponse,
42};
43pub use ai::{AiClient, AiModel, ModelProvider, ProviderConfig, all_providers, get_provider};
44
45// ============================================================================
46// GitHub Integration
47// ============================================================================
48
49pub use github::auth::TokenSource;
50pub use github::graphql::IssueNode;
51#[cfg(not(target_arch = "wasm32"))]
52pub use github::ratelimit::check_rate_limit;
53#[cfg(not(target_arch = "wasm32"))]
54pub use octocrab::params::State;
55
56// ============================================================================
57// AI Integration
58// ============================================================================
59
60pub use ai::types::CreditsStatus;
61
62// ============================================================================
63// History Tracking
64// ============================================================================
65
66pub use history::{AiStats, Contribution, ContributionStatus, HistoryData};
67
68// ============================================================================
69// Repository Discovery
70// ============================================================================
71
72#[cfg(not(target_arch = "wasm32"))]
73pub use repos::discovery::search_repositories;
74pub use repos::discovery::{DiscoveredRepo, DiscoveryFilter};
75pub use repos::{CuratedRepo, RepoFilter};
76
77// ============================================================================
78// Triage Detection
79// ============================================================================
80
81pub use triage::{
82    APTU_SIGNATURE, TriageStatus, check_already_triaged, render_pr_review_comment_body,
83    render_pr_review_markdown, render_triage_markdown,
84};
85
86// ============================================================================
87// Bulk Processing
88// ============================================================================
89
90pub use bulk::{BulkOutcome, BulkResult, process_bulk};
91
92// ============================================================================
93// Utilities
94// ============================================================================
95
96pub use utils::{
97    format_relative_time, infer_repo_from_git, parse_and_format_relative_time, truncate,
98};
99
100// ============================================================================
101// Platform-Agnostic Facade
102// ============================================================================
103
104pub use facade::format_issue;
105#[cfg(not(target_arch = "wasm32"))]
106pub use facade::{
107    add_custom_repo, analyze_issue, analyze_pr, apply_triage_labels, create_pr, discover_repos,
108    fetch_issue_for_triage, fetch_issues, fetch_pr_for_review, label_pr, list_curated_repos,
109    list_models, list_repos, post_issue, post_pr_review, post_triage_comment, remove_custom_repo,
110    revert_issue, revert_pr, validate_model,
111};
112#[cfg(not(target_arch = "wasm32"))]
113pub use github::issues::ApplyResult;
114#[cfg(not(target_arch = "wasm32"))]
115pub use github::pulls::PrCreateResult;
116
117// ============================================================================
118// Security Scanning
119// ============================================================================
120
121#[cfg(not(target_arch = "wasm32"))]
122pub use security::FindingCache;
123pub use security::{
124    Confidence, Finding, PatternEngine, SarifReport, SecurityConfig, SecurityScanner, Severity,
125    needs_security_scan,
126};
127
128// ============================================================================
129// Modules
130// ============================================================================
131
132pub mod ai;
133#[cfg(feature = "ast-context")]
134pub mod ast_context;
135pub mod auth;
136pub mod bulk;
137pub mod cache;
138pub mod config;
139pub mod error;
140pub mod facade;
141/// Git utilities: patch application, branch management, and version gating.
142pub mod git;
143pub mod github;
144pub mod history;
145pub mod metrics;
146pub mod repos;
147pub mod retry;
148pub mod sanitize;
149pub mod security;
150pub mod triage;
151pub mod utils;
152
153#[cfg(not(target_arch = "wasm32"))]
154pub use git::patch::{PatchError, PatchStep, apply_patch_and_push};