mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-24 03:04:21 +01:00
additional tools
This commit is contained in:
53
internal/llm/tools/file.go
Normal file
53
internal/llm/tools/file.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package tools
|
||||
|
||||
import (
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
// File record to track when files were read/written
|
||||
type fileRecord struct {
|
||||
path string
|
||||
readTime time.Time
|
||||
writeTime time.Time
|
||||
}
|
||||
|
||||
var (
|
||||
fileRecords = make(map[string]fileRecord)
|
||||
fileRecordMutex sync.RWMutex
|
||||
)
|
||||
|
||||
func recordFileRead(path string) {
|
||||
fileRecordMutex.Lock()
|
||||
defer fileRecordMutex.Unlock()
|
||||
|
||||
record, exists := fileRecords[path]
|
||||
if !exists {
|
||||
record = fileRecord{path: path}
|
||||
}
|
||||
record.readTime = time.Now()
|
||||
fileRecords[path] = record
|
||||
}
|
||||
|
||||
func getLastReadTime(path string) time.Time {
|
||||
fileRecordMutex.RLock()
|
||||
defer fileRecordMutex.RUnlock()
|
||||
|
||||
record, exists := fileRecords[path]
|
||||
if !exists {
|
||||
return time.Time{}
|
||||
}
|
||||
return record.readTime
|
||||
}
|
||||
|
||||
func recordFileWrite(path string) {
|
||||
fileRecordMutex.Lock()
|
||||
defer fileRecordMutex.Unlock()
|
||||
|
||||
record, exists := fileRecords[path]
|
||||
if !exists {
|
||||
record = fileRecord{path: path}
|
||||
}
|
||||
record.writeTime = time.Now()
|
||||
fileRecords[path] = record
|
||||
}
|
||||
Reference in New Issue
Block a user