filediscovery

package
v0.17.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
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

func GetIgnoreRules(rootDir string) *ignore.GitIgnore

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

type QueryTerms struct {
	FilePatterns []string
	SearchTerms  []string
}

QueryTerms represents parsed query terms

type WorkspaceInfo

type WorkspaceInfo struct {
	ProjectType string
	AllFiles    []string
	FilesByDir  map[string][]string
	Error       error
	RootDir     string
}

WorkspaceInfo represents workspace information

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL