File Identification is HAI Build’s intelligent file discovery system. It combines fast indexing, fuzzy search, and context tracking to help the AI find exactly the files it needs for code generation.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/presidio-oss/hai-build-codegen/llms.txt
Use this file to discover all available pages before exploring further.

How It Works
File Identification uses a multi-layer approach to file discovery:Core Features
Lightning-Fast Indexing
File Identification leverages ripgrep for blazing-fast file discovery:- Scans 5,000+ files in milliseconds
- Follows symlinks automatically
- Respects
.gitignorepatterns - Excludes common build directories (
node_modules,dist,.git)
Ripgrep is 10-100x faster than traditional file search tools, making it ideal for large codebases.
Intelligent File Filtering
Automatic exclusion of irrelevant directories:Active File Prioritization
Files you’re actively working on appear first:- Currently open in tabs
- Recently edited
- Visible in the editor
- Part of the current diff view
Fuzzy Search
File Identification uses Fuse.js for intelligent fuzzy matching:- Match Scoring
- Gap Scoring
Files are ranked by multiple factors:Scoring criteria:
- Filename matches (weighted 2x)
- Full path matches
- Fewer gaps between matched characters
- Shorter paths preferred
Multi-Root Workspace Support
File Identification seamlessly handles multi-root workspaces:Workspace Hints
Search specific workspace roots:
@frontend:/componentsSearches only the frontend workspace.Parallel Search
Searches all roots simultaneously:
Deduplication
Handles duplicate filenames:
Workspace Labels
Each result includes workspace name:
src/services/search/file-search.ts:209
File Context Tracking
HAI Build tracks which files are in the AI’s context:Context Status Indicators
File Mention Tracking
Every file operation is tracked:read_file: File content readwrite_to_file: File created or modifiedreplace_in_file: File editedlist_files: Directory listingsearch_files: File search results
Context Warnings
Users are warned when files are removed:File Type Detection
Automatic file type detection and categorization:Type Verification
Type Verification
Verifies file types using
fs.lstat():Directory Discovery
Directory Discovery
Automatically builds directory tree:Enables folder-level operations and navigation.
Search Strategies
Different search approaches for different scenarios:Exact Match
When you know the filename:
UserService.tsReturns exact matches first.Partial Match
When you remember part of the name:
user servFuzzy matches across path segments.Path-Based
When you know the directory:
components/authSearches full paths.Extension Filter
When you need specific file types:
*.test.tsFilters by extension pattern.Integration with AI
Automatic File Suggestions
The AI uses File Identification to:- Find relevant files for a task
- Suggest imports based on available modules
- Locate configuration files automatically
- Discover test files for testing tasks
- Navigate project structure efficiently
Context-Aware Mentions
File Identification powers the@ mention feature:
Performance Optimization
Lazy Loading
Results are loaded incrementally:- Initial 20 results displayed immediately
- More results loaded on scroll
- Prevents UI blocking on large workspaces
Caching Strategy
File index is cached per workspace:- Cache invalidated on file system changes
- Active files cache updated every 500ms
- Search results cached for 5 seconds
Limits and Throttling
Configuration
Custom Exclusions
Add workspace-specific exclusions:Search Behavior
Customize search parameters:Best Practices
Use Descriptive Filenames
Use Descriptive Filenames
- Clear names improve search accuracy
- Include feature/component in filename
- Use consistent naming conventions
- Avoid generic names like
utils.ts
Organize with Directories
Organize with Directories
- Group related files together
- Use feature-based folder structure
- Keep directory depth reasonable (3-5 levels)
- Mirror logical application structure
Leverage Active File Priority
Leverage Active File Priority
- Open relevant files before starting AI tasks
- Keep related files in tabs
- Use split editor for context files
- Close unrelated files to reduce noise
Optimize Large Workspaces
Optimize Large Workspaces
- Use workspace hints in multi-root setups
- Add irrelevant directories to exclusions
- Increase file limit if needed
- Consider breaking into multiple workspaces
Troubleshooting
Files not appearing in search
Files not appearing in search
- Check exclusion patterns
- Verify file isn’t in
.gitignore - Confirm file exists on disk
- Refresh file index
Slow file search
Slow file search
- Reduce file limit
- Add more exclusion patterns
- Check for symlink loops
- Disable deep directory scanning
Incorrect file rankings
Incorrect file rankings
- Use more specific search terms
- Include path segments in query
- Adjust fuzzy search threshold
- Try exact filename match
Next Steps
Inline Editing
Make quick edits to discovered files
AI-Powered Coding
See how the AI uses file context
Focus Chain
Track which files are being worked on
Multi-Root Workspaces
Work with multiple project roots