feat: add random graph generation and improve metadata vectorization

Introduced `generateRandomGraph` method to create randomized graphs with configurable entity counts and types, supporting automated testing and experimentation. Enhanced metadata vectorization logic to handle various metadata formats reliably, ensuring compatibility and fallback mechanisms during embedding. Updated `README.md` with detailed feature descriptions and usage guides.
This commit is contained in:
David Snelling 2025-06-05 14:04:29 -07:00
parent 93eb73f471
commit e2f65c8146
8 changed files with 1373 additions and 278 deletions

View file

@ -669,7 +669,7 @@ export class FileSystemStorage implements StorageAdapter {
}
/**
* Delete a directory and all its contents
* Delete a directory and all its contents recursively
*/
private async deleteDirectory(dirPath: string): Promise<void> {
try {
@ -677,8 +677,19 @@ export class FileSystemStorage implements StorageAdapter {
for (const file of files) {
const filePath = path.join(dirPath, file)
await fs.promises.unlink(filePath)
const stats = await fs.promises.stat(filePath)
if (stats.isDirectory()) {
// Recursively delete subdirectories
await this.deleteDirectory(filePath)
} else {
// Delete files
await fs.promises.unlink(filePath)
}
}
// After all contents are deleted, remove the directory itself
await fs.promises.rmdir(dirPath)
} catch (error) {
// If the directory doesn't exist, that's fine
if ((error as NodeJS.ErrnoException).code !== 'ENOENT') {