-
-
Notifications
You must be signed in to change notification settings - Fork 4
AST
Tree-sitter indexing, cross-reference storage, and AST-aware code skeletons for search and embeddings.
The AST subsystem covers 8 languages: C, C++, Python, Java, Kotlin, JavaScript, Rust, and TypeScript. It uses 7 tree-sitter parsers because C and C++ share one parser.
AST indexing is a two-phase process:
- Parse files and store the extracted symbols.
- Link cross-references between definitions and usages.
Indexing runs in the background in batches, so large workspaces are processed incrementally instead of blocking the main request path.
AST data is stored in LMDB. The key layout uses prefixes that separate concerns:
-
d|for definitions -
c|for fuzzy lookup -
u|for back-links -
classes|for inheritance
The skeletonizer builds abbreviated code views from declarations and selected members. These reduced snippets are used as embedding-friendly text, preserving structure while trimming implementation detail.
The engine exposes AST-related HTTP endpoints under /ast-*, including:
/ast-file-symbols/ast-status
These endpoints return symbol information and indexing status for the currently available AST service.
Refact on GitHub: https://github.com/JegernOUTT/refact
- Agent Modes
- Agent Tools
- Task Planner & Cards
- Worktrees
- Subagents
- Memory & Knowledge
- Hidden Roles & Plans
- Context Compression
- Scheduler & Cron
- Processes & PTY
- Buddy
- MCP
- Skills, Commands & Hooks
- Marketplace
- Chat System
- Providers
- Caps & Models
- Code Completion (FIM)
- AST
- VecDB
- Exec Runtime
- HTTP API
- Checkpoints & Git
- Voice