acp/
lib.rs

1#![forbid(unsafe_code)]
2
3//! @acp:module "ACP Library"
4//! @acp:summary "Token-efficient code documentation and indexing for AI systems"
5//! @acp:domain cli
6//! @acp:layer api
7//! @acp:stability stable
8//!
9//! # ACP - AI Context Protocol
10//!
11//! Token-efficient code documentation and indexing for AI systems.
12//!
13//! ## Features
14//!
15//! - **Fast Parsing**: Uses tree-sitter for accurate AST parsing
16//! - **JSON Output**: Queryable with jq for O(1) lookups
17//! - **Variable System**: Token-efficient macros with inheritance
18//! - **Multi-language**: TypeScript, JavaScript, Rust, Python, Go, Java
19//!
20//! ## Example
21//!
22//! ```rust,no_run
23//! use acp::{Indexer, Config};
24//!
25//! #[tokio::main]
26//! async fn main() -> anyhow::Result<()> {
27//!     let config = Config::default();
28//!     let indexer = Indexer::new(config)?;
29//!
30//!     // Index codebase
31//!     let cache = indexer.index(".").await?;
32//!
33//!     // Write JSON output
34//!     cache.write_json(".acp.cache.json")?;
35//!
36//!     Ok(())
37//! }
38//! ```
39
40pub mod annotate;
41pub mod ast;
42pub mod attempts;
43pub mod bridge;
44pub mod cache;
45pub mod commands;
46pub mod config;
47pub mod constraints;
48pub mod error;
49pub mod expand;
50pub mod git;
51pub mod index;
52pub mod parse;
53pub mod query;
54pub mod scan;
55pub mod schema;
56pub mod sync;
57pub mod vars;
58pub mod watch;
59
60// Re-exports
61pub use annotate::{
62    AnalysisResult, Analyzer as AnnotationAnalyzer, AnnotateLevel, ConversionSource, FileChange,
63    OutputFormat, Suggester as AnnotationSuggester, Suggestion, Writer as AnnotationWriter,
64};
65pub use ast::{AstParser, ExtractedSymbol, FunctionCall, Import, SymbolKind, Visibility};
66pub use attempts::AttemptTracker;
67pub use bridge::{BridgeConfig, BridgeMerger, BridgeResult, FormatDetector};
68pub use cache::{Cache, CacheBuilder, Language};
69pub use config::Config;
70pub use constraints::{
71    BehaviorModifier, ConstraintIndex, Constraints, DebugAttempt, DebugResult, DebugSession,
72    DebugStatus, FileGuardrails, GuardrailEnforcer, GuardrailParser, HackMarker, LockLevel,
73    MutationConstraint, QualityGate, StyleConstraint,
74};
75pub use error::{AcpError, Result};
76pub use git::{BlameInfo, FileHistory, GitFileInfo, GitRepository, GitSymbolInfo};
77pub use index::Indexer;
78pub use parse::Parser;
79pub use query::Query;
80pub use scan::{scan_project, ProjectScan};
81pub use sync::{BootstrapAction, BootstrapResult, SyncExecutor, Tool as SyncTool};
82pub use vars::{VarExpander, VarResolver};
83
84/// Library version
85pub const VERSION: &str = env!("CARGO_PKG_VERSION");