Crate acp

Crate acp 

Source
Expand description

@acp:module “ACP Library” @acp:summary “Token-efficient code documentation and indexing for AI systems” @acp:domain cli @acp:layer api @acp:stability stable

§ACP - AI Context Protocol

Token-efficient code documentation and indexing for AI systems.

§Features

  • Fast Parsing: Uses tree-sitter for accurate AST parsing
  • JSON Output: Queryable with jq for O(1) lookups
  • Variable System: Token-efficient macros with inheritance
  • Multi-language: TypeScript, JavaScript, Rust, Python, Go, Java

§Example

use acp::{Indexer, Config};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let config = Config::default();
    let indexer = Indexer::new(config)?;

    // Index codebase
    let cache = indexer.index(".").await?;

    // Write JSON output
    cache.write_json(".acp.cache.json")?;

    Ok(())
}

Re-exports§

pub use annotate::AnalysisResult;
pub use annotate::Analyzer as AnnotationAnalyzer;
pub use annotate::AnnotateLevel;
pub use annotate::ConversionSource;
pub use annotate::FileChange;
pub use annotate::OutputFormat;
pub use annotate::Suggester as AnnotationSuggester;
pub use annotate::Suggestion;
pub use annotate::Writer as AnnotationWriter;
pub use ast::AstParser;
pub use ast::ExtractedSymbol;
pub use ast::FunctionCall;
pub use ast::Import;
pub use ast::SymbolKind;
pub use ast::Visibility;
pub use attempts::AttemptTracker;
pub use bridge::BridgeConfig;
pub use bridge::BridgeMerger;
pub use bridge::BridgeResult;
pub use bridge::FormatDetector;
pub use cache::Cache;
pub use cache::CacheBuilder;
pub use cache::Language;
pub use config::Config;
pub use constraints::BehaviorModifier;
pub use constraints::ConstraintIndex;
pub use constraints::Constraints;
pub use constraints::DebugAttempt;
pub use constraints::DebugResult;
pub use constraints::DebugSession;
pub use constraints::DebugStatus;
pub use constraints::FileGuardrails;
pub use constraints::GuardrailEnforcer;
pub use constraints::GuardrailParser;
pub use constraints::HackMarker;
pub use constraints::LockLevel;
pub use constraints::MutationConstraint;
pub use constraints::QualityGate;
pub use constraints::StyleConstraint;
pub use conventions::detect_naming_conventions;
pub use conventions::ConventionsAnalyzer;
pub use conventions::NamingDetector;
pub use error::AcpError;
pub use error::Result;
pub use git::BlameInfo;
pub use git::FileHistory;
pub use git::GitFileInfo;
pub use git::GitRepository;
pub use git::GitSymbolInfo;
pub use index::Indexer;
pub use parse::Parser;
pub use query::Query;
pub use scan::scan_project;
pub use scan::ProjectScan;
pub use sync::BootstrapAction;
pub use sync::BootstrapResult;
pub use sync::SyncExecutor;
pub use sync::Tool as SyncTool;
pub use vars::VarExpander;
pub use vars::VarResolver;

Modules§

annotate
@acp:module “Annotation Generation” @acp:summary “Auto-annotation and documentation conversion for ACP adoption” @acp:domain cli @acp:layer service @acp:stability experimental
ast
@acp:module “AST Parsing” @acp:summary “Tree-sitter based AST parsing for symbol extraction” @acp:domain cli @acp:layer parsing
attempts
@acp:module “Attempt Tracking” @acp:summary “Attempt tracking and rollback system for AI troubleshooting” @acp:domain cli @acp:layer service
bridge
@acp:module “Documentation System Bridging” @acp:summary “RFC-0006: Bridges native documentation formats (JSDoc, docstrings, etc.) to ACP” @acp:domain cli @acp:layer service @acp:stability experimental
cache
@acp:module “Cache” @acp:summary “Cache types and builder for .acp.cache.json files” @acp:domain cli @acp:layer model
commands
@acp:module “Commands” @acp:summary “CLI command implementations” @acp:domain cli @acp:layer handler
config
@acp:module “Configuration” @acp:summary “Project configuration loading and defaults (schema-compliant)” @acp:domain cli @acp:layer config
constraints
@acp:module “Constraints” @acp:summary “AI behavioral guardrails and constraint system” @acp:domain cli @acp:layer model @acp:stability stable
conventions
@acp:module “Conventions” @acp:summary “RFC-0015: Auto-detection of naming and import conventions” @acp:domain cli @acp:layer analysis
error
@acp:module “Error Types” @acp:summary “Comprehensive error handling for ACP operations” @acp:domain cli @acp:layer utility
expand
@acp:module “Expansion Presets” @acp:summary “Re-exports expansion types and presets from vars module” @acp:domain cli @acp:layer utility
git
@acp:module “Git Integration” @acp:summary “Repository operations, blame tracking, and file history via libgit2” @acp:domain cli @acp:layer integration
index
@acp:module “Index” @acp:summary “Codebase indexing and cache generation” @acp:domain cli @acp:layer service
parse
@acp:module “Parser” @acp:summary “Source code parsing and annotation extraction (RFC-001/RFC-003 compliant)” @acp:domain cli @acp:layer service
primer
@acp:module “Primer” @acp:summary “RFC-0004/RFC-0015: AI bootstrap primer generation with tiered selection” @acp:domain cli @acp:layer feature
query
@acp:module “Query” @acp:summary “Programmatic cache access and querying (schema-compliant)” @acp:domain cli @acp:layer service
scan
@acp:module “Scanner” @acp:summary “Project scanning and auto-detection” @acp:domain cli @acp:layer service
schema
@acp:module “Schema Validation” @acp:summary “JSON schema validation for ACP files using jsonschema crate” @acp:domain cli @acp:layer utility
sync
@acp:module “Tool Sync” @acp:summary “Sync ACP context to AI tool configuration files” @acp:domain cli @acp:layer service
vars
@acp:module “Variables” @acp:summary “Variable system for token-efficient macros (schema-compliant)” @acp:domain cli @acp:layer model @acp:stability stable
watch
@acp:module “File Watcher” @acp:summary “Watches for file changes and triggers incremental updates” @acp:domain cli @acp:layer service

Constants§

VERSION
Library version