feat: complete VFS with Knowledge Layer integration
- Add importFile() method for single file imports - Implement entity helper methods (linkEntities, findEntityOccurrences) - Fix critical embedding tokenizer bug (char.charCodeAt error) - Fix removeRelationship to actually remove using brain.unrelate() - Add setMetadata/getMetadata methods - Fix GitBridge to query real relationships and events - Enable background Knowledge Layer processing - Rewrite README to emphasize knowledge over files - Add comprehensive VFS documentation (core, knowledge layer, examples) - Add complete test suite covering all VFS methods This completes the VFS implementation with full Knowledge Layer support, enabling files as living knowledge that understand themselves, evolve over time, and connect to everything related.
This commit is contained in:
parent
b3c4f348ab
commit
581f9906fd
17 changed files with 2441 additions and 352 deletions
|
|
@ -387,9 +387,42 @@ export class GitBridge {
|
|||
options?: ExportOptions
|
||||
): Promise<void> {
|
||||
// Get all relationships for files in the VFS path
|
||||
// This would query Brainy for relationships
|
||||
const relationships: any[] = []
|
||||
|
||||
try {
|
||||
// Get relationships for the specified path and its children
|
||||
const related = await this.vfs.getRelated(vfsPath)
|
||||
if (related && related.length > 0) {
|
||||
relationships.push({
|
||||
path: vfsPath,
|
||||
relationships: related
|
||||
})
|
||||
}
|
||||
|
||||
// If it's a directory, get relationships for all files within
|
||||
const stats = await this.vfs.stat(vfsPath)
|
||||
if (stats.isDirectory()) {
|
||||
const files = await this.vfs.readdir(vfsPath, { recursive: true })
|
||||
for (const file of files) {
|
||||
const fileName = typeof file === 'string' ? file : file.name
|
||||
const fullPath = path.join(vfsPath, fileName)
|
||||
try {
|
||||
const fileRelated = await this.vfs.getRelated(fullPath)
|
||||
if (fileRelated && fileRelated.length > 0) {
|
||||
relationships.push({
|
||||
path: fullPath,
|
||||
relationships: fileRelated
|
||||
})
|
||||
}
|
||||
} catch (err) {
|
||||
// Skip files without relationships
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
// Path might not have relationships
|
||||
}
|
||||
|
||||
// Write relationships file
|
||||
const relationshipsPath = path.join(gitRepoPath, '.vfs-relationships.json')
|
||||
await fs.writeFile(relationshipsPath, JSON.stringify(relationships, null, 2))
|
||||
|
|
@ -407,7 +440,19 @@ export class GitBridge {
|
|||
const history = {
|
||||
exportedAt: Date.now(),
|
||||
vfsPath,
|
||||
events: [] // Would contain VFS events
|
||||
events: [] as any[]
|
||||
}
|
||||
|
||||
// Get history if Knowledge Layer is enabled
|
||||
if ('getHistory' in this.vfs && typeof (this.vfs as any).getHistory === 'function') {
|
||||
try {
|
||||
const events = await (this.vfs as any).getHistory(vfsPath)
|
||||
if (events) {
|
||||
history.events = events
|
||||
}
|
||||
} catch (err) {
|
||||
// Knowledge Layer might not be enabled
|
||||
}
|
||||
}
|
||||
|
||||
// Write history file
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue