Documentation
¶
Index ¶
- Constants
- func GetIgnoreRules(rootDir string) *ignore.GitIgnore
- type DiscoveryOptions
- type FileDiscovery
- func (fd *FileDiscovery) BuildWorkspaceStructure() *WorkspaceInfo
- func (fd *FileDiscovery) DiscoverFilesRobust(userIntent string, options *DiscoveryOptions) *FileResult
- func (fd *FileDiscovery) FilterFiles(files []string, criteria *FileFilterCriteria) []string
- func (fd *FileDiscovery) GetFileStats(files []string) map[string]interface{}
- type FileFilterCriteria
- type FileResult
- type QueryTerms
- type WorkspaceInfo
Constants ¶
const ( // BuildWorkspaceTimeout is the absolute maximum time for workspace structure building BuildWorkspaceTimeout = 30 * time.Second // CacheDuration is how long workspace structure results are cached CacheDuration = 5 * time.Minute // ProgressEmitInterval controls how often progress events are emitted during file walk ProgressEmitInterval = 1000 // emit every N files // MaxDepth limits directory traversal depth in BuildWorkspaceStructure MaxDepth = 20 // LargeWorkspaceThreshold is the file count above which limits apply LargeWorkspaceThreshold = 1000 )
Configurable constants for performance limits
Variables ¶
This section is empty.
Functions ¶
func GetIgnoreRules ¶
GetIgnoreRules reads ignore files (.gitignore, .sprout/.ignore) and returns a gitignore object.
Types ¶
type DiscoveryOptions ¶
type DiscoveryOptions struct {
MaxFiles int
UseSymbols bool
UseShell bool
IncludeHidden bool
ExcludeDirs []string
IncludeExts []string
ExcludeExts []string
RootPath string
}
DiscoveryOptions configures file discovery behavior
type FileDiscovery ¶
type FileDiscovery struct {
// contains filtered or unexported fields
}
FileDiscovery provides common file discovery and analysis functionality
func NewFileDiscovery ¶
func NewFileDiscovery(cfg *configuration.Config, logger *utils.Logger) *FileDiscovery
NewFileDiscovery creates a new file discovery instance
func (*FileDiscovery) BuildWorkspaceStructure ¶
func (fd *FileDiscovery) BuildWorkspaceStructure() *WorkspaceInfo
BuildWorkspaceStructure builds workspace structure information. It applies a hard timeout (BuildWorkspaceTimeout), respects directory depth limits, emits progress events for large workspaces, and uses an in-memory cache.
func (*FileDiscovery) DiscoverFilesRobust ¶
func (fd *FileDiscovery) DiscoverFilesRobust(userIntent string, options *DiscoveryOptions) *FileResult
DiscoverFilesRobust uses multiple strategies to find relevant files
func (*FileDiscovery) FilterFiles ¶
func (fd *FileDiscovery) FilterFiles(files []string, criteria *FileFilterCriteria) []string
FilterFiles filters files based on criteria
func (*FileDiscovery) GetFileStats ¶
func (fd *FileDiscovery) GetFileStats(files []string) map[string]interface{}
GetFileStats returns statistics about files
type FileFilterCriteria ¶
type FileFilterCriteria struct {
IncludeExtensions []string
ExcludeExtensions []string
IncludePaths []string
ExcludePaths []string
MinSize int64
MaxSize int64
ModifiedAfter time.Time
ModifiedBefore time.Time
}
FileFilterCriteria defines filtering criteria for files
type FileResult ¶
type FileResult struct {
Files []string
Error error
Duration time.Duration
Method string
TotalFiles int
MatchedFiles int
}
FileResult represents the result of a file discovery operation
type QueryTerms ¶
QueryTerms represents parsed query terms