LocalDirectory

data class LocalDirectory constructor(val root: String, val description: String, val notes: String = "", val fileContentTransformers: List<StringTransformer> = listOf(WellKnownFileContentTransformers.removeApacheLicenseHeader)) : FileReadTools, PatternSearch, FileReadLog, LlmReference

Readonly access to a project on the local filesystem.

Constructors

Link copied to clipboard
constructor(root: String, description: String, notes: String = "", fileContentTransformers: List<StringTransformer> = listOf(WellKnownFileContentTransformers.removeApacheLicenseHeader))

Properties

Link copied to clipboard
Link copied to clipboard

Provide sanitizers that run on file content before returning it. They must be sure not to change any content that may need to be replaced as this will break editing if editing is done in the same session.

Link copied to clipboard
open val name: String
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override val root: String

Root on host machine

Link copied to clipboard
open override val toolCallbacks: List<<Error class: unknown class>>

Tool callbacks referenced or exposed.

Functions

Link copied to clipboard
open fun contribution(): String
Link copied to clipboard
open fun exists(): Boolean

Does this file exist?

Link copied to clipboard
open fun fileCount(): Int

Count the total number of files in the repository (excluding .git directory). Uses FileVisitor for cross-platform compatibility (Windows and Linux).

Link copied to clipboard
open fun fileSize(path: String): String
Link copied to clipboard
open fun findFiles(glob: String): List<String>

open fun findFiles(glob: String, findHighest: Boolean): List<String>

Find files using glob patterns.

Link copied to clipboard
open fun findPatternInProject(pattern: String, globPattern: String): String

open fun findPatternInProject(pattern: <Error class: unknown class>, globPattern: String, useParallelSearch: Boolean = true): List<PatternSearch.PatternMatch>

Finds files containing the specified pattern using glob patterns

Link copied to clipboard
open override fun flushReads()
Link copied to clipboard
open override fun getPathsAccessed(): List<String>
Link copied to clipboard
open override fun getPathsRead(): List<String>
Link copied to clipboard
open override fun getReads(): List<FileReads>
Link copied to clipboard
open fun listFiles(path: String): List<String>
Link copied to clipboard
open fun matchesGlob(path: String, globPattern: String): Boolean

Checks if a file path matches a glob pattern

Link copied to clipboard
open override fun notes(): String

Notes about this reference, such as usage guidance. Does not need to consider prompt prefix, name or description as they will be added automatically.

Link copied to clipboard
open fun readFile(path: String): String
Link copied to clipboard
open override fun recordRead(path: String)
Link copied to clipboard
Link copied to clipboard
open fun resolvePath(path: String): Path
Link copied to clipboard
open fun safeReadFile(path: String): String?

Use for safe reading of files. Returns null if the file doesn't exist or is not readable.

Link copied to clipboard
open fun toolInstances(): List<Any>

Return the instances of tool object. Defaults to this

Link copied to clipboard

Create a tool object for this reference.

Link copied to clipboard
open fun toolPrefix(): String

A safe prefix for LLM tools associated with this reference. Defaults to the name lowercased with spaces replaced by underscores. Subclasses can override it

Link copied to clipboard
open fun tools(): List<Tool>

Return framework-agnostic tools provided by this reference. These tools will be added to the PromptRunner when the reference is added. Defaults to empty list for backward compatibility.

Link copied to clipboard

Returns a copy of this LocalDirectory with the given usage notes.